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

📄 12864.lst

📁 st7920 并行方式驱动12864液晶驱动
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  12864                                                                09/16/2007 22:36:02 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;12864(带字库汉字显示演示程序)
                       2     ;***************************************************************************
                       3     ;* sxj1974@163.com (51c51 test web) www.8951.com *
                       4     ;* Create by :石学军 www.51c51.com 更多例程请登陆网站 *
                       5     ;***************************************************************************
                       6     
  00A0                 7     RS EQU P2.0
  00A1                 8     RW EQU P2.1
  00A2                 9     E EQU P2.2
  00A3                10     PSB EQU P2.3
  00A5                11     RST EQU P2.5
                      12     ;-----------------------------------------------
  0030                13     LCD_X EQU 30H
  0031                14     LCD_Y EQU 31H
  0032                15     COUNT EQU 32H
  0033                16     COUNT1 EQU 33H
  0034                17     COUNT2 EQU 34H
  0035                18     COUNT3 EQU 35H
                      19     ;-----------------------------------------------
  0036                20     LCD_DATA EQU 36H
  0037                21     LCD_DATA1 EQU 37H
  0038                22     LCD_DATA2 EQU 38H
  0039                23     STORE EQU 39H
                      24     
                      25     ;-----------------------------------------------
0000                  26     ORG 0000H
0000 020100           27     LJMP MAIN
0100                  28     ORG 0100H
                      29     ;-----------------------------------------------
0100                  30     MAIN:
0100 75815F           31     MOV SP,#5FH
0103 C2A5             32     CLR RST ;复位
0105 1202DB           33     LCALL DELAY4
0108 D2A5             34     SETB RST
010A 00               35     NOP
010B D2A3             36     SETB PSB ;通讯方式为8位数据并口
                      37     
                      38     ;********************初始化**********************
010D 7434             39     LGS0: MOV A,#34H ;34H--扩充指令操作
010F 12028C           40     LCALL SEND_I
0112 7430             41     MOV A,#30H ;30H--基本指令操作
0114 12028C           42     LCALL SEND_I
0117 7401             43     MOV A,#01H ;清除显示
0119 12028C           44     LCALL SEND_I
011C 7406             45     MOV A,#06H ;指定在资料写入或读取时,光标的移动方向
011E 12028C           46     LCALL SEND_I ;DDRAM 的地址计数器(AC)加1
0121 740C             47     MOV A,#0CH ;开显示,关光标,不闪烁
0123 12028C           48     LCALL SEND_I
                      49     ;===============================================
0126                  50     TU_PLAY1:
0126 900347           51     MOV DPTR,#TU_TAB1 ;显示图形
0129 1201A7           52     LCALL PHO_DISP
012C 1202BC           53     LCALL DELAY3
                      54     
                      55     ;=================================================
                      56     ;;显示汉字和字符
                      57     ;加入80ms的延时,使你能够看清楚显示的过程
                      58     ;根据汉字显示坐标分段写入(顺序写入)
A51 MACRO ASSEMBLER  12864                                                                09/16/2007 22:36:02 PAGE     2

                      59     ;=================================================
012F                  60     HAN_WR2:
012F 12025F           61     LCALL CLEAR_P
0132                  62     HAN_WR2A:
0132 9002F1           63     MOV DPTR,#TAB1A ;显示汉字和字符
0135 753210           64     MOV COUNT,#10H ;地址计数器设为16。
0138 7480             65     MOV A,#80H ;第一行起始地址
013A 12028C           66     LCALL SEND_I
013D 12026F           67     LCALL QUSHU
0140                  68     HAN_WR2B:
0140 900329           69     MOV DPTR,#TAB1B ;显示汉字和字符
0143 753210           70     MOV COUNT,#10H ;地址计数器设为16。
0146 7490             71     MOV A,#90H ;第二行起始地址
0148 12028C           72     LCALL SEND_I
014B 12026F           73     LCALL QUSHU
014E                  74     HAN_WR2C:
014E 900319           75     MOV DPTR,#TAB1C ;显示汉字和字符
0151 753210           76     MOV COUNT,#10H ;地址计数器设为16。
0154 7488             77     MOV A,#88H ;第三行起始地址
0156 12028C           78     LCALL SEND_I
0159 12026F           79     LCALL QUSHU
015C                  80     HAN_WR2D:
015C 900337           81     MOV DPTR,#TAB1D ;显示汉字和字符
015F 753210           82     MOV COUNT,#10H ;地址计数器设为16。
0162 7498             83     MOV A,#98H ;第四行起始地址
0164 12028C           84     LCALL SEND_I
0167 12026F           85     LCALL QUSHU
016A 1202BC           86     LCALL DELAY3
016D 120236           87     LCALL FLASH
0170 12025F           88     LCALL CLEAR_P
0173 8009             89     JMP TU_PLAY2
                      90     ;----------------------------------------------
                      91     ;TU_PLAY1:
0175 900347           92     MOV DPTR,#TU_TAB1 ;显示图形
0178 1201A7           93     LCALL PHO_DISP
017B 1202BC           94     LCALL DELAY3
                      95     
                      96     ;----------------------------------------------
017E                  97     TU_PLAY2:
017E 900747           98     MOV DPTR,#TU_TAB2 ;显示图形
0181 1201A7           99     LCALL PHO_DISP
0184 1202BC          100     LCALL DELAY3
                     101     
                     102     ;----------------------------------------------
0187                 103     TU_PLAY3:
0187 900B47          104     MOV DPTR,#TU_TAB4 ;显示图形
018A 1201A7          105     LCALL PHO_DISP
018D 1202BC          106     LCALL DELAY3
                     107     
                     108     ;-----------------------------------------------
                     109     ;显示点阵
                     110     ;-----------------------------------------------
0190                 111     LATPLAY1:
0190 7401            112     MOV A,#01H ;清屏
0192 12028C          113     LCALL SEND_I
0195 7537CC          114     MOV LCD_DATA1,#0CCH ;显示点阵
0198 7538CC          115     MOV LCD_DATA2,#0CCH
019B 1201E2          116     LCALL LAT_DISP
019E 1202BC          117     LCALL DELAY3
01A1 12025F          118     LCALL CLEAR_P
                     119     
01A4                 120     KU_PLAY2:
                     121     
01A4 020126          122     LJMP TU_PLAY1
                     123     
                     124     ;===============================================
A51 MACRO ASSEMBLER  12864                                                                09/16/2007 22:36:02 PAGE     3

                     125     ;全屏显示图形子程序
                     126     ;===============================================
01A7                 127     PHO_DISP:
01A7 753502          128     MOV COUNT3,#02H
01AA 753080          129     MOV LCD_X,#80H
01AD                 130     PHO_DISP1:
01AD 753180          131     MOV LCD_Y,#80H
01B0 753420          132     MOV COUNT2,#20H
01B3                 133     PHO_DISP2:
01B3 753310          134     MOV COUNT1,#10H
01B6 120221          135     LCALL WR_ZB
01B9                 136     PHO_DISP3:
01B9 E4              137     CLR A
01BA 93              138     MOVC A,@A+DPTR
01BB 12027C          139     LCALL SEND_D
01BE A3              140     INC DPTR
01BF D533F7          141     DJNZ COUNT1,PHO_DISP3
01C2 0531            142     INC LCD_Y
01C4 D534EC          143     DJNZ COUNT2,PHO_DISP2
01C7 753088          144     MOV LCD_X,#88H
01CA D535E0          145     DJNZ COUNT3,PHO_DISP1
                     146     
01CD 7436            147     MOV A,#36H
01CF 12028C          148     LCALL SEND_I
01D2 7430            149     MOV A,#30H
01D4 12028C          150     LCALL SEND_I
01D7 22              151     RET
                     152     ;----------------------------------------------
01D8                 153     CLRRAM:
01D8 753700          154     MOV LCD_DATA1,#00H ;GDRAM写0子程序
01DB 753800          155     MOV LCD_DATA2,#00H
01DE 1201E2          156     LCALL LAT_DISP
01E1 22              157     RET
                     158     ;==============================================
                     159     ;显示点阵子程序
                     160     ;==============================================
01E2                 161     LAT_DISP:
01E2 753502          162     MOV COUNT3,#02H
01E5 753080          163     MOV LCD_X,#80H
01E8                 164     LAT_DISP1:
01E8 753180          165     MOV LCD_Y,#80H
01EB C2D5            166     CLR F0
01ED 753420          167     MOV COUNT2,#20H
01F0                 168     LAT_DISP2:
01F0 753310          169     MOV COUNT1,#10H
01F3 120221          170     LCALL WR_ZB
01F6                 171     LAT_DISP3:
01F6 20D505          172     JB F0,LAT_DISP32
01F9 853736          173     MOV LCD_DATA,LCD_DATA1
01FC 4101            174     AJMP LAT_DISP31
01FE                 175     LAT_DISP32:
01FE 853836          176     MOV LCD_DATA,LCD_DATA2
0201                 177     LAT_DISP31:
0201 E536            178     MOV A,LCD_DATA
0203 12027C          179     LCALL SEND_D
0206 D533F8          180     DJNZ COUNT1,LAT_DISP31
0209 0531            181     INC LCD_Y
020B B2D5            182     CPL F0
020D D534E0          183     DJNZ COUNT2,LAT_DISP2
0210 753088          184     MOV LCD_X,#88H
0213 D535D2          185     DJNZ COUNT3,LAT_DISP1
                     186     
0216 7436            187     MOV A,#36H
0218 12028C          188     LCALL SEND_I
021B 7430            189     MOV A,#30H
021D 12028C          190     LCALL SEND_I
A51 MACRO ASSEMBLER  12864                                                                09/16/2007 22:36:02 PAGE     4

0220 22              191     RET
                     192     ;---------------------------------------------
0221                 193     WR_ZB:
0221 7434            194     MOV A,#34H
0223 12028C          195     LCALL SEND_I
0226 E531            196     MOV A,LCD_Y
0228 12028C          197     LCALL SEND_I
022B E530            198     MOV A,LCD_X
022D 12028C          199     LCALL SEND_I
0230 7430            200     MOV A,#30H
0232 12028C          201     LCALL SEND_I
0235 22              202     RET
                     203     
                     204     ;===============================================
0236                 205     FLASH:
0236 7408            206     MOV A,#08H ;关闭显示
0238 12028C          207     LCALL SEND_I
023B 1202E4          208     LCALL DELAY5
023E 740C            209     MOV A,#0CH ;开显示,关光标,不闪烁
0240 12028C          210     LCALL SEND_I
0243 1202E4          211     LCALL DELAY5
0246 7408            212     MOV A,#08H ;关闭显示
0248 12028C          213     LCALL SEND_I
024B 1202E4          214     LCALL DELAY5
024E 740C            215     MOV A,#0CH ;开显示,关光标,不闪烁
0250 12028C          216     LCALL SEND_I
0253 1202E4          217     LCALL DELAY5
0256 7408            218     MOV A,#08H ;关闭显示
0258 12028C          219     LCALL SEND_I
025B 1202E4          220     LCALL DELAY5
025E 22              221     RET
                     222     ;==================================================
                     223     ;清屏
                     224     ;==================================================
025F                 225     CLEAR_P:
025F 7401            226     MOV A,#01H ;清屏
0261 12028C          227     LCALL SEND_I
0264 7434            228     MOV A,#34H
0266 12028C          229     LCALL SEND_I
0269 7430            230     MOV A,#30H
026B 12028C          231     LCALL SEND_I
026E 22              232     RET
                     233     ;==================================================
                     234     ;查表取数据送显示
                     235     ;==================================================
026F                 236     QUSHU:
026F E4              237     CLR A
0270 93              238     MOVC A,@A+DPTR ;查表取数据
0271 12027C          239     LCALL SEND_D ;送显示
0274 A3              240     INC DPTR
0275 1202DB          241     LCALL DELAY4 ;延时80ms,
0278 D532F4          242     DJNZ COUNT,QUSHU
027B 22              243     RET
                     244     
                     245     ;===============================================

⌨️ 快捷键说明

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