作业帮 > 综合 > 作业

单片机课程设计,高手请进

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/23 09:41:46
单片机课程设计,高手请进
编一个模拟交通灯的汇编程序
现有材料SUPER S51板子一块
要求:在数码管上显示35S,且是南北东西各35S,当时间达到30S时,让绿灯的一边变为黄灯,另外加个外部中断程序,用红外接收与发送程序运行
单片机课程设计,高手请进
交通信号灯模拟控制系统设计程序流程图
开始

8051初使化

四个路口红灯亮

东西红灯亮,南北绿灯亮,延时

东西红灯亮,南北黄灯闪烁,延时

东西绿灯亮,南北红灯亮,延时

东西黄灯闪烁,南北红灯亮,延时
交通信号灯模拟控制系统主程序
ORG 0000H
SJMP A3
ORG 0030H
A3:MOV SP,#60H ;设栈指针初值
MOV A,#24H
MOV P1,A
SETB P3.2
CLR P3.3
CLR P3.4
SETB P3.5 ;全部红灯亮
MOV R4,#00H ;显示0秒
MOV R7,#00H ;显示0秒
MOV R2,#03H
LCALL XI ;调用子程序
A2 :MOV A,#0CH
MOV P1,A
SETB P3.2
SETB P3.3
CLR P3.4
CLR P3.5 ;东西红灯,南北绿灯
MOV R4,#14H ; 显示20秒
LOOP2 :MOV R2,#03H
LCALL XI
DJNZ R4,LOOP2 ;判断20秒显示时间到否
MOV R2,#03H
LCALL XI
LOOP8:MOV R2,#03H ;南北黄灯闪3次
LCALL XI
MOV R4,#05H ;设南北黄灯亮长显示5秒
SETB P3.2
CLR P3.3
A1:MOV A,#14H
MOV P1 ,A
SETB P3.4
CLR P3.5 ;东西红灯,南北黄灯
MOV R2,#01H ;定时
LCALL DELAY ;调用延时子程序
MOV A ,#04H
MOV P1 ,A
CLR P3.4
CLR P3.5 ;东西红灯,南北不亮即意思要南北黄灯闪烁
MOV R2 ,#01H ;定时
LCALL DELAY
DJNZ R4,LOOP8 ;判断南北黄灯闪烁,显示5秒到否?
MOV A,#61H
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4
SETB P3.5 ;东西绿灯,南北红灯
MOV R4,#14H ;显示20秒
LOOP3:
MOV R2,#03H
LCALL XI
DJNZ R4,LOOP3 ;判断20秒显示时间到否
MOV R7,#05H ;设东西黄灯亮长显示5秒
SETB P3.5
A0:MOV A,#0A2H
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4 ;东西黄灯,南北红灯
MOV R2,#01H ;定时
LCALL DELAY
MOV A,#20H ;
MOV P1,A
CLR P3.2
CLR P3.3
CLR P3.4 ;南北红灯,东西不亮即意思要东西黄灯闪烁
MOV R2,#01H ;定时
LCALL DELAY
DJNZ R7,A0 ;判断东西黄灯闪烁,显示5秒到否?
LJMP A2 ;循环回状态1,即东西红灯,南北黄灯
DELAY:PUSH 2
PUSH 1
PUSH 0 ;进栈
DELAY1:MOV 1,#00H
DELAY2:MOV 0,#0B2H
DJNZ 0,$ ;判断是否运行完0B2H
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2 ;出栈
DJNZ R2 ,DELAY ; 判断R2是否运行完
RET ;返回主程序
XI:MOV A,R4
MOV B,#10
DIV AB
MOV R6,A
MOV DPTR,#TAB
MOV A,B
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S:DJNZ R7,H55S
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
MOV R7,#0FH
H55S1:DJNZ R7,H55S1
LCALL DELAY
RET
TAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h
DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh
END
只要小改一下就行了