




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
这是我初学单片机,并用Proreus软件自己绘制自己编写程序实现的一个交通红绿灯的系统。这是硬件连接图和程序,以便今后复习。 左 上 右 下 中控制部分,上面一个开关按下时,南北方向绿灯,东西方向红灯黄灯闪烁3秒 绿灯设置15秒,红灯设置18秒。绿灯走完15秒后黄灯闪烁3秒变为红灯,红灯走完18秒后变成绿灯,以此循环。 源程序: COUNT EQU30H ;T0中断计数 SNLEDDATA EQU31H ;存储南北数码管显示的数据 SNCOLORFLAG EQU32H ;=1时南北绿灯亮,=2时南北黄灯亮,=3时南北红灯亮 SNLEDDATAINIT EQU33H ;存储南北各颜色灯的初始时间 EWLEDDATA EQU34H ;存储东西数码管显示的数据 EWCOLORFLAG EQU35H ;=1时东西红灯亮,=2时东西绿灯亮,=3时东西黄灯亮 EWLEDDATAINIT EQU36H ;存储东西各颜色灯的初始时间 org0000h lJMPMAIN org0003h ljmpexint0 ORG000BH lJMPINTT0 org0013h ljmpexint1 org0100h ;主函数************************************** MAIN: CALLINIT START: MOVA,COUNT CJNEA,#200,NOT1S ;没到1秒跳转 MOVCOUNT,#00 ;1秒时间到 DECSNLEDDATA MOVA,SNLEDDATA JNZ checkewleddata MOVSNLEDDATA,SNLEDDATAINIT INCSNCOLORFLAG MOVA,SNCOLORFLAG CJNEA,#04,checkewleddata MOVSNCOLORFLAG,#01 checkewleddata: DECEWLEDDATA MOVA,EWLEDDATA JNZ timenotover MOVEWLEDDATA,EWLEDDATAINIT INCEWCOLORFLAG MOVA,EWCOLORFLAG CJNEA,#04,timenotover MOVEWCOLORFLAG,#01 TIMENOTOVER: NOT1S: callewcolorcheck CALLsnCOLORCHECK CALLDISPLAY JMPSTART ;********************************************* ;初始化函数*********************************** INIT: MOVSP,#60H MOVTMOD,#01H MOVTH0,#0eCH MOVTL0,#078H MOVCOUNT,#00H MOVSNLEDDATAINIT,#15 MOVEWLEDDATAINIT,#18 MOVSNLEDDATA,SNLEDDATAINIT MOVEWLEDDATA,EWLEDDATAINIT SETBTR0 ;开定时器0 SETBET0 ;允许定时器0中断 setbex0 ;允许外部0中断 setbex1 ;允许外部1中断 setbit0 ;外部中断0下降沿触发 setbit1 ;外部中断1下降沿触发 SETBEA ;开总中断 MOVP2,#0feH MOVSNCOLORFLAG,#01 MOVEWCOLORFLAG,#01 RET ;***************************************** ;外部中断0*********************************** exint0: pushacc pushpsw mova,p0 pushacc mova,p1 pushacc mova,p2 pushacc clrex1 clrp2.0 clrp2.1 clrp2.2 clrp2.3 setbp1.4 clrp1.1 clrp1.2

王子****青蛙
实名认证
内容提供者


最近下载