要求P1.0~P1.4控制4个按键,P0.0-P0.4控制四个灯,P3.2口接一个按键用外部中断0控制所有灯灭,定时器中断让四个灯分别延时1s,2s,3s,4s闪亮,单片机晶振12MZH
。要用汇编语言!!
下面是我自己写的程序 最好能在我的基础上改
ORG 0000H
SJMP MAIN
ORG 000BH
SJMP CTC0
ORG 0003H
LJMP OUT
ORG 0030H
MAIN:
MOV SP,#60H
MOV TMOD,#01H
MOV TL0,#03CH ;定时器初值50ms
MOV TH0,#0B0H
SETB TR0
SETB EX0
SETB ET0
SETB EA
ACALL SEND ;寄存器初值
M1: JNB P1.0,L5
JNB P1.1,L6
JNB P1.2,L7
JNB P1.3,L8
L5: MOV R0,#00H
SJMP L1
L6: MOV R1,#00H
SJMP L2
L7: MOV R2,#00H
SJMP L3
L8: MOV R3,#00H
SJMP L4
L1: MOV R7,#14H ;定时1s
DJNZ R7,
L2: MOV R7,#28H ;定时2s
DJNZ R7,
L3: MOV R7,#3CH ;定时3s
DJNZ R7,
L4: MOV R7,#50H ;定时4s
DJNZ R7,
SEND:
MOV P0,#0FFH
MOV R0,#0FFH
MOV R1,#0FFH
MOV R2,#0FFH
MOV R3,#0FFH
RET
CTC0:
MOV TL0,#03CH
MOV TH0,#0B0H
CJNE R0,#00H,K1
CJNE R1,#00H,K2
CJNE R2,#00H,K3
CJNE R3,#00H,K4
K1: CPL P0.0
LJMP M1
K2: CPL P0.1
SJMP M1
K3: CPL P0.3
LJMP M1
K4: CPL P0.4
LJMP M1
RETI
OUT:
ACALL SEND
RETI
END
|