单片机程序求完整注释,会注释的帮我一下,谢谢

LOOP:MOVR2,#20置1s计数初值MOVR3,#20红灯亮20SMOVSECOND1,#25东西路口计时显示初值25sMOVSECOND2,#25南北路口计时显示... LOOP: MOV R2,#20 置1s计数初值
MOV R3,#20 红灯亮20S
MOV SECOND1,#25 东西路口计时显示初值25s
MOV SECOND2,#25 南北路口计时显示初值25s
LCALL DISPLAY
LCALL STATEL1 调用状态1
WAIT1:JNB TF0,WAIT1 查询50ms到否
CLR TF0
MOV TH0,#3CH 恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R2,WAIT1 判断1s到否?未到继续状态1
MOV R2,#20 置50ms计数初值
DEC SECIND1 东西路口显示时间减1
DEC SECOND2 南北路口显示时间减1
LCALL DISPLAY
DJNZ R3,WAIT1 状态1维持20s
MOV R2,#5 置50ms计数初值
MOV R3,#3 绿灯闪烁3s
MOV R4,#4 闪烁间隔200ms
MOV SECOND1,#5 东西路口计时显示初值5s
MOV SECOND2,#5 南北路口计时显示初值5s
LCALL DISPLAY
.
.
.
STATE1: 状态1
SETB LED_G1 东西路口路灯亮
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 南北路口红灯亮
RET
.
.
.
DISPLAY: 数码显示
MOV A,SECOND1 东西路口计时寄存器
MOV B,#10
DIV AB
MOV DBUF+3,A
MOV A,B
MOV DBUF+2,A
MOV SECOND2 南北路口计时寄存器
MOV B,#10
DIY AB
MOV DBUF+1,A
MOV A,B
MOV DBUF,A
MOV R0,#DBUF
MOV R1,#TEMP
MOV R7,#4
DP10:MOV DPOTR,#LEDMAP
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7,DP10
MOV R0,#TEMP
MOV R1,#4
DP12:MOV R7,#8
MOV A,@R0
DP13:RLC A
MOV P3.0,C
CLR P3.1
SETB P3.1
DJNZ R7,DP13
INC R0
DJNZ R1,DP12
RET
LENMAP:DB 3FH,06H,5BH,4FH,66H,6DH
DB 7DH,07H,7FH,6FH
ORG 0200H
.
.
.
.
END
89C51控制的交通信号灯的程序
展开
 我来答
shilei891213
2012-05-28
知道答主
回答量:3
采纳率:0%
帮助的人:6万
展开全部
给你一个更加完整的程序

SECOND1 EQU 30H ;东西路口计时寄存器
SECOND2 EQU 31H ;南北路口计时寄存器
LED_G1 BIT P2.2 ;东西路口绿灯
LED_Y1 BIT P2.3 ;东西路口黄灯
LED_R1 BIT P2.4 ;东西路口红灯
LED_G2 BIT P2.5 ;南北路口绿灯
LED_Y2 BIT P2.6 ;南北路口黄灯
LED_R2 BIT P2.7 ;南北路口红灯
ORG 0000H
LJMP START
ORG 0100H
START: MOV TMOD,#01H ;置T0为工作方式1
MOV TH0,#3CH ;置T0定时初值50ms
MOV TL0,#0B0H
CLR TF0
SETB TR0 ;启动T0
CLR A
MOV P1,A ;关闭不相关的LED
LOOP: MOV R2,#20 ;置1s计数初值,50ms*20=1s
MOV R3,#20 ;红灯亮20s
MOV SECOND1,#25 ;东西路口计时初值25s
MOV SECOND2,#25 ;南北路口计时初值25s
LCALL DISPLAY
LCALL STATE1 ;调用状态1
WAIT1: JNB TF0,WAIT1 ;查询50ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R2,WAIT1 ;判断1s到否?未到继续状态1
MOV R2,#20 ;置50ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT1 ;状态1维持20s
MOV R2,#5 ;置50ms计数初值 5*4=20
MOV R3,#3 ;绿灯闪3s
MOV R4,#4 ;闪烁间隔200ms
MOV SECOND1,#5 ;东西路口计时初值5s
MOV SECOND2,#5 ;南北路口计时初值5s
LCALL DISPLAY
WAIT2: LCALL STATE2 ;调用状态2
JNB TF0,WAIT2 ;查询50ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R4,WAIT2 ;判断200ms到否?未到继续状态2
CPL LED_G1 ;东西绿灯闪
MOV R4,#4 ;闪烁间隔200ms
DJNZ R2,WAIT2 ;判1s到否?未到继续状态2
MOV R2,#5 ;置50ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT2 ;状态2维持3s
MOV R2,#20 ;置50ms计数初值
MOV R3,#2 ;黄灯闪2s
MOV SECOND1,#2 ;东西路口计时初值2s
MOV SECOND2,#2 ;南北路口计时显示2s
LCALL DISPLAY
WAIT3: LCALL STATE3 ;调用状态3
JNB TF0,WAIT3 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,WAIT3 ;判断1s到否?未到继续状态3
MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT3 ;状态3维持2s
MOV R2,#20 ;置50ms计数初值
MOV R3,#20 ;红灯闪20s
MOV SECOND1,#25 ;东西路口计时初值25s
MOV SECOND2,#25 ;南北路口计时初值25s
LCALL DISPLAY
WAIT4: LCALL STATE4 ;调用状态4
JNB TF0,WAIT4 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,WAIT4 ;判断1s到否?未到继续状态4
MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT4 ;状态4维持20s
MOV R2,#5 ;置50ms计数初值
MOV R4,#4 ;红灯闪20ms
MOV R3,#3 ;绿灯闪3s
MOV SECOND1,#5 ;东西路口计时初值5s
MOV SECOND2,#5 ;南北路口计时初值5s
LCALL DISPLAY
WAIT5: LCALL STATE5 ;调用状态5
JNB TF0,WAIT5 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R4,WAIT5 ;判断200ms到否?未到继续状态5
CPL LED_G2 ;南北绿灯闪
MOV R4,#4 ;闪烁200ms
DJNZ R2,WAIT5 ;判断1s到否?未到继续状态5
MOV R2,#5 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT5 ;状态5维持3s
MOV R2,#20 ;置50ms计数初值
MOV R3,#2 ;红灯闪2s
MOV SECOND1,#2 ;东西路口计时初值2s
MOV SECOND2,#2 ;南北路口计时初值2s
LCALL DISPLAY
WAIT6: LCALL STATE6 ;调用状态6
JNB TF0,WAIT6 ;查询100ms到否
CLR TF0
MOV TH0,#3CH ;恢复T0定时初值100ms
MOV TL0,#0B0H
DJNZ R2,WAIT6 ;判断1s到否?未到继续状态6
MOV R2,#20 ;置100ms计数初值
DEC SECOND1 ;东西路口时间减1s
DEC SECOND2 ;南北路口时间减1s
LCALL DISPLAY
DJNZ R3,WAIT6 ;状态6维持2s
LJMP LOOP ;大循环
STATE1: ;状态1
SETB LED_G1 ;东西路口绿灯亮
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 ;南北路口红灯亮
RET
STATE2: ;状态2
CLR LED_Y1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 ;南北路口红灯亮
RET
STATE3: ;状态3
CLR LED_G1
CLR LED_R1
CLR LED_G2
CLR LED_Y2
SETB LED_R2 ;南北路口红灯亮
SETB LED_Y1 ;东西路口绿灯亮
RET
STATE4: ;状态4
CLR LED_G1
CLR LED_Y1
SETB LED_R1 ;东西路口红灯亮
SETB LED_G2 ;南北路口绿灯亮
CLR LED_Y2
CLR LED_R2
RET
STATE5: ;状态5
CLR LED_G1
CLR LED_Y1
SETB LED_R1 ;东西路口红灯亮
CLR LED_Y2
CLR LED_R2
RET
STATE6: ;状态6
CLR LED_G1
CLR LED_Y1
SETB LED_R1 ;东西路口红灯亮
CLR LED_G2
CLR LED_R2
SETB LED_Y2 ;南北路口红灯亮
RET
LEDMAP:
DB 3FH,06H,5BH,4FH,66H,6DH ;0,1,2,3,4,5
DB 7DH,07H,7FH,6FH,77H,7CH ;6,7,8,9,A,B
DB 58H,5EH,7BH,71H,0,40H ;C,D,E,F, ,-
END
深圳思驰科技有限公司_
2024-10-23 广告
深圳思驰科技是国内先进入芯片解密领域的公司,拥有数十年的丰富经验,成功帮助国内外企业、政府及知名科研机构攻克多个技术难题。在医疗电子、工控设备、军事航天、通信设备、广电设备、交通设备、汽车电子、家用电子等行业都成功推出了多款创新产品,熟悉这... 点击进入详情页
本回答由深圳思驰科技有限公司_提供
悲听9
2012-05-25 · 超过32用户采纳过TA的回答
知道答主
回答量:202
采纳率:0%
帮助的人:120万
展开全部
真巧,我今天很闲
LOOP: MOV R2,#20 置1s计数初值
MOV R3,#20 红灯亮20S
MOV SECOND1,#25 东西路口计时显示初值25s
MOV SECOND2,#25 南北路口计时显示初值25s
LCALL DISPLAY
LCALL STATEL1 调用状态1
WAIT1:JNB TF0,WAIT1 查询50ms到否
CLR TF0
MOV TH0,#3CH 恢复T0定时初值50ms
MOV TL0,#0B0H
DJNZ R2,WAIT1 判断1s到否?未到继续状态1
MOV R2,#20 置50ms计数初值
DEC SECIND1 东西路口显示时间减1
DEC SECOND2 南北路口显示时间减1
LCALL DISPLAY
DJNZ R3,WAIT1 状态1维持20s
MOV R2,#5 置50ms计数初值
MOV R3,#3 绿灯闪烁3s
MOV R4,#4 闪烁间隔200ms
MOV SECOND1,#5 东西路口计时显示初值5s
MOV SECOND2,#5 南北路口计时显示初值5s
LCALL DISPLAY
.
.
.
STATE1: 状态1
SETB LED_G1 绿灯1亮 东西路口路灯亮
CLR LED_Y1 黄灯1灭
CLR LED_R1 红灯1灭
CLR LED_G2 绿灯2灭
CLR LED_Y2 黄灯2灭
SETB LED_R2 红灯2灭 南北路口红灯亮
RET
.
.
.
DISPLAY: 数码管显示(相当于读秒)两个显示器同时显示秒
MOV A,SECOND1 东西路口计时寄存器
MOV B,#10
DIV AB
MOV DBUF+3,A
MOV A,B
MOV DBUF+2,A
MOV SECOND2 南北路口计时寄存器
MOV B,#10
DIY AB
MOV DBUF+1,A
MOV A,B
MOV DBUF,A
MOV R0,#DBUF
MOV R1,#TEMP
MOV R7,#4
DP10:MOV DPOTR,#LEDMAP 查表,读出对应显示码段
MOV A,@R0
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7,DP10
MOV R0,#TEMP
MOV R1,#4
DP12:MOV R7,#8
MOV A,@R0
DP13:RLC A
MOV P3.0,C 这段是硬件接口,送出显示的码段
CLR P3.1
SETB P3.1
DJNZ R7,DP13
INC R0
DJNZ R1,DP12
RET
LENMAP:DB 3FH,06H,5BH,4FH,66H,6DH 此段为显示用的真值表(针对不同硬件不一样)
DB 7DH,07H,7FH,6FH
ORG 0200H
追问
89C51单片机交通灯程序注释,会的,帮我注释一下,谢谢 
这个能不能再帮我注释一下 谢谢了
追答
你还需要注释哪行啊?很清晰了?!告诉我哪个子程序不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亿忘半星2s
2012-05-24
知道答主
回答量:61
采纳率:0%
帮助的人:26万
展开全部
用c语言吧,汇编太抽象了,难懂。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式