接口课件1~6打包3.28253定时器_计数器

上传人:w****i 文档编号:91975320 上传时间:2019-07-05 格式:PPT 页数:31 大小:1.40MB
返回 下载 相关 举报
接口课件1~6打包3.28253定时器_计数器_第1页
第1页 / 共31页
接口课件1~6打包3.28253定时器_计数器_第2页
第2页 / 共31页
接口课件1~6打包3.28253定时器_计数器_第3页
第3页 / 共31页
接口课件1~6打包3.28253定时器_计数器_第4页
第4页 / 共31页
接口课件1~6打包3.28253定时器_计数器_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《接口课件1~6打包3.28253定时器_计数器》由会员分享,可在线阅读,更多相关《接口课件1~6打包3.28253定时器_计数器(31页珍藏版)》请在金锄头文库上搜索。

1、PC机接口芯片的连接图,3.2 定时/计数器,3.2.1 定时技术概述 定时器: 事先设定一个时间长度,当“定时时间到”时,向CPU输出触发信号 计数器:统计某事件发生的次数。当累计的次数达到事先设定的次数时,输出触发信号。 计算机定时控制的应用场合 定时数据采集:对被控参数的瞬间值进行检测,并输入计算机; 实时决策:对采集到的参数进行比较分析,并按相应的控制规律决定下一步的控制过程; 实时控制:根据决策,适时地对控制机构发出控制信号。 计算机中采用的定时方式 (1) 软件定时 (2) 硬件定时: 单稳态定时器(RC电路) (3) 可编程定时/计数器: Intel8253,定时/计数器,3.2

2、.2 8253工作原理,18253主要功能 一片上有3个独立的16位计数器通道,最大计数范围为065535; 每个计数器都可以按照二进制或二十进制(BCD码)计数; 每个计数器的计数速度可高达2MHz; 每个通道有6种工作方式,可通过程序设置来改变; 所有的输入和输出都与TTL兼容。,2内部结构及引脚功能 8253内部可分为6个模块,如图所示。,与CPU接口的信号,计数器内部结构,计数初值存于初值寄存器; 在计数过程中,减1计数器的值不断递减,而初值寄存器中的预置不变。 输出锁存器用于写入锁存命令时,锁定当前计数值,(1)8253的内部寄存器 计数器 8253有3个计数通道,每个通道有一个16

3、位计数器; 工作前,CPU先将一个初值写入; 工作时,每来一个CLKx脉冲,对应的计数值 -1 ; 当计数值减到0时,OUTx发出信号脉冲。 控制字寄存器 8253的各计数通道都可按6种方式工作; 控制字用于选择工作方式,初始化时由CPU写入; 地址,(2) PC/XT机中8253与8088的连接,I/O地址: 控制寄存器 43H 计数器02#的初值寄存器 40H42H,3. 8253的控制寄存器,控制字寄存器存储的信息控制每个计数器的工作方式和计数方式,控制字寄存器的信息只能写入,不能读出。,3.2.3 8253的工作方式,两个周期: 时钟周期:CLK周期 输出周期:OUT输出波形周期 6种

4、工作方式的区别: 启动计数方式不同(软件、硬件) 计数结束方式不同 Gate的作用不同,方式0 WR启动,单次计数 写入初值,立即开始计数; 计数期间,GATE=0暂停; 再次写入初值又开始计数。 在计数过程中,若改变初值,计数器将重新开始计数;,MOV AL,00010001B OUT 43H,AL MOV AL,5 OUT 40H,AL MOV AL,4 OUT 40H,AL,单次计数,方式1 GATE启动,单次计数 写入初值,由GATE=1启动计数; 计数期间,GATE=0不会停止; GATE上升沿,从初值开始重新计数 在计数过程中,若改变初值,计数器不受影响。若再次由GATE触发,则以

5、新的计数值开始计数(即计数值是下次有效)。,MOV AL,00010010B OUT 43H,AL MOV AL,5 OUT 40H,AL,程序可控单拍脉冲,方式2 WR启动,自动重复计数 写入初值,启动计数; 计数完成,又重新从初值开始计数; GATE=0,暂停计数 不用重新设置计数初值,就能够连续计数,输出固定频率的脉冲;,MOV AL,00010100B OUT 43H,AL MOV AL,5 OUT 40H,AL,速率发生器,方式3 WR启动,自动重复方波计数 写入初值,启动计数; 计数完成,又重新从初值开始计数, 计数期间,前半期OUT=1,后半期OUT=0; 计数期间,GATE=0

6、暂停计数,MOV AL,00010110B OUT 43H,AL MOV AL,5 OUT 40H,AL,CLK,WR,N=5,GATE,OUT,5,4,3,2,1,5,4,3,2,1,启动计数,再次启动计数,5,4,暂停计数,方波速率发生器,方式3: 例:计数器工作模式3,计数器初值15,时钟脉冲频率为2MHz,确定OUT端输出方波的特性。 解:TCLK=1/2MHz=500ns 计数器初值15为奇数,输出高电平宽度 TCLK(N+1)/2=4s 输出低电平宽度 TCLK(N-1)/2=3.5s,方式4 WR启动,单次计数(一次性,不重载) 写入初值,启动计数; 计数完成,停止计数,OUT一

7、直为高, 除非重新送初值 计数期间,GATE=0,暂停计数。 GATE=1,从初值开始计数(不是恢复计数),MOV AL,00011000B OUT 43H,AL MOV AL,4 OUT 40H,AL,软件触发选通,方式5 GATE启动,单次计数 写入初值,暂不计数; GATE上升沿启动计数; 计数完成,OUT变低1CLK后又变为高电平,停止计数 计数期间,由GATE上升沿加载初值 新的GATE上升沿启动新一次计数。,MOV AL,00011010B OUT 43H,AL MOV AL,4 OUT 40H,AL,硬件触发选通,提问:,8253有几种工作方式? 什么是软件触发?什么是硬件触发?

8、 可重装初值的工作方式是哪些?,8253计数/定时器编程,GATE的控制作用,6种工作方式的比较,6种工作方式的比较,返回,触发方式:,输出波形:,方式1和方式5为硬件触发;其余为软件触发,四、8253初始化,分2步: (1)向命令寄存器写入方式命令 以选择计数器(3个计数器之一) 确定工作方式(6种方式之一) 指定计数器计数初值的长度和装入顺序以及计数值的码制(BCD或二进制码)。 (2)向已选定的计数器按方式命令的要求写入计数初值。 计数初值n =时钟频率fc/输出频率fout =定时时间Tout/时钟脉冲周期Tc,五、8253的编程举例,1)初始化,1)写入控制字 2)按控制字要求写入计

9、数初值,例1:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器0,工作模式2,仅使用低8位,初值为100,计数值使用二进制,MOV AL, 14H OUT 73H, AL ;设定方式 MOV AL, 100 OUT 70H, AL ;置初值,例2:设三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。计数器1,工作模式1,使用16位,初值为1234,计数值使用BCD。,MOV AL, 73H OUT 73H, AL ;设定方式 MOV AX, 1234H OUT 71H, AL ;置初值低位 MOV AL, AH OUT 71H, AL ;置

10、初值高位,8253的编程命令,2)读计数器命令,1)发出锁存命令,使当前计数值锁存在OL中 2)读OL,获得当前计数值,例:设8253三个计数器的端口地址为70H、71H、72H,控制寄存器端口地址73H。读出计数器0的当前计数值,放在BX中,MOV AL, 0H OUT 73H, AL ;发锁存命令 IN AL, 70H MOV BL, AL ;读低位 IN AL, 70H MOV BH, AL ;读高位,六、8253的应用,1. PC机中8253的应用,计数器0:向系统日历时钟提供定时中断 模式3,控制字36H,计数器初始值0 计数器1:动态RAM刷新 模式2,控制字54H,计数器初始值1

11、8(12H) 计数器2:控制扬声器发声 模式3,控制字B6H,计数器初始值1331(533H),PC机中,8253的端口地址为40H43H,2. 扬声器控制,设计一个程序,使扬声器发出600Hz频率的声音,按下任意键声音停止,PC机的发声系统以计数器2为核心。CLK2的输入频率1.19MHz, 改变计数器初值可以由OUT2得到不同频率的方波输出 对于600Hz,计数初值1.19MHz/600Hz=1983,发声系统受8255芯片B口的两个输出端线PB0、PB1的控制: PB0为1,使GATE2为1,计数器2能正常计数 PB1为1,打开输出控制门,PC机扬声器发声控制代码,CODE SEGMEN

12、T ASSUME CS:CODE START: IN AL, 61H ;PB0,1置1 OR AL, 03H OUT 61H, AL MOV AL,0B7H ;初始化定时器2 OUT 43H,AL MOV AX, 1983 ;写计数初值 OUT 42H, AL MOV AL, AH OUT 42, AL MOV AH, 01H ;等待按键 INT 21H IN Al, 61H ;恢复PB0,1 AND AL, 0FCH OUT 61H, AL MOV AH, 4CH ;退出 INT 21H CODE ENDS END START,void main() _asm in al,0x61 or a

13、l,03 out 0x61, al mov al,0xb7 out 0x43,al mov ax,1983 out 0x42,al mov al,ah out 0x42, al mov ah,01 int 0x21 in al,0x61 and al,0xfc out 0x61, al ,3 PC机在启动时,对8253的设置程序如下: MOV AL,00110110B OUT 43H,AL MOV AL,O OUT 40H,AL OUT 40H,AL 试分析8253的工作情况。 控制字分析: 00 11 011 0 B,设置计数器0,写入16位初值,方式3,方波发生,初值为二进制数,初值分析:

14、 0000H ,写入后,减1得0FFFFH,再减65535次才输出一次方波。 方波周期:高、低电平期均为32768次CLK, CLK的周期=1/(1.19 106) 秒 方波周期=65536CLK的周期=55.072毫秒55毫秒,4 已知PC机中,8253的OUT0接到8259的IRQ0,即:每55ms发出 一次中断。 试编程,截取此中断,得到一个秒计数器。 注: IRQ0的中断类型号为9.,5 Windows定时器,m_nTimer = SetTimer(1,1000,0); KillTimer(m_nTimer ) void CTimerView:OnTimer(UINT nIDEvent) switch(nIDEvent) case 1: MessageBeep(0xFFFFFFFF); / Beep break; CView:OnTimer(nIDEvent); ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号