矩阵键盘学习过了,该轮到定时器和中断程序设计了
首先我来说一下51单片机的定时器的工作原理
TMOD : 控制定时器的工作方式。8个bit,高四位 bit 控制 T1,、低四位 bit 控制 T0。因为定时器有4种工作方式;TMOD = 0x00(工作方式0),TMOD = 0x01(工作方式0),TMOD = 0x02(工作方式2),TMOD = 0x03(工作方式3)。以上是控制低4位的,所以是对应着T0。
TR0:T0定时器 使能开关,TR0 = 1,开始工作; =0停止工作。
ET0:T0定时器中断开关,定时时间一到,就会跑去中断程序。ET0=1,中断使能,=0失能。
EA : 中断总开关,你可以想象成电路的总电闸,EA=1,中断使能; =0,中断失能。
TH0,TL0 : T0定时器计数寄存器,组成16位的计数,0x0000–0xFFFF(0–65535),只要TH0TL0=0xFFFF(65535),程序就会跑去中断程序,在中断程序中,我们要重新给TH0,TL0重新赋值的。
以上是蓝桥杯官网单片机组有资料包里面的内容,了解以上内容我们才能编写程序实现定时器
总结要点是 TMOD 8位是定时器的工作方式 前四位是T1 后四位是T0 四位的不同状态有不一样的方式
EA是总开关,TR0是定时器的开关,TH0,TL0是计数的储存器,16位,也就是0-65535,溢出就是归零并发生一次中断,所以可以利用这个实现中断,也就是设置TH0,TL0的值
中断不是直接程序停止,而是停下目前的指令,去处理另一个指令,然后返回来接着执行
假如说,我们定时50毫秒,TH0,TL0对应着什么值呢? 上面我们说了,TH0,