第1个回答 2009-12-24
51单片机的程序如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INTA
ORG 000BH
LJMP SEV1
ORG 0013H
LJMP INTB
ORG 001BH
LJMP SEV2
ORG 0030H
MAIN:MOV SP,#60H
MOV A,#00H
MOV 30H,A
MOV 31H,A
MOV 32H,A
MOV 33H,#0CH
MOV 34H,A
MOV 35H,A
MOV 44H,#80H
MOV 45H,#40H
MOV 46H,#20H
MOV 47H,#10H
CLR RS0
CLR RS1
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV R5,#12H
MOV TMOD,#11H
MOV TH1,#3CH
MOV TL1,#0B0H
MOV TH0,#0ECH
MOV TL0,#78H
MOV IP,#08H
MOV TCON,#50H
MOV IE,#8FH
LOP:MOV B,#10
MOV A,33H
DIV AB
MOV 40H,A
MOV 41H,B
MOV B,#10
MOV A,32H
DIV AB
MOV 42H,A
AA:MOV 43H,B
SETB RS1
CLR RS0
A1:MOV R2,35H
CJNE R2,#0,NT
MOV R2,34H
CJNE R2,#0,NT
SJMP BB
NT:MOV A,35H
CJNE A,33H,BB
MOV A,34H
CJNE A,32H,BB
CLR P3.7
SJMP LOP
BB:SETB P3.7
SJMP LOP
SEV1:PUSH ACC
PUSH PSW
SETB RS1
SETB RS0
CLR TR0
MOV R2,#04H
MOV R0,#40H
MOV R1,#44H
FLASH1:MOV A,@R1
ADD A,@R0
MOV P1,A
LCALL DELAY1
FLASH:INC R0
INC R1
DJNZ R2, FLASH1
MOV TH0,#0ECH
MOV TL0,#78H
POP PSW
POP ACC
SETB ET0
SETB TR0
SETB EA
RETI
DELAY1:MOV R3,#02H
AGAIN:MOV R4,#0F8H
DELAY:DJNZ R4,DELAY
DJNZ R3,AGAIN
RET
;计时程序清单:
SEV2:MOV TH1,#3CH
MOV TL1,#0B0H
CLR EA
PUSH ACC
PUSH B
PUSH PSW
CLR RS1
CLR RS0
INC R2
CJNE R2,#0AH,EN
MOV R2,#0
INC R3
CJNE R3,#3CH,EN
MOV R3,#0
INC R4
MOV 32H,R4
CJNE R4,#3CH,EN
MOV R4,#0
MOV 32H,R4
INC R5
MOV 33H,R5
CJNE R5,#18H,EN
MOV R5,#0
MOV 33H,R5
EN:POP PSW
POP B
POP ACC
SETB EA
RETI
;设置当前时间程序清单:
INTA:SETB P3.0
SETB P3.1
CLR TR1
CLR ET1
CLR EX0
CLR EX1
SETB EA
SETB ET0
SETB PT0
PUSH ACC
PUSH B
PUSH PSW
MOV 31H,#04H
MOV 29H,#00H
LP0:JB P3.0,NEXT0
LCALL DELAY1
JB P3.0,LP0
LP1:JNB P3.0,LP1
INC 29H
MOV 30H,#1H
SJMP LO1
NEXT0:JB P3.1,L1
LCALL DELAY1
JB P3.1,NEXT0
LD1:JNB P3.1,LD1
MOV 29H,#0
MOV 30H,#1
DJNZ 31H,LP0
SJMP LL
LO1:MOV A,31H
CJNE A,#04H,LO2
MOV A,29H
CJNE A,#03H,LA1
MOV 29H,#00H
LA1:MOV 40H,29H
SJMP L1
LO2:MOV A,31H
CJNE A,#03H,LO3
MOV A,40H
CJNE A,#2,A11
MOV A,29H
CJNE A,#4,LA2
MOV 29H,#0
SJMP LA2
A11:MOV A,29H
CJNE A,#0AH,LA2
MOV 29H,#00H
LA2:MOV 41H,29H
SJMP L1
LO3:MOV A,31H
CJNE A,#02H,LO4
MOV A,29H
CJNE A,#06H,LA3
MOV 29H,#00H
LA3:MOV 42H,29H
SJMP L1
LO4:MOV A,29H
CJNE A,#0AH,LA4
MOV 29H,#00H
LA4:MOV 43H,29H
L1:MOV A,31H
CJNE A,#00H,LP0
LL:MOV A,40H
MOV B,#10
MUL AB
ADD A,41H
MOV 33H,A
MOV A,42H
MOV B,#10
MUL AB
ADD A,43H
MOV 32H,A
PUSH PSW
CLR RS0
CLR RS1
MOV R4,32H
MOV R5,33H
POP PSW
POP PSW
POP B
POP ACC
MOV TH1,#3CH
MOV TL1,#0B0H
SETB TR1
SETB ET1
SETB PT1
SETB EX0
SETB EX1
CLR TR0
MOV TH0,#0FFH
MOV TL0,#00H
SETB TR0
SETB ET0
RETI
;设置定时(闹钟)时间程序清单:
INTB:SETB P3.0
SETB P3.1
CLR EX0
CLR EX1
SETB EA
SETB ET0
SETB ET1
SETB PT0
PUSH ACC
PUSH B
PUSH PSW
MOV 31H,#04H
MOV 29H,#00H
LP0B:JB P3.0,NEXTB
LCALL DELAY1
JB P3.0,LP0B
LP1B:JNB P3.0,LP1B
INC 29H
MOV 30H,#1H
SJMP LO1B
NEXTB: JB P3.1,L1B
LCALL DELAY1
JB P3.1,NEXTB
LD1B:JNB P3.1,LD1B
MOV 29H,#0
MOV 30H,#1
DJNZ 31H,LO1B
SJMP LLB
LO1B:MOV A,31H
CJNE A,#04H,LO2B
MOV A,29H
CJNE A,#03H,LA1B
MOV 29H,#00H
LA1B:MOV 40H,29H
SJMP L1B
LO2B:MOV A,31H
CJNE A,#03H,LO3B
MOV A,40H
CJNE A,#2,A1B
MOV A,29H
CJNE A,#4,LA2B
MOV 29H,#0
SJMP LA2B
A1B:MOV A,29H
CJNE A,#0AH,LA2B
MOV 29H,#00H
LA2B:MOV 41H,29H
SJMP L1B
LO3B:MOV A,31H
CJNE A,#02H,LO4B
MOV A,29H
CJNE A,#06H,LA3B
MOV 29H,#00H
LA3B:MOV 42H,29H
SJMP L1B
LO4B:MOV A,29H
CJNE A,#0AH,LA4B
MOV 29H,#00H
LA4B:MOV 43H,29H
L1B:MOV A,31H
CJNE A,#00H,LP0B
LLB:MOV A,40H
MOV B,#10
MUL AB
ADD A,41H
MOV 35H,A
MOV A,42H
MOV B,#10
MUL AB
ADD A,43H
MOV 34H,A
POP PSW
POP B
POP ACC
CLR TR0
MOV TH0,#0FFH
MOV TL0,#00H
SETB TR0
SETB EX1
SETB EX0
SETB ET0
SETB EA
RETI
END
这个程序是别人的。不知楼主你能不能用。这几天我也要做数字钟的实验。挺纠结的本回答被提问者采纳