求助单片机汇编语言数字时钟设计

发布网友 发布时间: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

你用时钟芯片了吗,用什么显示屏,说具体点就能帮上你 ,用单片机自己的定时器去定时,时间会不准,能用时钟芯片还是时钟芯片吧
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top