⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 温度万年历_2.asm

📁 制作一个温度万年历
💻 ASM
字号:
;*****************************
;*        温度万年历程序         *
;*****************************
;2DH(高两位年)2CH(低两位年)
;7DH~7AH(71H~70H)年位
;2BH(月)
;79H~78H(61H~60H)月
;2AH(日)
;77H~76H(51H~50H)日
;29H(星期)
;6DH(5DH)星期
;28H(小时)
;6BH~6AH(5BH~5AH)时
;27H(分)
;69H~68H(59H~58H)分
;26H(秒)
;67H~66H(57H~56H)秒
;25H~24H(温度)
;4DH~4AH(3DH~3AH)温度
;23H(农历月)
;49H~48H(39H~38H)(农历月)
;22H(农历日)
;47HH~46H(37H~36H)农历日
;显示缓冲单元,,

;闰年标志为F0,定时器T1为调整时候闪烁用



SCLK  EQU  P3.2
IO    EQU  P3.3
RST   EQU  P3.4
DS1302_ADDR DATA 32H
DS1302_DATA DATA 31H


YEARH  DATA 2DH
YEARL  DATA 2CH
MONTH  DATA 2BH
DAY    DATA 2AH
WEEK   DATA 29H
HOUR   DATA 28H
MINUTE DATA 27H
SECOND DATA 26H
TEMPH  DATA 25H
TEMPL  DATA 24H
NMONTH DATA 23H
NDAY   DATA 22H


SET_TIME    BIT      P1.0    ;时间设置
SET_RING    BIT      P1.1    ;闹钟设置
SET_ADD     BIT      P1.2    ;加键设置


    ;************************************
     ;*           中断入口              *
   ;************************************


                 ORG  0000H
                 AJMP START
                 ORG  0003H
                 RETI
                 ORG  000BH
                 RETI
                 ORG  0013H
                 RETI
                 ORG  001BH
                 LJMP INTT1
                 ORG  0023H
                 RETI
                 ORG  002BH
                 RETI
                 
                 
                 
   ;************************************
     ;*            初始化               *
   ;************************************
                 ORG  100H


START:   MOV  SP,#60H

CLEAR:   MOV  R0,#00H
            MOV  R1,#99H

CLEAR1:  MOV  @R0,#00H
         INC  R0
         DJNZ R1,CLEAR1
         
         
         
            SETB EA
            MOV SCON,#00H    ;串行输出,方式0
            MOV TMOD,#10H    ;计数器1,方式1
            MOV TL1,#00H
            MOV TH1,#00H
            MOV DS1302_ADDR,#8EH
            MOV DS1302_DATA,#00H       ;允许写1302
            LCALL WRITE


            MOV DS1302_ADDR,#90H
            MOV DS1302_DATA,#0A6H       ;1302充电,充电电流1.1mA
            LCALL WRITE


   ;************************************
   ;*            主程序                *
   ;************************************

   ;************************************
   ;*            1302主程序                *
   ;************************************
 MAIN1:     MOV DS1302_ADDR,#8DH         ;READ OUT YEAR
            LCALL READ
            MOV YEARL,DS1302_DATA
            MOV DS1302_ADDR,#8BH        ;READ OUT WEEK
            LCALL READ
            MOV WEEK,DS1302_DATA
            MOV DS1302_ADDR,#89H          ;READ OUT MONTH
            LCALL READ
            MOV MONTH,DS1302_DATA
            MOV DS1302_ADDR,#87H          ;READ OUT DAY
            LCALL READ
            MOV DAY,DS1302_DATA
            MOV DS1302_ADDR,#85H       ;READ OUT HOUR
            LCALL READ
            MOV HOUR,DS1302_DATA
            MOV DS1302_ADDR,#83H       ;READ OUT MINTUE
            LCALL READ
            MOV MINUTE,DS1302_DATA
            MOV DS1302_ADDR,#81H       ;READ OUT SECOND
            LCALL READ
            MOV SECOND,DS1302_DATA


   ;************************************
   ;*            分离程序               *
   ;************************************

            MOV     R0,YEARL
            LCALL   DIVIDE
            MOV     7AH,R1
            MOV     70H,R1
            MOV     7BH,R2
            MOV     71H,R2



            MOV     R0,MONTH
            LCALL   DIVIDE
            MOV     78H,R1
            MOV     60H,R1
            MOV     79H,R2
            MOV     61H,R2

            MOV     R0,DAY
            LCALL   DIVIDE
            MOV     76H,R1
            MOV     50H,R1
            MOV     87H,R2
            MOV     51H,R2

            MOV     6DH,WEEK
            MOV     5DH,WEEK

            MOV     R0,HOUR
            LCALL   DIVIDE
            MOV     6AH,R1
            MOV     5AH,R1
            MOV     6BH,R2
            MOV     5BH,R2

            MOV     R0,MINUTE
            LCALL   DIVIDE
            MOV     68H,R1
            MOV     58H,R1
            MOV     69H,R2
            MOV     59H,R2

            MOV     R0,SECOND
            LCALL   DIVIDE
            MOV     66H,R1
            MOV     56H,R1
            MOV     67H,R2
            MOV     57H,R2

            MOV     R0,TEMPH
            LCALL   DIVIDE
            MOV     4CH,R1
            MOV     3CH,R1
            MOV     4DH,R2
            MOV     3DH,R2

            MOV     R0,TEMPL
            LCALL   DIVIDE
            MOV     4AH,R1
            MOV     3AH,R1
            MOV     4BH,R2
            MOV     3BH,R2

            MOV     R0,NMONTH
            LCALL   DIVIDE
            MOV     48H,R1
            MOV     38H,R1
            MOV     49H,R2
            MOV     39H,R2

            MOV     R0,NDAY
            LCALL   DIVIDE
            MOV     46H,R1
            MOV     36H,R1
            MOV     47H,R2
            MOV     37H,R2         

            LCALL    DISPLAY

            JNB      SET_TIME,SETG
            
            
            LJMP     MAIN1




















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -