资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
湖南科技大学湖南科技大学微机原理与接口技术课程设计8253 的脉冲计数器/分频器设计学院 潇湘学院班级 通信一班 学号 姓名 引言在计算机系统中往往需要一些时钟,以便实现定时控制或延迟控制。如定时扫描,定时中断,定时检测,定时刷新,系统日历时钟以及喇叭发生的声源等。对外部事件进行记录,也是各种微机应用所常用的,因此往往需要一些计数器。而定时功能通常是通过记数来实现的,当计数器的输入脉冲为固定频率的信号时,计数器就有了定时功能,因此一般定时器和计数器融为一体。8253 脉冲计数器/分频器就具有这样的功能。微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。本课程设计任务和目的是:帮助学生巩固和加深理解所学的理论知识,训练学生的实验技能,使其树立工程观点和严谨的科学作风,初步具有运用理论知识分析问题、解决问题的能力。培养学生运用所学的理论解决实际问题的能力,使学生初步掌握分析简单电路,调试简单汇编程序以及撰写实验报告的能力。1、基本目的在计算机应用系统中,常常需要实时时钟,有时也需要对外部事件进行计数,而可编程计数器的计数范围可由软件来设定改变,不占用 CPU 大量时间,所以使用方便,且功能较强。本次课程设计所选题目为基于 8253 的脉冲计数器/分频器设计,设计的基本目的是:(1)设计一个能对 2MHZ 以下的脉冲信号进行分频的器件。 (2)分频系数由试验箱中的 K1K8 逻辑开关控制输入 (3)由 LED 数码管显示分频系数,为简便设计本次设计只使用四个数码管,即分频系数最大值为 9999(十进制) 2.工作原理实现定时的方法可分为软件定时和硬件定时两种。软件定时就是让机器执行一个程序段,这个程序段本身并没有具体的执行目的,但由于执行每一条指令都需要一定的时间,则执行一个已定的程序段就需要一个固定的时间。软件定时的优点是不需要增加硬件设备,且定时时间改变灵活,只要改变子程序的执行时间即可。硬件定时又分为不可编程硬件定时和可编程硬件定时。对不可编程的硬件定时方法,可采用如定时器 555 外接定时部件构成。这种定时的优点是电路一般比较简单,定时期间不占用 CPU 资源。可编程的计数器是为了方便计算机系统的设计和应用而研制的,很容易和系统总线连接。8253 的记数初值是决定记数次序的,根据输出信号的不同,计算方法可分为两种情况。当输出信号为连续的周期波时:假设计数器输入信号 CLK 的频率为 F(CLK) ,要求 OUT 端输出信号的频率为 F(OUT) ,则记数初值N 的计算公式为:N=F(CLK)/F(OUT)当计数器工作在一次性有效的定时方式时:如希望的定时时间为 T,则记数初值 N 的计算公式为: N=F(CLK)*T3.实验内容8253A 的 A0、A1 接系统地址总线 A0、A1,故 8253A 有四个端口地址, 。8253A 的片选地址为 48H 4FH。 因此, 本实验仪中的8253A 四个端口地址为 48H、49H、4AH、4BH,分别对应通道 0、通道 1、通道 2 和控制字。采用 8253A 通道 0,工作在方式 3(方波发生器方式),输入时钟 CLK0 为 1MHZ, 输出 OUTO 要求为 1KHZ 的方波,并要求用接在 GATE0 引脚上的导线是接地(0电平)或甩空(1电平)来观察 GATE 对计数器的控制作用,用示波器观察输出波形。当我们改变记数初值是再观察波形的变化。(1)8253 功能介绍8253 是可编程的计数器/定时器,其内部有三个独立的 16 位计数器/定时器通道,每个计数器通道均可按 6 种不同的方式工作,并且都可以按二进制或十进制计数。其CLK0CLK2 是计数器02 的时钟脉冲输入端, GATE0GATE2 是门控脉冲输入端, OUT0OUT2是输出端及内部结构见左图。A1 A0:用来选择计数器和控制寄存器D0-D7:三态数据线,和数据总线相连GATE0 1 2:门控输入端,对应相同号计数CS:片选端,低电平有效WR:写信号输入端,低电平有效 RD:读信号输入端,低电平有效CLK0 1 2:各计数器时钟信号输入端 OUT0 1 2:相应计数器输入端(2)8253 的工作方式方式0 :又称计数结束产生中断工作方式。当程序将工作方式控制字写入控制字寄存器时,计数器的输出端OUT 立即变为低电平。在计数初值写入该计数器后,输出仍将保持为低电平。当门控信号GATE 为高电平时,计数器对输入端CLK的输入脉冲开始作减一计数,当计数器从初值减为0 时,输出端OUT由低电平变为高电平,该输出信号可作为向CPU 发出的中断请求信号。方式1 :又称可编程单稳态工作方式。功能是在GATE 信号的上升沿作用下,输出端OUT 产生一个负脉冲信号,负脉冲的宽度可由定时器的计数初值和时钟频率编程确定。方式2 :又称频率发生器工作方式。当程序将工作方式控制字写入控制字寄存器时,计数器的输出端OUT立即变为高电平。在写入计数初值后,计数器对输入时钟CLK计数。在计数过程中OUT 保持不变,直到计数器从初值减为1 时,输出OUT 将变低,再经过一个CLK周期,OUT 恢复为高电平,并按已设定的计数初值重新开始计数。在需要产生某个脉冲信号或将某一个较高频率的脉冲信号分频为较低频率时,可使用8253 的方式2。方式3 :又称方波发生器工作方式。方式3 的工作类似于方式2 ,不同之处是方式3 的输出OUT是方波。方式4 :又称软件触发选通工作方式。其功能是在输出OUT 端隔一定时间产生一价目负脉冲。与方式0 不同的是,输出脉冲的宽度是固定的,但产生负脉冲所相隔时间是可编程的。方式5 : 又称硬件触发选通工作方式。方式5的工作类似于方式4 ,不同之处是GATE 信号的作用不同。方式5 的计数过程由GATE 的上升沿触发,当计数结束时,OUT 将输出一个CLK周期的低电平信号。(3)初始化编程编程时,可选择计数器1工作在方式0。在8253的方式0工作方式中,从将计数初值写入计数器到开始减1计数之间,有一个时钟脉冲的延迟。若计数初值为 n = 999,那么经过 n + 1个即1000个脉冲时计数值减为0,并在OUT1端输出一正跳变,这可以作为中断请求。在中断服务子程序中CPU可以做其他处理,如送下一个包装箱等。设计数初值为1999 (要求一个包装箱内装工件2000) ,按十进制计数,先送低8位,再送高8位,控制字为01110001B。初始化程序为:MOV AL, 01110001BAL, 01110001BMOV DX, 0356HOUT DX,AL ;送方式控制字MOV AL, 99HMOV DX, 0352HOUT DX,AL ;向通道1送计数初值低8位MOV AL, 19HOUT DX,AL ;向通道1送计数初值高8位(4)实验步骤运行实验程序,在系统显示DVCC 86H状态下,按任意键,系统显示命令提示符。按 GO 键,系统显示1000 XX,输入 F000 : B290,再按 EXEC 键,显示82531,用示波器测量 8253A 的OUT0 输出插孔,应有频率为 1KHZ 的方波输出。幅值 05V。计数器的 3 个引脚说明:(1)CLK 时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿) ,计数器的计数值减 1(2) GATE 门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型(3) OUT 计数器输出信号四、8255A 的基本性能8255A 具有三个相互独立的输入/输出通道:通道 A、通道 B、通道 C。A,B,C 三通道可以联合使用,构成单线、双线或三线联络信号的并行接口。此时 C 口完全服务于 A、B 口。A 口有三种工作方式:方式 0、方式 1、方式 2。B 口有两种工作方式:方式 0、方式 1。(1)8255A 内部结构8255A 内部结构由以下四部分组成: 数据端口 A、B、C;A 组控制和 B 组控制;读/写控制逻辑电路;数据总线缓冲器。 (2)译码器 74LS13874LS138 为 3 线 8 线 译 码 器 , 共 有 54/74S138 和 54/74LS138 两 种 线 路 结 构 型 式 。 其 工 作 原 理 如 下 : 当 一 个 选 通 端 ( E3) 为 高 电 平 , 另 两 个 选 通 端 ( E1)和/(E2)) 为 低 电 平 时 , 可 将 地 址 端 ( A0、 A1、 A2) 的 二 进 制 编 码在 Y0 至 Y7 对 应 的 输 出 端 以 低 电 平 译 出 。 比 如 : A0A1A2=011 时 ,则 Y6 输 出 端 输 出 低 电 平 信 号 。 利 用 E1、 E2 和 E3 可 级 联 扩 展 成 24 线 译 码 器 ; 若 外 接 一个 反 相 器 还 可 级 联 扩 展 成 32 线 译 码 器 。五.程序代码源程序: .MODEL TINY .STACK 100 .DATA COM_ADD DW 217H ;控制口偏移量 PA_ADD DW 214H ;PA 口偏移量 PB_ADD DW215H ;PB 口偏移量 PC_ADD DW 216H ;PC 口偏移量 COM_ADDR DW 207H T0_ADDR DW 204H T1_ADDR DW205H T2_ADDR DW206H TIME db 3fh,06h,5bh,4fh,66h,6dh,7dh,27h,7fh,6fh,76h,76h,76h,76h,76h,76h ;段选码表 BEGINT db 00h,00h,00h,00h NUMBER dw 0000h mov al,10001001b ;8255 芯片初始化 以 PC口为输入,PB 口输出段选,PA 口输出位选 mov dx,COM_ADD out dx,al ;将初始化信息写入 8255 芯片控制口 loop3: mov dx,PC_ADD ;取 8255C 口地址 in al,dx ;将从 C 口打入的开关量输入至 AL and al,80h ;取 PC 口第七位的状态 cmp al,80h ;判断 PC7=1? je settime ;等于 1 则设置初值 loop4: call TDISP ;否则显示编码 jmp loop3 ;继续查看 C 口状态 ;设置初值子程序 settime: mov bx,offset begint ;BX 存放的要显示的数据值的偏移地址 mov dx,PC_ADD ;送 pc 口地址 in al,dx mov ah,al ;低位不变,ah、al 中内容用于判断和存据 and ax,0f70h ;0000111100110000b,屏蔽保4,5 位后,用于位选 LED 八位的高低位 mov cl,4 ;设置左移位数 shr al,cl
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号