资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,5.2 MCS-51,单片机的定时器,/,计数器,单片机中的计数器除了可以作为计数用,还可以用作定时器。,那么单片机的定时,/,计数器是怎么回事呢?只要计数脉冲的间隔相等,那么计数值就代表了时间的流逝。其实,单片机中的定时器和计数器是一个东西,只不过计数器记录的是外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源,然后把计数源的计数次数转化为定时器的时间。,1,2,3,4,5,6,7,8,例,5-3,若晶振频率为,6MHZ,试计算单片机定时器最小定时时间和最大定时时间。,解 先确定机器周期,Tc=12/,晶振频率,=12/6*10,6,=0.002ms,计算最小定时时间:定时器的四种工作方式的最小定时时间都是一致的,即,Tmin=1,Tc=0.002ms,计算最大定时时间:,16,位的定时器定时时间最长,即,Tmax=2,16,0.002ms131ms,应该注意的是:定时器的最大定时时间和最小定时时间是随着单片机的晶振频率的变化而改变的。,9,10,例,5-4,设单片机的晶振频率为,12MHZ,,要求由,T0,产生,1ms,的定时并使,P1.0,输出周期为,2ms,的方波。,解,:,若要产生,2ms,的方波,只要每,1ms,将,P1.0,反向一次即可,采用,CPL,指令实现。设,T0,工作于方式,0,,计数初值计算如下:,机器周期为:,Tc=12/,晶振频率,=12/12MHZ=0.001ms,计数初值为:,X=2,13,-T/Tc=2,13,-1000=7192=1110000011000B,TMOD,方式字:,T1,不用,,4,位全,0,。对,T0,来说:,M1M0=00H,、,C/T=0,、,GATE=0.,于是:,TMOD=00H,11,查询方式:若采用查询方式,,TF0,置位后不会自动复位,应采用软件方法将其复位。,T0,初始化程序如下:,ORG 1000H,START:MOV TMOD,#00H,;写方式控制字,MOV TL0,#18H,;置低,5,位计数值,MOV TH0,#0E0H,;置高,8,位计数值,SETB TR0,;启动,T0,计数,LOOP:JBC TF0,PNG,;,1ms,到则清,TF0,转,PNG,AJMP LOOP,;未到则等待,PNG:MOV TL0,#18H,;重新送计数长度,MOV TH0,#0E0H,CPL P1.0,;改变输出电平,AJMP LOOP,end,12,中断方式,T0,初始化程序如下:,org 0000h,ajmp start,ORG 000BH,AJMP INTR,ORG 1000H,START:MOV TMOD,#00H,;写方式控制字,MOV TL0,#18H,;置低,5,位计数值,MOV TH0,#0E0H,;置高,8,位计数值,SETB EA,;开中断,SETB ET0,;允许,T0,中断,SETB TR0,;启动,T0,计数器,LOOP:SJMP LOOP,;等待中断,INTR:MOV TL0,#18H,;重新送计数长度,MOV TH0,#0E0H,CPL P1.0,;改变输出电平,RETI,END,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,
展开阅读全文