全球旧事资料 分类
16.16.1.实验任务
作定时应用技术(定时计数器T0作定时应用技术(二)
用AT89S51的定时计数器T0产生2秒钟的定时,每当2秒定时到来时,更换指示灯闪烁,每个指示闪烁的频率为02秒,也就是说,开始L1指示灯以02秒的速率闪烁,当2秒定时到来之后,L2开始以02秒的速率闪烁,如此循环下去。02秒的闪烁速率也由定时计数器T0来完成。
2.
电路原理图
图4161
3.
(1.
系统板硬件连线
把“单片机系统”区域中的P10-P13用导线连接到“八路发光二极管指示模块”区域中的L1-L4上
f4.
程序设计内容
(1.由于采用中断方式来完成,因此,对于中断源必须它的中断入口地址,对于定时计数器T0来说,中断入口地址为000BH,因此在中断入口地方加入长跳转指令来执行中断服务程序。书写汇编源程序格式如下所示:00HSTART0BH定时计数器T0中断入口地址
ORGLJMPORG
LJMPINT_T0STARTNOP主程序开始
INT_T0
PUSHACCPUSHPSWPOPPSWPOPACCRETIEND(2.
定时计数器T0中断服务程序
中断服务程序返回
定时2秒,采用16位定时50ms,共定时40次才可达到2秒,每50ms产生一中断,定时的40次数在中断服务程序中完成,同样02秒的定时,需要4次才可达到02秒。对于中断程序,在主程序中要对中断开中断。由于每次2秒定时到时,L1-L4要交替闪烁。采用ID来号来识别。当ID=0时,L1在闪烁,当ID=1时,L2在闪烁;当ID=2时,L3在闪烁;当ID=3时,L4在闪烁
(3.
5.
程序框图
T0中断服务程序框图
f主程序框图
f图4162
6.
TCOUNT2STCNT02SID
汇编源程序
EQU30HEQU31H
EQU32H
fORG00HLJMPSTARTORG0BHLJMPINT_T0STARTMOVTCOUNT2S00HMOVTCNT02S00HMOVID00HMOVTMOD01HMOVTH06553650000256MOVTL06553650000MOD256SETBTR0SETBET0SETBEASJMPINT_T0MOVTH06553650000256MOVTL06553650000MOD256INCTCOUNT2SMOVATCOUNT2SCJNEA40NEXTMOVTCOUNT2S00HINCIDMOVAIDCJNEA04HNEXTMOVID00HNEXTINCTCNT02SMOVATCNT02SCJNEA4DONEMOVTCNT02S00HMOVAID
fCJNEA00HSID1CPLP10SJMPDONESID1CJNEA01HSID2CPLP11SJMPDONESID2CJNEA02HSID3CPLP12SJMPDONESID3CJNEA03HSID4CPLP13SID4DONERETIENDSJMPDONE
7.
C语言源程序
i
cludeAT89X51H
u
sig
edchartcou
t2su
sig
edchartcou
t02su
sig
edcharID
voidmai
voidTMOD0x01TH06553650000256TL06553650000256TR01ET01EA1
fwhile1voidt0voidi
terrupt1usi
g0tcou
t2siftcou
t2s40tcou
t2s0IDifID4ID0tcou
t02siftcou
t02s4tcou
t02s0switchIDcase0P1_0P1_0breakcase1P1_1P1_1breakcase2P1_2P1_2r
好听全球资料 返回顶部