51单片机定时器工作方式
一般情况处,只有在T1以工作方式2运行(当波特率发生器用)时,才让T0工作于方式3的。
定时器/计数器的定时/计数范围
工作方式0:13位定时/计数方式,因此,最多可以计到2的13次方,也就是8192次。
工作方式1:16位定时/计数方式,因此,最多可以计到2的16次方,也就是65536次。
工作方式2和工作方式3,都是8位的定时/计数方式,因此,最多可以计到2的8次方,也说是256次。
预置值计算:用最大计数量减去需要的计数次数即可。
例:流水线上一个包装是60盒,要求每到12盒就产生一个动作,用单片机的工作方式0来控制,应当预置多大的值呢?对了,就是8192-60=8132。当然设为计数时,需将C/T=1。
以上是计数,明白了这个道理,定时也是一样。
初学者应多看相关书籍中的定时/中断部分,对个标志位的处理与应用要能理解,对你的应用开发有很大帮助的!!!,特别是在按键的消抖、延时等方面。下面给出一个实验,网友只要烧写进89C51,放到实验板即可看到效果,然后在想????
定时器方式0的应用:
应用定时器T1产生1MS的定时,并使P1。0输出周期的2MS方波,设晶震6MHZ。
首先要计算T0的初始值,以定时器方式工作时,每一机器周期计数器加1,6MHZ晶震时的机器周期T=12/F=12/6*10的6次方,设初值为X,则:
2的13次方-X/2*10的负3次方 =10的负3次方 X=7692
以13位二进制数表示为:X=1111000001100B(从前算8位为F0H;)
计算得:TH0初值为0F0H,TL0初值为0CH;
因复位以后,TMOD、TCON初值为0,因此以定时器方式0工作时,初始化程序不必对TMOD重置0,我们查询TF0的状态来控制P1。0输出。在P1。0端得到周期为2MS的方波。
程序清单:
START:MOV TL0,#0CH;初值写入T0
MOV TH0,#0F0H;
SETB TR0;启动T0计数
LOOP:JBC TF0,PTF0
AJMP LOOP
PTF0:MOV TL0,#0CH;计数初值重装
MOV TH0,#0F0H;
CPL P1。0;P1。0求反
AJMPN LOOP
您可以改变定时初值来改变方波的宽度。
51单片机相关文章:51单片机教程
尘埃粒子计数器相关文章:尘埃粒子计数器原理
评论