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

📄 led.asm

📁 LED大屏幕仿真代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        MOV A,@R0
        RLC A
        MOV @R0,A
        DEC R0
        DEC R0
        DEC R0
        DEC R1
        CJNE R1,#7FH,ZBPZY0
        RET

;左半屏右移

ZBPYY:  MOV R0,#0A0H
        MOV R1,#80H

ZBPYY0: MOV A,@R1
        CLR C
        RRC A
        MOV @R1,A
        MOV A,@R0
        RRC A
        MOV @R0,A
        INC R0
        MOV A,@R0
        RRC A
        MOV @R0,A
        INC R0
        INC R0
        INC R0
        INC R1
        CJNE R1,#90H,ZBPYY0
        RET

;右半屏左移

YBPZY:  MOV R0,#0DFH
        MOV R1,#7FH

YBPZY0: MOV A,@R1
        CLR C
        RLC A
        MOV @R1,A
        MOV A,@R0
        RLC A
        MOV @R0,A
        DEC R0
        MOV A,@R0
        RLC A
        MOV @R0,A
        DEC R0
        DEC R0
        DEC R0
        DEC R1
        CJNE R1,#6FH,YBPZY0
        RET

;右半屏右移

YBPYY:  MOV R0,#0A2H
        MOV R1,#70H

YBPYY0: MOV A,@R1
        CLR C
        RRC A
        MOV @R1,A
        MOV A,@R0
        RRC A
        MOV @R0,A
        INC R0
        MOV A,@R0
        RRC A
        MOV @R0,A
        INC R0
        INC R0
        INC R0
        INC R1
        CJNE R1,#80H,YBPYY0
        RET

;左移显示多字
;调用前先给DPTR,R7赋值
ZYXSDZ: MOV R6,#08H
        MOV R3,#00H
        LCALL XSYHC

ZYXSDZ0:LCALL ZPZY
        MOV 60H,#1
        LCALL DELY
        DJNZ R6,ZYXSDZ0
        MOV R6,#08H
        MOV R3,#01H
        LCALL XSYHC

ZYXSDZ1:LCALL ZPZY
        MOV 60H,#1
        LCALL DELY
        DJNZ R6,ZYXSDZ1
        MOV A,DPL
        ADD A,#20H
        MOV DPL,A
        MOV A,DPH
        ADDC A,#00H
        MOV DPH,A
        DJNZ R7,ZYXSDZ
        RET

;取反
CF:     MOV R0,#0A0H
CF1:    MOV A,@R0
        CPL A
        MOV @R0,A
        INC R0
        CJNE R0,#0E0H,CF1
        RET

;清缓冲
;调用前先给 R1,R4赋值
CHC:    MOV A,@R1
        CLR A
        MOV @R1,A
        INC R1
        DJNZ R4,CHC
        RET

;置缓冲
;调用前先给 R1,R4赋值
ZHC:    MOV A,@R1
        CLR A
        CPL A
        MOV @R1,A
        INC R1
        DJNZ R4,ZHC
        RET

;或显示
;调用前先给 DPTR,R0赋值
HXS:   MOV R3,#00H
HXS0:  MOV A,R3
       MOVC A,@A+DPTR
       ORL A,@R0
       MOV @R0,A
       INC R0
       INC R3
       MOVC A,@A+DPTR
       ORL A,@R0
       MOV @R0,A
       INC R0
       INC R0
       INC R0
       INC R3
       CJNE R3,#20H,HXS0
       RET

;延时(100MS)
;调用前先给 60H赋值
DELY:  MOV 61H,#30
DELY0: MOV 62H,#250
       DJNZ 62H,$
       DJNZ 61H,DELY0
       DJNZ 60H,DELY
       RET
;延时(1MS)
DELAY:      MOV 63H,#2
DELAY0:     MOV 64H,#250
            DJNZ 64H,$
            DJNZ 63H,DELAY0
            RET
;======================================================================
;8*16直接显示
;调用前先给R0,DPTR赋值
        SHUHC EQU 50H      ;数缓冲
SHUXJ:  MOV A,SHUHC
        CJNE A,#0,SHUXJ1
        MOV DPTR,#TABSHU0
        LJMP SHUXJOUT
SHUXJ1: CJNE A,#1,SHUXJ2
        MOV DPTR,#TABSHU1
        LJMP SHUXJOUT
SHUXJ2: CJNE A,#2,SHUXJ3
        MOV DPTR,#TABSHU2
        LJMP SHUXJOUT
SHUXJ3: CJNE A,#3,SHUXJ4
        MOV DPTR,#TABSHU3
        LJMP SHUXJOUT
SHUXJ4: CJNE A,#4,SHUXJ5
        MOV DPTR,#TABSHU4
        LJMP SHUXJOUT
SHUXJ5: CJNE A,#5,SHUXJ6
        MOV DPTR,#TABSHU5
        LJMP SHUXJOUT
SHUXJ6: CJNE A,#6,SHUXJ7
        MOV DPTR,#TABSHU6
        LJMP SHUXJOUT
SHUXJ7: CJNE A,#7,SHUXJ8
        MOV DPTR,#TABSHU7
        LJMP SHUXJOUT
SHUXJ8: CJNE A,#8,SHUXJ9
        MOV DPTR,#TABSHU8
        LJMP SHUXJOUT
SHUXJ9: CJNE A,#9,SHUXJ10
        MOV DPTR,#TABSHU9
        LJMP SHUXJOUT
SHUXJ10: MOV DPTR,#TABSHU10

SHUXJOUT:

RET
ZJXS8:  MOV R3,#00H

ZJXS80: MOV A,R3
       MOVC A,@A+DPTR
       MOV @R0,A
       INC R0
       INC R0
       INC R0
       INC R0
       INC R3
       CJNE R3,#10H,ZJXS80
       RET
; 将时间变成分离BCD码40H-------
FLBCD: MOV R0,#SECOND
       MOV R1,#40H
       MOV R7,#7
FLBCD1:  MOV A,@R0

       ANL A,#0FH
       MOV @R1,A
       MOV A,@R0
       SWAP A
       ANL A,#0FH
       INC R1
       MOV @R1,A
       INC R0
       INC R1
       DJNZ R7,FLBCD1
       RET



;*********************************************************************/
SECOND EQU 30H
T_CLK Bit P1.4;实时时钟时钟线引脚
T_IO  Bit P1.5;实时时钟数据线引脚
T_RST Bit P1.6;实时时钟复位线引脚

;**********************************************************
;子程序名:Set1302
;功    能:设置DS1302 初始时间,并启动计时。
;说    明:
;调    用:RTInputByte;入口参数:初始时间在:Second,Minute,Hour,Day,Month,Week.YearL(地址连续)
;出口参数:无
;影响资源:A B R0 R1 R4 R7

;**********************************************************
Set1302:
          CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,     #8EH        ;控制寄存器
          LCALL  RTInputByte
          MOV    B,     #00H        ;写操作前WP=0
          LCALL  RTInputByte
          SETB   T_CLK
          CLR    T_RST
          MOV    R0,    #Second
          MOV    R7,    #7        ;秒 分 时 日 月 星期 年
          MOV    R1,    #80H      ;秒写地址
S13021:
          CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,     R1        ;写秒 分 时 日 月 星期 年 地址
          LCALL  RTInputByte
          MOV    A,     @R0       ;写秒数据
          MOV    B,     A
          LCALL  RTInputByte
          INC    R0
          INC    R1
          INC    R1
          SETB   T_CLK
          CLR    T_RST
          DJNZ   R7,    S13021
          CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,     #8EH        ;控制寄存器
          LCALL  RTInputByte
          MOV    B,     #80H        ;控制,WP=1,写保护
          LCALL  RTInputByte
          SETB   T_CLK
          CLR    T_RST
          RET
          ;**********************************************************
          ;子程序名:Get1302;功    能:从DS1302 读时间
          ;说    明:
          ;调    用:RTInputByte,RTOutputByte
          ;入口参数:时间保存在:Second,Minute,Hour,Day,Month,Week.YearL
          ;出口参数:无
          ;影响资源:A B R0 R1 R4 R7

          ;**********************************************************
Get1302:
          MOV    R0,    #Second;
          MOV    R7,    #7
          MOV    R1,    #81H       ;秒地址
G13021:
          CLR    T_RST
          CLR    T_CLK
          SETB   T_RST
          MOV    B,     R1        ;秒 分 时 日 月 星期 年 地址
          LCALL  RTInputByte
          LCALL  RTOutputByte
          MOV    @R0,   A         ;秒
          INC    R0
          INC    R1
          INC    R1
          SETB   T_CLK
          CLR    T_RST
          DJNZ   R7,    G13021
          RET
          ;**********************************************************
          ;功    能:写1302一字节  (内部子程序)
          ;**********************************************************
RTInputByte:
            MOV    R4,    #8
Inbit1:
          MOV    A,     B
          RRC    A
          MOV    B,     A
          MOV    T_IO,  C
          SETB   T_CLK
          CLR    T_CLK
          DJNZ   R4,   Inbit1
          RET
          ;**********************************************************
          ;功    能:读1302一字节  (内部子程序)
          ;**********************************************************
RTOutputByte:
          MOV    R4,    #8
Outbit1:  MOV    C,     T_IO
          RRC    A
          SETB   T_CLK
          CLR    T_CLK
          DJNZ   R4,    Outbit1
          RET
          ;///////////////////////////////////////////////////////////
TABSHU0:
;--  文字:  0  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,018H,024H,042H,042H,042H,042H,042H,042H,042H,024H,018H,000H,000H,
TABSHU1:
;--  文字:  1  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,010H,070H,010H,010H,010H,010H,010H,010H,010H,010H,07CH,000H,000H,
TABSHU2:
;--  文字:  2  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,03CH,042H,042H,042H,004H,004H,008H,010H,020H,042H,07EH,000H,000H,
TABSHU3:
;--  文字:  3  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,03CH,042H,042H,004H,018H,004H,002H,002H,042H,044H,038H,000H,000H,
TABSHU4:
;--  文字:  4  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,004H,00CH,014H,024H,024H,044H,044H,07EH,004H,004H,01EH,000H,000H,
TABSHU5:
;--  文字:  5  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,07EH,040H,040H,040H,058H,064H,002H,002H,042H,044H,038H,000H,000H,
TABSHU6:
;--  文字:  6  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,01CH,024H,040H,040H,058H,064H,042H,042H,042H,024H,018H,000H,000H,
TABSHU7:
;--  文字:  7  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,07EH,044H,044H,008H,008H,010H,010H,010H,010H,010H,010H,000H,000H,
TABSHU8:
;--  文字:  8  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,03CH,042H,042H,042H,024H,018H,024H,042H,042H,042H,03CH,000H,000H,
TABSHU9:
;--  文字:  9  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,018H,024H,042H,042H,042H,026H,01AH,002H,002H,024H,038H,000H,000H,
TABSHU10:
;--  文字:  E  --
;--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --
DB  000H,000H,000H,0FCH,042H,048H,048H,078H,048H,048H,040H,042H,042H,0FCH,000H,000H,









TAB1:   DB  00H,80H,00H,80H,0FCH,80H,04H,0FCH
        DB  45H,04H,46H,48H,28H,40H,28H,40H
        DB  10H,40H,28H,40H,24H,0A0H,44H,0A0H
        DB  81H,10H,01H,08H,02H,0EH,0CH,04H

TAB2:   DB  00H,00H,41H,84H,26H,7EH,14H,44H
        DB  04H,44H,04H,44H,0F4H,44H,14H,0C4H
        DB  15H,44H,16H,54H,14H,48H,10H,40H
        DB  10H,40H,28H,46H,47H,0FCH,00H,00H

TAB3:   DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
        DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
        DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
        DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH

TAB4:   DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
        DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
        DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH
        DB  0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH

TAB5:   DB  10H,00H,11H,0FCH,10H,04H,10H,08H
        DB  0FCH,10H,24H,20H,24H,24H,27H,0FEH
        DB  24H,20H,44H,20H,28H,20H,10H,20H
        DB  28H,20H,44H,20H,84H,0A0H,00H,40H

TAB6:   DB  41H,00H,22H,7CH,14H,44H,7FH,44H             ;郑
        DB    08H,48H,08H,48H,09H,50H,0FFH,0C8H
        DB    08H,44H,08H,42H,08H,42H,14H,62H
        DB    12H,54H,22H,48H,40H,40H,00H,40H

TAB7:   DB   10H,04H,10H,84H,10H,84H,10H,84H            ;州
        DB   54H,0A4H,52H,94H,52H,94H,90H,84H
        DB   10H,84H,10H,84H,10H,84H,10H,84H
        DB   20H,84H,20H,84H,40H,04H,00H,04H

TAB8:   DB   10H,00H,11H,0FCH,14H,08H,0FEH,10H          ;轻
        DB   20H,38H,28H,0CCH,4BH,02H,7CH,00H
        DB   08H,08H,09H,0FCH,0EH,20H,0F8H,20H
        DB   48H,20H,08H,24H,0BH,0FEH,08H,00H


TAB9:   DB   00H,00H,00H,08H,7FH,0FCH,01H,00H            ;  工
        DB   01H,00H,01H,00H,01H,00H,01H,00H
        DB   01H,00H,01H,00H,01H,00H,01H,00H
        DB   01H,04H,0FFH,0FEH,00H,00H,00H,00H

TAB10:   DB   04H,40H,04H,40H,04H,40H,04H,40H             ;业
        DB   44H,44H,24H,44H,24H,48H,14H,48H
        DB   14H,50H,14H,50H,14H,60H,04H,40H
        DB   04H,40H,04H,44H,0FFH,0FEH,00H,00H

TAB11:   DB   22H,08H,11H,08H,11H,10H,00H,20H             ;学
        DB   7FH,0FEH,40H,02H,80H,04H,1FH,0E0H
        DB   00H,40H,01H,84H,0FFH,0FEH,01H,00H
        DB   01H,00H,01H,00H,05H,00H,02H,00H


TAB12:   DB   00H,80H,78H,40H,4FH,0FEH,54H,02H            ;院
        DB   58H,14H,63H,0F8H,50H,00H,48H,08H
        DB   4FH,0FCH,48H,0A0H,68H,0A0H,50H,0A0H
        DB   41H,22H,41H,22H,42H,1EH,4CH,00H

TAB13:   DB   00H,80H,00H,80H,0FCH,80H,04H,0FCH           ;欢
        DB   45H,04H,46H,48H,28H,40H,28H,40H
        DB   10H,40H,28H,40H,24H,0A0H,44H,0A0H
        DB   81H,10H,01H,08H,02H,0EH,0CH,04H

TAB14:   DB   00H,00H,41H,84H,26H,7EH,14H,44H            ; 迎
        DB   04H,44H,04H,44H,0F4H,44H,14H,0C4H
        DB   15H,44H,16H,54H,14H,48H,10H,40H
        DB   10H,40H,28H,46H,47H,0FCH,00H,00H

TAB15:   DB   09H,00H,09H,00H,13H,0FCH,12H,04H            ;您
        DB   34H,48H,59H,40H,91H,50H,12H,4CH
        DB   14H,44H,11H,40H,10H,80H,02H,00H
        DB   51H,84H,50H,92H,90H,12H,0FH,0F0H


 END

⌨️ 快捷键说明

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