C51单片机编程 具体要求如图 求源程序

如题所述

主要是灯状态变化之间延时的问题,另外你可以一次只操作一个LED灯的状态,也可以每次都是8个灯一起操作。简单的做法是可以同数组定义所有的灯状态,依次间隔读取即可。自己动手吧,这点程序都要麻烦别人,那以后就不用在这行业做了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-24
;k1=p1.1, 对地触发表示按键按下; P2= led*8; 共阳极; 6MHZ
MOV P2,#0FFH;
LOOP1:JNB K1,LIGHTALL
SJMP LOOP1

LIGHTALL: MOV P2,#00;
CALL DELAY1S
JNB K1,LIGHTONE
AJMP LIGHTONE
LIGHTONE: SETB P2.0
CALL DELAY1S
SETB P2.1
CALL DELAY1S
SETB P2.2
CALL DELAY1S
SETB P2.3
CALL DELAY1S
SETB P2.4
CALL DELAY1S
SETB P2.5
CALL DELAY1S
SETB P2.6
CALL DELAY1S
SETB P2.7
CALL DELAY1S
MOV P2,#0FFH
CALL DELAY1S

JNB K1,SHANSHUO
AJMP SHANSHUO
SHANSHUO:
MOV P2,#00H
CALL DELAY1S
MOV P2,#0FFH
CALL DELAY1S
MOV P2,#00H
CALL DELAY1S
MOV P2,#0FFH
CALL DELAY1S
MOV P2,#00H
CALL DELAY1S
MOV P2,#0FFH
CALL DELAY1S
AJMP LOOP1

DELAY1S: MOV R1,#200
D1:MOV R2,#250
DJNZ R2,$
DJNZ R1,D1
RET本回答被提问者和网友采纳
相似回答