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

📄 12864.lst

📁 基于51单片机的12864液晶显示源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
A51 MACRO ASSEMBLER  12864                                                                12/18/2008 07:54:28 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 12864.OBJ
ASSEMBLER INVOKED BY: F:\Hardware Develop\Develop Tools\Keil uVision v2.0\KEIL\C51\BIN\A51.EXE 12864.asm SET(SMALL) DEBU
                      G EP

LOC  OBJ            LINE     SOURCE

                       1     ;*********************************************
                       2     ;*              LCD12864                     *
                       3     ;*          孙高朝   17/11/2008              *
                       4     ;*********************************************
  00A7                 5     RS EQU P2.7
  00A6                 6     RW EQU P2.6
  00A5                 7     EN EQU P2.5
  00A4                 8     PSB EQU P2.4
  00A2                 9     RST EQU P2.2
  0030                10     COUNT EQU 30H
  0031                11     STORE EQU 31H
  0032                12     LCD_X EQU 32H
  0033                13     LCD_Y EQU 33H
  0034                14     COUNT1 EQU 34H
  0035                15     COUNT2 EQU 35H
  0036                16     COUNT3 EQU 36H
0000                  17     ORG 00H
0000 2100             18     AJMP MAIN
0100                  19     ORG 0100H
                      20     
0100                  21     MAIN:   
                      22     
0100 3112             23             ACALL INI
0102 5134             24             ACALL DELAY2
0104 3170             25             ACALL LOGO      
0106 1201E2           26             LCALL CLEAR
0109 3135             27             ACALL HANZI
010B 5134             28             ACALL DELAY2
010D 1201E2           29             LCALL CLEAR
0110 2100             30             AJMP MAIN
                      31             
                      32             
                      33     ;************************************
                      34     ;*           lcd初始化              *
                      35     ;************************************   
0112                  36     INI:
0112 C2A2             37             CLR RST
0114 120234           38             LCALL DELAY2
0117 D2A4             39             SETB PSB
0119 D2A2             40             SETB RST
011B 7434             41             MOV A,#34H  ;扩展指令集
011D 1201E8           42             LCALL WR_COMM
0120 7430             43             MOV A,#30H  ;基本指令集
0122 1201E8           44             LCALL WR_COMM
0125 7401             45             MOV A,#01H ;清屏
0127 1201E8           46             LCALL WR_COMM
012A 7406             47             MOV A,#06H   ;指定在资料写入或读取时,光标的移动方向
012C 1201E8           48             LCALL WR_COMM
012F 740C             49             MOV A,#0CH  ;开显示,关光标,不闪烁
0131 1201E8           50             LCALL WR_COMM
0134 22               51             RET
                      52     ;*****************显示汉字************
0135                  53     HANZI:
0135                  54     HANZI1:
0135 900241           55             MOV DPTR,#TABLE1 ;取表
0138 753010           56             MOV COUNT,#10H  ;16字节 8个汉字
013B 7480             57             MOV A,#80H      ;DDRAM第一行地址
A51 MACRO ASSEMBLER  12864                                                                12/18/2008 07:54:28 PAGE     2

013D 1201E8           58             LCALL WR_COMM
0140 31D5             59             ACALL QUSHU
                      60     
0142                  61     HANZI2:
0142 900251           62             MOV DPTR,#TABLE2
0145 753010           63             MOV COUNT,#10H
0148 7490             64             MOV A,#90H      
014A 1201E8           65             LCALL WR_COMM
014D 31D5             66             ACALL QUSHU
014F                  67     HANZI3:
014F 900261           68             MOV DPTR,#TABLE3
0152 753010           69             MOV COUNT,#10H
0155 7488             70             MOV A,#88H
0157 1201E8           71             LCALL WR_COMM
015A 31D5             72             ACALL QUSHU
                      73             
015C                  74     HANZI4:
015C 900271           75             MOV DPTR,#TABLE4
015F 753010           76             MOV COUNT,#16
0162 7498             77             MOV A,#98H
0164 1201E8           78             LCALL WR_COMM
0167 31D5             79             ACALL QUSHU
0169 120234           80             LCALL DELAY2
016C 1201C0           81             LCALL SHANGSHUO
016F 22               82             RET
                      83     ;*****************开机图形显示***********
0170                  84     LOGO:
0170 900281           85             MOV DPTR,#TUTAB1
0173 12017A           86             LCALL CHULI
0176 120228           87             LCALL DELAY1
0179 22               88             RET
                      89     ;****************图形显示处理*********
017A                  90     CHULI:  
017A 753602           91             MOV COUNT3,#02H  ;重新定义GDRAM内存分布
017D 753280           92             MOV LCD_X,#80H
0180 753380           93     C3:     MOV LCD_Y,#80H
0183 753520           94             MOV COUNT2,#20H
0186 753410           95     C2:     MOV COUNT1,#10H
0189 1201AB           96             LCALL QISHI
018C                  97     C1:     
018C E4               98             CLR A
018D 93               99             MOVC A,@A+DPTR
018E 1201F7          100             LCALL WR_DATA
0191 A3              101             INC DPTR
0192 D534F7          102             DJNZ COUNT1,C1
0195 0533            103             INC LCD_Y
0197 D535EC          104             DJNZ COUNT2,C2
019A 753288          105             MOV LCD_X,#88H
019D D536E0          106             DJNZ COUNT3,C3
                     107             
01A0 7436            108             MOV A,#36H      ;开扩展指令集,开图形显示G=1
01A2 1201E8          109             LCALL WR_COMM
01A5 7430            110             MOV A,#30H
01A7 1201E8          111             LCALL WR_COMM
01AA 22              112             RET
                     113     ;*************定义坐标起始点******      
01AB                 114     QISHI:
01AB 7434            115             MOV A,#34H      ;扩展指令集,关图形显示G=0
01AD 1201E8          116             LCALL WR_COMM
01B0 E532            117             MOV A,LCD_X
01B2 1201E8          118             LCALL WR_COMM
01B5 E533            119             MOV A,LCD_Y
01B7 1201E8          120             LCALL WR_COMM
01BA 7430            121             MOV A,#30H
01BC 1201E8          122             LCALL WR_COMM
01BF 22              123             RET                                     
A51 MACRO ASSEMBLER  12864                                                                12/18/2008 07:54:28 PAGE     3

                     124     ;*****************字体闪烁************
01C0                 125     SHANGSHUO:
01C0 7B03            126             MOV R3,#3
01C2 7408            127     S1:     MOV A,#08H      ;关显示
01C4 1201E8          128             LCALL WR_COMM
01C7 120228          129             LCALL DELAY1
01CA 740C            130             MOV A,#0CH
01CC 1201E8          131             LCALL WR_COMM   ;开显示
01CF 120228          132             LCALL DELAY1
01D2 DBEE            133             DJNZ R3,S1      ;循环闪烁
01D4 22              134             RET     
                     135     ;*****************读取数据************
01D5                 136     QUSHU:
01D5 E4              137          CLR A
01D6 93              138          MOVC A,@A+DPTR       ;查表取数据
01D7 1201F7          139          LCALL WR_DATA          ;送显示
01DA A3              140          INC DPTR
01DB 120234          141          LCALL DELAY2           ;延时1ms,
01DE D530F4          142          DJNZ COUNT,QUSHU
01E1 22              143          RET
                     144     ;************清屏程序*****************
01E2                 145     CLEAR:
01E2 7401            146             MOV A,#01H
01E4 1201E8          147             LCALL WR_COMM
01E7 22              148             RET
                     149     ;*************************************
                     150     ;*          写命令子程序             *
                     151     ;*         RS=0,RW=0,EN=1            *          
                     152     ;*************************************  
01E8                 153     WR_COMM:
01E8 5117            154             ACALL CHK_BUSY
01EA C2A7            155             CLR RS
01EC C2A6            156             CLR RW
01EE F580            157             MOV P0,A
01F0 D2A5            158             SETB EN
01F2 00              159             NOP 
01F3 00              160             NOP 
01F4 C2A5            161             CLR EN
01F6 22              162             RET
                     163     
                     164     ;*************************************
                     165     ;*          写数据 子程序            *
                     166     ;*         RS=1,RW=0,EN=1            *          
                     167     ;*************************************
01F7                 168     WR_DATA:
01F7 5117            169             ACALL CHK_BUSY
01F9 D2A7            170             SETB RS
01FB C2A6            171             CLR RW
01FD F580            172             MOV P0,A
01FF D2A5            173             SETB EN
0201 00              174             NOP 
0202 00              175             NOP 
0203 C2A5            176             CLR EN
0205 22              177             RET
                     178     ;================================================
                     179     ;读数据子程序
                     180     ;RS=1,RW=1,E=H,D0-D7=数据
                     181     ;================================================
0206                 182     RD_DATA:
0206 120217          183         LCALL CHK_BUSY    ;读数据子程序
0209 D2A7            184         SETB RS
020B D2A6            185         SETB RW
020D D2A5            186         SETB EN
020F 00              187         NOP
0210 E580            188         MOV A,P0
0212 C2A5            189         CLR EN
A51 MACRO ASSEMBLER  12864                                                                12/18/2008 07:54:28 PAGE     4

0214 F531            190         MOV STORE,A
0216 22              191         RET
                     192             
                     193     ;*************************************
                     194     ;*          循环测忙子程序           *
                     195     ;*          RS=0,RW=1,EN=1           *          
                     196     ;*************************************
0217                 197     CHK_BUSY:
0217 7580FF          198             MOV P0,#0FFH
021A C2A7            199             CLR RS
021C D2A6            200             SETB RW
021E 00              201             NOP 
021F 00              202             NOP
0220 D2A5            203             SETB EN

⌨️ 快捷键说明

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