搜索
bottom↓
回复: 49

电子万年历(at89s52/6b595/74hc595/16*32点阵)

[复制链接]

出0入0汤圆

发表于 2010-2-4 17:55:38 | 显示全部楼层 |阅读模式
闲来无事,把以前做的一块16*32的点阵屏做万年历玩玩。嘿嘿!
手头现在没有照相机,不能让大家看到实物。

本点阵显示年、月、日、星期、阴历、温度,并且时间可调!
嘿嘿,这几天比较忙,温度功能还没加进去,但细心看程序,可发现温度功能非常容易添加,程序中已经定义温度变量ram 37h 38h。
按键功能也没有添加!但比起整个工程,按键和温度的程序显得有点九牛一毛!
回头完成整个工程,拍照上传。
pcb与汇编程序ourdev_532437.rar(文件大小:34K) (原文件名:PCB与汇编程序.rar)

下面是2008画的pcb

2008画的pcb (原文件名:pcb.JPG)
先看程序吧!
;-------------------------------------------------------------------------------
;软件环境: VW For Windows
;硬件环境: AT89C52 MCU,MCS-51系列 MCU,etc.
;-------------------------------------------------------------------------------
;点阵屏引脚
;DAT  [数据引脚]-------------------P1.4
;SH   [移位时钟]-------------------P1.0
;ST   [锁存时钟]-------------------P1.2
;-------------------------------------------------------------------------------
;单片机RAM定义
;00H-1FH(四组寄存器)
;20H-2FH(可位寻址区)
;30H-5FH(变量定义区)
;60H-9FH(第一显存区)
;A0H-DFH(第二显存区)
;E0H-FFH(堆栈)
;-------------------------------------------------------------------------------
;以下为产品接口引脚在演示程序中的预定义
;用户在编写应用程序时,需按自己的实际硬件连线来重新定义
DAT               BIT P1.4                          ;数据引脚
SH                BIT P1.0                          ;移位时钟
ST                BIT P1.2                          ;锁存时钟
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;寄存器定义
;R0显存地址
;R1缓存地址
;R2画面选择(只能为1,2,4,5)
;R3移动字幕显示类型(长还是短)
;R4比秒更小的单位
;-------------------------------------------------------------------------------
;以下变量用于指示当前操作字符的位置的预定义
;用户在编写应用程序时,需按自己的实际软件程序需要来重新定义
XPOS               EQU 20H                           ;点阵屏横向数据
YPOS1              EQU 21H                           ;点纵屏横向数据
YPOS2              EQU 22H                           ;点纵屏横向数据
YPOS3              EQU 23H                           ;点纵屏横向数据
YPOS4              EQU 24H                           ;点纵屏横向数据
LP8                EQU 25H                           ;循环8次变量

MAX                EQU 29H                           ;每月最多的天数
SEC                EQU 30H                           ;秒寄存器
MIN                EQU 31H                           ;分寄存器
HOU                EQU 32H                           ;时寄存器
DATE               EQU 33H                           ;日寄存器
WEEK               EQU 34H                           ;星期寄存器
MON                EQU 35H                           ;月寄存器
YEAR               EQU 36H                           ;年寄存器
TMMP1              EQU 37H                           ;温度小数点前
TMMP2              EQU 38H                           ;温度小数点后

GAO                EQU 40H                           ;高四位
DI                 EQU 41H                           ;第四位
TEM                EQU 42H                           ;时间变量暂时存放地(个位和十位)
MGAO               EQU 43H                           ;移动变量高位
MDI                EQU 44H                           ;移动变量低位
DPH0               EQU 45H                           ;移动图案起始地址高8位
DPL0               EQU 46H                           ;移动图案起始地址低8位
DPH1               EQU 47H                           ;指针1高8位
DPL1               EQU 48H                           ;指针1低8位
DPH2               EQU 49H                           ;指针2高8位
DPL2               EQU 50H                           ;指针2低8位
COMR1              EQU 51H                           ;选择移动画面的类型(画面二与画面四中显示不一样)
COMR3              EQU 52H                           ;移动字幕的长短控制(画面二中移动字幕比较短)

;-------------------------------------------------------------------------------
                ORG 00H                              ;整个程序开始于00H
                AJMP MAIN
                ORG 0BH
                AJMP TIME0                           ;定时器程序向量
                ORG 030H

MAIN:
                MOV SEC,#56H                         ;秒赋值
                MOV MIN,#51H                         ;分赋值
                MOV HOU,#22H                         ;时赋值
                MOV WEEK,#01H                        ;星期赋值
                MOV DATE,#01H                        ;日赋值
                MOV MON,#2H                          ;月份赋值
                MOV YEAR,#10H                        ;年份初始值
                MOV TMMP1,#21H                       ;温度小数点前初始值
                MOV TMMP2,#23H                       ;温度小数点后初始值
                MOV R0,#060H                         ;显存初始地址
                MOV R1,#0A0H                         ;缓存初始地址
                MOV R2,#05H                          ;显示画面一
                MOV R3,#01H                          ;移动变量显示控制
                MOV R4,#01H                          ;20分之一秒
                MOV SP,#0DFH                         ;堆栈指向0E0H
                CALL CLEAR                           ;显存请屏
                MOV TMOD,#01H                        ;选择定时器及定时器工作方式
                MOV TH0,#03CH                        ;
                MOV TR0,#0B0H                        ;设置为500MS
                SETB TR0                             ;开始定时器0计时
                SETB EA                              ;中断总开关开
                SETB ET0                             ;定时器开
                CALL LONG                            ;选择移动图案的长度及显示长度
                CALL STARTDPTR                       ;移动图案首地址
                MOV A,DPH                            ;
                MOV DPH0,A                           ;
                MOV A,DPL                            ;
                MOV DPL0,A                           ;因为后面要用到DPTR所以这先把DPTR保存起来
LOOP:
                MOV R2,#01H
LOOP1:
                CALL PUTIN1
                CALL PROCESS
                CALL DISPLAY                         ;调用显示程序
                CALL DISPLAY                         ;
                MOV A,SEC
                CJNE A,#015H,LOOP1
                MOV R2,#02H
                MOV R3,#01H                          ;变量选择从头开始
                CALL LONG                            ;选择移动图案的长度及显示长度
                CALL STARTDPTR                       ;移动图案首地址
                MOV A,DPH                            ;
                MOV DPH0,A                           ;
                MOV A,DPL                            ;
                MOV DPL0,A                           ;因为后面要用到DPTR所以这先把DPTR保存起来
LOOP2:
                CALL PROCESS
                CALL PUTIN2                          ;
                CALL PUTIN22_                        ;
                CALL ORLL
                CALL DISPLAY                         ;调用显示程序
                CALL DISPLAY                         ;
                MOV A,SEC
                CJNE A,#030H,LOOP2
                MOV R2,#04H
LOOP3:
                CALL PROCESS
                CALL PUTIN3                          ;
                CALL PUTIN32                         ;
                CALL ORLL                            ;合成PUTIN3画面与PUTIN32画面
                CALL DISPLAY                         ;调用显示程序
                CALL DISPLAY
                MOV A,SEC                         ;
                CJNE A,#045H,LOOP3
                MOV R2,#05H
                MOV R3,#01H                          ;变量选择从头开始
                CALL LONG                            ;选择移动图案的长度及显示长度
                CALL STARTDPTR                       ;移动图案首地址
                MOV A,DPH                            ;
                MOV DPH0,A                           ;
                MOV A,DPL                            ;
                MOV DPL0,A                           ;因为后面要用到DPTR所以这先把DPTR保存起来
LOOP4:
                CALL PROCESS
                CALL PUTIN4                          ;
                CALL PUTIN22_                        ;
                CALL ORLL                            ;
                CALL DISPLAY                         ;调用显示程序
                CALL DISPLAY
                MOV A,SEC                         ;
                CJNE A,#000H,LOOP4
                AJMP LOOP                            ;


;-------------------------------------------------------------------------------
;子程序名称:CLEAR().
;功能:显存清零
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
CLEAR:
                MOV @R0,#00H
                INC R0
                CJNE R0,#0A0H,CLEAR             ;显存清零
                MOV R0,#060H
                RET

;-------------------------------------------------------------------------------
;###############################################################################
;###############################四种时间画面的赋值##############################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:PUTIN1().
;功能:画面一的RAM赋值
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PUTIN1:
                CALL EMPTY                           ;RAM写入两个空值
                MOV A,HOU                            ;取出时值
                CALL FIGURE                          ;数字写入RAM
                CALL POINT1
                MOV A,MIN                            ;取出分值
                CALL FIGURE                          ;数字写入RAM
                CALL EMPTY
                RET
;-------------------------------------------------------------------------------
;子程序名称:PUTIN2().
;功能:画面二的RAM赋值
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PUTIN2:
                CALL EMPTY
                MOV A,HOU                            ;取出时值
                CALL FIGURE                          ;数字写入RAM
                CALL POINT2
                MOV A,MIN                            ;取出分值
                CALL FIGURE                          ;数字写入RAM
                CALL EMPTY
                CALL EMPTY
                CALL EMPTY
                INC R2                               ;秒大显示大小有变化
                MOV A,SEC                            ;取出秒值
                CALL FIGURE                          ;数字写入RAM
                DEC R2
                RET
;-------------------------------------------------------------------------------
;子程序名称:PUTIN3().
;功能:画面三的RAM赋值
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PUTIN3:
                MOV A,HOU                            ;取出时值
                CALL FIGURE                          ;数字写入RAM
                CALL POINT3
                MOV A,MIN                            ;取出分值
                CALL FIGURE                          ;数字写入RAM
                CALL EMPTY
                CALL EMPTY
                MOV A,SEC                            ;取出秒值
                CALL FIGURE                          ;数字写入RAM
                RET
;-------------------------------------------------------------------------------
;子程序名称:PUTIN4().
;功能:画面四的RAM赋值
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PUTIN4:
                CALL EMPTY
                CALL EMPTY
                CALL EMPTY
                MOV A,HOU                            ;取出时值
                CALL FIGURE                          ;数字写入RAM
                CALL POINT4
                MOV A,MIN                            ;取出分值
                CALL FIGURE                          ;数字写入RAM
                CALL EMPTY
                CALL EMPTY
                MOV A,SEC                            ;取出秒值
                CALL FIGURE                          ;数字写入RAM
                CALL EMPTY
                CALL EMPTY
                CALL EMPTY
                RET
;-------------------------------------------------------------------------------
;###############################################################################
;###############################其他数据写入RAM#################################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:PUTIN22().
;功能:
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------

PUTIN22_:                                               ;
                MOV A,DPH0                              ;
                MOV DPH,A                               ;
                MOV A,DPL0                              ;
                MOV DPL,A                               ;把DPTR0中的值释放出来
PUTIN22:                                                ;
                MOV R1,#0A0H                            ;
                MOV A,#00H                              ;
                MOVC A,@A+DPTR                          ;
                CJNE A,#0EEH,PUTIN22_2                  ;判断移动固定图案是否取完
                MOV A,R3
                CJNE A,COMR3,PUTIN22_1                  ;判断整个移动图案是否取完
                MOV R3,#01H                             ;控制移动变量的取值
                CALL STARTDPTR                          ;移动字幕的初始地址
                AJMP PUTIN22                            ;回到本开始
PUTIN22_1:
                INC DPTR                                ;固定图案写完,使指针指向下一图案开始
                MOV A,DPH
                MOV DPH2,A
                MOV A,DPL
                MOV DPL2,A                              ;保存下一图案的指针到DPH2和DPL2
                CALL PUTCHAR                            ;利用R3选择出要显示的变量,并提取出变量的十位和个位
                MOV A,MGAO                              ;
                CALL TAKE                               ;换算出对应的首地址
                MOV MGAO,#0FFH                          ;十位显示完后做标记
                AJMP PUTIN22                            ;回到本开始
PUTIN22_2:
                MOV A,#00H
                MOVC A,@A+DPTR
                CJNE A,#0BBH,PUTIN22_5                  ;判断变量是否显示完毕
                MOV A,MDI                               ;提取个位
                CJNE A,#0FFH,PUTIN22_3                  ;判断个位是否已经显示
                AJMP PUTIN22_4                          ;显示过则跳到固定图案
PUTIN22_3:
                MOV A,MDI                               ;
                MOV MDI,#0FFH                           ;
                CALL TAKE                               ;
                AJMP PUTIN22                            ;回到本开始
PUTIN22_4:
                INC R3                                  ;指向下一固定图案
                MOV A,DPH2
                MOV DPH,A
                MOV A,DPL2
                MOV DPL,A                               ;取出保存的指针
                AJMP PUTIN22                            ;回到本开始
;-------------------------------------------------------------------------------
;子程序名称:PUTIN22_5().
;功能:整屏显示
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PUTIN22_5:
                PUSH MGAO                               ;
                PUSH MDI                                ;
                PUSH DPH                                ;
                PUSH DPL                                ;
                MOV A,R3                                ;
                PUSH A                                  ;
                MOV A,DPH2
                MOV DPH1,A
                MOV A,DPL2
                MOV DPL1,A                              ;变量的保存
PUTIN22_6:                                              ;
                MOV A,#00H                              ;
                MOVC A,@A+DPTR                          ;
                CJNE A,#0EEH,PUTIN22_8                  ;判断移动图案显示是否完成
                MOV A,R3
                CJNE A,COMR3,PUTIN22_7                  ;判断整个移动图案是否显示完毕
                MOV R3,#01H                             ;变量控制字复位
                CALL STARTDPTR                          ;移动固定图案的首地址
                AJMP PUTIN22_6                          ;回到初始位置
PUTIN22_7:                                              ;
                INC DPTR                                ;指向下一固定图案的首地址
                MOV A,DPH                               ;
                MOV DPH1,A                              ;
                MOV A,DPL                               ;
                MOV DPL1,A                              ;保存指针
                CALL PUTCHAR                            ;
                MOV A,MGAO                              ;
                CALL TAKE                               ;
                MOV MGAO,#0FFH                          ;标记十位,表示已经显示
                AJMP PUTIN22_6                          ;回到初始位置
PUTIN22_8:                                              ;
                MOV A,#00H                              ;
                MOVC A,@A+DPTR                          ;
                CJNE A,#0BBH,PUTIN22_11                 ;判断变量已经显示完毕
                MOV A,MDI                               ;
                CJNE A,#0FFH,PUTIN22_9                  ;判断变量已经完全显示完毕
                AJMP PUTIN22_10                         ;
PUTIN22_9:                                              ;
                MOV A,MDI                               ;显示个位
                MOV MDI,#0FFH                           ;
                CALL TAKE                               ;
                AJMP PUTIN22_6                          ;回到初始位置
PUTIN22_10:                                             ;
                INC R3                                  ;指向下一固定图案
                MOV A,DPH1                              ;
                MOV DPH,A                               ;
                MOV A,DPL1                              ;
                MOV DPL,A                               ;取出固定图案指针
                AJMP PUTIN22_6                          ;回到初始位置
PUTIN22_11:                                             ;RAM赋值
                MOV A,#00H                              ;
                MOVC A,@A+DPTR                          ;
                MOV @R1,A                               ;
                INC R1                                  ;
                INC DPTR                                ;
                MOV A,R1
                CJNE A,COMR1,PUTIN22_6                  ;判断整屏显示是否已完成
                CALL ADDWEEK                            ;画面二中有静止的星期显示
                POP A                                   ;
                MOV R3,A                                ;
                POP DPL                                 ;
                POP DPH                                 ;
                INC DPTR                                ;
                INC DPTR                                ;为达到移动效果

                MOV A,DPH
                MOV DPH0,A
                MOV A,DPL
                MOV DPL0,A

                POP MDI                                 ;
                POP MGAO                                ;数据从堆栈弹出
                MOV R1,#0A0H
                RET                                     ;
;-------------------------------------------------------------------------------
;子程序名称:PUTIN32().
;功能:画面三中温度的合成
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PUTIN32:
                MOV R0,#0A0H                            ;
                CALL EMPTY                              ;
                CALL EMPTY                              ;
                DEC R2                                  ;
                DEC R2                                  ;
                MOV A,TMMP1                             ;
                CALL FIGURE                             ;
                CALL POINT32                            ;
                MOV A,TMMP2                             ;
                CALL FIGURE                             ;
                CALL CHAR_C                             ;
                MOV R0,#060H                            ;
                INC R2                                  ;
                INC R2                                  ;
                RET                                     ;
;-------------------------------------------------------------------------------
;###############################################################################
;###############################缓存与显存相或##################################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:ORLL().
;功能:缓存与显存相或.
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
ORLL:
                MOV R0,#060H                            ;
                MOV R1,#0A0H                            ;
ORLL1:
                MOV A,@R1                               ;
                ORL A,@R0                               ;
                MOV @R0,A                               ;
                INC R0                                  ;
                INC R1                                  ;
                CJNE R0,#0A0H,ORLL1                     ;
                MOV R0,#060H                            ;
                MOV R1,#0A0H                            ;
                RET                                     ;
;-------------------------------------------------------------------------------
;###############################################################################
;##################################一列空格#####################################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:EMPTY().
;功能:连续写入两个'0'到RAM.
;输入:00H.
;输出:@R0=0.
;影响:DPTR,R0,@R0.
;-------------------------------------------------------------------------------
EMPTY:
                MOV @R0,#00H
                INC R0
                MOV @R0,#00H
                INC R0
                RET
;-------------------------------------------------------------------------------
;###############################################################################
;##################################时间计算#####################################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:PROCESS().
;功能:时间换算程序.
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PROCESS:
                MOV A,SEC
                CJNE A,#060H,PROCESSEND
                MOV SEC,#00H
                INC MIN
                MOV A,MIN
                DA A
                MOV MIN,A
                CJNE A,#060H,PROCESSEND
                MOV MIN,#00H
                INC HOU
                MOV A,HOU
                DA A
                MOV HOU,A
                CJNE A,#024H,PROCESSEND
                MOV HOU,#00H
                INC WEEK
                MOV A,WEEK
                CJNE A,#08H,PROCESS1
                MOV WEEK,#01H
PROCESS1:
                INC DATE
                MOV A,DATE
                DA A
                LCALL MAXDATE
                MOV A,DATE
                CJNE A,MAX,PROCESSEND
                MOV DATE,#01H
                INC MON
                MOV A,MON
                DA A
                MOV MON,A
                CJNE A,#013H,PROCESSEND
                MOV MON,#01H
                INC YEAR
                MOV A,YEAR
                DA A
                MOV YEAR,A
PROCESSEND:
                RET
;-------------------------------------------------------------------------------
;子程序名称:MAXDATE().
;功能:算出每月的最多天数.
;输入:.
;输出:?
;影响:.
;-------------------------------------------------------------------------------
MAXDATE:
                MOV A,MON
                DEC A
                MOV B,#05H                     ;
                MUL AB                         ;
                MOV DPTR,#MAXDATE1             ;
                JMP @A+DPTR                    ;
MAXDATE1:                                      ;
                MOV MAX,#032H                  ;因为主程序是相等则循序执行所以这里用的是月最大天数加一
                AJMP MAXDATEEND                ;
                MOV MAX,#031H                  ;
                AJMP MAXDATEEND                ;
                MOV MAX,#032H
                AJMP MAXDATEEND
                MOV MAX,#031H
                AJMP MAXDATEEND
                MOV MAX,#032H
                AJMP MAXDATEEND
                MOV MAX,#031H
                AJMP MAXDATEEND
                MOV MAX,#032H
                AJMP MAXDATEEND
                MOV MAX,#032H
                AJMP MAXDATEEND
                MOV MAX,#031H
                AJMP MAXDATEEND
                MOV MAX,#032H
                AJMP MAXDATEEND
                MOV MAX,#031H
                AJMP MAXDATEEND
                MOV MAX,#032H
                AJMP MAXDATEEND
MAXDATEEND:
                RET
;-------------------------------------------------------------------------------
;###############################################################################
;#################################代表秒的点####################################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:POINT1().
;功能:RAM中写入代表秒的点(画面一).
;输入:.
;输出:?
;影响:.
;-------------------------------------------------------------------------------
POINT1:
                CALL EMPTY
                MOV A,R4
                CJNE A,#0AH,POINT11
POINT11:
                JC POINT12
                CALL EMPTY
                CALL EMPTY
                AJMP POINT1END
POINT12:
                MOV @R0,#6H
                INC R0
                MOV @R0,#030H
                INC R0
                MOV @R0,#06H
                INC R0
                MOV @R0,#030H
                INC R0
POINT1END:
                CALL EMPTY
                RET
;-------------------------------------------------------------------------------
;子程序名称:POINT2().
;功能:RAM中写入代表秒的点(画面二).
;输入:00H.
;输出:无.
;影响:R0,@R0.
;-------------------------------------------------------------------------------
POINT2:
                CALL EMPTY
                MOV A,R4
                CJNE A,#0AH,POINT21
POINT21:
                JC POINT22
                CALL EMPTY
                AJMP POINT2END
POINT22:
                MOV @R0,#00H
                INC R0
                MOV @R0,#036H
                INC R0
POINT2END:
                CALL EMPTY
                RET
;-------------------------------------------------------------------------------
;子程序名称:POINT3().
;功能:RAM中写入代表秒的点(画面三).
;输入:00H.
;输出:无.
;影响:R0,@R0.
;-------------------------------------------------------------------------------
POINT3:
                CALL EMPTY
                MOV A,R4
                CJNE A,#0AH,POINT31
POINT31:
                JC POINT322
                CALL EMPTY
                AJMP POINT3END
POINT322:
                MOV @R0,#36H
                INC R0
                MOV @R0,#00H
                INC R0
POINT3END:
                CALL EMPTY
                RET
;-------------------------------------------------------------------------------
;子程序名称:POINT4().
;功能:RAM中写入代表秒的点(画面四).
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
POINT4:
                CALL EMPTY
                MOV A,R4
                CJNE A,#0AH,POINT41
POINT41:
                JC POINT42
                CALL EMPTY
                AJMP POINT4END
POINT42:
                MOV @R0,#050H
                INC R0
                MOV @R0,#00H
                INC R0
POINT4END:
                CALL EMPTY
                RET
;-------------------------------------------------------------------------------
;###############################################################################
;###################################其它图样####################################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:POINT32().
;功能:RAM中写入温度小数点(画面三).
;输入:.
;输出:无.
;影响:.
;修改日期:2010.01.27
;-------------------------------------------------------------------------------
POINT32:
                CALL EMPTY
                MOV @R0,#00H
                INC R0
                MOV @R0,#03H
                INC R0
                CALL EMPTY
                RET
;-------------------------------------------------------------------------------
;子程序名称:CHAR_C().
;功能:RAM中写入温度符号(画面三).
;输入:.
;输出:无.
;影响:.
;修改日期:2010.01.27
;-------------------------------------------------------------------------------
CHAR_C:
                MOV DPTR,#TAB32_C
CHAR_C1:
                MOV A,#00H
                MOVC A,@A+DPTR
                MOV @R0,A
                INC R0
                INC DPTR
                MOV A,#00H
                MOVC A,@A+DPTR
                CJNE A,#0BBH,CHAR_C1
                RET
;-------------------------------------------------------------------------------
;###############################################################################
;################################查表并写入RAM##################################
;###############################################################################
;-------------------------------------------------------------------------------
;-------------------------------------------------------------------------------
;子程序名称:FIGURE().
;功能:数字写入RAM
;输入:A.
;输出:A.
;影响:@R0.
;-------------------------------------------------------------------------------
FIGURE:
                CALL BRING                           ;分离小时的十位和个位
                MOV A,GAO                            ;
                CALL FIND                            ;DPTR值寻址
                CALL RAM                             ;寻址到的数据写入RAM
                CALL EMPTY                           ;RAM写入两个空值
                MOV A,DI
                CALL FIND
                CALL RAM
                RET
;-------------------------------------------------------------------------------
;子程序名称:BRING().
;功能:提取十位和个位
;输入:A.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
BRING:
                MOV TEM,A
                ANL A,#0FH
                MOV DI,A
                MOV A,TEM
                SWAP A
                ANL A,#0FH
                MOV GAO,A
                RET
;-------------------------------------------------------------------------------
;子程序名称:RAM().
;功能:把查表的数据写入RAM
;输入:@DPTR.
;输出:@R0.
;影响:DPTR,R0 .
;-------------------------------------------------------------------------------
RAM:
                MOV A,#00H                      ;偏移量清零
                MOVC A,@A+DPTR                  ;查表
                MOV @R0,A                       ;显存赋值
                INC DPTR                        ;表格地址加一
                INC R0                          ;显存地址加一
                MOV A,#00H                      ;
                MOVC A,@A+DPTR                  ;
                CJNE A,#0BBH,RAM                ;数字赋值完成
RAMEND:
                RET
;-------------------------------------------------------------------------------
;子程序名称:FIND().
;功能:分别提取十位和个位数字在表格中的首地址
;输入:43H(TEM0).
;输出:40H(GAO),41H(DI).
;影响:42H(TEM).
;-------------------------------------------------------------------------------
FIND:                                           ;
                CALL PICTURE                    ;选择将要送入首地址的值
                MOV B,#05H                      ;
                MUL AB                          ;
                JMP @A+DPTR                     ;
TDPTR1:                                         ;画面一数字查表
                MOV DPTR,#TAB11_0               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_1               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_2               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_3               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_4               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_5               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_6               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_7               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_8               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB11_9               ;
                AJMP FINDEND                    ;
TDPTR2:                                         ;画面二数字查表
                MOV DPTR,#TAB21_0               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_1               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_2               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_3               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_4               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_5               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_6               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_7               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_8               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_9               ;
                AJMP FINDEND                    ;
TDPTR22:                                        ;画面二数字查表
                MOV DPTR,#TAB21_0_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_1_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_2_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_3_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_4_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_5_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_6_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_7_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_8_              ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB21_9_              ;
                AJMP FINDEND                    ;
TDPTR3:                                         ;画面三数据查表
                MOV DPTR,#TAB31_0               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_1               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_2               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_3               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_4               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_5               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_6               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_7               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_8               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB31_9               ;
                AJMP FINDEND                    ;
TDPTR4:                                         ;画面三数据查表
                MOV DPTR,#TAB41_0               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_1               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_2               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_3               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_4               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_5               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_6               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_7               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_8               ;
                AJMP FINDEND                    ;
                MOV DPTR,#TAB41_9               ;
                AJMP FINDEND                    ;
FINDEND:                                        ;
                RET
;-------------------------------------------------------------------------------
;子程序名称:PICTURE().
;功能:选择将要送入首地址的值.
;输入:R2.
;输出:无.
;影响:无.
;-------------------------------------------------------------------------------
PICTURE:
                CJNE R2,#1H,PICTURE1
                MOV DPTR,#TDPTR1                ;
                AJMP PICEND
PICTURE1:
                CJNE R2,#2H,PICTURE22
                MOV DPTR,#TDPTR2                ;画面二的时间和画面三中的温度均要使用此查表指令
                AJMP PICEND
PICTURE22:
                CJNE R2,#3H,PICTURE3
                MOV DPTR,#TDPTR22               ;画面二中数字大小不一样
                AJMP PICEND
PICTURE3:
                CJNE R2,#4H,PICTURE4
                MOV DPTR,#TDPTR3                ;
                AJMP PICEND
PICTURE4:
                MOV DPTR,#TDPTR4
PICEND:
                RET
;-------------------------------------------------------------------------------
;子程序名称:PUTCHAR().
;功能:利用R3选择出要显示的变量
;输入:R3.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
PUTCHAR:
                CJNE R3,#1,CHAR1
                MOV A,YEAR
                CALL BRING_
                AJMP CHAREND                               ;取出变量各位和十位对应的首地址
CHAR1:
                CJNE R3,#2,CHAR2
                MOV A,MON
                CALL BRING_
                AJMP CHAREND
CHAR2:
                CJNE R3,#3,CHAR3
                MOV A,DATE
                CALL BRING_
                AJMP CHAREND
CHAR3:
                CJNE R3,#4,CHAR4
                MOV A,WEEK
                CALL BRING_
                AJMP CHAREND
CHAR4:
                CJNE R3,#5,CHAR5
                MOV A,TMMP1
                CALL BRING_
                AJMP CHAREND
CHAR5:
                CJNE R3,#6,CHAREND
                MOV A,TMMP2
                CALL BRING_
                AJMP CHAREND
CHAREND:
                RET

;-------------------------------------------------------------------------------
;子程序名称:BRING_().
;功能:提取十位和个位
;输入:A.
;输出:40H(MGAO),41H(DI).
;影响:42H(TEM).
;-------------------------------------------------------------------------------
BRING_:
                MOV TEM,A
                ANL A,#0FH
                MOV MDI,A
                MOV A,TEM
                SWAP A
                ANL A,#0FH
                MOV MGAO,A
                RET

;-------------------------------------------------------------------------------
;子程序名称:STARTDPTR().
;功能:选择移动图案首地址的位置
;输入:R2.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
STARTDPTR:
                CJNE R2,#2H,STARTDPTR1
                MOV DPTR,#TAB22_
                AJMP STARTDPTREND
STARTDPTR1:
                CJNE R2,#5H,STARTDPTREND
                MOV DPTR,#TAB42_
STARTDPTREND:
                RET
;-------------------------------------------------------------------------------
;子程序名称:LONG().
;功能:选择移动图案的长度及显示长度
;输入:R2.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
LONG:                                                   ;
                CJNE R2,#2H,LONG1
                MOV COMR3,#04H
                MOV COMR1,#0D0H
                AJMP LONGEND
LONG1:
                CJNE R2,#5H,LONGEND
                MOV COMR3,#06H
                MOV COMR1,#0E0H
LONGEND:
                RET
;-------------------------------------------------------------------------------
;子程序名称:ADDWEEK().
;功能:画面二中有静止的星期显示
;输入:.
;输出:.
;影响:.
;-------------------------------------------------------------------------------
ADDWEEK:
                CJNE R1,#0E0H,ADDWEEK1
                AJMP ADDWEEKEND
ADDWEEK1:
                MOV A,WEEK
                DEC A
                MOV DPTR,#ADDWEEK2
                MOV B,#05H
                MUL AB                                   ;
                JMP @A+DPTR                              ;
ADDWEEK2:
                MOV DPTR,#TAB22_W1                       ;
                AJMP ADDWEEK3                            ;
                MOV DPTR,#TAB22_W2                       ;
                AJMP ADDWEEK3                            ;
                MOV DPTR,#TAB22_W3                       ;
                AJMP ADDWEEK3                            ;
                MOV DPTR,#TAB22_W4                       ;
                AJMP ADDWEEK3                            ;
                MOV DPTR,#TAB22_W5                       ;
                AJMP ADDWEEK3                            ;
                MOV DPTR,#TAB22_W6                       ;
                AJMP ADDWEEK3                            ;
                MOV DPTR,#TAB22_W7                       ;
                AJMP ADDWEEK3                            ;
ADDWEEK3:
                MOV A,#00H
                MOVC A,@A+DPTR
                CJNE A,#0BBH,ADDWEEK4
                AJMP ADDWEEKEND
ADDWEEK4:
                MOV @R1,A
                INC R1
                INC DPTR
                AJMP ADDWEEK3
ADDWEEKEND:
                RET
;-------------------------------------------------------------------------------
;子程序名称:TAKE().
;功能:移动图案变量首地址赋值
;输入:R2,R3.
;输出:.
;影响:
;-------------------------------------------------------------------------------
TAKE:
                CJNE R3,#4H,TAKE1
                MOV DPTR,#TDPTR42
                AJMP TAKE3

TAKE1:
                CJNE R2,#2,TAKE2
                MOV DPTR,#TDPTR22_
                AJMP TAKE3
TAKE2:
                CJNE R2,#5,TAKE2
                MOV DPTR,#TDPTR32
                AJMP TAKE3
TAKE3:
                MOV B,#05H                              ;
                MUL AB                                  ;
                JMP @A+DPTR                             ;
TDPTR22_:                                               ;画面二数字查表
                MOV DPTR,#TAB22_0                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_1                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_2                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_3                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_4                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_5                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_6                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_7                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_8                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB22_9                       ;
                AJMP TAKEDEND                           ;
TDPTR32:                                                 ;画面四数字查表
                MOV DPTR,#TAB42_0                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_1                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_2                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_3                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_4                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_5                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_6                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_7                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_8                       ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_9                       ;
                AJMP TAKEDEND                           ;
TDPTR42:
                                                        ;画面四星期查表
                MOV DPTR,#TAB42_W0                      ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_W1                      ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_W2                      ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_W3                      ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_W4                      ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_W5                      ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_W6                      ;
                AJMP TAKEDEND                           ;
                MOV DPTR,#TAB42_W7                      ;
                AJMP TAKEDEND                           ;
TAKEDEND:
                RET
;-------------------------------------------------------------------------------
;###############################################################################
;###############################点阵屏显示子程序################################
;###############################################################################
;-------------------------------------------------------------------------------
;子程序名称:DISPLAY().
;功能:点阵屏显示子程序
;输入:RAM(060H-09FH).
;输出:无.
;影响:20H,21H,22H,23H,24H,25H,A.
;-------------------------------------------------------------------------------
DISPLAY:
                CLR SH                    ;移位时钟清零
                CLR ST                    ;锁存始终清零
                MOV YPOS1,#080H           ;纵行移动赋值'10000000b'
                MOV YPOS2,#00H            ;
                MOV YPOS3,#00H            ;
                MOV YPOS4,#00H            ;
                MOV R0,#060H              ;显存起始地址
DISAGAIN:                                 ;
                CALL DISY                 ;纵行显示程序调用
                MOV A,@R0                 ;RAM中的值A
                CALL DISX                 ;横行显示调整程序调用
                CALL DISOUT               ;把A中的值送到数据线DAT上
                INC R0                    ;RAM地址加1
                MOV A,@R0                 ;
                CALL DISX                 ;
                CALL DISOUT               ;
                INC R0                    ;
                MOV A,YPOS1               ;
                CALL DISOUT               ;
                MOV A,YPOS2               ;
                CALL DISOUT               ;
                MOV A,YPOS3               ;
                CALL DISOUT               ;
                MOV A,YPOS4               ;
                CALL DISOUT               ;
                SETB ST                   ;
                CLR ST                    ;
                JB YPOS1.7,DISEND         ;判断整个显存内容是否已经显示完成
                AJMP DISAGAIN             ;
DISEND:
                MOV A,#00H                ;再次给送显示数据,消除屏幕最后一列过于亮的BUG
                CALL DISOUT
                MOV A,#00H
                CALL DISOUT
                MOV A,#80H
                CALL DISOUT
                MOV A,#00H
                CALL DISOUT
                MOV A,#00H
                CALL DISOUT
                MOV A,#000H
                CALL DISOUT
                SETB ST                   ;
                CLR ST                    ;
                MOV R0,#060H
                RET
;-------------------------------------------------------------------------------
;子程序名称:DISY().
;功能:纵行显示程序子程序(每次只能显示一纵行)
;输入:21H,22H,23H,24H.
;输出:21H,22H,23H,24H.
;影响:21H,22H,23H,24H,,A.
;-------------------------------------------------------------------------------
DISY:
                MOV A,YPOS1               ;
                RLC A                     ;把21H大高位'1'给'C'
                MOV A,YPOS4               ;
                RLC A                     ;把上面从21H中取出的高位(C)给24H的首位
                MOV YPOS4,A               ;
                MOV A,YPOS3               ;
                RLC A                     ;
                MOV YPOS3,A               ;
                MOV A,YPOS2               ;
                RLC A                     ;
                MOV YPOS2,A               ;
                MOV A,YPOS1               ;
                RLC A                     ;
                MOV YPOS1,A               ;首次运行本子程序后个寄存器的值为:21H(00000000B),22H(00000000B),23H(00000000B),24H(00000001B)
                RET
;-------------------------------------------------------------------------------
;子程序名称:DISX(A).
;功能:横行显示调整程序(电路设计时为了方便,用程序调整锁存器引脚对应的横行)
;输入:A.
;输出:A.
;影响:20H(可位寻址去第一个寄存器),A.
;-------------------------------------------------------------------------------
DISX:
                RLC A
                MOV 04H,C
                RLC A
                MOV 05H,C
                RLC A
                MOV 03H,C
                RLC A
                MOV 00H,C
                RLC A
                MOV 02H,C
                RLC A
                MOV 01H,C
                RLC A
                MOV 06H,C
                RLC A
                MOV 07H,C
                MOV A,XPOS
                RET
;-------------------------------------------------------------------------------
;子程序名称:DISOUT().
;功能:把A中的值送到数据线DAT上
;输入:A.
;输出:无.
;影响:A,25H.
;-------------------------------------------------------------------------------
DISOUT:
                CLR SH
                MOV LP8,#08H
DISOUT1:
                RLC A
                MOV DAT,C
                SETB SH
                CLR SH
                DJNZ LP8,DISOUT1
                RET
;-------------------------------------------------------------------------------
;子程序名称:TIME0().
;功能:定时器0中断程序
;输入:.
;输出:无.
;影响:.
;-------------------------------------------------------------------------------
TIME0:
                PUSH PSW
                PUSH A
                MOV TH0,#03CH
                MOV TL0,#0B0H
                INC R4
                CJNE R4,#14H,TIME01
                MOV R4,#00H
                INC SEC
                MOV A,SEC
                DA A
                MOV SEC,A
TIME01:
                POP A
                POP PSW
                RETI
;-------------------------------------------------------------------------------
;###############################################################################
;##################################数据表格#####################################
;###############################################################################
;-------------------------------------------------------------------------------
;画面一
;-------------------------------------------------------------------------------
;画面一中的时间变量
TAB11_0:
DB  03FH,0FCH,03FH,0FCH,030H,00CH,030H,00CH,03FH,0FCH,03FH,0FCH,0BBH;0
TAB11_1:
DB  000H,000H,000H,000H,000H,000H,000H,000H,03FH,0FCH,03FH,0FCH,0BBH;1
TAB11_2:
DB  031H,0FCH,031H,0FCH,031H,08CH,031H,08CH,03FH,08CH,03FH,08CH,0BBH;2
TAB11_3:
DB  031H,08CH,031H,08CH,031H,08CH,031H,08CH,03FH,0FCH,03FH,0FCH,0BBH;3
TAB11_4:
DB  03FH,080H,03FH,080H,001H,080H,001H,080H,03FH,0FCH,03FH,0FCH,0BBH;4
TAB11_5:
DB  03FH,08CH,03FH,08CH,031H,08CH,031H,08CH,031H,0FCH,031H,0FCH,0BBH;5
TAB11_6:
DB  03FH,0FCH,03FH,0FCH,031H,08CH,031H,08CH,031H,0FCH,031H,0FCH,0BBH;6
TAB11_7:
DB  030H,000H,030H,000H,030H,000H,030H,000H,03FH,0FCH,03FH,0FCH,0BBH;7
TAB11_8:
DB  03FH,0FCH,03FH,0FCH,031H,08CH,031H,08CH,03FH,0FCH,03FH,0FCH,0BBH;8
TAB11_9:
DB  03FH,08CH,03FH,08CH,031H,08CH,031H,08CH,03FH,0FCH,03FH,0FCH,0BBH;9
;-------------------------------------------------------------------------------
;画面二
;-------------------------------------------------------------------------------
;画面二中的时间变量1及画面三中的温度变量数字
TAB21_0:
DB  000H,07FH,000H,041H,000H,041H,000H,07FH,0BBH;0
TAB21_1:
DB  000H,000H,000H,000H,000H,000H,000H,07FH,0BBH;1
TAB21_2:
DB  000H,04FH,000H,049H,000H,049H,000H,079H,0BBH;2
TAB21_3:
DB  000H,049H,000H,049H,000H,049H,000H,07FH,0BBH;3
TAB21_4:
DB  000H,078H,000H,008H,000H,008H,000H,07FH,0BBH;4
TAB21_5:
DB  000H,079H,000H,049H,000H,049H,000H,04FH,0BBH;5
TAB21_6:
DB  000H,07FH,000H,049H,000H,049H,000H,04FH,0BBH;6
TAB21_7:
DB  000H,040H,000H,040H,000H,040H,000H,07FH,0BBH;7
TAB21_8:
DB  000H,07FH,000H,049H,000H,049H,000H,07FH,0BBH;8
TAB21_9:
DB  000H,079H,000H,049H,000H,049H,000H,07FH,0BBH;9
;-------------------------------------------------------------------------------
;画面二中的时间变量2
TAB21_0_:
DB  000H,01FH,000H,011H,000H,01FH,0BBH;0
TAB21_1_:
DB  000H,000H,000H,000H,000H,01FH,0BBH;1
TAB21_2_:
DB  000H,017H,000H,015H,000H,01DH,0BBH;2
TAB21_3_:
DB  000H,015H,000H,015H,000H,01FH,0BBH;3
TAB21_4_:
DB  000H,01CH,000H,004H,000H,01FH,0BBH;4
TAB21_5_:
DB  000H,01DH,000H,015H,000H,017H,0BBH;5
TAB21_6_:
DB  000H,01FH,000H,015H,000H,017H,0BBH;6
TAB21_7_:
DB  000H,010H,000H,010H,000H,01FH,0BBH;7
TAB21_8_:
DB  000H,01FH,000H,015H,000H,01FH,0BBH;8
TAB21_9_:
DB  000H,01DH,000H,015H,000H,01FH,0BBH;9
;-------------------------------------------------------------------------------
;画面二中移动字幕
TAB22_:
DB  063H,000H,085H,000H,089H,000H,091H,000H,061H,000H,000H,000H
DB  07EH,000H,081H,000H,081H,000H,081H,000H,07EH,000H,000H,000H;20
DB  0EEH
DB  000H,000H,010H,000H,010H,000H,010H,000H,010H,000H,010H
DB  000H,000H,000H                                        ;-
DB  0EEH
DB  000H,000H,010H,000H,010H,000H,010H,000H,010H,000H,010H
DB  000H,000H,000H                                        ;-
DB  0EEH
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0EEH;______
;-------------------------------------------------------------------------------
;画面二中的移动数字变量
TAB22_0:
DB  07EH,000H,081H,000H,081H,000H,081H,000H,07EH,000H,000H,000H,0BBH;0
TAB22_1:
DB  000H,000H,041H,000H,0FFH,000H,001H,000H,000H,000H,000H,000H,0BBH;1
TAB22_2:
DB  063H,000H,085H,000H,089H,000H,091H,000H,061H,000H,000H,000H,0BBH;2
TAB22_3:
DB  042H,000H,081H,000H,091H,000H,091H,000H,06EH,000H,000H,000H,0BBH;3
TAB22_4:
DB  000H,000H,034H,000H,044H,000H,0FFH,000H,004H,000H,000H,000H,0BBH;4
TAB22_5:
DB  0F2H,000H,091H,000H,091H,000H,091H,000H,08EH,000H,000H,000H,0BBH;5
TAB22_6:
DB  07EH,000H,091H,000H,091H,000H,0D1H,000H,00EH,000H,000H,000H,0BBH;6
TAB22_7:
DB  080H,000H,080H,000H,08FH,000H,0B0H,000H,0C0H,000H,000H,000H,0BBH;7
TAB22_8:
DB  076H,000H,089H,000H,089H,000H,089H,000H,076H,000H,000H,000H,0BBH;8
TAB22_9:
DB  070H,000H,08BH,000H,089H,000H,089H,000H,07EH,000H,000H,000H,0BBH;9
;-------------------------------------------------------------------------------
;画面二中的星期变量
TAB22_W1:
DB  000H,000H,000H,000H,000H,000H,020H,080H,07FH,080H,000H,080H,000H,000H,000H,000H,0BBH;1
TAB22_W2:
DB  000H,000H,000H,000H,021H,080H,042H,080H,044H,080H,048H,080H,030H,080H,000H,000H,0BBH;2
TAB22_W3:
DB  000H,000H,000H,000H,040H,080H,048H,080H,048H,080H,048H,080H,037H,000H,000H,000H,0BBH;3
TAB22_W4:
DB  000H,000H,000H,000H,006H,000H,01AH,000H,022H,000H,07FH,080H,002H,000H,000H,000H,0BBH;4
TAB22_W5:
DB  000H,000H,000H,000H,078H,080H,048H,080H,048H,080H,048H,080H,04FH,080H,000H,000H,0BBH;5
TAB22_W6:
DB  000H,000H,000H,000H,07FH,080H,048H,080H,048H,080H,048H,080H,06FH,080H,000H,000H,0BBH;6
TAB22_W7:
DB  000H,000H,000H,000H,07FH,080H,048H,080H,048H,080H,048H,080H,07FH,080H,000H,000H,0BBH;日
;-------------------------------------------------------------------------------
;画面三
;-------------------------------------------------------------------------------
;画面三中的时间变量
TAB31_0:
DB  07FH,000H,041H,000H,041H,000H,07FH,000H,0BBH;0
TAB31_1:
DB  000H,000H,000H,000H,000H,000H,07FH,000H 0BBH;1
TAB31_2:
DB  04FH,000H,049H,000H,049H,000H,079H,000H,0BBH;2
TAB31_3:
DB  049H,000H,049H,000H,049H,000H,07FH,000H 0BBH;3
TAB31_4:
DB  078H,000H,008H,000H,008H,000H,07FH,000H,0BBH;4
TAB31_5:
DB  079H,000H,049H,000H,049H,000H,04FH,000H 0BBH;5
TAB31_6:
DB  07FH,000H,049H,000H,049H,000H,04FH,000H,0BBH;6
TAB31_7:
DB  040H,000H,040H,000H,040H,000H,07FH,000H 0BBH;7
TAB31_8:
DB  07FH,000H,049H,000H,049H,000H,07FH,000H,0BBH;8
TAB31_9:
DB  079H,000H,049H,000H,049H,000H,07FH,000H,0BBH;9
;-------------------------------------------------------------------------------
;画面三中的温度符号
TAB32_C:
DB  000H,000H,000H,060H,000H,01CH,000H,022H,000H
DB  041H,000H,041H,000H,022H,000H,000H,000H,000H;C
DB  0BBH
;-------------------------------------------------------------------------------
;画面四
;-------------------------------------------------------------------------------
;画面四中的时间
TAB41_0:
DB  0F8H,000H,088H,000H,0F8H,000H,0BBH;0
TAB41_1:
DB  000H,000H,000H,000H,0F8H,000H,0BBH;1
TAB41_2:
DB  0B8H,000H,0A8H,000H,0E8H,000H,0BBH;2
TAB41_3:
DB  0A8H,000H,0A8H,000H,0F8H,000H,0BBH;3
TAB41_4:
DB  0E0H,000H,020H,000H,0F8H,000H,0BBH;4
TAB41_5:
DB  0E8H,000H,0A8H,000H,0B8H,000H,0BBH;5
TAB41_6:
DB  0F8H,000H,0A8H,000H,0B8H,000H,0BBH;6
TAB41_7:
DB  080H,000H,080H,000H,0F8H,000H,0BBH;7
TAB41_8:
DB  0F8H,000H,0A8H,000H,0F8H,000H,0BBH;8
TAB41_9:
DB  0E8H,000H,0A8H,000H,0F8H,000H,0BBH;9
;-------------------------------------------------------------------------------
;画面四中的移动字幕
TAB42_:
DB  000H,040H,000H,040H,000H,090H,001H,010H,002H,090H,004H,071H,002H,016H,001H,018H
DB  000H,080H,000H,040H,000H,040H,000H,000H,000H,041H,004H,041H,004H,042H,004H,044H
DB  004H,058H,007H,0E0H,004H,058H,004H,044H,004H,042H,004H,041H,000H,041H,000H,000H
DB  000H,011H,000H,012H,000H,01CH,007H,0D4H,005H,052H,005H,05FH,005H,055H,005H,055H
DB  007H,0D5H,000H,015H,000H,011H,000H,000H,000H,0C6H,001H,00AH,001H,012H,001H,022H
DB  000H,0C2H,000H,000H,000H,0FCH,001H,002H,001H,002H,001H,002H,000H,0FCH,000H,000H;今天是20
DB  0EEH
DB  000H,088H,001H,008H,006H,078H,002H,048H,002H,048H,003H,0FFH,002H,048H,002H,048H
DB  002H,048H,002H,008H,000H,000H,000H,000H                                        ;年
DB  0EEH
DB  000H,000H,000H,001H,000H,002H,007H,0FCH,004H,090H,004H,090H,004H,091H,004H,091H
DB  007H,0FFH,000H,000H,000H,000H,000H,000H                                        ;月
DB  0EEH
DB  000H,000H,000H,000H,007H,0FFH,004H,042H,004H,042H,004H,042H,004H,042H,004H,042H
DB  004H,042H,007H,0FFH,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,005H,000H,009H,007H,0F5H,005H,055H,005H,055H,005H,07FH,005H,055H,005H,055H
DB  005H,055H,007H,0D5H,000H,001H,000H,000H,002H,009H,007H,0FAH,002H,0ACH,002H,0A8H
DB  007H,0FCH,002H,00AH,000H,001H,007H,0FEH,004H,090H,004H,091H,007H,0FFH,000H,000H
DB  000H,000H                                                                      ;日 星期
DB  0EEH
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,004H,08FH,002H,070H,000H,001H,000H,01FH
DB  007H,0D1H,005H,05FH,005H,051H,005H,05FH,005H,051H,007H,0DFH,000H,001H,000H,000H
DB  000H,003H,003H,0FCH,002H,081H,002H,089H,003H,0E9H,002H,0AEH,006H,0AAH,002H,0AEH
DB  003H,0E9H,002H,089H,002H,081H,000H,000H                                        ;  温度
DB  0EEH
DB  000H,000H,007H,000H,005H,000H,007H,000H,000H,000H,001H,0FCH,002H,002H,002H,002H
DB  002H,002H,002H,002H,001H,084H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB  000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H;C
DB  0EEH
;-------------------------------------------------------------------------------
;画面四中的移动数字变量
TAB42_0:
DB  000H,0FCH,001H,002H,001H,002H,001H,002H,000H,0FCH,000H,000H,0BBH;0
TAB42_1:
DB  000H,000H,000H,082H,001H,0FEH,000H,002H,000H,000H,000H,000H,0BBH;1
TAB42_2:
DB  000H,0C6H,001H,00AH,001H,012H,001H,022H,000H,0C2H,000H,000H,0BBH;2
TAB42_3:
DB  000H,084H,001H,002H,001H,022H,001H,022H,000H,0DCH,000H,000H,0BBH;3
TAB42_4:
DB  000H,010H,000H,068H,000H,088H,001H,0FEH,000H,00AH,000H,000H,0BBH;4
TAB42_5:
DB  001H,0E4H,001H,022H,001H,022H,001H,022H,001H,01CH,000H,000H,0BBH;5
TAB42_6:
DB  000H,0FCH,001H,022H,001H,022H,001H,0A2H,000H,01CH,000H,000H,0BBH;6
TAB42_7:
DB  001H,080H,001H,000H,001H,03EH,001H,0C0H,001H,000H,000H,000H,0BBH;7
TAB42_8:
DB  000H,0DCH,001H,022H,001H,022H,001H,022H,000H,0DCH,000H,000H,0BBH;8
TAB42_9:
DB  000H,0E0H,001H,016H,001H,012H,001H,012H,000H,0FCH,000H,000H,0BBH;9
;-------------------------------------------------------------------------------
;画面四中的星期变量
TAB42_W0:
DB  0BBH
TAB42_W1:
DB  000H,020H,000H,020H,000H,020H,000H,020H,000H,020H,000H,020H,000H,020H,000H,020H
DB  000H,020H,000H,060H,000H,020H,000H,000H                                        ;一
DB  0BBH
TAB42_W2:
DB  000H,002H,001H,002H,001H,002H,001H,002H,001H,002H,001H,002H,001H,002H,001H,002H
DB  003H,002H,001H,002H,000H,002H,000H,000H                                        ;二
DB  0BBH
TAB42_W3:
DB  000H,001H,002H,001H,002H,001H,002H,021H,002H,021H,002H,021H,002H,021H,002H,021H
DB  006H,021H,002H,003H,000H,001H,000H,000H                                        ;三
DB  0BBH
TAB42_W4:
DB  000H,000H,007H,0FFH,004H,00AH,004H,012H,007H,0E2H,004H,002H,004H,002H,007H,0FAH
DB  004H,00AH,004H,00AH,007H,0FFH,000H,000H                                        ;四
DB  0BBH
TAB42_W5:
DB  000H,001H,004H,041H,004H,041H,004H,04FH,007H,0F1H,004H,041H,004H,041H,004H,041H
DB  004H,07FH,004H,001H,000H,001H,000H,000H                                        ;五
DB  0BBH
TAB42_W6:
DB  000H,081H,000H,082H,000H,08CH,000H,0B0H,004H,080H,003H,080H,000H,0A0H,000H,090H
DB  000H,08CH,000H,083H,000H,080H,000H,000H                                        ;六
DB  0BBH
TAB42_W7:
DB  000H,000H,000H,000H,007H,0FFH,004H,042H,004H,042H,004H,042H,004H,042H,004H,042H
DB  004H,042H,007H,0FFH,000H,000H,000H,000H                                        ;日
DB  0BBH

                END

出0入0汤圆

发表于 2010-2-4 21:05:23 | 显示全部楼层
又见汇编,,

出0入0汤圆

发表于 2010-2-5 01:44:37 | 显示全部楼层
谢谢分享,谢谢,谢谢。

出0入0汤圆

发表于 2010-2-5 09:17:21 | 显示全部楼层
OMG,汇编...

出0入0汤圆

发表于 2010-2-5 09:41:13 | 显示全部楼层
牛人

出0入0汤圆

发表于 2010-2-6 09:43:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-2-6 10:29:17 | 显示全部楼层
谢谢分享,谢谢,谢谢 太辛苦你了

出0入0汤圆

发表于 2010-2-6 13:20:30 | 显示全部楼层
这星期也在做这个,也是汇编。可惜功能没做出来。收下楼主的程序参考一下

出0入0汤圆

发表于 2010-2-6 22:13:27 | 显示全部楼层
下了 学习!期待楼主的照片!

出0入0汤圆

发表于 2010-2-7 22:10:07 | 显示全部楼层
16*32的点阵屏做万年历
mark,漂亮的ASM程序。

出0入0汤圆

发表于 2010-3-4 17:31:02 | 显示全部楼层
汇编做这么大的程序,佩服了!

出0入0汤圆

发表于 2010-3-5 12:24:45 | 显示全部楼层
辛苦辛苦

出0入0汤圆

发表于 2010-3-5 12:32:56 | 显示全部楼层
我用C做出来的,汇编不会,正在学习中

(原文件名:09100716075f108477e9455eeb.jpg)

出0入0汤圆

发表于 2010-3-6 23:55:14 | 显示全部楼层
我也做一个出来。

出0入0汤圆

发表于 2010-4-7 17:21:20 | 显示全部楼层
按键调时间在实物中并不简单 楼主可以试一下

出0入0汤圆

发表于 2010-4-7 17:27:48 | 显示全部楼层
按键调时间在实物中并不简单 楼主可以试一下

出0入0汤圆

发表于 2010-4-7 19:27:46 | 显示全部楼层
点阵的没试过,液晶的倒是弄过,当时还加了红外遥控设置,大家可以看我程序

出0入0汤圆

 楼主| 发表于 2010-4-10 14:08:26 | 显示全部楼层
不好意思
最近忙,把上传照片的事情给忘了


(原文件名:IMG_0723.jpg)


(原文件名:IMG_0724.jpg)


(原文件名:IMG_0725.jpg)


(原文件名:IMG_0726.jpg)


(原文件名:IMG_0727.jpg)


(原文件名:IMG_0729.jpg)


(原文件名:IMG_0730.jpg)


(原文件名:IMG_0732.jpg)


(原文件名:IMG_0733.jpg)


(原文件名:IMG_0734.jpg)


(原文件名:IMG_0736.jpg)


(原文件名:IMG_0737.jpg)


(原文件名:IMG_0738.jpg)


(原文件名:IMG_0739.jpg)


(原文件名:IMG_0740.jpg)


(原文件名:IMG_0741.jpg)


(原文件名:IMG_0742.jpg)


(原文件名:IMG_0743.jpg)


(原文件名:IMG_0744.jpg)


(原文件名:IMG_0745.jpg)


(原文件名:IMG_0746.jpg)


(原文件名:IMG_0747.jpg)


(原文件名:IMG_0748.jpg)


(原文件名:IMG_0749.jpg)


(原文件名:IMG_0751.jpg)


(原文件名:IMG_0752.jpg)


(原文件名:IMG_0753.jpg)


(原文件名:IMG_0754.jpg)


(原文件名:IMG_0755.jpg)


(原文件名:IMG_0756.jpg)


(原文件名:IMG_0757.jpg)


(原文件名:IMG_0758.jpg)


(原文件名:IMG_0759.jpg)


(原文件名:IMG_0760.jpg)


(原文件名:IMG_0762.jpg)


(原文件名:IMG_0763.jpg)


(原文件名:IMG_0764.jpg)


(原文件名:IMG_0765.jpg)


(原文件名:IMG_0766.jpg)

出0入0汤圆

发表于 2010-4-10 16:18:51 | 显示全部楼层
按键在那里

出0入0汤圆

 楼主| 发表于 2010-4-10 23:26:34 | 显示全部楼层
没做按键

出0入0汤圆

发表于 2010-4-10 23:57:18 | 显示全部楼层
漂亮

出0入0汤圆

发表于 2010-4-11 23:23:28 | 显示全部楼层
漂亮

出0入0汤圆

发表于 2010-4-12 08:43:56 | 显示全部楼层
漂亮 ,收下了。

出0入0汤圆

发表于 2010-4-12 14:06:00 | 显示全部楼层
积分:67
派别:
等级:------
来自:
漂亮 ,收下了

出0入0汤圆

发表于 2010-4-12 21:44:01 | 显示全部楼层
等待完善。。。

出0入0汤圆

发表于 2010-4-12 22:49:34 | 显示全部楼层
厉害,用汇编做太牛了吧,佩服

出0入0汤圆

发表于 2010-4-13 14:26:45 | 显示全部楼层
mark1

出0入4汤圆

发表于 2010-4-13 15:10:28 | 显示全部楼层
最近也打算做一个,打算加入天干地支纪年月日时,有了解这方面的朋友给指点下

出0入0汤圆

发表于 2010-4-27 23:28:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-2 16:42:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-9 13:27:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-13 22:39:59 | 显示全部楼层
请问楼主有详细资料吗?可以发给我吗?邮箱848766091@qq.com

出0入0汤圆

发表于 2010-8-16 12:40:05 | 显示全部楼层

出0入0汤圆

发表于 2010-9-21 15:12:36 | 显示全部楼层
了解,学习了。。

出0入8汤圆

发表于 2010-10-15 21:32:35 | 显示全部楼层
回复【楼主位】b57203493
-----------------------------------------------------------------------

有点对不汇编头痛,不过版主还是很强大的!!!!

出0入0汤圆

发表于 2010-12-1 23:52:01 | 显示全部楼层
又见汇编,看不懂咯

出0入0汤圆

发表于 2010-12-2 15:11:54 | 显示全部楼层
看到汇编巨头痛!还是谢谢LZ分享!

出0入0汤圆

发表于 2010-12-2 22:08:26 | 显示全部楼层
楼主辛苦了!

出0入0汤圆

发表于 2010-12-3 12:37:06 | 显示全部楼层
感谢分享~~~小弟学习了

出0入0汤圆

发表于 2011-1-12 13:41:03 | 显示全部楼层
感谢分享

出0入0汤圆

发表于 2011-8-9 20:07:13 | 显示全部楼层
牛人啊,谢谢分享了

出0入0汤圆

发表于 2011-10-7 22:01:34 | 显示全部楼层
学习ing

出0入4汤圆

发表于 2011-10-16 20:21:43 | 显示全部楼层
好长的汇编啊

出0入0汤圆

发表于 2011-11-25 15:18:46 | 显示全部楼层
原理图无效!

出0入0汤圆

发表于 2015-1-5 22:54:32 | 显示全部楼层
漂亮,牛人啊

出0入0汤圆

发表于 2015-1-6 16:51:28 | 显示全部楼层
漂亮,又见汇编高手

出0入0汤圆

发表于 2015-1-12 11:20:01 来自手机 | 显示全部楼层
汇编看着好晕,大家液晶屏做界面怎么处理的能漂亮一点?

出0入0汤圆

发表于 2015-10-17 10:35:49 | 显示全部楼层
mark,顶楼主

出0入0汤圆

发表于 2018-8-4 15:49:47 | 显示全部楼层
b57203493 发表于 2010-4-10 14:08
不好意思
最近忙,把上传照片的事情给忘了

好厉害啊,羡慕

出0入0汤圆

发表于 2018-8-6 14:56:41 | 显示全部楼层
高手啊  汇编
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 19:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表