用单片机汇编语言实现三盏灯每隔两秒亮一盏
答案:2 悬赏:0 手机版
解决时间 2021-03-23 22:18
- 提问者网友:抽煙菂渘情少年
- 2021-03-23 03:30
谢谢啦
最佳答案
- 五星知识达人网友:十鸦
- 2021-03-23 04:40
LED1 EQU P1.0
LED2 EQU P1.1
LED3 EQU P1.2
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
SETB LED1
SETB LED2
SETB LED3
MOV R2,#0
MOV R3,#0
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
INC R2
MOV A,R2
CJNE A,#40,T0E
MOV R2,#0
INC R3
MOV A,R3
CJNE A,#3,T00
T00:
JC,T0C
MOV R3,#0
T0C:
DEC A
JNZ T01
CLR LED1
SETB LED2
SETB LED3
RETI
T01:
DEC A
JNZ T02
SETB LED1
CLR LED2
SETB LED3
RETI
T02:
SETB LED1
SETB LED2
CLR LED3
T0E:
RETI
END
LED2 EQU P1.1
LED3 EQU P1.2
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
SETB ET0
SETB EA
SETB LED1
SETB LED2
SETB LED3
MOV R2,#0
MOV R3,#0
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
INC R2
MOV A,R2
CJNE A,#40,T0E
MOV R2,#0
INC R3
MOV A,R3
CJNE A,#3,T00
T00:
JC,T0C
MOV R3,#0
T0C:
DEC A
JNZ T01
CLR LED1
SETB LED2
SETB LED3
RETI
T01:
DEC A
JNZ T02
SETB LED1
CLR LED2
SETB LED3
RETI
T02:
SETB LED1
SETB LED2
CLR LED3
T0E:
RETI
END
全部回答
- 1楼网友:西岸风
- 2021-03-23 05:57
你完全可以用多个for语句,实现led的全亮、全灭、渐亮渐灭、按规律闪烁、然后再试着融合,最终把它们全放到while(1)里面,你就会看led实现的多种现象,至于具体的方法,就是对p1 口附数值了,研究一下各个小灯对应的位置,答案就会出来了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯