16. 定时计数器 T0 作定时应用技术(二) 1. 实验任务 用 AT89S51 的定时/计数器 T0 产生 2 秒钟的定时,每当 2 秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为 0
2 秒,也就是说,开始 L1 指示灯以 0
2 秒的速率闪烁,当 2 秒定时到来之后,L2 开始以 0
2 秒的速率闪烁,如此循环下去
2 秒的闪烁速率也由定时/计数器 T0 来完成
2. 电路原理图 图 4
1 3. 系统板硬件连线 (1. 把“单片机系统”区域中的 P1
3 用导线连接到“八路发光二极管指示模块”区域中的 L1-L4 上 4. 程序设计内容 (1. 由于采用中断方式来完成,因此,对于中断源必须它的中断入口地址,对于定时/计数器 T0 来说,中断入口地址为 000BH,因此在中断入口地方加入长跳转指令来执行中断服务程序
书写汇编源程序格式如下所示:ORG 00HLJMP STARTORG 0BH ;定时/计数器 T0 中断入口地址LJMP INT_T0START: NOP ;主程序开始
INT_T0: PUSH ACC ;定时/计数器 T0 中断服务程序PUSH PSW
POP PSWPOP ACCRETI ;中断服务程序返回END (2. 定时 2 秒,采用 16 位定时 50ms,共定时 40 次才可达到 2 秒,每50ms 产生一中断,定时的 40 次数在中断服务程序中完成,同样 0
2秒的定时,需要 4 次才可达到 0
对于中断程序,在主程序中要对中断开中断
(3. 由于每次 2 秒定时到时,L1-L4 要交替闪烁
采用 ID 来号来识别
当 ID=0 时,L1 在闪烁,当 ID=1 时,L2 在闪烁;当 ID=2 时,L3在闪烁;当 ID=3 时,L4 在闪烁 5. 程序框图 T0 中断服务程序框图 主程序框图 图 4