资源描述:
《Proteus实现单片机交通灯_图+程序(调试可用)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、这是我初学单片机,并用Proreus软件自己绘制自己编写程序实现的一个交通红绿灯的系统。这是硬件连接图和程序,以便今后复习。左上右下中控制部分,上面一个开关按下时,南北方向绿灯,东西方向红灯黄灯闪烁3秒绿灯设置15秒,红灯设置18秒。绿灯走完15秒后黄灯闪烁3秒变为红灯,红灯走完18秒后变成绿灯,以此循环。源程序:COUNTEQU30H;T0中断计数SNLEDDATAEQU31H;存储南北数码管显示的数据SNCOLORFLAGEQU32H;=1时南北绿灯亮,=2时南北黄灯亮,=3时南北红灯亮SNLEDDATAINITEQU33H;存储南北各颜
2、色灯的初始时间EWLEDDATAEQU34H;存储东西数码管显示的数据EWCOLORFLAGEQU35H;=1时东西红灯亮,=2时东西绿灯亮,=3时东西黄灯亮EWLEDDATAINITEQU36H;存储东西各颜色灯的初始时间org0000hlJMPMAINorg0003hljmpexint0ORG000BHlJMPINTT0org0013hljmpexint1org0100h;主函数**************************************MAIN:CALLINITSTART:MOVA,COUNTCJNEA,#200,NOT
3、1S;没到1秒跳转MOVCOUNT,#00;1秒时间到DECSNLEDDATAMOVA,SNLEDDATAJNZcheckewleddataMOVSNLEDDATA,SNLEDDATAINITINCSNCOLORFLAGMOVA,SNCOLORFLAGCJNEA,#04,checkewleddataMOVSNCOLORFLAG,#01checkewleddata:DECEWLEDDATAMOVA,EWLEDDATAJNZtimenotoverMOVEWLEDDATA,EWLEDDATAINITINCEWCOLORFLAGMOVA,EWCOLO
4、RFLAGCJNEA,#04,timenotoverMOVEWCOLORFLAG,#01TIMENOTOVER:NOT1S:callewcolorcheckCALLsnCOLORCHECKCALLDISPLAYJMPSTART;*********************************************;初始化函数***********************************INIT:MOVSP,#60HMOVTMOD,#01HMOVTH0,#0eCHMOVTL0,#078HMOVCOUNT,#00HMOVSNLEDDA
5、TAINIT,#15MOVEWLEDDATAINIT,#18MOVSNLEDDATA,SNLEDDATAINITMOVEWLEDDATA,EWLEDDATAINITSETBTR0;开定时器0SETBET0;允许定时器0中断setbex0;允许外部0中断setbex1;允许外部1中断setbit0;外部中断0下降沿触发setbit1;外部中断1下降沿触发SETBEA;开总中断MOVP2,#0feHMOVSNCOLORFLAG,#01MOVEWCOLORFLAG,#01RET;***********************************
6、******;外部中断0***********************************exint0:pushaccpushpswmova,p0pushaccmova,p1pushaccmova,p2pushaccclrex1clrp2.0clrp2.1clrp2.2clrp2.3setbp1.4clrp1.1clrp1.2setbp1.5clrp1.3clrp1.4jnbp3.2,$setbex1popaccmovp2,apopaccmovp1,apopaccmovp0,apoppswpopaccreti;外部中断1*********
7、**************************exint1:pushaccpushpswmova,p0pushaccmova,p1pushaccmova,p2pushaccclrex0clrp2.0clrp2.1clrp2.2clrp2.3setbp1.4setbp1.2clrp1.1clrp1.0setbp1.3clrp1.5clrp1.4jnbp3.3,$setbex0popaccmovp2,apopaccmovp1,apopaccmovp0,apoppswpopaccreti;T0中断函数*********************
8、**********INTT0:PUSHACCPUSHPSWMOVTH0,#0ecH;#0echMOVTL0,#078H;#078hMOVA,P2RLACJNEA,