《(精品)第九章_计数(定时)器8253.ppt》由会员分享,可在线阅读,更多相关《(精品)第九章_计数(定时)器8253.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第九章第九章可编程定时可编程定时/计数器计数器8253左旭坤()【本章重点本章重点】本章重点介绍可编程定时器本章重点介绍可编程定时器/计数器计数器82538253的内部结构、的内部结构、6 6种工作方式及初始化种工作方式及初始化编程应用。编程应用。【本章难点本章难点】本章难点是可编程定时本章难点是可编程定时/计数器计数器82538253的引脚结构、的引脚结构、6 6种工作方式的区别及使用种工作方式的区别及使用场合,灵活掌握初始化编程应用。场合,灵活掌握初始化编程应用。左旭坤()9.18253芯片内部结构芯片内部结构 可编程定时器8253的外部引线如图111所示,相应的内部结构框图如图112所示
2、。图11-18253外部引线图左旭坤()图11-2 8253的内部结构 左旭坤()8253与总线相连接的引线主要是:DoD7:双向数据线用以传送数据和控制字计数器的计数值亦通过此数据总线进行读写。CS:输入信号低电平有效当它有效时,才能选中该定时器芯片,实现对它的读或写:读控制信号,低电平有效:写控制信号,低电平有效以上两信号输入到8253上,与其他信号一起,共同完成对8253的读写操作左旭坤()A。、Al为8253的内部计数器和一个控制寄存器的编码选择信号,其功能如下:AlA。00可选择计数器001可选择计数器110可选择计数器211可选择控制寄存器CLK02:是每个计数器的时钟输入端,计数
3、器对此时钟信号进行计数CLK最高频率可达2MHz。GATE02:叫门控信号,即计数器的控制输入信号,用来控制计数器的工作。OUT02:计数器输出信号,用来产生不同方式工作时的输出波形左旭坤()1方式0(计数结束产生中断)(1)输出信号)输出信号OUT的波形:的波形:初始状态为高电平;写入控制字后变为低电平;计数初值减为初始状态为高电平;写入控制字后变为低电平;计数初值减为0时变为高电平时变为高电平(2)启动计数的条件:)启动计数的条件:写入计数初值后自动开始写入计数初值后自动开始(3)门控信号)门控信号GATE的功能:的功能:GATE为低电平时暂停计数(为低电平时暂停计数(OUT保持输出低电平
4、);保持输出低电平);GATE变回高电平时继续变回高电平时继续计数计数(4)计数初值的设置(更改)计数初值的设置(更改):如果在计数过程中修改计数值,则写入新计数值的第一个字节时使原先的计数如果在计数过程中修改计数值,则写入新计数值的第一个字节时使原先的计数停止。写入第二个字节后,开始以新写入的计数值重新计数。停止。写入第二个字节后,开始以新写入的计数值重新计数。左旭坤()2方式1(可编程单稳)(1)输出信号)输出信号OUT的波形:的波形:初始状态为低电平;写入控制字后变为高电平;开始计数时变为低电平;计数初始状态为低电平;写入控制字后变为高电平;开始计数时变为低电平;计数为为0时变为高电平时
5、变为高电平(2)启动计数的条件:)启动计数的条件:写入计数初值;写入计数初值;GATE出现上升沿。出现上升沿。(3)门控信号)门控信号GATE的功能:的功能:启动计数启动计数(4)计数初值的设置(更改)计数初值的设置(更改):如果在计数过程中修改计数值,则等当前计数结束后,如果如果在计数过程中修改计数值,则等当前计数结束后,如果GATE再次获得再次获得上升沿,则开始以新计数值计数。上升沿,则开始以新计数值计数。左旭坤()3方式方式2(频率发生器)(频率发生器)(1)输出信号)输出信号OUT的波形:的波形:初始状态为低电平;写入控制字后变为高电平;计数为初始状态为低电平;写入控制字后变为高电平;
6、计数为1时变为低电平时变为低电平(保持一保持一个个CLK周期周期)。自动开始下一轮循环计数。自动开始下一轮循环计数。(2)启动计数的条件:)启动计数的条件:写入计数初值后自动开始计数。写入计数初值后自动开始计数。(3)门控信号)门控信号GATE的功能:的功能:当当GATE为低电平时,暂停计数,强迫为低电平时,暂停计数,强迫OUT输出高电平;当输出高电平;当GATE为高时,继为高时,继续计数。续计数。(4)计数初值的设置(更改)计数初值的设置(更改):如果在计数过程中修改计数值,则等当前计数结束后开始以新计数值计数。如果在计数过程中修改计数值,则等当前计数结束后开始以新计数值计数。左旭坤()4方
7、式3(方波发生器)(1)输出信号)输出信号OUT的波形:的波形:初始状态为低电平;写入控制字后变为高电平;初始状态为低电平;写入控制字后变为高电平;若计数值为偶数,则前若计数值为偶数,则前N2计数过程中,计数过程中,OUT为高;后为高;后N2计数过程中,计数过程中,OUT为低,。为低,。若计数值为奇数,则若计数值为奇数,则(N+1)2计数过程中,计数过程中,OUT保持高电平;而保持高电平;而(N1)2计计数期间,数期间,OUT为低电平,并自动开始下一轮循环。为低电平,并自动开始下一轮循环。(2)启动计数的条件:)启动计数的条件:写入计数初值后自动开始计数。写入计数初值后自动开始计数。(3)门控
8、信号)门控信号GATE的功能:的功能:当当GATE为低电平时,暂停计数,强迫为低电平时,暂停计数,强迫OUT输出高电平;当输出高电平;当GATE为高时,继为高时,继续计数。续计数。(4)计数初值的设置(更改)计数初值的设置(更改):如果在计数过程中修改计数值,则等当前计数结束后开始以新计数值计数。如果在计数过程中修改计数值,则等当前计数结束后开始以新计数值计数。左旭坤()5方式4(软件触发选通)(1)输出信号)输出信号OUT的波形:的波形:初始状态为低电平;写入控制字后变为高电平;计数为初始状态为低电平;写入控制字后变为高电平;计数为0时变为低电平(保持时变为低电平(保持一个一个CLK周期)周
9、期)(2)启动计数的条件:)启动计数的条件:写入计数初值后自动开始计数。写入计数初值后自动开始计数。(3)门控信号)门控信号GATE的功能:的功能:当当GATE为低电平时,暂停计数;当为低电平时,暂停计数;当GATE为高时,继续计数。为高时,继续计数。(4)计数初值的设置(更改)计数初值的设置(更改):如果在计数过程中修改计数值,计数器从下一如果在计数过程中修改计数值,计数器从下一CLK周期开始以新的计数值进周期开始以新的计数值进行计数。行计数。左旭坤()6方式5(硬件触发选通)(1)输出信号)输出信号OUT的波形:的波形:初始状态为低电平;写入控制字后变为高电平;计数为初始状态为低电平;写入
10、控制字后变为高电平;计数为0时变为低电平(保持时变为低电平(保持一个一个CLK周期)周期)(2)启动计数的条件:)启动计数的条件:写入计数初值;并且写入计数初值;并且GATE出现上升沿后开始计数。出现上升沿后开始计数。(3)门控信号)门控信号GATE的功能:的功能:启动计数。启动计数。(4)计数初值的设置(更改)计数初值的设置(更改):如果在计数过程中修改计数值,则如果在计数过程中修改计数值,则GATE再次获得上升沿后,按新值计数。再次获得上升沿后,按新值计数。左旭坤()总结:总结:这这6 6种工作方式可分为种工作方式可分为3 3组来理解:组来理解:方式方式0 0和方式和方式4 4;方式;方式
11、1 1和方式和方式5 5;方式;方式2 2和方式和方式3 3。每一组的两种工作方式极为类似。每一组的两种工作方式极为类似。对它们的理解应抓住以下几个方面:对它们的理解应抓住以下几个方面:(1)输出信号)输出信号OUT的波形;的波形;(2)启动计数的条件;)启动计数的条件;(3)门控信号)门控信号GATE的功能;的功能;(4)计数初值的设置(更改);)计数初值的设置(更改);课后思考:课后思考:按照以上四点,按照以上四点,对各组的两种工作方式对各组的两种工作方式进行比较。进行比较。左旭坤()9.38253的控制字的控制字 8253在使用前要写入控制字,用来规定其工作方式。3 3个个通通道道中中各
12、各有有一一个个控控制制字字寄寄存存器器,它它们们使使用用同同一一个个口口地地址,靠控制字中的址,靠控制字中的D7D7,D6 2D6 2位的编码加以区别位的编码加以区别。控制字格式如下:D7 D6 D5 D4 D3 D2 Dl D0 SC1SC0RW1RW0M2M1M0BCD左旭坤()SC1,SC0为计数器选择:为计数器选择:SCl,SC0=00,选择计数器0;SCl,SC0=01,选择计数器1;SCl,SC0=10,选择计数器2;SCl,SC0=11,非法选择。RW1,RW0为读写格式控制位:为读写格式控制位:RW1,RW0=00,对计数器锁存,以便读取计数值;RW1,RW0=01,只读或只写
13、低8位字节;RW1,RW0=10,只读或只写高8位字节;RW1,RW0=11,先读写低8位,再读写高8位。SC1SC0RW1RW0M2M1M0BCD左旭坤()M2M1M0为工作方式选择位:为工作方式选择位:M2M1M0=000,选择方式0;M2M1M0=001,选择方式1;M2M1M0=X10,选择方式2;M2M1M0=X11,选择方式3;M2M1M0=100,选择方式4;M2M1M0=101,选择方式5。BCD为计数数制选择位:为计数数制选择位:BCD=0,选择二进制计数,最大计数值为65535;BCD=1,选择十进制计数,最大计数值为9999。SC1SC0RW1RW0M2M1M0BCD左旭
14、坤()【例9-1】8253计数器0的地址为40H,工作方式5,十进制计数,初值为2850H,计数器1工作于方式3,二进制计数,初值为64H,写出其初始化程序。计数器0控制字为00111011B(3BH)计数器1控制字为01010110B(56H)程序如下:左旭坤()MOVAL3BHOUT43HAL;写计数器0控制字MOVAL50H;写计数器0初值OUT40HALMOVAL28HOUT40HALMOVAL56H;写计数器1控制字OUT43H,ALMOVAL64H;写计数器1初值OUT41HAL左旭坤()【例9-2】按乐谱编写乐曲程序功能功能:让计算机按乐谱演奏让计算机按乐谱演奏左旭坤()计算机发
15、声原理计算机发声原理原理:原理:8255的的PB口工作在方式口工作在方式0输出;输出;8253的定时器的定时器2工作在方式工作在方式3由由8255的的PB0和和PB1控制定时器控制定时器2启动和扬声器启动启动和扬声器启动即:即:PB0=1:定时器定时器2启动;启动;PB1=1:扬声器启动扬声器启动8255的的PB口地址:口地址:61H8253的控制口地址:的控制口地址:43H8253的定时器的定时器2地址:地址:42H左旭坤()发声频率设置:发声频率设置:定时器定时器2工作在方式工作在方式3(方波发生器),可产生不同频率的(方波发生器),可产生不同频率的方波,由此方波控制扬声器就可得到频率不同
16、的声波。方波,由此方波控制扬声器就可得到频率不同的声波。(前提条件是(前提条件是8255的的PB0和和PB1都为都为1)已知,当计数值为已知,当计数值为533H时,定时器时,定时器2发出的声音频率为发出的声音频率为896HZ,则产生其它频率的计数值为:则产生其它频率的计数值为:533H*896/给定频率给定频率=123280/给定频率给定频率假定给定的发声频率放在假定给定的发声频率放在DI寄存器中,则下列指令可以得寄存器中,则下列指令可以得到送往定时器到送往定时器2的计数值:的计数值:MOVDX,12HMOVAX,3280HDIVDI该段程序执行后,该段程序执行后,AX中存放的就是送往定时器中
17、存放的就是送往定时器2的计数值。的计数值。左旭坤()发声音长(声音持续时间)设置:发声音长(声音持续时间)设置:定时器定时器2发出的方波频率可以控制声音频率;调节定时器发出的方波频率可以控制声音频率;调节定时器2的工作时间,则可以控制发声的音长。的工作时间,则可以控制发声的音长。通过延时指令可将音长设为通过延时指令可将音长设为1ms的的n倍:倍:MOVBX,nWAIT:MOVCX,22480DELAY:LOOPDELAYDECBXJNZWAIT左旭坤()发声子程序设计发声子程序设计OUT42H,ALMOVAL,AHOUT42H,AL;向定时器向定时器2写入计数值写入计数值INAL,61HMOV
18、AH,ALORAL,3OUT61H,AL;使使PB0和和PB1输出输出1,其余,其余PB口不变口不变;启动发声启动发声WAIT1:MOVCX,22480DELAY1:LOOPDELAY1DECBXJNZWAIT1;延时,控制音长延时,控制音长MOVAL,AHOUT61H,AL;PB0=PB1=0,关定时器和扬声器关定时器和扬声器POPDIPOPDXPOPCXPOPBXPOPAXRETGENSOUNDENDP通用发声子程序如右所示。该通用发声子程序如右所示。该GENSOUND子程序子程序能产生能产生19Hz65535Hz的声音(声音频率事先存放的声音(声音频率事先存放在在DI中),实际上因为人能
19、听到的声音最多是中),实际上因为人能听到的声音最多是20000Hz,所以所以DI中的值不能设的太大。中的值不能设的太大。另外,另外,BX中应该事先存放好延时倍数(这一步可中应该事先存放好延时倍数(这一步可以在主程序中完成)以在主程序中完成)利用利用GENSOUND发声子程序,就可以按乐谱编写发声子程序,就可以按乐谱编写乐曲演奏程序了乐曲演奏程序了GENSOUNDPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXPUSHDIMOVAL,0B6HOUT43H,AL;设置设置8253方式方式3MOVDX,12HMOVAX,3280HDIVDI;计算计数初值计算计数初值左旭坤()乐曲程序
20、设计乐曲程序设计乐曲是按照一定的高低、长短和强弱关系组成的音调,乐曲是按照一定的高低、长短和强弱关系组成的音调,在一首乐曲中,每个音符的音高和节拍与频率和音长有关在一首乐曲中,每个音符的音高和节拍与频率和音长有关:音高与频率的关系:音高与频率的关系:低音:低音:高音:高音:1=131Hz(中)中)1=2622=1472=2943=1653=3304=1754=3495=1965=3926=2206=4407=2477=493(中)(中)1=262(高)(高)1=523左旭坤()乐曲程序设计乐曲程序设计乐曲是按照一定的高低、长短和强弱关系组成的音调,乐曲是按照一定的高低、长短和强弱关系组成的音调
21、,在一首乐曲中,每个音符的音高和节拍与频率和音长有关在一首乐曲中,每个音符的音高和节拍与频率和音长有关:节拍与音长的关系节拍与音长的关系在在4/4拍中,全音符持续拍中,全音符持续4拍、二分音符持续两拍、四分音符拍、二分音符持续两拍、四分音符持续一拍、八分音符持续半拍;若每拍延时持续一拍、八分音符持续半拍;若每拍延时0.25秒,则:秒,则:全全音音符:符:1秒秒二分音符:二分音符:0.5秒秒四分音符:四分音符:0.25秒秒有了音高与频率的关系,以及节拍与音长的关系;有了音高与频率的关系,以及节拍与音长的关系;我们就可以对照乐谱来编写乐曲程序了。我们就可以对照乐谱来编写乐曲程序了。左旭坤()乐曲程
22、序设计乐曲程序设计编写乐曲程序可以分为四个步骤:编写乐曲程序可以分为四个步骤:(1)为乐曲编写频率表)为乐曲编写频率表(MUS_FREQ)和音长时间表和音长时间表(MUS_TIME):DATASEGMENTMUS_FREQDW330,392,330,294,330,392,330,294,330DW330,392,330,294,262,294,330,392,294DW262,262,220,196,196,220,262,294,330,262DW-1MUS_TIMEDW3DUP(500),250,250,500,250,250,1000DW2DUP(500,500,250,250),10
23、00DW3DUP(500,250,250,),1000DATAENDS-1作为乐作为乐曲结束符曲结束符号号左旭坤()乐曲程序设计乐曲程序设计(2)分别将两个表的偏移地址放入)分别将两个表的偏移地址放入SI和和BP:LEASI,MUS_FREQLEABP,DS:MUS_TIME(3)从表中按顺序取出音符的频率放入从表中按顺序取出音符的频率放入DI;取出音符的音取出音符的音长放入长放入BX:MOVDI,SIMOVBX,DS:BP(4)调用调用GENSOUND子程序发出音调。子程序发出音调。左旭坤()乐曲程序设计乐曲程序设计LEASI,MUS_FREQ;SI频率表首地址频率表首地址LEABP,DS:
24、MUS_TIME;BP音长表首地址音长表首地址FREG1:MOVDI,SI;当前音符的频率当前音符的频率DICMPDI,-1;判断是否是结束符号判断是否是结束符号JEEND_MUS1;结束符,转到结束符,转到END_MUS1MOVBX,DS:BP;当前音符的音长当前音符的音长BXCALLGENSOUND;调用发声子程序调用发声子程序ADDSI,2ADDBP,2;SI和和BP分别指向下一个音分别指向下一个音;符的频率和音长符的频率和音长JMPFREG1;转到转到FREG1,继续发声继续发声END_MUS1:NOPMOVAH,4CHINT21H;程序结束程序结束DATASEGMENTMUS_FRE
25、QDW330,392,330,294,330,392,330,294,330DW330,392,330,294,262,294,330,392,294DW262,262,220,196,196,220,262,294,330,262DW-1MUS_TIMEDW3DUP(5000),2500,2500,5000,2500,2500,10000DW2DUP(5000,5000,2500,2500),10000DW3DUP(5000,2500,2500),10000DATAENDSSTCKSEGMENTSTKDB200DUP(?)TOPEQULENGTHSTKSTCKENDSCODESEGMENTA
26、SSUMEDS:DATA,SS:STCK,CS:CODECODEENDSENDSTARTSTART:MOVAX,DATAMOVDS,AXMOVAX,STCKMOVSS,AXMOVAX,TOPMOVSP,AX思考思考:按键发声按键发声左旭坤()思考题:思考题:1.8253的6种工作方式中,哪几种工作方式需要GATE信号启动计数?2.8253的6种工作方式中,哪几种工作方式可自动循环计数?3.若想使8253的OUT端口输出连续的对称方波,最好采样那种工作方式?计数初值取什么数比较合适?4.若想使用8253的OUT产生一次定时中断信号,采样那种方式比较合适?5.试编程,将8253计数器0设置为模式1;计数初值为3000H;(8253的计数器0端口地址:40H;控制寄存器端口地址:43H)6.画出乐曲程序的流程图左旭坤()