12864_chs.lst

来自「买板子时赠的实验例子」· LST 代码 · 共 1,186 行 · 第 1/5 页

LST
1,186
字号
A51 MACRO ASSEMBLER  12864_CHS                                                            03/29/2005 16:03:58 PAGE     1


MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN 12864_chs.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 12864_chs.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;********************************************************************************
                       2     ;*  标题:  伟纳电子ME300B单片机开发系统演示程序 - 12864LCD(带汉字库)演示       *
                       3     ;*  文件:  wl016.asm                                                            *
                       4     ;*  日期:  2005-3-20                                                            *
                       5     ;*  版本:  1.0                                                                  *
                       6     ;*  作者:  gguoqing                                                             *
                       7     ;*  邮箱:  gguoqing@willar.com                                                  *
                       8     ;*  网站: http://www.willar.com                                                *
                       9     ;********************************************************************************
                      10     ;*  描述:                                                                       *
                      11     ;*         12864LCD(带汉字库)演示程序                                          *
                      12     ;*         控制器ST7920                                                         *
                      13     ;*         LCD型号:TS12864A-3(带汉字库)或兼容型号                            *
                      14     ;*         MCU:AT89S52 ,晶体频率:11.0592MHz                                    *
                      15     ;*                                                                              *
                      16     ;********************************************************************************
                      17     ;* 【版权】 Copyright(C)伟纳电子 www.willar.com  All Rights Reserved            *
                      18     ;* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
                      19     ;********************************************************************************
                      20        
                      21                                    
                      22     ;****************TS12864A-3 并口****************
                      23                                        
  00A0                24               RS    EQU     P2.0       
  00A1                25               RW    EQU     P2.1
  00A2                26               E     EQU     P2.2
  00A3                27               PSB   EQU     P2.3
  00A5                28               RST   EQU     P2.5
                      29     ;-----------------------------------------------
  0030                30               LCD_X  EQU    30H
  0031                31               LCD_Y  EQU    31H
  0032                32               COUNT  EQU    32H
  0033                33               COUNT1 EQU    33H
  0034                34               COUNT2 EQU    34H
  0035                35               COUNT3 EQU    35H
                      36     ;-----------------------------------------------
  0036                37            LCD_DATA  EQU    36H
  0037                38            LCD_DATA1 EQU    37H
  0038                39            LCD_DATA2 EQU    38H
  0039                40               STORE  EQU    39H
                      41     
                      42     ;-----------------------------------------------
0000                  43                     ORG     0000H
0000 020100           44                     LJMP    MAIN
0100                  45                     ORG     0100H
                      46     ;-----------------------------------------------
0100                  47     MAIN:
0100 75815F           48                 MOV SP,#5FH
0103 C2A5             49                 CLR  RST             ;复位
0105 12032D           50                 LCALL DELAY4
0108 D2A5             51                 SETB RST
010A 00               52                 NOP
010B D2A3             53                 SETB PSB             ;通讯方式为8位数据并口
                      54     
                      55     ;********************初始化**********************
010D 7434             56     LGS0:       MOV A,#34H          ;34H--扩充指令操作
010F 1202DE           57                 LCALL SEND_I
0112 7430             58                 MOV A,#30H          ;30H--基本指令操作
A51 MACRO ASSEMBLER  12864_CHS                                                            03/29/2005 16:03:58 PAGE     2

0114 1202DE           59                 LCALL SEND_I
0117 7401             60                 MOV A,#01H          ;清除显示
0119 1202DE           61                 LCALL SEND_I
011C 7406             62                 MOV A,#06H          ;指定在资料写入或读取时,光标的移动方向
011E 1202DE           63                 LCALL SEND_I        ;DDRAM 的地址计数器(AC)加1
0121 740C             64                 MOV A,#0CH          ;开显示,关光标,不闪烁
0123 1202DE           65                 LCALL SEND_I
                      66     ;===============================================
0126                  67     TU_PLAY1:
0126 9003C3           68                 MOV  DPTR,#TU_TAB1       ;显示图形
0129 1201F9           69                 LCALL PHO_DISP
012C 12030E           70                 LCALL DELAY3
                      71                 
                      72     ;===============================================
                      73     ;显示汉字和字符
                      74     ;加入80ms的延时,使你能够看清楚显示的过程
                      75     ;根据汉字显示坐标写入 (隔行写入)
                      76     ;===============================================
012F                  77     HAN_WR1:
012F 1202B1           78                 LCALL CLEAR_P
0132 900343           79                 MOV DPTR,#TAB1      ;显示汉字和字符
0135 753240           80                 MOV COUNT,#40H      ;地址计数器设为最大值 64。
0138 7480             81                 MOV A,#80H          ;起始地址
013A 1202DE           82                 LCALL SEND_I
013D 1202C1           83                 LCALL QUSHU
0140 12030E           84                 LCALL DELAY3
0143 120288           85                 LCALL FLASH
                      86     ;=================================================
                      87     ;;显示汉字和字符
                      88     ;加入80ms的延时,使你能够看清楚显示的过程
                      89     ;根据汉字显示坐标分段写入(顺序写入)
                      90     ;=================================================
0146                  91     HAN_WR2:
0146 1202B1           92                 LCALL CLEAR_P
0149                  93     HAN_WR2A:
0149 900343           94                 MOV DPTR,#TAB1A     ;显示汉字和字符
014C 753210           95                 MOV COUNT,#10H      ;地址计数器设为16。
014F 7480             96                 MOV A,#80H          ;第一行起始地址
0151 1202DE           97                 LCALL SEND_I
0154 1202C1           98                 LCALL   QUSHU
0157                  99     HAN_WR2B:
0157 900363          100                 MOV DPTR,#TAB1B     ;显示汉字和字符
015A 753210          101                 MOV COUNT,#10H      ;地址计数器设为16。
015D 7490            102                 MOV A,#90H          ;第二行起始地址
015F 1202DE          103                 LCALL SEND_I
0162 1202C1          104                 LCALL QUSHU
0165                 105     HAN_WR2C:
0165 900353          106                 MOV DPTR,#TAB1C     ;显示汉字和字符
0168 753210          107                 MOV COUNT,#10H      ;地址计数器设为16。
016B 7488            108                 MOV A,#88H          ;第三行起始地址
016D 1202DE          109                 LCALL SEND_I
0170 1202C1          110                 LCALL QUSHU
0173                 111     HAN_WR2D:
0173 900373          112                 MOV DPTR,#TAB1D      ;显示汉字和字符
0176 753210          113                 MOV COUNT,#10H       ;地址计数器设为16。
0179 7498            114                 MOV A,#98H           ;第四行起始地址
017B 1202DE          115                 LCALL SEND_I
017E 1202C1          116                 LCALL QUSHU
0181 12030E          117                 LCALL DELAY3
0184 120288          118                 LCALL FLASH
0187 1202B1          119                 LCALL CLEAR_P
018A 8009            120                 JMP  TU_PLAY2
                     121     ;----------------------------------------------
                     122     ;TU_PLAY1:
018C 9003C3          123                 MOV  DPTR,#TU_TAB1       ;显示图形
018F 1201F9          124                 LCALL PHO_DISP
A51 MACRO ASSEMBLER  12864_CHS                                                            03/29/2005 16:03:58 PAGE     3

0192 12030E          125                 LCALL DELAY3
                     126                 ;LCALL   FLASH
                     127     ;----------------------------------------------
0195                 128     TU_PLAY2:
0195 9007C3          129                 MOV DPTR,#TU_TAB2   ;显示图形
0198 1201F9          130                 LCALL PHO_DISP
019B 12030E          131                 LCALL DELAY3
                     132                 ;LCALL   FLASH
                     133     ;----------------------------------------------
019E                 134     TU_PLAY3:
019E 900BC3          135                 MOV DPTR,#TU_TAB3   ;显示图形
01A1 1201F9          136                 LCALL PHO_DISP
01A4 12030E          137                 LCALL DELAY3
                     138                 ;LCALL   FLASH
                     139     ;-----------------------------------------------
                     140     ;显示点阵
                     141     ;-----------------------------------------------
01A7                 142     LATPLAY1:
01A7 7401            143                 MOV A,#01H         ;清屏
01A9 1202DE          144                 LCALL SEND_I
01AC 7537CC          145                 MOV LCD_DATA1,#0CCH  ;显示点阵
01AF 7538CC          146                 MOV LCD_DATA2,#0CCH
01B2 120234          147                 LCALL LAT_DISP
01B5 12030E          148                 LCALL DELAY3
01B8 1202B1          149                 LCALL CLEAR_P
                     150                 ;LJMP  TU_PLAY1
                     151     ;===============================================
                     152     ;调字库半角字符显示
                     153     ;===============================================
01BB                 154     KU_PLAY1:
01BB 1202B1          155                 LCALL  CLEAR_P
01BE 753240          156                 MOV  COUNT,#40H
01C1 7480            157                 MOV  A,#80H
01C3 1202DE          158                 LCALL SEND_I
01C6 7910            159                 MOV  R1,#10H
01C8                 160     LATPLAY11:
01C8 E9              161                 MOV  A,R1
01C9 1202CE          162                 LCALL  SEND_D
01CC 09              163                 INC  R1
01CD D532F8          164                 DJNZ  COUNT,LATPLAY11
01D0 12030E          165                 LCALL  DELAY3
01D3 1202B1          166                 LCALL  CLEAR_P
                     167                 ;LJMP  TU_PLAY1
                     168     
                     169     ;===============================================
                     170     ;调字库汉字显示
                     171     ;从 B9F3 “贵”字处开始显示
                     172     ;===============================================
01D6                 173     KU_PLAY2:
01D6 1202B1          174                 LCALL  CLEAR_P
01D9 753240          175                 MOV  COUNT,#40H
01DC 7480            176                 MOV  A,#80H
01DE 1202DE          177                 LCALL SEND_I
01E1 79F3            178                 MOV  R1,#0F3H
01E3                 179     KU_PLAY21:
01E3 74B9            180                 MOV  A,#0B9H
01E5 1202CE          181                 LCALL  SEND_D        ;写入第一字节数据(高位)
01E8 E9              182                 MOV  A,R1
01E9 1202CE          183                 LCALL  SEND_D        ;写入第二字节数据(低位)
01EC 09              184                 INC  R1
01ED D532F3          185                 DJNZ  COUNT,KU_PLAY21
01F0 12030E          186                 LCALL  DELAY3
01F3 1202B1          187                 LCALL  CLEAR_P
01F6 020126          188                 LJMP  TU_PLAY1
                     189                 ;JMP  $
                     190     ;===============================================
A51 MACRO ASSEMBLER  12864_CHS                                                            03/29/2005 16:03:58 PAGE     4

                     191     ;全屏显示图形子程序
                     192     ;===============================================
01F9                 193     PHO_DISP:
01F9 753502          194                 MOV  COUNT3,#02H
01FC 753080          195                 MOV  LCD_X,#80H
01FF                 196     PHO_DISP1:
01FF 753180          197                 MOV  LCD_Y,#80H
0202 753420          198                 MOV  COUNT2,#20H
0205                 199     PHO_DISP2:
0205 753310          200                 MOV  COUNT1,#10H
0208 120273          201                 LCALL WR_ZB
020B                 202     PHO_DISP3:
020B E4              203                 CLR A
020C 93              204                 MOVC A,@A+DPTR
020D 1202CE          205                 LCALL SEND_D
0210 A3              206                 INC DPTR
0211 D533F7          207                 DJNZ COUNT1,PHO_DISP3
0214 0531            208                 INC LCD_Y
0216 D534EC          209                 DJNZ COUNT2,PHO_DISP2
0219 753088          210                 MOV LCD_X,#88H
021C D535E0          211                 DJNZ COUNT3,PHO_DISP1
                     212     
021F 7436            213                 MOV A,#36H
0221 1202DE          214                 LCALL SEND_I
0224 7430            215                 MOV A,#30H
0226 1202DE          216                 LCALL SEND_I
0229 22              217                 RET
                     218     ;----------------------------------------------
022A                 219     CLRRAM:
022A 753700          220                 MOV LCD_DATA1,#00H          ;GDRAM写0子程序
022D 753800          221                 MOV LCD_DATA2,#00H
0230 120234          222                 LCALL LAT_DISP
0233 22              223                 RET

⌨️ 快捷键说明

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