《第11章 可编程定时器计数器》由会员分享,可在线阅读,更多相关《第11章 可编程定时器计数器(50页珍藏版)》请在金锄头文库上搜索。
1、第1页第第11章章可编程定时器可编程定时器/计数器计数器l11.1概述概述l11.2可编程定时可编程定时/计数器计数器8253第2页计数器计数器/定时器接口芯片定时器接口芯片8253n微机系统中经常会要求微机系统中经常会要求有一些实时时钟以实现定时或延时有一些实时时钟以实现定时或延时控制控制,如定时中断、定时检测、定时扫描等,或对外部事件进,如定时中断、定时检测、定时扫描等,或对外部事件进行计数并将计数结果提供给行计数并将计数结果提供给CPU。n定时或计数的工作实质均体现为对脉冲信号的计数,定时或计数的工作实质均体现为对脉冲信号的计数,如果计数的对象是标准的内部时钟信号如果计数的对象是标准的内
2、部时钟信号,由于其周期恒定,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为故计数值就恒定地对应于一定的时间,这一过程即为定时定时,如果计数的对象是与外部过程相对应的脉冲信号如果计数的对象是与外部过程相对应的脉冲信号(周期可(周期可以不相等),则此时即为以不相等),则此时即为计数计数。第3页11.2可编程定时可编程定时/计数器计数器825311.2.18253的主要性能的主要性能11.2.28253的内部结构及外部引脚的内部结构及外部引脚11.2.38253的工作方式及波形的工作方式及波形11.2.48253的编程的编程11.2.58253的应用的应用第4页11.2.18253的
3、主要性能的主要性能8253是是三通道三通道16位位的的可编程可编程计数计数/定时器定时器。8254是是8253的改进型。的改进型。第5页8253可编程定时计数器内部有可编程定时计数器内部有3个个独立的独立的16位定时位定时计数器计数器通道。通道。计数器可按照计数器可按照二进制或十进制二进制或十进制计数,计数,每个通道有每个通道有6种种工作方式,工作方式,计数频率可高达计数频率可高达2MHz以上。以上。第6页11.2.28253的内部结构及外部引脚的内部结构及外部引脚8253各引脚的定义各引脚的定义(连接系统总线连接系统总线):D0D7:数据线数据线。RD#:读控制信号读控制信号,低电平有效。,
4、低电平有效。WR#:写控制信号写控制信号,低电平有效。,低电平有效。A0、A1:地址线地址线,用于选择,用于选择3个计数器个计数器中的一个及选择控制字寄存器。中的一个及选择控制字寄存器。CS#:片选信号片选信号,低电平有效。,低电平有效。第7页11.2.28253的内部结构及外部引脚的内部结构及外部引脚8253各引脚的定义各引脚的定义(连接外设连接外设):CLK02:计数器计数器0、1、2的的时钟输入端时钟输入端。GATE02:计数器计数器0#、1#、2#的的门控制脉冲输入端门控制脉冲输入端,由外部设备,由外部设备送入门控脉冲。送入门控脉冲。OUT02:计数器计数器0#、1#、2#的的输出端输
5、出端。第8页11.2.28253的内部结构及外部引脚的内部结构及外部引脚8253的内部结构的内部结构:3个结构相同的个结构相同的16位位计数器计数器,1个个8位位控制字寄存器控制字寄存器。每个计数器内部包括:每个计数器内部包括:计数初值寄存器计数初值寄存器CR,计数执行部件计数执行部件CE,输出锁存器输出锁存器OL。它们都是它们都是16位寄存器,也可以作位寄存器,也可以作8位寄存器使用。位寄存器使用。第9页第10页计数器内部结构计数器内部结构控制单元控制单元初值寄存器初值寄存器(CR )计数执行单元计数执行单元(CE )输出锁存器输出锁存器(OL )CLKGATEOUT在计数器工作时,通过程序
6、给在计数器工作时,通过程序给计数初值计数初值寄存器寄存器CR送入初始值,该初始值再被送送入初始值,该初始值再被送入入计数执行部件计数执行部件CE进行进行减减1计数计数;而;而输输出锁存器出锁存器OL则用来锁存则用来锁存CE的内容,该的内容,该内容可以由内容可以由CPU进行读出操作。进行读出操作。8253内部的内部的3个计数器和个计数器和1个控制字寄存器,可通过地址线个控制字寄存器,可通过地址线A0、A1,读写控制线读写控制线RD#、WR#与片选与片选CS#进行寻址,并实现相应的进行寻址,并实现相应的操作。操作。第11页表表11.18253读写控制逻辑表读写控制逻辑表CSRDWRA1A0操作操作
7、对计数器对计数器0写初值写初值对计数器对计数器1写初值写初值对计数器对计数器2写初值写初值写控制字到控制寄存器写控制字到控制寄存器读计数器读计数器1当前计数值当前计数值读计数器读计数器 0 当前计数值当前计数值读计数器读计数器2当前计数值当前计数值无操作无操作01000011000101001110000010010100011其它情况其它情况第12页11.2.38253的工作方式及波形的工作方式及波形1.方式方式0-中断信号发生器中断信号发生器2.方式方式1-可编程单稳负脉冲信号发生器可编程单稳负脉冲信号发生器3.方式方式2-分频器分频器4.方式方式3-方波信号发生器方波信号发生器5.方式方
8、式4-软件触发的选通脉冲信号发生器软件触发的选通脉冲信号发生器6.方式方式5-硬件触发的选通脉冲信号发生器硬件触发的选通脉冲信号发生器l工作方式由方式控制字确定,每种工作方式的过程类似:工作方式由方式控制字确定,每种工作方式的过程类似:设定工作方式设定工作方式设定计数初值设定计数初值(硬件启动)(硬件启动)计数初值进入减计数初值进入减1计数器计数器每输入一个时钟计数器减每输入一个时钟计数器减1的计数过程的计数过程计数过程结束计数过程结束第13页工作过程:工作过程:1.写控制字:写控制字:设定工作方式后,设定工作方式后,OUT端变为低电平端变为低电平;2.写初值:写初值:8位位/16位(分位(分
9、2次)初值次)初值;3.开始计数:开始计数:计数值装入执行部件,计数值装入执行部件,每个每个CLK下降沿,减下降沿,减1计数计数;4.计数结束:计数结束:减到减到0时,计数过程结束,时,计数过程结束,OUT端变为高电平。此输端变为高电平。此输出信号可作为计数结束的中断请求信号;出信号可作为计数结束的中断请求信号;5.GATE作为计数控制信号:作为计数控制信号:计数过程中,计数过程中,GATE=1:允许计数;:允许计数;GATE=0:暂停计数;:暂停计数;6.重新计数:重新计数:计数过程中,计数过程中,可随时写入新的计数值可随时写入新的计数值;如果初值为;如果初值为8位,则写完初值后,按新的初值
10、重新开始计数;如果新的初值位,则写完初值后,按新的初值重新开始计数;如果新的初值为为16位,则写入第一个字节时,立即中止计数,写入第二个字位,则写入第一个字节时,立即中止计数,写入第二个字节后,按新的初值重新开始计数;计数结束后,节后,按新的初值重新开始计数;计数结束后,OUT端保持高端保持高电平,直至赋新的初值。电平,直至赋新的初值。1.方式方式0-中断信号发生器中断信号发生器第14页图图11.5方式方式0时序波形图时序波形图WRCLKGATEOUT4321方式方式0初值初值 = 40第15页图图11.5方式方式0时序波形图时序波形图第16页计数开始的时刻计数开始的时刻处理器写入处理器写入8
11、253的计数初值只是写入了计数初值寄存器的计数初值只是写入了计数初值寄存器CR,之后到来的之后到来的第一个第一个CLK输入脉冲输入脉冲(需先由低电平变高,再由高变低)(需先由低电平变高,再由高变低)才将预置寄存器的初值送到计数执行部件才将预置寄存器的初值送到计数执行部件CE减减1计数器。计数器。从从第二个第二个CLK信号的下降沿信号的下降沿,计数器才真正开始减,计数器才真正开始减1计数。计数。第17页第18页第19页2.方式方式1-可编程单稳负脉冲信号发生器可编程单稳负脉冲信号发生器工作过程:工作过程:1.写控制字写控制字:设定工作方式后,设定工作方式后,OUT端变为高电平端变为高电平;2.写
12、初值:写初值:8位位/16位(分位(分2次)初值次)初值;3.开始计数:开始计数:GATE上升沿上升沿控制计数开始控制计数开始。GATE上升沿上升沿的的下一个时钟周期,下一个时钟周期,OUT变为低电平,变为低电平,每个每个CLK下降沿,减下降沿,减1计数计数;4.计数结束:计数结束:减到减到0时,计数过程结束,时,计数过程结束,OUT端变为高电平。端变为高电平。此方式可以此方式可以输出一输出一个宽度(计数初值个宽度(计数初值*Tclk)可调的单拍负脉冲)可调的单拍负脉冲,可作为设备的选通信号。,可作为设备的选通信号。5.重设重设初值初值:计数过程中计数过程中,重新,重新写入初值写入初值,对当前
13、计数过程不会产生影响对当前计数过程不会产生影响;6.重新触发:重新触发:计数过程中计数过程中,GATE上升沿的下一个时钟脉冲计数器将从初始值重上升沿的下一个时钟脉冲计数器将从初始值重新作减新作减1计数,此时计数,此时OUT端低电平保持不变端低电平保持不变,从而,从而加宽了输出的负脉冲宽度。加宽了输出的负脉冲宽度。7.重新计数:重新计数:计数计数结束后,结束后,GATE上升沿上升沿控制新一轮控制新一轮计数。计数。第20页图图11.6方式方式1时序波形图时序波形图WR10CLKGATEOUT432初值初值= 4方式方式1第21页第22页3.方式方式2-分频器分频器工作过程:工作过程:1.写控制字写
14、控制字:设定工作方式后,设定工作方式后,OUT端变为高电平端变为高电平;2.写初值:写初值:8位位/16位(分位(分2次)初值次)初值;3.开始计数:开始计数:计数值装入执行部件,计数值装入执行部件,每个每个CLK下降沿,减下降沿,减1计数计数;4.计数结束:计数结束:当计数器减到当计数器减到1时,时,OUT端输出将变为低电平;再经过一个时钟端输出将变为低电平;再经过一个时钟周期,计数值减到周期,计数值减到0后,后,OUT又恢复为高电平。在此方式下,计数器具有又恢复为高电平。在此方式下,计数器具有自自动装入计数初值动装入计数初值的功能,即计数器的计数过程会自动重复工作。从而产生一的功能,即计数
15、器的计数过程会自动重复工作。从而产生一个个n分频(分频(n是写入计数器的初值)的连续的不对称的脉冲信号,可以作为脉是写入计数器的初值)的连续的不对称的脉冲信号,可以作为脉冲信号发生器。冲信号发生器。5.重设重设初值初值:计数过程中计数过程中,重新,重新写入初值写入初值,对当前计数过程不会产生影响对当前计数过程不会产生影响;6.计数过程控制:计数过程控制:GATE1:允许计数;:允许计数;GATE0:停止计数,并强迫:停止计数,并强迫OUT输出高电平;输出高电平;GATE上升沿:下一个时钟周期,计数器恢复初值重新开始作上升沿:下一个时钟周期,计数器恢复初值重新开始作减减1计数。计数。第23页图图
16、11.7方式方式2时序波形图时序波形图WRCLKGATEOUT4 3 2 104 3 2 1 04 3 2 1 04 3 2 1方式方式2初值初值=4第24页4.方式方式3-方波信号发生器方波信号发生器方式方式3与方式与方式2类似,不同的是输出的波形为方波或者为近似对类似,不同的是输出的波形为方波或者为近似对称的矩形波。称的矩形波。当计数值当计数值n为偶数:为偶数:每当计数值减到每当计数值减到n/2时,时,OUT端由高电平变端由高电平变为低电平,并一直保持计数到为低电平,并一直保持计数到0,一旦计数为,一旦计数为0时时OUT端又由低端又由低变高并重新给计数器装入初值。变高并重新给计数器装入初值
17、。当计数值当计数值n为奇数:为奇数:输出分频波高电平宽度为(输出分频波高电平宽度为(n+1)/2计数脉计数脉冲周期,低电平宽度为(冲周期,低电平宽度为(n-1)/2计数脉冲周期。计数脉冲周期。第25页图图11.8方式方式3时序波形图时序波形图3 2 1WRCLKGATEOUT4 3 2 104 3 21 04 3 2 1 04方式方式3初值初值=4第26页5.方式方式4-软件触发的选通脉冲信号发生器软件触发的选通脉冲信号发生器工作过程:工作过程:1.写控制字写控制字:设定工作方式后,设定工作方式后,OUT端变为高电平端变为高电平;2.写初值:写初值:8位位/16位(分位(分2次)初值次)初值;
18、3.开始计数:开始计数:计数值装入执行部件,计数值装入执行部件,每个每个CLK下降沿,减下降沿,减1计数计数;4.计数结束:计数结束:减到减到0时,时,输出宽度为输出宽度为1个个Tclk的负脉冲的负脉冲。该负脉冲该负脉冲可以作为选通信号。可以作为选通信号。5.计数过程控制:计数过程控制:GATE1:允许计数;:允许计数;GATE0:停止计数:停止计数;6.重设重设初值初值:该方式是该方式是一次有效一次有效,即不重新写入计数值,就只产,即不重新写入计数值,就只产生一个选通脉冲。生一个选通脉冲。如果在计数时又写入新的计数值,则在下一如果在计数时又写入新的计数值,则在下一个时钟周期时将把此计数值写入
19、计数器执行部件,使计数器按个时钟周期时将把此计数值写入计数器执行部件,使计数器按此新的计数值重新计数。此新的计数值重新计数。第27页图图11.9方式方式4时序波形图时序波形图WRCLKGATEOUT方式方式4初值初值=4初值初值=34 3 2 1 03 23 2 1第28页第29页6.方式方式5-硬件触发的选通脉冲信号发生器硬件触发的选通脉冲信号发生器此方式与方式此方式与方式4类似,不同的是:方式类似,不同的是:方式4靠软件触发,而方式靠软件触发,而方式5是利用引脚是利用引脚GATE来触发。来触发。GATE上升沿触发:上升沿触发:下一个时钟周期,计数器开始作减下一个时钟周期,计数器开始作减1计
20、数。计数。在任何时刻,当在任何时刻,当GATE触发脉冲上升沿到来时,将把计数初值重新送入计触发脉冲上升沿到来时,将把计数初值重新送入计数器,然后重新开始计数过程。数器,然后重新开始计数过程。第30页11.2.48253的编程的编程1.写入方式控制字写入方式控制字2.写入计数值写入计数值3.读取计数值读取计数值初始化编程初始化编程(1)写控制字)写控制字无论对哪个通道写控制字都必须写到控制寄存器无论对哪个通道写控制字都必须写到控制寄存器(2)写计数初值写计数初值 用哪个计数器通道,则写到该计数器通道对应的端口地址。用哪个计数器通道,则写到该计数器通道对应的端口地址。写初值时,要与控制字内的操作类
21、型一致。写初值时,要与控制字内的操作类型一致。第31页1.写入方式控制字写入方式控制字8253的方式控制字格式如图所示,各计数器有的方式控制字格式如图所示,各计数器有6种可供选择种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。的工作方式,以完成定时、计数或脉冲发生器等多种功能。第32页8253初始值计算:初始值计算:l假假设设已已知知8253相相应应通通道道的的CLK端端接接入入的的时时钟钟频频率率为为fCLK,周周期期记记为为tCLK=1/fCLK,要要求求产产生生的的周周期期性性信信号号频频率率为为F(周周期期为为T)或或定时时间为定时时间为T(F=1/T),则所需计数初值则
22、所需计数初值n为:为:l在计算时注意时间和频率的单位一致性。在计算时注意时间和频率的单位一致性。第33页2.写入计数值写入计数值若规定只写低若规定只写低8位,则只写位,则只写1次,且写入的为计数初值的低次,且写入的为计数初值的低8位,位,高高8位自动为位自动为0。若规定只写高若规定只写高8位,则只写位,则只写1次,且写入的为计数初值的高次,且写入的为计数初值的高8位,位,低低8位自动为位自动为0。若规定写两次,则先写入的为计数初值的低若规定写两次,则先写入的为计数初值的低8位,再写入的为计位,再写入的为计数初值的高数初值的高8位。位。选择二进制时选择二进制时计数值范围:计数值范围:0000HF
23、FFFH0000H是最大值,代表是最大值,代表65536选择十进制(选择十进制(BCD码)码)计数值范围:计数值范围:000099990000代表最大值代表最大值10000第34页注意注意:1、当采用、当采用8位二进制计数时位二进制计数时:在在8253初始化编程的传送指令初始化编程的传送指令“MOVAL,n”中,中,n可以写成任何进可以写成任何进制数(二进制、十进制或十六进制)的形式。制数(二进制、十进制或十六进制)的形式。2、当采用、当采用16位二进制计数时位二进制计数时:方法一方法一:先把计算得到的:先把计算得到的十进制十进制计数初值计数初值n转换成转换成十六进制数十六进制数(即(即16位
24、二进制),然后分两次写入位二进制),然后分两次写入8253的指定端口。的指定端口。方法二方法二:先把该:先把该十进制十进制计数初值计数初值n直接传送给直接传送给AX,然后分两次写,然后分两次写入入8253指定端口,即:指定端口,即:MOVAX,nOUTPORT,AL;先写低;先写低8位(位(PORT为端口号)为端口号)MOVAL,AHOUTPORT,AL;后写高;后写高8位位第35页注意注意:3、当采用十进制(、当采用十进制(BCD码)计数时:码)计数时:将十进制计数初值将十进制计数初值n加上加上后缀后缀H,以便在相应的传送指令执行后能以便在相应的传送指令执行后能够在够在AL(或或AX)中得到
25、十进制数中得到十进制数n的的BCD码码表示形式。表示形式。例如例如n=50,则应按如下方式写入:,则应按如下方式写入:MOVAL,50HOUTPORT,AL如果如果n=1250,则需分两次写入,即:,则需分两次写入,即:MOVAL,50HOUTPORT,AL;先写低先写低8位位MOVAL,12HOUTPORT,AL;后写高后写高8位位第36页【例例11.1】已知已知8253的端口地址为的端口地址为40H43H,用,用8253的计数器的计数器0,每隔每隔2ms输出一个负脉冲,设输出一个负脉冲,设CLK0为为2MHz,完成软件设计。,完成软件设计。解解:1、计算计数初值计算计数初值N:2、确定控制
26、字:确定控制字:根据题意,选择计数器根据题意,选择计数器0,工作工作方式方式2。(1)二进制计数二进制计数,计数初值为,计数初值为4000(0FA0H),既写高字节,又写,既写高字节,又写低字节。控制字为:低字节。控制字为:00110100B=34H(2)BCD码计数码计数,计数初值为,计数初值为4000H,低字节为,低字节为0,可只写高字节。,可只写高字节。控制字为:控制字为:00100101B=25H3、确定各端口地址确定各端口地址计数器计数器0,计数器计数器1,计数器计数器2,控制端口的地址分别为,控制端口的地址分别为40H、41H、42H和和43H。第37页4、程序:程序:(1)采用采
27、用二进制计数二进制计数:MOVAL,34H;控制字;控制字OUT43H,AL;写到控制端口;写到控制端口MOVAX,4000;把;把4000自动分离出低自动分离出低8位和高位和高8位位OUT40H,AL;先送低;先送低8位到计数器位到计数器0MOVAL,AH;把高;把高8位给位给ALOUT40H,AL;再送高;再送高8位到计数器位到计数器0(2)采用采用BCD码计数码计数:MOVAL,25H;控制字;控制字OUT43H,AL;写到控制端口;写到控制端口MOVAL,40H;只需写高字节,低字节自动为;只需写高字节,低字节自动为0OUT40H,AL;写高;写高8位到计数器位到计数器0第38页3.读
28、取计数值读取计数值对对8位数据线,读取位数据线,读取16位计数值需分两次。计数在不断进行,应位计数值需分两次。计数在不断进行,应该将当前计数值先行该将当前计数值先行锁存锁存,然后读取。,然后读取。【例例11.2】设某系统中设某系统中8253的端口地址为的端口地址为0B00B3H,读取计数器,读取计数器1当前的计数值(设计数值为当前的计数值(设计数值为16位),并存入位),并存入BX寄存器的程序如下:寄存器的程序如下:解:解:MOVAL,01000000B;发;发锁存命令锁存命令OUT0B3H,AL;写入控制端口;写入控制端口INAL,0B1H;读低;读低8位位MOVBL,AL;存入;存入BL中
29、中INAL,0B1H;读高;读高8位位MOVBH,AL;存入;存入BH中中第39页【例例11.3】某某8086系统中有一片系统中有一片8253芯片,端口地址为芯片,端口地址为500H、502H、504H、506H,各通道均接,各通道均接6MHz的时钟信号,要求在计数器的时钟信号,要求在计数器0输出一输出一个个最大宽度的负脉冲最大宽度的负脉冲,计数器,计数器1输出一个方波信号,周期为输出一个方波信号,周期为10s,计数,计数器器2输出一个定时中断信号,定时时间为输出一个定时中断信号,定时时间为0.2ms,写出其初,写出其初始化程序。始化程序。分析:分析:l计数器计数器0、1、2的地址分别为的地址
30、分别为500H、502H、504H,控制端口的地址,控制端口的地址为为506H。l计数器计数器0工作在方式工作在方式1,必须采用二进制,计数器值为,必须采用二进制,计数器值为0(65536)。l计数器计数器1工作在方式工作在方式3,计数值为,计数值为60,只写低字节,采用二进制或,只写低字节,采用二进制或BCD码计数都可以。码计数都可以。l计数器计数器2工作在方式工作在方式0,计数值为,计数值为1200,采用二进制或,采用二进制或BCD码计数都可以。码计数都可以。第40页计数器计数器0:MOVDX,506HMOVAL,00110010BOUTDX,ALMOVDX,500HMOVAL,0OUTD
31、X,ALOUTDX,AL计数器计数器1:MOVDX,506HMOVAL,01010111BOUTDX,ALMOVDX,502HMOVAL,60HOUTDX,AL计数器计数器2:MOVDX,506HMOVAL,10110000BOUTDX,ALMOVDX,504HMOVAX,1200OUTDX,ALMOVAL,AHOUTDX,AL第41页【例例11.4】某某8088系统中有一片系统中有一片8253芯片,端口地址为芯片,端口地址为150H153H,计数器,计数器0的输出作为计数器的输出作为计数器1的计数脉冲,利的计数脉冲,利用计数器用计数器1控制发光二极管,使发光二极管持续闪烁,亮控制发光二极管,
32、使发光二极管持续闪烁,亮2秒,灭秒,灭2秒,利用其计数器秒,利用其计数器2完成对外部事件计数,计满完成对外部事件计数,计满200次向次向CPU发出中断申请,试编写发出中断申请,试编写8253的初始化程序,硬件的初始化程序,硬件电路如图电路如图11.12所示。所示。第42页8088CPUGATE 0GATE 1GATE 2CLK0CLK1CLK2OUT2A1A0RDWRD7D0CSA1A0IORIOWD7D0OUT1OUT0+ 5 V8259 AINTR82532 MHZ1kHZIRQ0INT地址地址译码译码第43页计数器计数器0:计数初值计数初值N=2MHz/1KHz=2000,设采用二进制计
33、数,操作类型为,设采用二进制计数,操作类型为11(2000=07D0H,高低字节都不为,高低字节都不为0),方波为方式,方波为方式3。初始化程序如下:初始化程序如下:MOVAL,00110110B;通道;通道0的控制字的控制字MOVDX,153H;控制端口的地址;控制端口的地址OUTDX,AL;写控制字到控制端口;写控制字到控制端口MOVAX,2000;让计数初值;让计数初值2000自动分离出高低字节自动分离出高低字节MOVDX,150H ;通道;通道0地址地址OUTDX,AL;写计数初值的低字节到通道;写计数初值的低字节到通道0的地址的地址MOVAL,AH ;把高字节给;把高字节给ALOUT
34、DX,AL;写计数初值的高字节到通道;写计数初值的高字节到通道0的地址的地址第44页计数器计数器1:亮亮2秒,暗秒,暗2秒,应为方波,且周期为秒,应为方波,且周期为4s,所以计数初值为,所以计数初值为4s*1KHz=4000,设计数制式为二进制,则操作类型为,设计数制式为二进制,则操作类型为11。初始化程序如下:初始化程序如下:MOVAL,01110110B;通道;通道1控制字控制字MOVDX,153H;控制端口地址;控制端口地址OUTDX,AL;写控制字到控制端口;写控制字到控制端口MOVAX,4000;让初值;让初值4000自动分离出高低字节自动分离出高低字节MOVDX,151H;通道;通
35、道1地址地址OUTDX,AL;写初值的低字节到通道;写初值的低字节到通道1的地址的地址MOVAL,AH;把高字节给;把高字节给ALOUTDX,AL;写初值的高字节到通道;写初值的高字节到通道1的地址的地址第45页计数器计数器2:OUT2产生中断请求信号,应为方式产生中断请求信号,应为方式0,计数初值为,计数初值为200,设采用二进,设采用二进制计数,制计数,200256,操作类型为,操作类型为01,只写低字节。,只写低字节。初始化程序如下:初始化程序如下:MOVAL,10010000B;通道;通道2的控制字的控制字MOVDX,153H;控制端口地址;控制端口地址OUTDX,AL;写控制字到控制
36、端口;写控制字到控制端口MOVAL,200;通道;通道2初值初值MOVDX,152H;通道;通道2地址地址OUTDX,AL;写初值到通道;写初值到通道2的地址的地址第46页课堂练习课堂练习已知已知8253各通道时钟接各通道时钟接8MHz信号,端口地址为信号,端口地址为700H、702H、704H和和706H,要求在,要求在OUT0产生周期为产生周期为10us的方波,的方波,OUT1产生产生2KHz的连续脉冲信号,的连续脉冲信号,OUT2产生一个最大的负脉冲。试写出产生一个最大的负脉冲。试写出其初始化程序。其初始化程序。第47页已知已知8253各通道时钟接各通道时钟接8MHz信号,端口地址为信号
37、,端口地址为700H、702H、704H和和706H,要求在,要求在OUT0产生周期为产生周期为10us的方波,的方波,OUT1产生产生2KHz的连续脉冲信号,的连续脉冲信号,OUT2产生一个最大的负脉冲。完成其产生一个最大的负脉冲。完成其初始化程序。初始化程序。分析:分析:OUT0:初值初值=10us*8MHz=80方式方式3OUT1:初值初值=8MHz/2KHz=4000方式方式2OUT2:初值初值=0,二进制计数二进制计数方式方式1第48页;CTC0MOVDX,706H;控制端口地址;控制端口地址MOVAL,00010110B;CTC0控制字控制字OUTDX,ALMOVDX,700H;C
38、TC0口地址口地址MOVAL,80;CTC0初值初值OUTDX,AL第49页;CTC1MOVDX,706H;控制端口地址控制端口地址MOVAL,01110100B;CTC1控制字控制字OUTDX,ALMOVDX,702H;CTC1口地址口地址MOVAX,4000;CTC1初值初值OUTDX,AL;先写低字节先写低字节MOVAL,AH;取高字节取高字节OUTDX,AL;后写高字节后写高字节第50页;CTC2MOVDX,706H;控制端口地址控制端口地址MOVAL,10110010B;CTC2控制字控制字OUTDX,ALMOVDX,704H;CTC2口地址口地址MOVAL,0;CTC2初值初值OUTDX,AL;先写低字节先写低字节OUTDX,AL;后写高字节后写高字节