定时计数器T0作定时应用技术.DOC

上传人:天*** 文档编号:1037051 上传时间:2018-11-21 格式:DOC 页数:5 大小:62KB
下载 相关 举报
定时计数器T0作定时应用技术.DOC_第1页
第1页 / 共5页
定时计数器T0作定时应用技术.DOC_第2页
第2页 / 共5页
定时计数器T0作定时应用技术.DOC_第3页
第3页 / 共5页
定时计数器T0作定时应用技术.DOC_第4页
第4页 / 共5页
定时计数器T0作定时应用技术.DOC_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、AT89S51 单片机实验及实践教程- 84 -16 定时计数器 T0 作定时应用技术(二)1 实验任务用 AT89S51 的定时/计数器 T0 产生 2 秒钟的定时,每当 2 秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为 0.2 秒,也就是说,开始 L1 指示灯以 0.2 秒的速率闪烁,当 2 秒定时到来之后,L2 开始以 0.2 秒的速率闪烁,如此循环下去。0.2 秒的闪烁速率也由定时/计数器 T0 来完成。2 电路原理图图 4.16.13 系统板硬件连线(1 把“单片机系统”区域中的 P1.0P1.3 用导线连接到“八路发光二极管指示模块”区域中的 L1L4 上AT89S51 单片

2、机实验及实践教程- 85 -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,共定时 4

3、0 次才可达到 2 秒,每 50ms 产生一中断,定时的 40 次数在中断服务程序中完成,同样 0.2 秒的定时,需要 4次才可达到 0.2 秒。对于中断程序,在主程序中要对中断开中断。(3 由于每次 2 秒定时到时,L1L4 要交替闪烁。采用 ID 来号来识别。当ID0 时, L1 在闪烁,当 ID1 时,L2 在闪烁;当 ID2 时,L3 在闪烁;当 ID 3 时,L4 在闪烁5 程序框图T0 中断服务程序框图开 始Count2S=0,Cnt02S=0,ID0TMOD01H,TH0,TL0 装入定时初值TR01,ET0 1,EA 1等待中断AT89S51 单片机实验及实践教程- 86 -主

4、程序框图图 4.16.2T0 中断入口Count2S 加 1Count2S=40 吗?Count2S=0ID 加 1ID4 吗?ID0Cnt02S 加 1Cnt02S=4 吗?Cnt02S=0ID0 ID1 ID2 ID3L1 闪烁 L2 闪烁 L3 闪烁 L4 闪烁中断返回AT89S51 单片机实验及实践教程- 87 -6 汇编源程序TCOUNT2S EQU 30HTCNT02S EQU 31HID EQU 32HORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV TCOUNT2S,#00HMOV TCNT02S,#00HMOV ID,#00HMOV

5、TMOD,#01HMOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256SETB TR0SETB ET0SETB EASJMP $INT_T0: MOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256INC TCOUNT2SMOV A,TCOUNT2SCJNE A,#40,NEXTMOV TCOUNT2S,#00HINC IDMOV A,IDCJNE A,#04H,NEXTMOV ID,#00HNEXT: INC TCNT02SMOV A,TCNT02SCJNE A,#4

6、,DONEMOV TCNT02S,#00HMOV A,IDCJNE A,#00H,SID1CPL P1.0SJMP DONESID1: CJNE A,#01H,SID2CPL P1.1SJMP DONESID2: CJNE A,#02H,SID3CPL P1.2SJMP DONESID3: CJNE A,#03H,SID4CPL P1.3SID4: SJMP DONEDONE: RETIEND7 C 语言源程序#include unsigned char tcount2s;unsigned char tcount02s;unsigned char ID;void main(void)TMOD=

7、0x01;TH0=(65536-50000)/256;AT89S51 单片机实验及实践教程- 88 -TL0=(65536-50000)%256;TR0=1;ET0=1;EA=1;while(1);void t0(void) interrupt 1 using 0tcount2s+;if(tcount2s=40)tcount2s=0;ID+;if(ID=4)ID=0;tcount02s+;if(tcount02s=4)tcount02s=0;switch(ID)case 0:P1_0=P1_0;break;case 1:P1_1=P1_1;break;case 2:P1_2=P1_2;break;case 3:P1_3=P1_3;break;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。