Proteus实现单片机交通灯_图 程序(调试可用)_第1页
Proteus实现单片机交通灯_图 程序(调试可用)_第2页
Proteus实现单片机交通灯_图 程序(调试可用)_第3页
Proteus实现单片机交通灯_图 程序(调试可用)_第4页
Proteus实现单片机交通灯_图 程序(调试可用)_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、这是我初学单片机,并用Proreus软件自己绘制自己编写程序实现的一个交通红绿灯的系统。这是硬件连接图和程序,以便今后复习。左上右下中控制部分,上面一个开关按下时,南北方向绿灯,东西方向红灯黄灯闪烁3秒绿灯设置15秒,红灯设置18秒。绿灯走完15秒后黄灯闪烁3秒变为红灯,红灯走完18秒后变成绿灯,以此循环。源程序: COUNTEQU 30H;T0中断计数SNLEDDATAEQU 31H;存储南北数码管显示的数据SNCOLORFLAGEQU 32H;=1时南北绿灯亮,=2时南北黄灯亮,=3时南北红灯亮SNLEDDATAINITEQU 33H;存储南北各颜色灯的初始时间EWLEDDATAEQU 3

2、4H;存储东西数码管显示的数据EWCOLORFLAGEQU 35H;=1时东西红灯亮,=2时东西绿灯亮,=3时东西黄灯亮EWLEDDATAINITEQU 36H;存储东西各颜色灯的初始时间org 0000hlJMP MAINorg 0003hljmp exint0ORG 000BHlJMP INTT0org 0013hljmp exint1org 0100h;主函数*MAIN:CALL INITSTART:MOV A,COUNTCJNE A,#200,NOT1S;没到1秒跳转MOV COUNT,#00;1秒时间到DEC SNLEDDATAMOV A,SNLEDDATAJNZcheckewled

3、dataMOV SNLEDDATA,SNLEDDATAINITINC SNCOLORFLAGMOV A,SNCOLORFLAGCJNE A,#04,checkewleddataMOV SNCOLORFLAG,#01checkewleddata:DEC EWLEDDATAMOV A,EWLEDDATAJNZtimenotoverMOV EWLEDDATA,EWLEDDATAINITINC EWCOLORFLAGMOV A,EWCOLORFLAGCJNE A,#04,timenotoverMOV EWCOLORFLAG,#01TIMENOTOVER:NOT1S:call ewcolorcheckC

4、ALL snCOLORCHECKCALL DISPLAYJMP START;*;初始化函数*INIT:MOV SP,#60HMOV TMOD,#01HMOV TH0,#0eCHMOV TL0,#078HMOV COUNT,#00HMOV SNLEDDATAINIT,#15MOV EWLEDDATAINIT,#18MOV SNLEDDATA,SNLEDDATAINITMOV EWLEDDATA,EWLEDDATAINITSETB TR0;开定时器0SETB ET0;允许定时器0中断setb ex0;允许外部0中断setb ex1;允许外部1中断setb it0;外部中断0下降沿触发setb it

5、1;外部中断1下降沿触发SETB EA;开总中断MOV P2,#0feHMOV SNCOLORFLAG,#01MOV EWCOLORFLAG,#01RET;*;外部中断0*exint0:push accpush pswmov a,p0push accmov a,p1push accmov a,p2push accclr ex1clr p2.0clr p2.1clr p2.2clr p2.3setb p1.4clr p1.1clr p1.2setb p1.5clr p1.3clr p1.4jnb p3.2,$setb ex1pop accmov p2,apop accmov p1,apop ac

6、cmov p0,apop pswpop accreti;外部中断1*exint1:push accpush pswmov a,p0push accmov a,p1push accmov a,p2push accclr ex0clr p2.0clr p2.1clr p2.2clr p2.3setb p1.4setb p1.2clr p1.1clr p1.0setb p1.3clr p1.5clr p1.4jnb p3.3,$setb ex0pop accmov p2,apop accmov p1,apop accmov p0,apop pswpop accreti;T0中断函数*INTT0:PU

7、SH ACCPUSH PSWMOV TH0,#0ecH ;#0echMOV TL0,#078H;#078hMOV A,P2RL ACJNE A,#11101111B,NOT5MOV A,#0feH;p2.0=0,南北数码管十位亮,p2.1=0,南北数码管个位亮NOT5:MOV P2,A;p2.2=0,东西数码管十位亮,p2.3=0,东西数码管个位亮INC COUNTPOP PSWPOP ACCRETI;*;南北红绿黄灯控制*snCOLORCHECK:PUSH ACCPUSH BPUSH PSWsngreen:MOV A,SNCOLORFLAGCJNE A,#01,snYELLOWMOV SNL

8、EDDATAINIT,#03;设置南北黄灯闪烁时间CLR P1.2CLR P1.1SETB P1.0;南北绿灯亮JMP snCOLORCHECKOUTsnYELLOW:;MOV A,SNCOLORFLAGCJNE A,#02,snredMOV SNLEDDATAINIT,#18;设置南北红灯亮时间MOV A,COUNTMOV B,#100DIV ABMOV A,BCJNE A,#00H,snNOTFLASHCPL P1.1;南北黄灯闪烁CLR P1.0CLR P1.2snNOTFLASH:JMP snCOLORCHECKOUTsnred:MOV SNLEDDATAINIT,#15;设置南北绿灯

9、亮时间CLR P1.0CLR P1.1SETB P1.2;南北红灯亮snCOLORCHECKOUT:POP PSWPOP BPOP ACCRET;*;东西红绿黄灯控制*ewCOLORCHECK:PUSH ACCPUSH BPUSH PSWewred:MOV A,ewCOLORFLAGCJNE A,#01,ewyellowMOV ewLEDDATAINIT,#15;设置东西绿灯亮时间CLR P1.3CLR P1.4SETB P1.5;东西红灯亮JMP ewCOLORCHECKOUTewyellow:;MOV A,ewCOLORFLAGCJNE A,#03,ewgreenMOV ewLEDDATA

10、INIT,#18;设置东西红灯亮时间MOV A,COUNTMOV B,#100DIV ABMOV A,BCJNE A,#00H,ewNOTFLASHCPL P1.4;东西黄灯闪烁CLR P1.3CLR P1.5ewNOTFLASH:JMP ewCOLORCHECKOUTewgreen:MOV ewLEDDATAINIT,#03;设置东西黄灯闪烁时间CLR P1.4CLR P1.5SETB P1.3;东西绿灯亮ewCOLORCHECKOUT:POP PSWPOP BPOP ACCRET;*;数码管显示*DISPLAY:PUSH ACCPUSH PSWPUSH BMOV A,SNLEDDATAMOV B,#10DIV ABMOV R0,BMOV R1,AMOV A,EWLEDDATAMOV B,#10DIV ABMOV R2,BMOV R3,AMOV DPTR,#TABLEMOV A,P2DISPSNH:CJNE A,#0feH,DISPSNLMOV A,R1MOVC A,A+DPTRMOV P0,AJMP DISPOUTDISPSNL:CJNE A,#0fdH,DISPEWHMOV A,R0MOVC A,A+DPTRMOV P0,AJMP DISPOUTDISPEWH:CJNE A,#0fbH,DISPEWLMOV A,R3MOVC A,A+DPTRMOV P0,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论