电子时钟程序(单片机汇编语言编写,不要C语言)

作者&投稿:仲长富 (若有异议请与网页底部的电邮联系)
电子时钟程序(单片机汇编语言编写,不要C语言)~

KEYVAL EQU 30H
KEYTM EQU 31H
KEYSCAN EQU 32H
DAT EQU 33H
SCANLED EQU 39H
CLK EQU 77H
SEC EQU 78H
MIN EQU 79H
HOUR EQU 7AH
PAUSE BIT 00H
DOT BIT 01H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR ;50ms定时
ORG 001BH
LJMP T1ISR ;扫描显示
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#11H
MOV TH0,#03CH
MOV TL0,#0B0H
MOV TH1,#0ECH
MOV TL1,#078H
MOV KEYVAL,#0
MOV SCANLED,#0
MOV 33H,#10H
MOV 34H,#10H
MOV 35H,#10H
MOV 36H,#10H
MOV 37H,#10H
MOV 38H,#10H
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
MOV CLK,#0
CLR PAUSE
SETB EA
SETB ET1
SETB TR1
LOOP:
LCALL KEYSEL
MOV A,KEYVAL
CJNE A,#0FFH,LOOP1
SJMP LOOP
LOOP1:
CJNE A,#10,LOOP2 ;“ON”启动
SETB TR0
SETB ET0
SETB PAUSE
SJMP LOOP
LOOP2:
CJNE A,#11,LOOP3 ;“=”清零
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
LCALL DISCHG
SJMP LOOP
LOOP3:
CJNE A,#15,LOOP4 ;“+”暂停
CLR TR0
CLR ET0
CLR PAUSE
SJMP LOOP
LOOP4:
CJNE A,#14,LOOP5 ;“-”清显示暂停
MOV 33H,#10H
MOV 34H,#10H
MOV 35H,#10H
MOV 36H,#10H
MOV 37H,#10H
MOV 38H,#10H
CLR TR0
CLR ET0
CLR PAUSE
SJMP LOOP
LOOP5:
CJNE A,#10,LOOP6 ;数字键
LOOP6:
JC LOOP7
LJMP LOOP
LOOP7:
JNB PAUSE,LOOP8 ;暂停状态可以输入数字键
LJMP LOOP
LOOP8:
MOV 33H,34H
MOV 34H,35H
MOV 35H,36H
MOV 36H,37H
MOV 37H,38H
MOV 38H,KEYVAL
MOV A,33H
SWAP A
ORL A,34H
LCALL BCDH
MOV HOUR,A
MOV A,35H
SWAP A
ORL A,36H
LCALL BCDH
MOV MIN,A
MOV A,37H
SWAP A
ORL A,38H
LCALL BCDH
MOV SEC,A
LJMP LOOP
;------------------
;BCD转换为十六进制
BCDH:
MOV B,#10H
DIV AB
MOV R7,B
MOV B,#10
MUL AB
ADD A,R7
RET
;------------------
;十六进制转换为BCD
HBCD:
MOV B,#10
DIV AB
SWAP A
ORL A,B
RET
;------------------
KEYSEL:
MOV KEYVAL,#0
MOV KEYSCAN,#0EFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS1
MOV KEYVAL,A
SJMP KEYRTN
KEYS1:
MOV KEYSCAN,#0DFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS2
CLR C
ADD A,#4
MOV KEYVAL,A
SJMP KEYRTN
KEYS2:
MOV KEYSCAN,#0BFH
LCALL GETKEY
MOV A,KEYTM
JZ KEYS3
CLR C
ADD A,#8
MOV KEYVAL,A
SJMP KEYRTN
KEYS3:
MOV KEYSCAN,#7FH
LCALL GETKEY
MOV A,KEYTM
JZ KEYRTN
CLR C
ADD A,#12
MOV KEYVAL,A
KEYRTN:
LCALL CHGKEY
RET
;--------------------
GETKEY:
MOV KEYTM,#0
MOV A,KEYSCAN
MOV P3,A
NOP
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY
MOV R2,#10
LCALL DELAY
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JZ NOKEY
MOV A,P3
ANL A,#0FH
MOV R7,A
SF:
MOV A,P3
ANL A,#0FH
XRL A,#0FH
JNZ SF
MOV A,R7
CJNE A,#0EH,NK1
MOV KEYTM,#1
SJMP NOKEY
NK1:
CJNE A,#0DH,NK2
MOV KEYTM,#2
SJMP NOKEY
NK2:
CJNE A,#0BH,NK3
MOV KEYTM,#3
SJMP NOKEY
NK3:
CJNE A,#07H,NOKEY
MOV KEYTM,#4
NOKEY: RET
;--------------------
DELAY:
MOV R3,#50
DELAY1:
MOV R4,#100
DJNZ R4,$
DJNZ R3,DELAY1
DJNZ R2,DELAY
RET
;--------------------
T0ISR:
PUSH ACC
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC CLK
MOV A,CLK
CJNE A,#20,T0ISRE
MOV CLK,#0
INC SEC
MOV A,SEC
CJNE A,#60,T0ISRE
MOV SEC,#0
INC MIN
MOV A,MIN
CJNE A,#60,T0ISRE
MOV MIN,#0
INC HOUR
MOV A,HOUR
CJNE A,#24,T0ISRE
MOV SEC,#0
MOV MIN,#0
MOV HOUR,#0
T0ISRE:
LCALL DISCHG
POP ACC
RETI
;--------------------
DISCHG:
MOV A,HOUR
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 34H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 33H,A
MOV A,MIN
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 36H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 35H,A
MOV A,SEC
LCALL HBCD
PUSH ACC
ANL A,#0FH
MOV 38H,A
POP ACC
ANL A,#0F0H
SWAP A
MOV 37H,A
RET
;--------------------
T1ISR:
PUSH ACC
CLR TR1
MOV TH1,#0ECH
MOV TL1,#78H
SETB TR1
MOV DPTR,#LEDTAB
T100:
MOV R0,#DAT
MOV A,SCANLED
ADD A,R0
MOV R0,A
MOV A,SCANLED
JNZ T101
MOV P2,#01H
CLR DOT
SJMP T1DIS
T101:
DEC A
JNZ T102
MOV P2,#02H
SETB DOT
SJMP T1DIS
T102:
DEC A
JNZ T103
MOV P2,#04H
CLR DOT
SJMP T1DIS
T103:
DEC A
JNZ T104
MOV P2,#08H
SETB DOT
SJMP T1DIS
T104:
DEC A
JNZ T105
MOV P2,#10H
CLR DOT
SJMP T1DIS
T105:
MOV P2,#20H
CLR DOT
T1DIS:
MOV A,@R0
MOVC A,@A+DPTR
JNB DOT,T1DIS1
ORL A,#01H
T1DIS1:
CPL A
MOV P0,A
INC SCANLED
MOV A,SCANLED
CJNE A,#6,T1END
MOV SCANLED,#0
T1END:
POP ACC
RETI
;--------------------
CHGKEY:
MOV A,KEYVAL
JZ KV16
DEC A
JNZ KV01
MOV KEYVAL,#7
RET
KV01:
DEC A
JNZ KV02
MOV KEYVAL,#4
RET
KV02:
DEC A
JNZ KV03
MOV KEYVAL,#1
RET
KV03:
DEC A
JNZ KV04
MOV KEYVAL,#10
RET
KV04:
DEC A
JNZ KV05
MOV KEYVAL,#8
RET
KV05:
DEC A
JNZ KV06
MOV KEYVAL,#5
RET
KV06:
DEC A
JNZ KV07
MOV KEYVAL,#2
RET
KV07:
DEC A
JNZ KV08
MOV KEYVAL,#0
RET
KV08:
DEC A
JNZ KV09
MOV KEYVAL,#9
RET
KV09:
DEC A
JNZ KV10
MOV KEYVAL,#6
RET
KV10:
DEC A
JNZ KV11
MOV KEYVAL,#3
RET
KV11:
DEC A
JNZ KV12
MOV KEYVAL,#11
RET
KV12:
DEC A
JNZ KV13
MOV KEYVAL,#12
RET
KV13:
DEC A
JNZ KV14
MOV KEYVAL,#13
RET
KV14:
DEC A
JNZ KV15
MOV KEYVAL,#14
RET
KV15:
DEC A
JNZ KV16
MOV KEYVAL,#15
RET
KV16:
MOV KEYVAL,#0FFH
RET
;--------------------
LEDTAB: DB 0FCH ;"0" 00H
DB 60H ;"1" 01H
DB 0DAH ;"2" 02H
DB 0F2H ;"3" 03H
DB 66H ;"4" 04H
DB 0B6H ;"5" 05H
DB 0BEH ;"6" 06H
DB 0E0H ;"7" 07H
DB 0FEH ;"8" 08H
DB 0F6H ;"9" 09H
DB 0EEH ;"A" 0AH
DB 3EH ;"B" 0BH
DB 9CH ;"C" 0CH
DB 7AH ;"D" 0DH
DB 9EH ;"E" 0EH
DB 8EH ;"F" 0FH
DB 00H ;" " 10H
;--------------------
END

应该找不到免费的吧

这个电子钟程序已经基本符合你的要求。希望能对你有用。
程序说明:
显示的时间格式为:12-00-00,既,时-分-秒
按键说明:P3.2为时调节。P3.3为分调节。P3.4为秒调节。这三个按键均是每按一次加一。
晶振说明:12MHZ
数码管说明:共阳数码管。共8个数码管。共用了两个4连共阳数码管。
其中,P0口为数码管的段选,P2口为数码管的位选。
本程序已通过实践验证!!!
汇编源程序如下:
SECOND EQU 30H
MINITE EQU 31H
HOUR EQU 32H
HOURK BIT P3.2
MINITEK BIT P3.3
SECONDK BIT P3.4
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP EQU 4BH
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START:MOV SECOND,#00H
MOV MINITE,#00H
MOV HOUR,#12
MOV DISPBIT,#00H
MOV T2SCNTA,#00H
MOV T2SCNTB,#00H
MOV TEMP,#0FEH
LCALL DISP
MOV TMOD,#01H
MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
SETB TR0
SETB ET0
SETB EA
WT:JB SECONDK,NK1
LCALL DELY10MS
JB SECONDK,NK1
INC SECOND
MOV A,SECOND
CJNE A,#60,NS60
MOV SECOND,#00H
NS60:LCALL DISP
JNB SECONDK,$
NK1:JB MINITEK,NK2
LCALL DELY10MS
JB MINITEK,NK2
INC MINITE
MOV A,MINITE
CJNE A,#60,NM60
MOV MINITE,#00H
NM60:LCALL DISP
JNB MINITEK,$
NK2:JB HOURK,NK3
LCALL DELY10MS
JB HOURK,NK3
INC HOUR
MOV A,HOUR
CJNE A,#24,NH24
MOV HOUR,#00H
NH24:LCALL DISP
JNB HOURK,$
NK3:LJMP WT
DELY10MS:MOV R6,#10
D1:MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DISP:MOV A,#DISPBUF
ADD A,#8
DEC A
MOV R1,A
MOV A,HOUR
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV A,#10
MOV @R1,A
DEC R1
MOV A,MINITE
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
MOV A,#10
MOV@R1,A
DEC R1
MOV A,SECOND
MOV B,#10
DIV AB
MOV @R1,A
DEC R1
MOV A,B
MOV @R1,A
DEC R1
RET
INT_T0:MOV TH0,#(65536-2000) / 256
MOV TL0,#(65536-2000) MOD 256
MOV A,#DISPBUF
ADD A,DISPBIT
MOV R0,A
MOV A,@R0
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,DISPBIT
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A
INC DISPBIT
MOV A,DISPBIT
CJNE A,#08H,KNA
MOV DISPBIT,#00H
KNA:INC T2SCNTA
MOV A,T2SCNTA
CJNE A,#100,DONE
MOV T2SCNTA,#00H
INC T2SCNTB
MOV A,T2SCNTB
CJNE A,#05H,DONE
MOV T2SCNTB,#00H
INC SECOND
MOV A,SECOND
CJNE A,#60,NEXT
MOV SECOND,#00H
INC MINITE
MOV A,MINITE
CJNE A,#60,NEXT
MOV MINITE,#00H
INC HOUR
MOV A,HOUR
CJNE A,#24,NEXT
MOV HOUR,#00H
NEXT:LCALL DISP
DONE:RETI
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
END

KEYVAL
EQU
30H
KEYTM
EQU
31H
KEYSCAN
EQU
32H
DAT
EQU
33H
SCANLED
EQU
39H
CLK
EQU
77H
SEC
EQU
78H
MIN
EQU
79H
HOUR
EQU
7AH
PAUSE
BIT
00H
DOT
BIT
01H
ORG
0000H
LJMP
MAIN
ORG
000BH
LJMP
T0ISR
;50ms定时
ORG
001BH
LJMP
T1ISR
;扫描显示
ORG
0030H
MAIN:
MOV
SP,#5FH
MOV
TMOD,#11H
MOV
TH0,#03CH
MOV
TL0,#0B0H
MOV
TH1,#0ECH
MOV
TL1,#078H
MOV
KEYVAL,#0
MOV
SCANLED,#0
MOV
33H,#10H
MOV
34H,#10H
MOV
35H,#10H
MOV
36H,#10H
MOV
37H,#10H
MOV
38H,#10H
MOV
SEC,#0
MOV
MIN,#0
MOV
HOUR,#0
MOV
CLK,#0
CLR
PAUSE
SETB
EA
SETB
ET1
SETB
TR1
LOOP:
LCALL
KEYSEL
MOV
A,KEYVAL
CJNE
A,#0FFH,LOOP1
SJMP
LOOP
LOOP1:
CJNE
A,#10,LOOP2
;“ON”启动
SETB
TR0
SETB
ET0
SETB
PAUSE
SJMP
LOOP
LOOP2:
CJNE
A,#11,LOOP3
;“=”清零
MOV
SEC,#0
MOV
MIN,#0
MOV
HOUR,#0
LCALL
DISCHG
SJMP
LOOP
LOOP3:
CJNE
A,#15,LOOP4
;“+”暂停
CLR
TR0
CLR
ET0
CLR
PAUSE
SJMP
LOOP
LOOP4:
CJNE
A,#14,LOOP5
;“-”清显示暂停
MOV
33H,#10H
MOV
34H,#10H
MOV
35H,#10H
MOV
36H,#10H
MOV
37H,#10H
MOV
38H,#10H
CLR
TR0
CLR
ET0
CLR
PAUSE
SJMP
LOOP
LOOP5:
CJNE
A,#10,LOOP6
;数字键
LOOP6:
JC
LOOP7
LJMP
LOOP
LOOP7:
JNB
PAUSE,LOOP8
;暂停状态可以输入数字键
LJMP
LOOP
LOOP8:
MOV
33H,34H
MOV
34H,35H
MOV
35H,36H
MOV
36H,37H
MOV
37H,38H
MOV
38H,KEYVAL
MOV
A,33H
SWAP
A
ORL
A,34H
LCALL
BCDH
MOV
HOUR,A
MOV
A,35H
SWAP
A
ORL
A,36H
LCALL
BCDH
MOV
MIN,A
MOV
A,37H
SWAP
A
ORL
A,38H
LCALL
BCDH
MOV
SEC,A
LJMP
LOOP
;------------------
;BCD转换为十六进制
BCDH:
MOV
B,#10H
DIV
AB
MOV
R7,B
MOV
B,#10
MUL
AB
ADD
A,R7
RET
;------------------
;十六进制转换为BCD
HBCD:
MOV
B,#10
DIV
AB
SWAP
A
ORL
A,B
RET
;------------------
KEYSEL:
MOV
KEYVAL,#0
MOV
KEYSCAN,#0EFH
LCALL
GETKEY
MOV
A,KEYTM
JZ
KEYS1
MOV
KEYVAL,A
SJMP
KEYRTN
KEYS1:
MOV
KEYSCAN,#0DFH
LCALL
GETKEY
MOV
A,KEYTM
JZ
KEYS2
CLR
C
ADD
A,#4
MOV
KEYVAL,A
SJMP
KEYRTN
KEYS2:
MOV
KEYSCAN,#0BFH
LCALL
GETKEY
MOV
A,KEYTM
JZ
KEYS3
CLR
C
ADD
A,#8
MOV
KEYVAL,A
SJMP
KEYRTN
KEYS3:
MOV
KEYSCAN,#7FH
LCALL
GETKEY
MOV
A,KEYTM
JZ
KEYRTN
CLR
C
ADD
A,#12
MOV
KEYVAL,A
KEYRTN:
LCALL
CHGKEY
RET
;--------------------
GETKEY:
MOV
KEYTM,#0
MOV
A,KEYSCAN
MOV
P3,A
NOP
MOV
A,P3
ANL
A,#0FH
XRL
A,#0FH
JZ
NOKEY
MOV
R2,#10
LCALL
DELAY
MOV
A,P3
ANL
A,#0FH
XRL
A,#0FH
JZ
NOKEY
MOV
A,P3
ANL
A,#0FH
MOV
R7,A
SF:
MOV
A,P3
ANL
A,#0FH
XRL
A,#0FH
JNZ
SF
MOV
A,R7
CJNE
A,#0EH,NK1
MOV
KEYTM,#1
SJMP
NOKEY
NK1:
CJNE
A,#0DH,NK2
MOV
KEYTM,#2
SJMP
NOKEY
NK2:
CJNE
A,#0BH,NK3
MOV
KEYTM,#3
SJMP
NOKEY
NK3:
CJNE
A,#07H,NOKEY
MOV
KEYTM,#4
NOKEY:
RET
;--------------------
DELAY:
MOV
R3,#50
DELAY1:
MOV
R4,#100
DJNZ
R4,$
DJNZ
R3,DELAY1
DJNZ
R2,DELAY
RET
;--------------------
T0ISR:
PUSH
ACC
CLR
TR0
MOV
TH0,#3CH
MOV
TL0,#0B0H
SETB
TR0
INC
CLK
MOV
A,CLK
CJNE
A,#20,T0ISRE
MOV
CLK,#0
INC
SEC
MOV
A,SEC
CJNE
A,#60,T0ISRE
MOV
SEC,#0
INC
MIN
MOV
A,MIN
CJNE
A,#60,T0ISRE
MOV
MIN,#0
INC
HOUR
MOV
A,HOUR
CJNE
A,#24,T0ISRE
MOV
SEC,#0
MOV
MIN,#0
MOV
HOUR,#0
T0ISRE:
LCALL
DISCHG
POP
ACC
RETI
;--------------------
DISCHG:
MOV
A,HOUR
LCALL
HBCD
PUSH
ACC
ANL
A,#0FH
MOV
34H,A
POP
ACC
ANL
A,#0F0H
SWAP
A
MOV
33H,A
MOV
A,MIN
LCALL
HBCD
PUSH
ACC
ANL
A,#0FH
MOV
36H,A
POP
ACC
ANL
A,#0F0H
SWAP
A
MOV
35H,A
MOV
A,SEC
LCALL
HBCD
PUSH
ACC
ANL
A,#0FH
MOV
38H,A
POP
ACC
ANL
A,#0F0H
SWAP
A
MOV
37H,A
RET
;--------------------
T1ISR:
PUSH
ACC
CLR
TR1
MOV
TH1,#0ECH
MOV
TL1,#78H
SETB
TR1
MOV
DPTR,#LEDTAB
T100:
MOV
R0,#DAT
MOV
A,SCANLED
ADD
A,R0
MOV
R0,A
MOV
A,SCANLED
JNZ
T101
MOV
P2,#01H
CLR
DOT
SJMP
T1DIS
T101:
DEC
A
JNZ
T102
MOV
P2,#02H
SETB
DOT
SJMP
T1DIS
T102:
DEC
A
JNZ
T103
MOV
P2,#04H
CLR
DOT
SJMP
T1DIS
T103:
DEC
A
JNZ
T104
MOV
P2,#08H
SETB
DOT
SJMP
T1DIS
T104:
DEC
A
JNZ
T105
MOV
P2,#10H
CLR
DOT
SJMP
T1DIS
T105:
MOV
P2,#20H
CLR
DOT
T1DIS:
MOV
A,@R0
MOVC
A,@A+DPTR
JNB
DOT,T1DIS1
ORL
A,#01H
T1DIS1:
CPL
A
MOV
P0,A
INC
SCANLED
MOV
A,SCANLED
CJNE
A,#6,T1END
MOV
SCANLED,#0
T1END:
POP
ACC
RETI
;--------------------
CHGKEY:
MOV
A,KEYVAL
JZ
KV16
DEC
A
JNZ
KV01
MOV
KEYVAL,#7
RET
KV01:
DEC
A
JNZ
KV02
MOV
KEYVAL,#4
RET
KV02:
DEC
A
JNZ
KV03
MOV
KEYVAL,#1
RET
KV03:
DEC
A
JNZ
KV04
MOV
KEYVAL,#10
RET
KV04:
DEC
A
JNZ
KV05
MOV
KEYVAL,#8
RET
KV05:
DEC
A
JNZ
KV06
MOV
KEYVAL,#5
RET
KV06:
DEC
A
JNZ
KV07
MOV
KEYVAL,#2
RET
KV07:
DEC
A
JNZ
KV08
MOV
KEYVAL,#0
RET
KV08:
DEC
A
JNZ
KV09
MOV
KEYVAL,#9
RET
KV09:
DEC
A
JNZ
KV10
MOV
KEYVAL,#6
RET
KV10:
DEC
A
JNZ
KV11
MOV
KEYVAL,#3
RET
KV11:
DEC
A
JNZ
KV12
MOV
KEYVAL,#11
RET
KV12:
DEC
A
JNZ
KV13
MOV
KEYVAL,#12
RET
KV13:
DEC
A
JNZ
KV14
MOV
KEYVAL,#13
RET
KV14:
DEC
A
JNZ
KV15
MOV
KEYVAL,#14
RET
KV15:
DEC
A
JNZ
KV16
MOV
KEYVAL,#15
RET
KV16:
MOV
KEYVAL,#0FFH
RET
;--------------------
LEDTAB:
DB
0FCH
;"0"
00H
DB
60H
;"1"
01H
DB
0DAH
;"2"
02H
DB
0F2H
;"3"
03H
DB
66H
;"4"
04H
DB
0B6H
;"5"
05H
DB
0BEH
;"6"
06H
DB
0E0H
;"7"
07H
DB
0FEH
;"8"
08H
DB
0F6H
;"9"
09H
DB
0EEH
;"A"
0AH
DB
3EH
;"B"
0BH
DB
9CH
;"C"
0CH
DB
7AH
;"D"
0DH
DB
9EH
;"E"
0EH
DB
8EH
;"F"
0FH
DB
00H
;"
"
10H
;--------------------
END


8051单片机时钟程序
ret ;R7等于0子程序返回 update: ;刷新显示子程序 inc 30h ;个位显示缓冲单元加一 mov a,30h cjne a,#10,exit ;还没加到十,退出 mov 30h,#00h ;加到十了,个位清零 inc 31h ;十位显示缓冲单元加一 mov a,31h cjne a,#6,exit ;还没加到十,退出 mov 31h,#00h...

单片机实验,求助电子时钟的C语言程序??
include"reg51.h"define uint unsigned int define uchar unsigned char void init();void display(uchar,uchar,uchar,uchar,uchar,uchar);sbit wela=P2^7;sbit dula=P2^6;sbit key0=P3^4;sbit key1=P3^5;sbit key2=P3^6;sbit key3=P3^7;uchar aa,bb,cc,bai,shi,ge;uchar code table[...

新人单片机做时钟时候延时子程序延时方式没懂,求dalao解答,程序如下
delay子程序就是让单片机不做什么事情,在等待子程序完成条件.void delay(n) \/\/延时子程序 { while(n--) \/\/这里把传入的参数当作次数来用 { for(i=120;i>0;i--); \/\/ 等待i减完 } }

求数字时钟程序,是用51单片机做的,我们实验室里能提供六个数码管,一...
P2.0~P2.7接数码管的八位(P2.0接a,依次。。。)调整时间的用四个独立按键,控制时钟+的接P3.2,-的接P3.2,控制分钟+的接P1.0,-的接P1.1。这4个控制键可以自己改。源程序:COUNT1 EQU 30H MIAO1 EQU 31H MIAO2 EQU 32H COUNT2 EQU 33H FEN1 EQU 34H FEN2 ...

试用51单片机C51编写一电脑钟程序,定时器用方式2中断处理实现?
void main(void )\/\/主程序 { TMOD=0x01;\/\/ 定时器0工作方式一,方式2一次只能定时256us,中断太频繁 ,不建议使用 ET0=1;EA=1;TH0=(65536-50000)\/256;\/\/定时50ms TL0=(65536-50000)%256;TR0=1;while(1){ dislpay();}\/\/显示子程序,与硬件连接有关 } \/\/中断子程序 void Timer0(...

51单片机求这个时钟的c语言程序
void init();\/\/初始化子程序声明 void delay500us(unsigned char X);\/\/延时子程序声明 void display();\/\/显示子程序声明 void display001();\/\/显示子程序声明 void display002();\/\/显示子程序声明 void keyscan();\/\/按键识别子程序声明 void main(){ init();while(1){ keyscan();} } v...

用单片机设计一个电子时钟
MODIFY: ACALL KEYIN ;调用键盘设置子程序 ACALL COMB ;调用合字子程序 RET KEYIN: PUSH PSW PUSH ACC SETB RS1 ;保护现场 MOV R0, #DISP0 ;R0指向显示缓冲区首地址 MOV R7, #06H ;设置键盘输入次数 L1: CLR RS1 ACALL KEYSCAN ;调用数合法性检测(是否在于9...

80C51单片机设计一个延时20ms的子程序,时钟为6MHZ.写出计算过程_百度...
把定时器设置成定时模式方式1,使用T0,则TMOD=0x01 6Mhz对应的机器周期是2us 则定时时间=(最大值-X)*2us 20ms =( 65536-X )*2us x=55536 对应的十六进制 D8F0 所以TH0=0xD8,TL0=0xF0 开中断 ET0=1;EA=1 启动定时器TR0=1 ...

单片机延时子程序流程图
5)计算机反复执行一段程序以达到延时的目的称为软件延时,单片机程序中经常需要短时间的延时,但是相当一部分人对延时程序很模糊,对延时程序的算法不够了解,在这里我以12MHz晶振和两个经典延时子程序为例,详细分析单片机汇编延时程序。 何为时钟周期、机器周期、和指令周期? 时钟周期:也就是振荡周期,以12MHz的时钟脉冲...

用单片机写一个C语言程序关于电子时钟,用键盘调制时分秒的加减 第一个...
我给你一个保证好用的,KEY_COM调模式,按一下进入调时 ,在按一下调分,再按一下退出调时模式,这时加减按键都无效,在调时模式时会产生闪烁方式,这段程序是我自己想的办法实现的,可能有点笨拙,但效果很好,我建议你用DS1302做时钟,用单片机计数器由于晶振等原因会有很大的误差,实际中没有用...

博白县15869788745: 电子时钟程序(单片机汇编语言编写,不要C语言) -
唱瑾龙血: 这个电子钟程序已经基本符合你的要求.希望能对你有用.程序说明:显示的时间格式为:12-00-00,既,时-分-秒 按键说明:P3.2为时调节.P3.3为分调节.P3.4为秒调节.这三个按键均是每按一次加一.晶振说明:12MHZ 数码管说明:共...

博白县15869788745: 单片机汇编语言编写电子时钟的汇编程序 -
唱瑾龙血: ;======================作者夏生成=================================================;======================QQ:254060575=================================================;;====================...

博白县15869788745: 急求单片机电子时钟程序,用汇编写的 -
唱瑾龙血: ;********************************************************************; 引脚定义;******************************************************************** D_PORT EQU P0 CS1 EQU P2.5 CS2 EQU P2.6 E EQU P2.7;******************************************************...

博白县15869788745: 用汇编语言编写一个数字电子钟程序代码
唱瑾龙血: 设计一个时钟程序,由键盘输入当前时、分、秒值,随即 显示时间并不停计时,当有键盘按下时,返回DOS. http://wenwen.sogou.com/z/q799785284.htm 楼主参考一下

博白县15869788745: 急求基于51单片机数字电子钟的汇编程序 -
唱瑾龙血: #include<reg51.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int/*七段共阴管显示定义*/ uchar code dispcode[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0...

博白县15869788745: 单片机电子时钟编程 -
唱瑾龙血: SDA BIT P0.0 SCL BIT P0.1 LED0 EQU 40H LED1 EQU 41H LED2 EQU 42H LED3 EQU 43H LED4 EQU 44H LED5 EQU 45H second equ 50h minute equ 51h hour equ 52hMOV DPTR, #TABLEMOV LED0,#0MOV LED1,#5MOV LED2,#9 ...

博白县15869788745: 求一个用汇编语言编写一个8051单片机的时钟程序(急急急啊) -
唱瑾龙血: 给你当参考...不足功能自己改...有问题再发问..;P1.4小时调整 P1.5分种调整 CODE_SEG SEGMENT CODE DATA_SEG SEGMENT DATA STACK_SEG SEGMENT IDATA K1 BIT P1.4 K2 BIT P1.5 RSEG DATA_SEG KEY_S: DS 1 KEY_V: DS...

博白县15869788745: 单片机 时钟程序 汇编 -
唱瑾龙血: #include/*包含器件配置文件*/ #define uchar unsigned char #define uint unsigned int char DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90,};/*0~9的数码管段码*/ uchar hour=0,min=0,sec=0; /*时、分、秒单元清零*/ ...

博白县15869788745: 汇编语言 电子钟 -
唱瑾龙血: 用汇编语言怎么实现时钟的实时显示,请各位帮忙!!! ;;在右上角显示时钟,按任一键结束;用MASM5.0编译通过.data segment HH DB 0,0,':' MM DB 0,0,':' SS1 DB 0,0 data ends code segment main proc far assume cs:code start: push ds ...

博白县15869788745: 跪求汇编语言编写的时钟程序! -
唱瑾龙血: DAT EQU 33H SCANLED EQU 39H CLK EQU 77H SEC EQU 78H MIN EQU 79H HOUR EQU 7AH DOT BIT 01H ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ;50ms定时 ORG 001BH LJMP T1ISR ;扫描显示 ORG 0030H MAIN: MOV SP,...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网