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

📄 yxd-cf12232a06d.asm

📁 YXD-CF12232A06D 烨新达驱动122-32显示屏ASM
💻 ASM
📖 第 1 页 / 共 3 页
字号:

;#########################################################################
;#####                                                               #####
;#####          Program Name    : ST-7920  LCD CONTROL TEST          #####
;#####          CPU             : WINBOND 78E52-40                   #####
;#####          CRYSTAL         : 12MHz                              #####
;#####          INTERFACE       : 8-Bit Parallel 68 Series           #####
;#####                                                               #####
;#####          EditcModify Date: 2001/05/20                         #####
;#####          Author          : KEVIN                              #####
;#####                                                               #####
;#########################################################################
;#####                                                               #####
;#####                      Control Pin Port-3                       #####
;#####                  data bus D0..D7 Map Port-1                   #####
;#####                           VDD=5.0V                            #####
;#####                                                               #####
;#########################################################################
RS      EQU     P3.0                    ;
RW      EQU     P3.1                    ;
E       EQU     P3.2                    ;
;PORT-1 P10...P17 ==== D0...D7          ;
;---------------------------------------;
;REGISTER DEFINE                        ;
BYTE1   EQU     20H                     ;
BYTE2   EQU     21H                     ;
EX_FT   EQU     22H                     ;
NR_FT   EQU     23H                     ;
SEC     EQU     24H                     ;
MIN     EQU     25H                     ;
HOUR    EQU     26H                     ;
G_LEN   EQU     27H                     ;
G_WID   EQU     28H                     ;
G_ROW   EQU     29H                     ;
G_COL   EQU     2AH                     ;
STACK   EQU     30H                     ;
;#########################################################################
;#####                          巨集定义                             #####
;#########################################################################
S_LINE  MACRO   ADDRESS                 ;
        MOV     A,ADDRESS               ;
        CALL    DISPLAY_DELAY           ;
        ENDM                            ;
;---------------------------------------;
G_BLOCK MACRO   LENGTH,WIDTH,START_ROW,START_COLUMN
        MOV     G_ROW,START_ROW         ;
        MOV     G_COL,START_COLUMN      ;
        MOV     G_LEN,LENGTH            ;
        MOV     G_WID,WIDTH             ;
        CALL    GRAP_SUB                ;
        ENDM                            ;
;---------------------------------------;
G_ADDR  MACRO   B1,B2                   ;
        MOV     BYTE1,B1                ;
        MOV     BYTE2,B2                ;
        CALL    SET_GRAPHIC_ADDRESS     ;
        ENDM                            ;
;---------------------------------------;
WR2DATA MACRO   B1,B2                   ;
        MOV     BYTE1,B1                ;
        MOV     BYTE2,B2                ;
        CALL    WRITE_DOUBLE_DATA       ;
        ENDM                            ;
;---------------------------------------;
INS_W   MACRO   INS                     ;
        MOV     A,INS                   ;
        CALL    WRINS                   ;
        ENDM                            ;
;---------------------------------------;
DATA_W  MACRO   DATA                    ;
        MOV     A,DATA                  ;
        CALL    WRDATA                  ;
        ENDM                            ;
;#########################################################################
;#####                          中断矢量表                           #####
;#########################################################################
        ORG     00H                     ;
        JMP     RESET                   ;REST                      ** RESET **
        ORG     03H                     ;
        RETI                            ;IE0         外部中断-0
        ORG     0BH                     ;
        RETI                            ;IE1         计时器-0
        ORG     13H                     ;
        RETI                            ;IE1         外部中断-1
        ORG     1BH                     ;
        RETI                            ;TF1         计时器-1
        ORG     23H                     ;
        RETI                            ;RI & TI     接收/发射
        ORG     2BH                     ;
        RETI                            ;TF2 & EXF2  计时器-2
;#########################################################################
;#####                            主程序                             #####
;#########################################################################
        ;*******************************;
RESET:  ;***      设定各寄存器       ***;
        ;*******************************;
        MOV     SP,#STACK               ;
        MOV     TMOD,#02                ;TIMER0(MODE2)
        MOV     TH0,#0                  ;COUNT VALUE=256
        SETB    TR0                     ;START COUNT
        CALL    DELAY1                  ;
        MOV     EX_FT,#00110110B        ;
        MOV     NR_FT,#00110000B        ;
        ;===============================;
        ;         LCD 开机设定          ;
        ;===============================;
        MOV     A,#30H                  ;FUNCTION SET 8 bit
        CALL    WRINS_NOCHK             ;
        CALL    DELAY1                  ;
        MOV     A,#30H                  ;FUNCTION SET 8 bit
        CALL    WRINS_NOCHK             ;
        CALL    DELAY1                  ;
        MOV     A,#30H                  ;FUNCTION SET 8 bit
        CALL    WRINS_NOCHK             ;
        CALL    DELAY1                  ;
                                        ;
        MOV     A,#06H                  ;ENTRY MODE SET
        CALL    WRINS_NOCHK             ;
        CALL    DELAY1                  ;
                                        ;
        MOV     A,#01                   ;CLEAR DISPLAY (DDRAM)
        CALL    WRINS_NOCHK             ;
        CALL    DELAY1                  ;
                                        ;
        MOV     A,#0CH                  ;DISPLAY ON
        CALL    WRINS_NOCHK             ;
        CALL    DELAY1                  ;
        ;===============================;
        ;         LCD 测试流程          ;
        ;===============================;
MAIN:   CALL    CLEAR_GRAPHIC           ; <----------------------------------------------
        INS_W   #01H                    ; CLEAR DISPALY (DDRAM)                          |
        INS_W   #0CH                    ; DISPALY ON                                     |
        S_LINE  #80H                    ;                                                |
        DB      'welcome ST7920      ',0;                                                |
        S_LINE  #90H                    ;                                                |
        DB      'www.sitronix.com.tw ',0;                                                |
        CALL    DLY1S                   ;                                                |
        INS_W   #01                     ; CLEAR DISPALY (DDRAM)                          |
        MOV     DPTR,#PIC_TABLE         ; SET GDRAM DATA                                 |
        G_BLOCK #32,#3,#0,#0            ;                                                |
        G_BLOCK #32,#3,#0,#3            ;                                                |
        G_BLOCK #32,#3,#0,#6            ;                                                |
        G_BLOCK #32,#3,#32,#0           ;                                                |
        G_BLOCK #32,#3,#32,#3           ;                                                |
        CALL    DLY1S                   ;                                                |
        S_LINE  #80H                    ;                                                |
        DB      'Graphic + Character ',0;                                                |
        S_LINE  #90H                    ;                                                |
        DB      '绘图与文字混合使用  ',0;                                                |
        CALL    DLY1S                   ;                                                |
        ;-------------------------------;                                                |
        MOV     R0,#04                  ;LOOP COUNT = 4                                  |
$0      MOV     EX_FT,#00110100B        ;graphic mode off <---                           |
        INS_W   EX_FT                   ;                     |                          |
        CALL    DLY1S                   ;                     |                          |
        MOV     EX_FT,#00110110B        ;graphic mode on      |                          |
        INS_W   EX_FT                   ;                     |                          |
        CALL    DLY1S                   ;                     |                          |
        DJNZ    R0,$0                   ;---------------------                           |
        ;-------------------------------;                                                |
        CALL    DLY1S                   ;                                                |
        MOV     R1,#0                   ;                                                |
$1      MOV     A,R1                    ;<------  上卷                                   |
        CALL    ROW_DISPLAY             ;       |                                        |
        INC     R1                      ;       |                                        |
        CALL    DELAY1                  ;       |                                        |
        CALL    DELAY1                  ;       |                                        |
        CALL    DELAY1                  ;       |                                        |
        CJNE    R1,#33,$1               ;-------                                         |
        CALL    DLY1S                   ;                                                |
        ;-------------------------------;                                                |
        MOV     R1,#32                  ;                                                |
$2      MOV     A,R1                    ;<------  下卷                                   |
        CALL    ROW_DISPLAY             ;       |                                        |
        DEC     R1                      ;       |                                        |
        CALL    DELAY1                  ;       |                                        |
        CALL    DELAY1                  ;       |                                        |
        CALL    DELAY1                  ;       |                                        |
        CJNE    R1,#0-1,$2              ;-------                                         |
        CALL    DLY1S                   ;                                                |
        ;-------------------------------;                                                |
        JMP     MAIN                    ;------------------------------------------------

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;                                                          ;;;;;;;;
;;;;;;;;   功能: 清除 GRAPHIC RAM                                 ;;;;;;;;
;;;;;;;;   输入参数:                     输出参数:                ;;;;;;;;
;:::::;:                                                          :::::::;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLEAR_GRAPHIC:                          ;
        PUSH    0                       ;
        PUSH    1                       ;
        MOV     EX_FT,#00110100B        ;
        MOV     R0,#0                   ;
        MOV     R1,#0                   ; ADDRESS R0=X  R1=Y
$2      G_ADDR  R0,R1                   ;
$1      DATA_W  #00                     ;
        DATA_W  #00                     ; DATA = 00,00
        INC     R0                      ;
        MOV     A,R0                    ;
        CJNE    A,#16,$1                ;
        INC     R1                      ;
        MOV     R0,#0                   ;
        MOV     A,R1                    ;
        CJNE    A,#64,$2                ;
        MOV     EX_FT,#00110110B        ;
        POP     1                       ;
        POP     0                       ;
        RET                             ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;                                                          ;;;;;;;;
;;;;;;;;   功能: 填 GRAPHIC RAM DATA                              ;;;;;;;;
;;;;;;;;   输入参数:                     输出参数:                ;;;;;;;;
;:::::;:                                                          :::::::;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GRAP_SUB:                               ;
        SETB    RS0                     ;
        MOV     A,G_ROW                 ;

⌨️ 快捷键说明

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