收藏 分销(赏)

Proteus实现单片机交通灯-图+程序(调试可用).doc

上传人:a199****6536 文档编号:10820935 上传时间:2025-06-18 格式:DOC 页数:18 大小:946.51KB 下载积分:8 金币
下载 相关 举报
Proteus实现单片机交通灯-图+程序(调试可用).doc_第1页
第1页 / 共18页
Proteus实现单片机交通灯-图+程序(调试可用).doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
这是我初学单片机,并用Proreus软件自己绘制自己编写程序实现的一个交通红绿灯的系统。这是硬件连接图和程序,以便今后复习。 左 上 右 下 中控制部分,上面一个开关按下时,南北方向绿灯,东西方向红灯 黄灯闪烁3秒 绿灯设置15秒,红灯设置18秒。绿灯走完15秒后黄灯闪烁3秒变为红灯,红灯走完18秒后变成绿灯,以此循环。 源程序: COUNT EQU 30H ;T0中断计数 SNLEDDATA EQU 31H ;存储南北数码管显示的数据 SNCOLORFLAG EQU 32H ;=1时南北绿灯亮,=2时南北黄灯亮,=3时南北红灯亮 SNLEDDATAINIT EQU 33H ;存储南北各颜色灯的初始时间 EWLEDDATA EQU 34H ;存储东西数码管显示的数据 EWCOLORFLAG EQU 35H ;=1时东西红灯亮,=2时东西绿灯亮,=3时东西黄灯亮 EWLEDDATAINIT EQU 36H ;存储东西各颜色灯的初始时间 org 0000h lJMP MAIN org 0003h ljmp exint0 ORG 000BH lJMP INTT0 org 0013h ljmp exint1 org 0100h ;主函数************************************** MAIN: CALL INIT START: MOV A,COUNT CJNE A,#200,NOT1S ;没到1秒跳转 MOV COUNT,#00 ;1秒时间到 DEC SNLEDDATA MOV A,SNLEDDATA JNZ checkewleddata MOV SNLEDDATA,SNLEDDATAINIT INC SNCOLORFLAG MOV A,SNCOLORFLAG CJNE A,#04,checkewleddata MOV SNCOLORFLAG,#01 checkewleddata: DEC EWLEDDATA MOV A,EWLEDDATA JNZ timenotover MOV EWLEDDATA,EWLEDDATAINIT INC EWCOLORFLAG MOV A,EWCOLORFLAG CJNE A,#04,timenotover MOV EWCOLORFLAG,#01 TIMENOTOVER: NOT1S: call ewcolorcheck CALL snCOLORCHECK CALL DISPLAY JMP START ;********************************************* ;初始化函数*********************************** INIT: MOV SP,#60H MOV TMOD,#01H MOV TH0,#0eCH MOV TL0,#078H MOV COUNT,#00H MOV SNLEDDATAINIT,#15 MOV EWLEDDATAINIT,#18 MOV SNLEDDATA,SNLEDDATAINIT MOV EWLEDDATA,EWLEDDATAINIT SETB TR0 ;开定时器0 SETB ET0 ;允许定时器0中断 setb ex0 ;允许外部0中断 setb ex1 ;允许外部1中断 setb it0 ;外部中断0下降沿触发 setb it1 ;外部中断1下降沿触发 SETB EA ;开总中断 MOV P2,#0feH MOV SNCOLORFLAG,#01 MOV EWCOLORFLAG,#01 RET ;***************************************** ;外部中断0*********************************** exint0: push acc push psw mov a,p0 push acc mov a,p1 push acc mov a,p2 push acc clr ex1 clr p2.0 clr p2.1 clr p2.2 clr p2.3 setb p1.4 clr p1.1 clr p1.2 setb p1.5 clr p1.3 clr p1.4 jnb p3.2,$ setb ex1 pop acc mov p2,a pop acc mov p1,a pop acc mov p0,a pop psw pop acc reti ;外部中断1*********************************** exint1: push acc push psw mov a,p0 push acc mov a,p1 push acc mov a,p2 push acc clr ex0 clr p2.0 clr p2.1 clr p2.2 clr p2.3 setb p1.4 setb p1.2 clr p1.1 clr p1.0 setb p1.3 clr p1.5 clr p1.4 jnb p3.3,$ setb ex0 pop acc mov p2,a pop acc mov p1,a pop acc mov p0,a pop psw pop acc reti ;T0中断函数******************************* INTT0:PUSH ACC PUSH PSW MOV TH0,#0ecH ;#0ech MOV TL0,#078H ;#078h MOV A,P2 RL A CJNE A,#11101111B,NOT5 MOV A,#0feH ;p2.0=0,南北数码管十位亮,p2.1=0,南北数码管个位亮 NOT5: MOV P2,A ;p2.2=0,东西数码管十位亮,p2.3=0,东西数码管个位亮 INC COUNT POP PSW POP ACC RETI ;**************************************** ;南北红绿黄灯控制************************** snCOLORCHECK: PUSH ACC PUSH B PUSH PSW sngreen: MOV A,SNCOLORFLAG CJNE A,#01,snYELLOW MOV SNLEDDATAINIT,#03 ;设置南北黄灯闪烁时间 CLR P1.2 CLR P1.1 SETB P1.0 ;南北绿灯亮 JMP snCOLORCHECKOUT snYELLOW: ;MOV A,SNCOLORFLAG CJNE A,#02,snred MOV SNLEDDATAINIT,#18 ;设置南北红灯亮时间 MOV A,COUNT MOV B,#100 DIV AB MOV A,B CJNE A,#00H,snNOTFLASH CPL P1.1 ;南北黄灯闪烁 CLR P1.0 CLR P1.2 snNOTFLASH: JMP snCOLORCHECKOUT snred: MOV SNLEDDATAINIT,#15 ;设置南北绿灯亮时间 CLR P1.0 CLR P1.1 SETB P1.2 ;南北红灯亮 snCOLORCHECKOUT: POP PSW POP B POP ACC RET ;****************************************************** ;东西红绿黄灯控制************************************** ewCOLORCHECK: PUSH ACC PUSH B PUSH PSW ewred: MOV A,ewCOLORFLAG CJNE A,#01,ewyellow MOV ewLEDDATAINIT,#15 ;设置东西绿灯亮时间 CLR P1.3 CLR P1.4 SETB P1.5 ;东西红灯亮 JMP ewCOLORCHECKOUT ewyellow: ;MOV A,ewCOLORFLAG CJNE A,#03,ewgreen MOV ewLEDDATAINIT,#18 ;设置东西红灯亮时间 MOV A,COUNT MOV B,#100 DIV AB MOV A,B CJNE A,#00H,ewNOTFLASH CPL P1.4 ;东西黄灯闪烁 CLR P1.3 CLR P1.5 ewNOTFLASH: JMP ewCOLORCHECKOUT ewgreen: MOV ewLEDDATAINIT,#03 ;设置东西黄灯闪烁时间 CLR P1.4 CLR P1.5 SETB P1.3 ;东西绿灯亮 ewCOLORCHECKOUT: POP PSW POP B POP ACC RET ;************************************************************ ;数码管显示************************************************** DISPLAY: PUSH ACC PUSH PSW PUSH B MOV A,SNLEDDATA MOV B,#10 DIV AB MOV R0,B MOV R1,A MOV A,EWLEDDATA MOV B,#10 DIV AB MOV R2,B MOV R3,A MOV DPTR,#TABLE MOV A,P2 DISPSNH: CJNE A,#0feH,DISPSNL MOV A,R1 MOVC A,@A+DPTR MOV P0,A JMP DISPOUT DISPSNL: CJNE A,#0fdH,DISPEWH MOV A,R0 MOVC A,@A+DPTR MOV P0,A JMP DISPOUT DISPEWH: CJNE A,#0fbH,DISPEWL MOV A,R3 MOVC A,@A+DPTR MOV P0,A JMP DISPOUT DISPEWL: CJNE A,#0f7H,DISPOUT MOV A,R2 MOVC A,@A+DPTR MOV P0,A DISPOUT: POP B POP PSW POP ACC RET ;************************************************** TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ; 0 1 2 3 4 5 6 7 8 9 END
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服