发布网友 发布时间:2022-04-20 07:20
共2个回答
热心网友 时间:2023-07-27 06:18
这个是我们班主任写得程序
我拿来给你
应该不会怪我
我太懒了
不愿意写
对了
不能调节秒钟
将就了
;定时器初始化
;1 TMODG C/T M1 M0 G C/T M1 M0设置工作方式
; 0 0 0 0 0 0 0 1
;2 TH1,TL1,TH0,TL0设置初值
;3 IEEA UD UD ES ET1 EX1 ET0 EX0
;4 TCONTR1,TR0,TF1,TF0,EI1,EI0,IT1,IT0
CNTEQU0X30
BSEQU0X31
DATEEQU0X32
HOUREQU0X33
MINUEQU0X34
SECNEQU0X35
CNTHEQU0X36
TFCNTEQU0X37
DBUF0EQU0X40
DBUF7EQU0X47
KCODEEQU0X48
ORG0
AJMPMAIN
ORG0X0B
AJMPTIMER0
ORG0X30
MAIN:
;G C/T M1 M0 G C/T M1 M0
;0 0 0 0 0 0 0 1
MOVTMOD,#0X01
MOVTL0,#LOW(65536-50000+10)
MOVTH0,#HIGH(65536-50000+10)
SETBEA
SETBET0
SETBTR0;开启定时器
MOVTFCNT,#20
MOVHOUR,#0X09
MOVMINU,#0X30
MOVSECN,#0X00
M_LOOP:
ACALLCONVERT
ACALLDISPLAY
ACALLKEYSCAN
MOVA,KCODE
JZM_LOOP
M_PRESS:
CJNEA,#1,M_HOURDEC
MOVA,HOUR
ADDA,#1
DAA
MOVHOUR,A
CJNEA,#0X24,M_BACK
MOVHOUR,#0
AJMPM_BACK
M_HOURDEC:
CJNEA,#2,M_MINU
MOVA,HOUR
ADDA,#0X99
DAA
MOVHOUR,A
CJNEA,#0X99,M_BACK
MOVHOUR,#0X23
AJMPM_BACK
M_MINU:
CJNEA,#3,M_MINUDEC
MOVA,MINU
ADDA,#1
DAA
MOVMINU,A
CJNEA,#0X60,M_BACK
MOVMINU,#0
AJMPM_BACK
M_MINUDEC:
CJNEA,#4,M_BACK0
MOVA,MINU
ADDA,#0X99
DAA
MOVMINU,A
CJNEA,#0X99,M_BACK
MOVMINU,#0X59
M_BACK:
MOVSECN,#0
M_BACK0:
ACALLCONVERT
ACALLKEYOFF
AJMPM_LOOP
TIMER0:
PUSHACC
PUSHPSW
MOVTL0,#0XFF
MOVTH0,#0X01
;MOVTL0,#LOW(65536-50000+10)
;MOVTH0,#HIGH(65536-50000+10)
DJNZTFCNT,RETIBACK
MOVTFCNT,#20
MOVA,SECN
ADDA,#0X01
DAA
MOVSECN,A
CJNEA,#0X60,RETIBACK0
MOVSECN,#0
MOVA,MINU
ADDA,#0X01
DAA
MOVMINU,A
CJNEA,#0X60,RETIBACK0
MOVMINU,#0
MOVA,HOUR
ADDA,#0X01
DAA
MOVHOUR,A
CJNEA,#0X24,RETIBACK0
MOVHOUR,#0
RETIBACK0:
;ACALLCONVERT
RETIBACK:
POPPSW
POPACC
RETI
CONVERT:
;11-29-30
MOVDPTR,#TAB
MOVR0,#SECN
MOVR1,#DBUF7
MOVCNT,#3
CONVERTLP:
MOVA,@R0;SECN
ANLA,#0X0F
MOVCA,@A+DPTR
MOV@R1,A
DECR1
MOVA,@R0;SECN
ANLA,#0XF0
SWAPA
MOVCA,@A+DPTR
MOV@R1,A
DECR1
MOVA,#0X40
MOV@R1,A
DECR1
DECR0
DJNZCNT,CONVERTLP
RET
DISPLAY:
MOVR0,#DBUF0
MOVBS,#0XFE
MOVCNT,#8
DISPLP:
MOVA,@R0
MOVP0,A
INCR0
MOVA,BS
MOVP2,A
RLA
MOVBS,A
ACALLDELAY
MOVP2,#0XFF
DJNZCNT,DISPLP
RET
KEYSCAN:
MOVKCODE,#0
MOVA,P3
ANLA,#0X0F
MOVB,A
ACALLDELAY
MOVA,P3
ANLA,#0X0F
CJNEA,B,NOKEY
CJNEA,#0X0F,PRESS
NOKEY:
RET
PRESS:
INCKCODE
RRCA
JCPRESS
RET
KEYOFF:
ACALLDISPLAY
MOVA,P3
ANLA,#0X0F
CJNEA,#0X0F,KEYOFF
ACALLDISPLAY
MOVA,P3
ANLA,#0X0F
CJNEA,#0X0F,KEYOFF
RET
DELAY:
MOVR7,#0X20
DLP:MOVR6,#0X20
DJNZR6,$
DJNZR7,DLP
RET
TAB:
DB0X3F,0X06,0X5B,0X4F
DB0X66,0X6D,0X7D,0X07
DB0X7F,0X6F,0X77,0X7C
DB0X39,0X5E,0X79,0X71
END
热心网友 时间:2023-07-27 06:18
你用时钟芯片了吗,用什么显示屏,说具体点就能帮上你 ,用单片机自己的定时器去定时,时间会不准,能用时钟芯片还是时钟芯片吧