《微机原理与应用教学资料第八章》由会员分享,可在线阅读,更多相关《微机原理与应用教学资料第八章(24页珍藏版)》请在金锄头文库上搜索。
1、第八章第八章 可可编编程程计计数器数器/定定时器器8253及其及其应用用8-1 概述8-1 8253结构和工作原理8-2 8253应用举例1编辑ppt8.1 8.1 概述概述 定定时. .计数数 定定时 软件定件定时 不可不可编程的硬件定程的硬件定时 可可编程的硬件定程的硬件定时 一、一、软件定件定时1 1、CPUCPU循循环执行一条或一系列指令行一条或一系列指令例:例:CPUCPU的的时钟频率率为5MHz,5MHz,则1 1个个时钟周期周期为T= sT= s 执行一条指令所需要的行一条指令所需要的时间=0.2s=0.2s所需所需时钟周期周期 编一程序一程序实现延延时1ms1ms 时钟周期周期
2、执行次数行次数 MOV CX ,N MOV CX ,N ;4141 NEXT: NOP NEXT: NOP ;3N3NNOP NOP ;3N3NLOOP NEXT LOOP NEXT ;循;循环时为1717,不循,不循环时为5 5 2编辑ppt 要延要延时1ms1ms所需要的所需要的总的的时钟周期数周期数 =4+3N+3N+17 =4+3N+3N+17(N-1N-1)+5=23N-8=5000+5=23N-8=5000N= =218=ODAHN= =218=ODAH2 2、缺点:、缺点:CPUCPU利用率太低利用率太低二、不可二、不可编程的硬件定程的硬件定时1 1、555555芯片芯片+ +外
3、接外接电阻、阻、电容容2 2、缺点:定、缺点:定时不能由程序控制,定不能由程序控制,定时精度不高精度不高3编辑ppt三、可三、可编编程的硬件定程的硬件定时时:82538253芯片芯片1 1、对82538253设定定计数初数初值启启动工作工作时间到,到,自自动动形成形成输输出信号出信号 向向CPUCPU提出中断提出中断请求求, ,启启动设备工作工作2 2、特点:提高了、特点:提高了CPUCPU的利用率,定的利用率,定时精度高精度高四、四、计计数数 : 82538253芯片芯片计计数脉冲信号由外部事件提供。数脉冲信号由外部事件提供。4编辑ppt8.2 82538.2 8253的的结构和工作原理构和
4、工作原理一一. 8253. 8253的的编程程结构构 图9-19-1 接数据接数据总线低低8 8位,位,传送信息送信息 控制字控制字 输入入 计数初数初值 计数数值 输出出2. 2. 读/ /写控制写控制电路路a)a)CS CS :片:片选信号,接信号,接I/OI/O端口端口译码电路路74LS13874LS138输出出b)b)RDRD、WR WR :读写信号,接写信号,接CPUCPU的的RDRD、WRWR。c)c)A1A1、A0A0:端口:端口选择信号,接信号,接8086CPU8086CPU的的A2A2、A1A1地址地址线若若为8088CPU,88088CPU,8位数据位数据线,则接系接系统的
5、的A1A1、A0A0(实验用用电路)路) 00 00:计数器数器0 0 01 01: 1 82531 8253需要需要4 4个端口地址个端口地址 10 10: 2 2 11 11:控制器:控制器R R5编辑ppt例:例:82538253的基地址的基地址为FOHFOH(11110000B11110000B)则:计数器数器0 0:FOHFOH;计数器数器1 1:F2HF2H;计数器数器2 2:F4HF4H;控制寄;控制寄存器:存器:F6HF6H3.3.计数器数器0 02 2 3 3个个计数器通道完全独立、数器通道完全独立、结构完全相同。包括构完全相同。包括 4 4个寄存器个寄存器R R 2 2个个
6、输入信号入信号 CLK CLK,GATEGATE 1 1个个输出信号出信号 OUT OUT 控制字控制字R R: 8 8位位 计数初数初值R R: 16 16位位 计数数执行部件:行部件:1616位,位,减法减法计计数器数器 计计数数输输出出R R: 16 16位,位,锁存存执行部件的行部件的值 16 16位位R R可分可分为高高8 8位和低位和低8 8位,必要位,必要时用作用作8 8位寄存器位寄存器 CLK CLK:脉冲:脉冲输入入 时钟脉冲(定脉冲(定时) 要求要求2MHz 2MHz ,高于,高于时须分分频。 计数脉冲,外部事件引起数脉冲,外部事件引起6编辑pptOUTOUT:脉冲:脉冲输
7、出出GATEGATE:门控信号,决定是否允控信号,决定是否允许计数数倒倒计数法:数法:预置一初置一初值,GATEGATE有效,将有效,将计数初数初值装入装入执行部行部件,然后开始件,然后开始递减减计数。(数。(CLKCLK端每端每输入一个脉冲,入一个脉冲,计数数值-1-1,当,当计数数值=0=0,便从,便从OUTOUT引脚引脚输出一个脉冲信号)出一个脉冲信号)1.1.定定时: CLKCLK输入脉冲入脉冲频率一定(率一定(f fCLKCLK) 定定时时间=1/f=1/fCLKCLK 输入脉冲数(入脉冲数(计数初数初值) 计数初数初值= =定定时时间/ /TCLK例:若例:若CLKCLK脉冲脉冲频
8、率率fCLK=1MHz脉冲周期脉冲周期TCLK=1s 若定若定时时间 则计数初数初值n=0.510-3/110-6=5002. 2. 计数数 CLKCLK输入脉冲的入脉冲的间隔可以不相等隔可以不相等7编辑ppt三、三、 控制字寄存器控制字寄存器通道通道选择 读/ /写操作位写操作位 模式模式选择 (6 6种工作方式)种工作方式) 1:BCD 1:BCD码计数数 0: 0:二二进制制计数数3 3个通道共用个通道共用1 1个控制字寄存器,个控制字寄存器,D7D7、D6D6决定向哪一个通道写入决定向哪一个通道写入控制字控制字RL1RL1、RL0RL0: 00 - 00 - 计数器数器锁存存 01 -
9、 01 - 只只读写低写低8 8位位 10 - 10 - 只只读写高写高8 8位位 11 11 先先读读写低写低8 8位,后位,后读写高写高8 8位位BCDBCD:初:初值范范围为000000009999H 00009999H 0000表示最大表示最大值 10 104 4 =10000=10000二二进制:制: 0000 0000FFFFHFFFFH 2 21616 =65536 =65536SC1SCORL1RL0M2M1MOBCD8编辑ppt四、初始化四、初始化编编程步程步骤骤步步骤骤:1 1、写入控制字、写入控制字 A1A0=11 A1A0=11 初始化控制字寄存器,复位初始化控制字寄存
10、器,复位OUTOUT,并使,并使计数器清数器清00 2 2、写入、写入计数初数初值 A1A0=00 A1A0=00,0101,1010 初初值 8 8位:一条位:一条输出指令出指令 16 16位:两条位:两条输出指令出指令 先送低先送低8 8位初位初值后送高后送高8 8位初位初 值例:例:选择0#0#通道,工作方式通道,工作方式3 3,计数初数初值2354H2354H,BCDBCD计数方式数方式 8253 8253端口地址端口地址为40H40H46H46H D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 0 00 0 1 1 1 1 1 1 1
11、1 1 1 通道通道0 | | |0 | | | 先先读写低写低8 8位,后位,后读写高写高8 8位位 方式方式3 BCD3 BCD计数数当当D3=0D3=0,控制字,控制字=37H=37H9编辑ppt初始化程序:初始化程序:MOV AL MOV AL ,37H37HOUT OUT 46H46H ,AL AL ;设置控制字置控制字MOV AL MOV AL ,54H 54H ;写入;写入计数初数初值,先低后高,先低后高 OUT OUT 40H40H ,AL AL MOV AL MOV AL ,23H 23H OUT OUT 40H40H ,ALAL;读通道通道0 0计数数结果,并送入果,并送入
12、CXCX寄存器寄存器 MOV AL MOV AL ,07H 07H ;0000 0000 011011 1 1=07H=07HOUT 46H OUT 46H ,AL AL ;设置控制字置控制字IN AL IN AL ,40H40HMOV CL MOV CL ,ALALIN AL IN AL ,40H40HMOV CH MOV CH ,AL AL ;将通道;将通道0 0计数数结果果CXCX10编辑ppt五、五、82538253的工作方式(的工作方式(6 6种)种)1. 1. 写入控制字,同写入控制字,同时影响影响OUTOUT端端电平,平,为起始起始OUTOUT端端电平平写入写入计数初数初值n n
13、,使,使WRWR变为低低电平,在平,在WRWR的上升沿的上升沿时,将,将 nn计数初数初值R R当当GATEGATE有效,再在有效,再在下一个下一个CLKCLK时钟脉冲的下降沿,将脉冲的下降沿,将n n 计数数执行部件,开始减行部件,开始减1 1计数(数(计数器随着数器随着时钟脉冲的脉冲的输入而入而递减减计数)数)1.1.方式方式0 0 计数数结束中断方式束中断方式 OUT OUT输出端波形出端波形 从写入从写入计数初数初值到开始减到开始减1 1之之间,有一个,有一个时钟脉冲的延脉冲的延迟。详见后后11编辑ppt8253CLKWR 8253OUTnTCLK写入控制字写入控制字写入写入计计数初数
14、初值值计计数数结结束束4321012编辑ppt方式方式1 可可编程程单稳态输出出 可重触可重触发 GATE触触发方式方式2 比率比率发生器生器 相当相当n分分频 计数初数初值=定定时时间/ TCLK=fCLK/ fOUTnTCLKTCLKnTCLKGATEOUT13编辑ppt方式方式3 方波方波发生器生器n/2n/2nTCLKn=偶数偶数(n1)/2(n1)/2nTCLKn=奇数奇数方式方式4 软件触件触发选通通 写入写入计数初数初值后开始后开始计数数 负脉冲脉冲 方式方式5 硬件触硬件触发选通通 GATE上升沿触上升沿触发计数数 负脉冲脉冲 初始初始OUT、GATE、是否重装初、是否重装初值
15、汇总表表14编辑ppt起始起始OUT端端 GATE信号信号电平平是否自是否自动动重装初重装初值值 方式方式0 计计数器数器结结束中束中断方式断方式 低低高高电电平,允平,允许计许计数数低低电电平,禁止平,禁止计计数数否否方式方式1 可可编编程程单稳态单稳态输输出方式出方式 高高上升沿,从初上升沿,从初值值n n开始开始计数数是是方式方式2 比率比率发发生器生器 高高上升沿,从初上升沿,从初值值n n开始开始计数数高高电平,允平,允许计数数低低电平,禁止平,禁止计数,使数,使输出出变高高 是是方式方式3 方波方波发发生器生器高高上升沿,从初上升沿,从初值值n n开始开始计数数高高电平,允平,允许
16、计数数低低电平,禁止平,禁止计数,使数,使输出出变高高 是是方式方式4 软软件触件触发选发选通通 高高高高电电平,允平,允许计许计数数低低电电平,禁止平,禁止计计数数否否方式方式5 5 硬件触硬件触发选发选通通 高高上升沿,从初上升沿,从初值值n n开始开始计数数是是15编辑ppt8-3 8-3 应用用举例例先根据需要先根据需要设计设计硬件硬件电电路,然后用路,然后用OUTOUT指令初始化指令初始化825382531. 1. 定定时功能例功能例 需需计算初算初值例例1 1:P315 P315 要求:基地址要求:基地址为310H310H,f fCLKCLK =1MHz =1MHz与与808680
17、86连接:接:D7D7D0D0:接:接8086 CPU8086 CPU的的D7D7D0D0RDRD、WRWR:接:接CPUCPU的的RDRD、WRWR A1 A1、A0A0:接:接80868086的的A2A2、A1 A1 A9 A8 A7 A6 A5 A9 A8 A7 A6 A5 A4 A3A4 A3 A2 A1 A2 A1 A0A0 1 11 1 0 0 00 0 0 1 0 1 0 0 0 ( (偶地址偶地址! !) CS CS :接:接74LS13874LS138的的译码输出出Y4Y4 基址:基址:310H310HCLK0CLK0、CLK1CLK1、CLK2CLK2:接:接 f fCLK
18、CLK =1MHz (T =1MHz (TCLKCLK=1s)=1s)的的时钟脉冲脉冲16编辑ppt通道通道0 0:方式:方式3 GATE0+5V 3 GATE0+5V 若要若要OUTOUT输出出 2kHz 2kHz的方波,的方波,则n n0 0=?=?no*Tno*Tclkclk=T=T 256256 控制字:控制字:0 00 0 1 11 1 0 1 10 1 1 1 1 B =37H B =37H通道通道1 1:方式:方式1 GATE11 GATE1上升沿上升沿 若要若要OUTOUT:480s480s的脉冲的脉冲 ,求,求n n1 1=? =? 256256 控制字:控制字:0 10 1
19、 1 11 1 0 0 10 0 1 1 1 B =73H B =73H通道通道2 2:方式:方式5 GATE25 GATE2上升沿上升沿 n n2 2=26=26控制字:控制字:1 01 0 0 10 1 1 0 11 0 1 1 1 B =9BH B =9BH17编辑pptMOV DX, 316H ;送通道;送通道0控制字控制字MOV AL, 00110111BOUT DX, ALMOV DX, 310H ;送通道;送通道0计数初数初值MOV AL, 00HOUT DX, ALMOV AL, 05HOUT DX, ALMOV DX, 316H ;送通道;送通道1控制字控制字MOV AL,
20、01110011BOUT DX, ALMOV DX, 312H ;送通道;送通道1计数初数初值MOV AL, 80HOUT DX, ALMOV AL, 04HOUT DX, AL18编辑ppt例例2 控制控制LED点亮或熄点亮或熄灭。点亮。点亮10秒后再秒后再让它熄它熄灭10秒,并秒,并重复上述重复上述过程。程。设8253各端口地址各端口地址为81H,83H,85H,87H,则8253的的D0D7系系统DB的的D8D15 fclk=2MHZ据据题题意意 TOUT=20s fout=1/20计数初数初值N=210620=410765536 级联取取N1=5000,N2=8000A7A0CS GA
21、TE0 GATE1A1 CLK0A0 OUT0 D7D0WR CLK1RD OUT1A1A2D15D8I/0译码M/IO5V2MHZ控制字控制字 00110101(35H,通道,通道0)若二若二进制制计数数N1=1388HN2=1F40H控制字控制字 01110111(77H,通道,通道1 )19编辑ppt2. 2. 计数功能例数功能例 不需不需计算初算初值例例2 2:用:用82538253监视一个生一个生产流水流水线,每通,每通过5050个工件,个工件,扬声器响声器响5 5秒秒钟,频率率20002000周,端口地址周,端口地址为40H40H、42H42H、44H44H、46H46H硬件硬件连
22、接接8253+5VOUT0OUT0CLK1CLK1GATE1GATE1GATE0GATE0OUT1OUT1CLK0CLK0驱动驱动器器光源光源工件工件光光敏敏电电阻阻a+5V+5V整形整形INTINT申申请中断中断2MHz2MHz8255 PA08255 PA0控制控制扬扬声器声器响响应应f=2000HZ20编辑ppt没有工件通没有工件通过过:Ua5V(H) Ua5V(H) 有工件通有工件通过:Ua=0(L)Ua=0(L)通道通道0 0:方式:方式2 2 比率比率发生器生器 计数方式,每通数方式,每通过5050个工件申个工件申请一次中断一次中断通道通道1 1:方式:方式3 3 方波方波发生器生
23、器 通道通道GATE1GATE1由由8255A8255A的的PA0PA0控制,控制,当当GATE1GATE1为高高电平,平,输出方波,出方波,扬声器响。声器响。 在中断服在中断服务程序中控制程序中控制GATEGATE高高电平的平的时间,软件延件延时控制字控制字设置置 通道通道0 0:0 00 0 0 10 1 0 1 00 1 0 1 1 n n0 0=50=50 通道通道1 1:0 10 1 1 11 1 0 1 10 1 1 1 1 n n1 1=2M/2000=1000256=2M/2000=1000256主程序:主程序:MOV AL MOV AL ,0000010101B010101B
24、OUT 46H OUT 46H ,ALAL; 送控制字送控制字MOV AL MOV AL ,50H50HOUT OUT 40H40H ,ALAL; 送通道送通道0 0初初值 MOV AL MOV AL ,0101110111B110111B; 送控制字送控制字 OUT 46H OUT 46H ,AL AL 21编辑ppt STI STI ; 开中断开中断LOPLOP: HLT HLT ;等待中断,及中断返回;等待中断,及中断返回时JMP LOP JMP LOP ;断点;断点中断服中断服务程序:程序: MOV AL MOV AL ,01H 01H ;GATE1=1 GATE1=1 启启动计数数
25、OUT 80H OUT 80H ,AL AL ;设8255A8255A的的PAPA通道地址通道地址为 80H 80H,将,将PA0PA0置置1 1 MOV AL MOV AL ,00H 00H ; 送初送初值,BCD,BCD计数,后数,后缀 OUT 42H OUT 42H ,AL AL ; 仍仍须加加H H MOV AL MOV AL ,10H10H OUT 42H OUT 42H ,ALALCALL DLEAY5S CALL DLEAY5S ;调用延用延时为5 5秒的子程序秒的子程序MOV AL MOV AL ,00H 00H ;GATE1=0 GATE1=0 停止停止计数,数,扬声器不声器
26、不OUT 80H OUT 80H ,AL AL ;响;响IRETIRET22编辑ppt读现读现行行计计数数值值两个方法:两个方法:在在读读数前用外部硬件切断数前用外部硬件切断计计数脉冲信号,或使数脉冲信号,或使门门控信号控信号变为变为低低电电平,迫使平,迫使8253停止停止计数。数。问题:干:干扰了了实际的的计数数过程程先用先用计数器数器锁存命令存命令锁存存现行行计数数值,然后将其,然后将其读出。出。程序:程序: MOV AL , 0100 0000B ;低四位低四位对锁存命令无影响,置存命令无影响,置0 OUT 46H, AL IN AL, 40H MOV AH,AL IN AL, 40H XCHG AH, AL ;计数数值存于存于AX中中23编辑ppt谢谢谢谢大家!大家!作作业业:8-424编辑ppt