微机原理与接口技术第7章控制器接口.ppt

上传人:小飞机 文档编号:6284445 上传时间:2023-10-13 格式:PPT 页数:27 大小:327.82KB
返回 下载 相关 举报
微机原理与接口技术第7章控制器接口.ppt_第1页
第1页 / 共27页
微机原理与接口技术第7章控制器接口.ppt_第2页
第2页 / 共27页
微机原理与接口技术第7章控制器接口.ppt_第3页
第3页 / 共27页
微机原理与接口技术第7章控制器接口.ppt_第4页
第4页 / 共27页
微机原理与接口技术第7章控制器接口.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《微机原理与接口技术第7章控制器接口.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术第7章控制器接口.ppt(27页珍藏版)》请在三一办公上搜索。

1、微机原理与接口技术,第 7 章 控制器接口,教案,7.3 定时/计数器,7.3.1 定时/计数器工作原理 7.3.2 可编程定时/计数器82537.3.3 8253应用例,计数器/定时器工作原理,计数器/定时器是一个具有可编程计数功能的专用芯片。计数器/定时器的结构:,计数功能实现过程:在预先设置好计数初值后,可以对外部给的触发脉冲做减“1”计数,当计数值减为“0”时,输出一个“计数到”的信号。,定时/计数器的特点,触发计数减1功能的信号必须是触发脉冲信号。计数器的触发脉冲信号可以是周期恒定,也可以是周期随意,仅当计数值减到“0”时,输出一个计数结束信号。定时器的触发脉冲信号必须是周期恒定的时

2、钟信号,在计数值减到“0”时,输出一个计数为“0”的信号;并把计数初值自动重新装入,再继续重复做减“1”计数,从而输出一个恒定的周期性信号。定时/计数器的应用:在多任务系统中产生定时中断信号,实现多任务程序的分时切换;在定时数据采集,或者实时控制系统中,产生精确的对外部事件的计数信号,或定时控制信号;常做一个可编程的波特率(时钟)发生器使用。,定时/计数器8253,Intel 8253是一个广泛用于微机控制的可编程定时/计数器。8253有3个独立的16位计数器通道,既可以做16位计数器,也可以做8位计数器使用。8253的每个计数器可以选择 2#,或者10#(BCD码)计数。8253的每个计数器

3、都可以编程设定6种工作方式之一。8253的计数器最高计数速率可达2.6MHz。,8253的内部结构,8253的引脚性能,D7D0:8位、双向、三态数据线,直接和系统数据总线连接。CS:片选信号,低电平有效。RD,WR:读信号,写信号,低电平时有效。A1,A0:8253端口选择线。0010分别选择计数器02,11选择控制端口。CLK0CLK2:分别是计数器02的计数脉冲输入端,做计数速率的控制。GATE0GATE2:分别是计数器02门控输入端,做计数允许/禁止的控制。OUT0OUT2:分别是计数器02的输出端,做计数器计数状态的输出。,8253操作的控制逻辑,8253的控制字,8253的初始化设

4、置,8253计数器的初始化设置:1.设置控制字2.设置计数初值N8253的计数器设置之后,当检测到门控(GATE)信号有效时,计数器按照其设置工作。控制字“写”到控制端口计数初值N“写”到对应的计数器端口,8253的计数初值,8253计数初值N的计算:N=CLK输入频率/OUT输出频率设置计数初值N要符合控制字的计数器位数规定。若用低位字节,或高位字节计数,8位计数初值一次写。若用高、低位字节计数,16位计数初值分两次写入,先写低字节,后写高字节。计数初值0是计数器所能容纳的最大计数值。8位计数初值0,若做2#计数值是256(100H),若做10#(BCD码)计数值是100;16位计数初值0,

5、若做2#计数值是65536(10000H),若做10#(BCD码)计数值是10000。,8253的读操作编程,读取计数器的当前值,可以动态了解计数情况。8253计数器的读操作有直接读和锁存读两种。直接读操作:计数输出寄存器随减1计数寄存器一直在动态变化,直接读得不到稳定值,不太可靠(一般不用)。锁存读操作:先用锁存命令(控制字D5D4为00)把计数值锁存到计数输出寄存器,然后再读。当计数值读走后,锁存功能自动失锁。例如,(8253端口地址40H43H)MOVAL,40H;计数器1的锁存命令OUT43H,ALINAL,41H;读低8位计数值MOVCL,ALINAL,41H;读高8位计数值MOVC

6、H,AL;CX中为读取的16位计数值,8253的工作方式,8253有六种工作方式:方式0 计数结束产生中断 方式1 可重复触发的单稳态(脉冲)触发器 方式2 频率发生器(分频器)方式3 方波频率发生器 方式4 软件触发选通信号发生器 方式5 硬件(GATE)触发的选通信号发生器六种工作方式的主要区别:输出波形不同;启动计数的触发方式不同;门控(GATE)信号对计数过程的影响不同;计数过程中,修改计数初值对计数过程的影响不同。,8253方式0方式5 的输出波形(正常计数的OUT状态),未定态 计数初态 计数态 结束态/计数态,每一种工作方式不仅与计数初值有关,而且受CLK信号和GATE信号控制。

7、CLK信号确定计数减1速率,GATE信号允许/禁止计数,或者启动计数。写计数初值之后,并不马上开始计数,只有检测到GATE信号有效,经过一个CLK周期,把计数初值送到减1计数器,才开始做减1操作。OUT端随着工作方式的不同和当前计数状态的不同,一定有电平输出变化。OUT的输出波形在写控制字之前为未定态,在写了控制字之后到计数之前为计数初态,再之后有计数态、暂停态、结束态等。对于给定的工作方式,门控信号GATE的触发条件是有具体规定的,或电平触发,或边沿触发,或两者均可。,8253六种方式的共同点,门控信号GATE的功能,8253六种方式的不同点,方式0和方式4软件触发(写入计数初值)启动计数,

8、无自动重装计数值功能。它们的区别:方式0在计数过程中输出低电平,计数结束时变为高电平,并一直保持;方式4在计数过程中输出为高电平,计数结束时输出一个宽度为一个TCLK的负脉冲,以后又保持高电平。方式1和方式5硬件触发(GATE上升沿)启动计数。它们的区别:方式1在计数过程中输出一个宽度为计数初值乘以TCLK的单相负脉冲;方式5在计数结束后输出一个宽度为一个TCLK的负脉冲。方式2和方式3具有自动重装计数值的能力,是频率发生器(分频器)。它们的区别:方式2输出占空比为(n-1):1的矩形波信号;方式3输出占空比为(n/2):(n/2)的方波信号。,8253应用例1,【例7.8】8253的2个计数

9、器的串接应用。计数脉冲源为200kHz。计数器0的输出为连续方波,方式3。计数器1的输出为连续单拍负脉冲,方式2。计数器0计数初值:200000/400=500(01F4H)。计数器1计数器初值:400/20=20(14H)。8253端口地址为30H33H。,例7.8 程序,MOVAL,36H;计数器0方式3,16位二进制计数OUT33H,ALMOVAL,54H;计数器1方式2,8位二进制计数OUT33H,ALMOVAX,500;计数器0计数初值500OUT30H,AL;写计数器0计数初值低8位MOVAL,AHOUT30H,AL;写计数器0计数初值高8位MOVAL,20;计数器1计数初值20O

10、UT31H,AL;写计数器1计数初值,8253应用例2,【例7.9】IBM PC/XT系统板上8253的3个计数器的应用。,例7.9 编程要点,PCLK来自频率发生器8284A的输出时钟(2.38MHz),经D触发器2分频,做计数器的输入时钟(1.19318MHz)。计数器0为方式3,OUT0输出作为中断请求接8259的IR0,用于系统时钟和磁盘驱动器马达的(约55ms)定时中断。计数器1为方式2,OUT1输出作为对8237通道0的DMA请求DREQ0,用于动态存储器刷新的(约15s)定时启动信号(在2ms内刷新132次)。计数器2为方式3,OUT2输出约1KHz的方波到扬声器发声。(GATE

11、2由8255的PB0控制,OUT2输出经过与门放大发声。与门的允许/禁止由8255的PB1控制。)8253端口地址:40H43H。,例7.9 程序,计数器0 产生(55 ms)定时中断IR0MOVAL,36H;方式3,16位二进制计数OUT43H,ALMOVAL,0;计数值0(最大值65536)OUT40H,AL;1/1.19318 MHz840 nsOUT40H,AL;840 ns6553655 ms计数器1 产生(15s)定时DMA请求DREQ0MOVAL,54H;方式2,低8位二进制计数OUT43H,ALMOVAL,12H;计数值18OUT41H,AL;840ns1815s,计数器2 产

12、生(1KHz)时钟方波MOVAL,0B6H;方式3,16位二进制计数OUT43H,ALMOVAX,0533H;计数值1331(0533H)OUT42H,ALMOVAL,AHOUT42H,AL,8253应用实验,【实验4】1.用8253 实现事件计数。8253端口地址:40H43H,8259端口地址:20H,21H。计数器2为方式0,计数值为5;手动触发开关引发减1计数;计数值减为0,引发8259的IRQ7中断;IRQ7中断显示“M”。,实验4(1)程序,主程序流程:设置IRQ7中断向量表关中断设置8259的IRQ7中断开放设置计数器2控制字(90H)设置计数初值5开中断等待指令(HLT)无条件

13、转,IRQ7中断子程序:IRQ7:MOVAX,014DHINT10HMOVAX,0120HINT10HMOVAL,20HOUT20H,ALIRET,MOVAX,OFFSET IRQ7MOV003CH,AXMOVAX,0MOV003EH,AXCLIINAL,21HANDAL,7FHOUT21H,ALMOVAL,90HOUT43H,ALA1:MOVAL,05HOUT42H,ALSTIHLTJMPA1,实验4(2),【实验4】2.不同频率方波信号发生器的应用。在0:3000H中依序存放着以0为结束的若干个数据。计数器2为方式3,通过给出不同的计数值,产生不同频率的方波信号,输出到扬声器上发出不同的声

14、音。,实验4(2)程序,程序流程:设置数据区首指针测试数据为0,转设置计数器2控制字(0B6H)取数据区一个数据计算计数值(乘以25H)设置计数值(AX)发声(软件延时)修改数据区指针(+1)无条件转,A1:MOVBX,3000HA2:CMPBYTE PTR BX,0JZA1MOVAL,0B6HOUT43H,ALMOVAL,BXMOVDL,25HMULDLOUT42H,ALMOVAL,AHOUT42H,ALCALLDALLYINCBXJMPA2,习题7.8,7.8 某8253的端口地址为60H63H。按下列要求编写各计数器的初始化程序。计数器0做单稳电路(方式1),输入时钟频率为50KHz,单

15、稳延时时间10 ms。计数器0计数初值:N=50000*0.01=500MOV AL,32H;计数器0:方式1,16位二进制计数OUT 63H,AL;设置计数器0控制字MOV AX,500;AX取计数初值500OUT 60H,ALMOV AL,AHOUT 60H,AL;先低8位,后高8位写计数初值500,计数器1做方波发生器(方式3),输入时钟频率为2MHz,方波频率为200Hz,要求用BCD码计数。计数器1计数初值:N=2000000/200=10000(16位BCD码计数最大值0)MOVAL,77H;计数器1:方式3,16位BCD码计数OUT63H,AL;设置计数器1控制字MOVAL,0;AL取16位BCD码计数0(最大值)OUT61H,ALOUT61H,AL;先低8位,后高8位写计数初值0,计数器 2对外部事件计数(方式0),每计数到100时产生一个中断请求信号。计数器2计数初值:N=100MOVAL,90H;计数器2:方式0,8位二进制计数OUT63H,AL;设置计数器2控制字MOVAL,100;AL取计数初值100OUT62H,AL;写计数初值100,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号