第2个回答 2008-01-05
硬件电路不能上传啊。
有个程序,不过延时应该要改一下。
;12MHz,定时1s左右
;T0初值3CB0H->50ms
;中断20次
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP T0INT
ORG 0020H
MAIN:
;中断允许
SETB EA
SETB ET0
SETB ET1
;定时器设置
MOV TMOD, #01H
MOV TL0, #0B0H
SETB TR0
MOV R3, #14H ;中断20次
MOV A, #10H ;16 SECOND
MOV P0, #0AAH
ED: SJMP ED
T0INT: MOV TH0, #3CH
MOV TL0, #0B0H
;;;;;;;;;;;;;;;;;;;;;;;;
CJNE A, #0DH, ST1
AJMP ST11
ST1: JNC ST11
AJMP NEXT1
ST11: MOV P0, #0A5H
AJMP INTEX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
NEXT1: CJNE A, #0BH, ST2
AJMP ST22
ST2: JNC ST22
AJMP NEXT2
ST22: CLR P0.6
CLR P0.4
CPL P0.3
CPL P0.1
AJMP INTEX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
NEXT2: CJNE A, #09H, ST3
AJMP ST33
ST3: JNC ST33
AJMP NEXT3
ST33: MOV P0, #0A0H
AJMP INTEX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
NEXT3: CJNE A, #05H, ST4
AJMP ST44
ST4: JNC ST44
AJMP NEXT4
ST44: MOV P0, #5AH
AJMP INTEX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
NEXT4: CJNE A, #03H, ST5
AJMP ST55
ST5: JNC ST55
AJMP NEXT5
ST55: CLR P0.2
CLR P0.0
CPL P0.7
CPL P0.5
AJMP INTEX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
NEXT5: CJNE A, #01H, ST6
AJMP ST66
ST6: JNC ST66
AJMP INTEX
ST66: MOV P0, #0AH
AJMP INTEX
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTEX: DJNZ R3, EXIT
MOV R3, #14H
DEC A
JNZ EXIT
MOV A,#10H
EXIT: RETI
END