单片机编程,要汇编语言呀

单片机编程,要汇编语言呀 单片机控制红色LED灯点亮,延时3秒后红灯熄灭,接着绿灯点亮,延时3秒后,绿灯熄灭,接着黄灯以500毫秒闪烁,闪烁三次后红灯点亮,整个过程循环执行
谁会编呀,51的板子,谁会编,快点呀

第1个回答  2011-09-04
;大哥,以后你提这样的问题的时候,请先把图纸发出来,三个灯接哪个口啊?你的那个延时是要用中断还是普通模式啊?我先帮你写个大概吧,你自己改啊,太久没写汇编的程序了,你自己修改调试啊,特别市中断延时,时间上不知道对不对,流程你自己可能也要修改下
ORG 0
SJMP start ;主程序
ORG 000B
SJMP T3S ;T0中断程序,延时3秒用的
ORG 001B
SJMP T500ms ;T1中断程序,延时500ms用的
redlight BIT P1.0 ;P1.0控制红灯(PS我忘记输出端口是否可以用BIT伪指令了哈)
greenlight BIT P1.1;P1.1控制绿灯
yellowlight BIT P1.2;P1.2控制黄灯
one BIT 01H ;做一个标志位,其实也可以不要,这个你自己想啊
start: CLR redlight;主程序从这里开始
CLR greenlight;我默认所有的灯都是共地的
CLR yellowlight;以上三条指令是熄灭所有三个灯
CLR 01H
MOV R1,#0
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV TH0 #3CH
MOV TL0 #0B0H
SETB TR0
SETB redlight
AAA: JB 01H OUT;假如三秒时间到了就继续往下走,否则就等
SJMP AAA
OUT:CLR redlight; 三秒后红灯熄灭
CLR 01H
SETB greenlight
MOV TH0 #3CH
MOV TL0 #0B0H
SETB TR0
BBB: JB 01H OUT1;假如三秒时间到了就继续往下走,否则就等
SJMP BBB
OUT1:CLR greenlight
CLR 01H
MOV 01H #0 ;这里的01H是字节,不是位
CCC:SETB yellowlight
MOV TH1 #3CH
MOV TL1 #0B0H
SETB TR1
DDD:JB 01H OUT2
SJMP DDD
OUT2:CLR yellowlight
MOV TH1 #3CH
MOV TL1 #0B0H
SETB TR1
EEE: JB 01H OUT3
SJMP EEE
OUT3: ADD A,#01H
MOV A,01H
CJNE A,#03H,CCC ;闪三次
SJMP strat ;循环
T3S: ;延时3秒
INC R1
CJNE R1,#100,T1T
INC R2
CJNE R2,#30,T1T
SETB 01H
MOV R1,#0
MOV R2,#0
SJMP T2T
T1T: MOV #03CH
MOV#0B0H
SETB TR0
T2T:RETI

T500ms: ;延时500MS
INC R3
CJNE R3,#100,T1T
INC R4
CJNE R4,#05,T1T
SETB 01H
MOV R3,#0
MOV R4,#0
SJMP T2T
T1T: MOV #03CH
MOV#0B0H
SETB TR1
T2T:RETI
第2个回答  2011-09-08
如果用内存1K的单片机可能用c空间不大够,这种程序还是用汇编好了,如果真的涉及到了高解析事件,我奉劝大家还是用汇编!当然手机程序肯定用c或者Java
第3个回答  2011-09-04
汇编语言编是非常烦琐的,建议用C语言编。本人觉得出去工作对汇编的要求是你基本懂汇编语言的指令,能读懂就行了,你会不会用汇编写程序是另外一回事。
第4个回答  2011-09-04
哥们,你灯都接在P几口了啊,怎么接的啊,你不说清楚,编个毛啊,程序简单接口不对也白扯啊
第5个回答  2011-09-06
C 简单
相似回答