×
单片机 > 单片机程序设计 > 详情

数码管显示的电子时钟汇编程序

发布时间:2020-05-29 发布时间:
|
;*************************************************************
;功能:
;实现电子时钟显示(汇编)
;定义:
;    P3口位选,P1口段选,P0.0,P0.1,P0.2为调时口
;时间:
;    2010—11—26
;*************************************************************

 

SECOND EQU 30H

MINITE EQU 31H

HOUR EQU 32H

HOURK BIT P0.0

MINITEK BIT P0.1

SECONDK BIT P0.2

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
[page]
 

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 P1,A

       MOV A,DISPBIT

       MOV DPTR,#TAB

       MOVC A,@A+DPTR

       MOV P3,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 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H

 

TAB: 

       DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

 

END
//源代码下载 :http://www.51hei.com/f/sza511.rar


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会