




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章可编程定时器/计数器芯片8254,概述可编程计数器/定时器芯片82548254在PC机中的应用,7.1定时器和计数器概述,定时控制在微机系统中极为重要定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔。定时器强调的是精确的时间。,定时举例:一天24小时的计时,称为日时钟。在监测系统中,对被测点的定时取样。在读键盘时,为去抖,一般延迟一段时间,再读。在微机控制系统中,控制某工序定时启动。,计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器。计数举例:对零件和产品的计数;对大桥和高速公路上车流量的统计。,定时功能的实现方法,软件延时是利用CPU每执行一条指令都需要几个固定的指令周期的原理,运用软件编程的方式进行定时。利用微处理器执行一个延时程序段实现。不可编程的硬件定时采用分频器、单稳电路或简易定时电路控制定时时间可编程的硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,7.28253/8254定时计数器,3个独立的16位计数器通道每个计数器有6种工作方式,按二进制或十进制(BCD码)计数每个计数器在开始工作前必须预制时间常数每个计数器在工作过程中的当前计数值可被CPU读出。(注:时间常数也可在计数过程中更改),8254是8253的改进型,8253/8254的内部结构和引脚,计数器结构示意图,计数初值存于预置寄存器;在计数过程中,减1计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值,1计数器的3个引脚,CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号,2与处理器接口,D0D7数据线A0A1地址线RD读信号WR写信号CS片选信号,8254的工作方式,8254有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式不同工作方式的区分点:输出波形计数过程中门控信号的影响启动触发方式,每种工作方式的过程类似:设定工作方式设定计数初值硬件启动计数初值进入减1计数器每输入一个时钟计数器减1的计数过程计数过程结束,方式0计数结束中断(一次有效),写入控制字之后,相应的输出信号OUT就开始变成低电平。计数器写完计数值时,开始计数。当计数器减到零时,OUT立即输出高电平。,设定工作方式,设定计数初值,计数值送入计数器,计数过程,计数结束,方式0,门控信号GATE位高电平时,计数器工作;为低电平时,计数器停止工作,计数值保持不变。在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数值重新工作。,8254的方式0时序波形,方式1可编程单稳脉冲,写入计数初值后,计数器并不立即开始工作;等待到GATE上升沿,才开始工作,使输出OUT变成低电平;直到计数器值减到零后,输出才变高电平。计数到0,初值自动重置,但要等到下一个GATE上升沿触发才重新计数。单稳态触发器只有一个稳态(高电平),一个触发脉冲使触发器进入暂稳态(低电平),经过一段可调的时间间隔后,又回到稳态。所以工作于方式1时相当于一个可重复触发的单稳态触发器。,设定工作方式,设定计数初值,硬件启动,计数值送入计数器,计数过程,计数结束,方式1,在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。,8254的1方式时序波形,方式2频率发生器(分频器),写入控制字之后,输出端OUT变为高电平。计数器写完计数值时,开始计数。当计数器减到1时,OUT变为低电平。完成一次计数过程,输出端OUT又变为高电平,开始一个新的计数过程,周而复始。对于计数初值N,输出端OUT输出的信号的周期是计数值N时钟CLK的周期T,N-1个时钟周期为高,1个时钟周期为低,为负脉冲。输出负脉冲的周期为时钟周期的N倍,频率是1/N,称为分频器,可以用来给自动控制中的实时检测,实时控制提供时钟信号。,方式3方波发生器,与2方式基本相同,也具有自动装入时间常数(计数初值)的功能,不同之处在于:工作在3方式,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1或近似1:1的方波;当计数初值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平。由于3方式输出的波形是方波,并且具有自动重装计数初值的功能,因此,8254一旦计数开始,就会在输出端OUT输出连续不断的方波。,方式3,当计数值为奇数时,在前(N+1)2计数期间,OUT输出高电平,而后(N-1)2个计数期间,OUT输出为低电平。,方式4软件触发选通信号,控制字写入8254后,计数器输出OUT为高电平在写入计数初值后,而且GATE为高电平时,开始计数,计数到0后输出一个时钟周期的低电平脉冲。门控信号GATE1时允许计数,GATE0禁止计数。软件触发选通体现在当GATE为高电平时,写入计数初值后开始计数。,CPU送数据同时输出一数据选通信号,锁存数据。方式4可编程控制选通信号发出时间。,方式4和方式2的区别:(1)方式2的负脉冲是在计数到1时产生一个T的负脉冲,而方式4是在计数到0时产生一个T的负脉冲。(2)在计数过程中,写入新的初值时,方式2是从下一次开始从新的初值计数,而方式4是从下一个脉冲就开始以新的值计数,因为方式4不能重复计数。,方式5硬件触发选通信号,工作特点是由GATE上升沿触发计数器开始工作。当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。硬件触发选通:GATE信号一般由硬件产生。,计数开始的时刻,需要注意当控制字写入8254时,所有的控制逻辑电路自动复位,这时输出端OUT进入初始状态。处理器写入8254的计数初值只是写入了预置寄存器,要到时钟下降沿,减法计数器才开始工作。方式0、方式4GATE信号为电平触发方式1、方式5GATE信号为上升沿触发方式2、方式3两种皆可,7.38254的编程,8254加电后的工作方式不确定8254必须初始化编程,才能正常工作写入方式控制字写入计数初值读取计数值8254新增读回命令,1方式控制字(A1A011),00计数器001计数器110计数器211非法,00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节,000方式0001方式1X10方式2X11方式3100方式4101方式5,0二进制1BCD码,示例,8254的控制字编程,;某个8254的计数器0、1、2端口和控制端口地址依次是40H43H;设置其中计数器0为方式0,采用二进制计数,先低后高写入计数值moval,30h;方式控制字:30H00110000Bout43h,al;写入控制端口:43H,2写入计数值,计数值写入计数器各自的I/O地址,示例,选择二进制时计数值范围:0000HFFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:000099990000代表最大值10000,8254的计数初值编程,;某个8254的计数器0、1、2端口和控制端口地址依次是40H43H;设置计数器0采用二进制计数,写入计数初值:1024(400H)movax,1024;计数初值:1024(400H);写入计数器0地址:40Hout40h,al;写入低字节计数初值moval,ahout40h,al;写入高字节计数初值,3读取计数值,8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8254写入锁存命令从计数器I/O地址:读取锁存的计数值,读取计数值,要注意读写格式和计数数制,;某个8254的计数器0、1、2端口和控制端口地址依次是40H43H,要读取通道1的计数值。;则先对通道1发出锁存命令,然后读取数据。MOVAL,40H;方式控制字:30H01000000BOUT43H,AL;写入控制端口:43HINAL,41H,7.48254在PC机上的应用,定时中断和定时刷新,将计数器1作为定时刷新看如何编写初始化程序段,从阅读初始化程序段看计数器0作为定时中断的作用,8254初始化(定时中断),moval,00110110B;计数器0为方式3,采用二进制计数,;先低后高写入计数值out43h,al;写入方式控制字moval,0;计数值为0out40h,al;写入低字节计数值out40h,al;写入高字节计数值,计数器0:定时中断,计数器0:方式3,计数值:65536,输出频率为1.19318MHz6553618.206Hz的方波门控为常启状态,这个方波信号不断产生OUT0端接8259的IRQ0,用作中断请求信号每秒产生18.206次中断请求,或说每隔55ms(54.925493ms)申请一次中断DOS系统利用计数器0的这个特点,通过08号中断服务程序实现了日时钟计时功能,计数器1:定时刷新,门控总为高,选择方式2或3,2ms内刷新128次,即15.6s刷新一次,计数初值为18,需要重复不断提出刷新请求,8254初始化(定时刷新),moval,01010100B;计数器1为方式2,;采用二进制计数,只写低8位计数值out43h,al;写入方式控制字moval,18;计数初值为18out41h,al;写入计数值,扬声器控制,计数器2的输出控制扬声器的发声音调计数器2只能工作在方式3,才能输出一定频率的方波,经滤波后得到近似的正弦波,进而推动扬声器发声扬声器还受控于并行接口(8255芯片)必须使PB0和PB1同时为高电平,扬声器才能发出预先设定频率的声音,扬声器控制(频率设置),speakerprocpushaxmoval,10110110B;0b6hout43h,al;写入控制字popaxout42h,al;写入低8位计数值moval,ahout42h,al;写入高8位计数值retspeakerendp,扬声器控制(扬声器开),speakonprocpushaxinal,61horal,03h;D1D0PB1PB011B,其他位不变out61h,alpopaxretspeakonendp,扬声器控制(扬声器关),speakoffprocpushaxinal,61handal,0fch;D1D0PB1PB000B,其他位不变out61h,alpopaxretspeakoffendp,扬声器控制(主程序),;数据段freqdw1193180/600;代码段movax,freqcallspeaker;设置扬声器音调callspeakon;打开扬声器声音movah,1;等待按键int21hcallspeakoff;关闭扬声器声音,在一个实际的数据采集系统中,要求5s采一个数,现场的主时钟的振荡频率为2.5MHz。分析:选择工作方式3(方波发生器),连续工作对2.5M的脉冲分频。时钟周期Tckl2.5106计数初值n=T/Tck=5(l2.5106)=1.25107一个计数器最多的分频次数是65536,是不够用的。,例,采用两级计数器,用计数器0的输出OUT0作为计数器1的输入CLK1。计数器0的计数值为50000(C350H);计数器1的250(FAH)。则有:总的计数值=50000250=1.25107计数器0:方式3(方波发生器)控制宇36H(00110110B)计数器1:方式2(分频器)控制字54H)(01010100B)设:控制口地址:CRPT;0号计数器:PRT0;1号计数器:PRT1,实现上述过程的程序如下:MOVAL,36HMOVDX,CRPTOUTDX,AL;0号计数器方式3MOVAL,50HMOVDX,PRT0OUTDX,AL;计数值低8位MOVAL,C3HOUTDX,AL;计数值高8位MOVAL,54HMOVDX,CRPTOUTDX,AL;1号计数器方式2MOVAL,FAHMOVDX,PRT1OUTDX,AL;计数值低8位,例:某火灾报警系统的部分接口电路如图所示。该系统具有温度和烟雾浓度超限报警和自动灭火功能。当温度或烟雾浓度超限时,进行光报警;两者同时超限时,进行光、声报警,并开启电磁阀,进行喷淋灭火。按键A为手动报警按钮,按键B为解除报警按钮。半导体温度传感器的温度测量范围为0127,对应输出电压为0V5V。ADC0809输入电压范围为0V5V。开关式集成烟雾传感器报警时输出高电平,正常工作时输出低电平。8253的通道0、通道1、通道2均工作于方式3(方波发生器),按BCD码计数。扬声器的报警声音频率为2kHz。8253、8255的方式控制字及8255的置位/复位控制字格式如图所示。,GATE0A0CLK0A1OUT0RDCLK1WR8253GATE1CSGATE2OUT1D7D0CLK2OUT2,IOWIORA1A0,PA7PA0D7D0PB0PB1CSPB2WRPC0RDA1PC4A08255PC1PC5PC6PC7,D7D0IN0ADDAADDBADDCEOCIN7OESTARTALEADC0809,+5V,烟雾传感器,驱动,电磁阀,喷淋头,温度传感器,D7D08259CSA0,驱动,扬声器,驱动,1MHz,D7D0,D7D0,发光二极管,40H43H,80H83H,D7D0,20H21H,A0,+5V,+5V,按键B解除警报,按键A手动报警,IR7,IR1,IR0,8255的方式控制字格式如下:,8255端口C按位置0/置1控制字,作用:指定PC口的某一位(某一个引脚)输出高平或低电平。,注意:C口控制字虽然是对端口C操作,但应写入到控制口地址,而不是写入到C数据口,8253的方式控制字(A1A011),00计数器001计数器110计数器211非法,00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节,000方式0001方式1X10方式2X11方式3100方式4101方式5,0二进制1BCD码,示例,部分初始化、主程序及中断服务子程序如下:CODESEGMENTASSUMEDS:DATA,CS:CODESTART:;8259初始化MOVAL,13H;初始化8259ICW1OUT20H,ALMOVAL,;送中断类型码基值OUT21H,ALMOVAL,0DHOUT21H,AL;8255初始化MOVAL,;置8255工作方式OUT83H,ALMOVAL,00H;C口初始化OUT82H,AL,91H,08H,;8253初始化MOVAL,37H;置8253通道0方式控制字OUT43H,ALMOVAL,00H;置8253通道0计数初值OUT40H,ALMOVAL,10HOUT40H,ALMOVAL,;置8253通道1方式控制字OUT43H,ALMOVAL,00H;置8253通道1计数初值OUT41H,ALMOVAL,10HOUT41H,ALMOVAL,0B7H;置8253通道2方式控制字OUT43H,AL,77H或7FH,MOVAL,;置8253通道2计数初值OUT42H,ALMOVAL,;OUT42H,AL;中断设置MOVAH,25H;设置中断向量MOVAL,08H;中断类型号为入口参数MOVBX,;DS:DX指向4字节地址MOVDS,BXMOVDX,;INT21HMOVAH,25HMOVAL,;MOVBX,SEGKEYAINTMOVDS,BX,00H,05H,SEGKEYBINT,OFFSETKEYBINT,09H,MOVDX,OFFSETKEYAINTINT21HSTI;数据采集MOVAL,00H;选ADC0809模拟量输入通道号OUT81H,ALLOP:MOVAL,;置PC4=1,锁存模拟量通道选择号OUT83H,ALNOPMOVAL,08H;置PC4=0,启动A/D转换OUT83H,ALLOP1:INAL,82H;读8255C口,查询EOCTESTAL,01HJZLOP1INAL,80H;读A/D转换结果CMPAL,0A0H;判断是否高于上限,09H,JAABOVEINAL,82H;判断烟雾传感器是否报警TESTAL,02HJNZBJMOVAL,0EHOUT83H,ALJMPLOPABOVE:INAL,82HTESTAL,02HJZBJMOVAL,0F0H;启动报警及灭火功能OUT82H,ALJMPLOPBJ:MOVAL,0FH;光报警OUT83H,ALJMPLOP,;中断服务KEYAINTPROCFAR;按键A中断服务子程序PUSHAXMOVAL,0F0HOUT82H,ALMOVAL,20H;给8259发中断结束命令OUT20H,ALPOPAXIRETKEYAINTENDP,;中断服务KEYBINTPROCFAR;按键B中断服务子程序PUSHAXMOVAL,;O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年注册验船师资格考试(B级船舶检验专业基础安全)能力提高训练题及答案一
- 2025年公路水运检测师考试《道路工程》真题及答案(完整版)
- 2025年注册验船师资格考试(C级船舶检验法律法规)强化练习题及答案一
- 2025年(自考)护理管理学考试题库及答案(含各题型)
- 2025年高校教务招聘笔试模拟题及考点解析
- 2025年高级测试工程师面试题解析及测试技巧
- 2025年金融专业毕业生求职面试模拟题集及解析
- 2025年考试无忧技术类招聘笔试模拟题及答案速递
- 校长读书汇报课件
- 2025年信息系统项目管理师中级模拟题与答案指南
- (2025年标准)分次支付协议书
- 2025年蜀道投资集团有限责任公司人员招聘笔试备考题库附答案详解(考试直接用)
- 2025年高考(陕西、山西、青海、宁夏卷)历史真题及答案
- 关于奶茶店转让合同范本
- 2025年保税区面试题目及答案
- 护士急诊重症外出学习汇报
- 公安基础知识培训课件
- 2025年期货高管考试题库及答案
- 2024年黑龙江省肇源县卫生系统招聘考试(护理学专业知识)题含答案
- 2025年江苏省南京市中考英语试卷
- 2025年政法委网格员考试题库
评论
0/150
提交评论