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

📄 text2.lst

📁 240128液晶底层驱动以及键盘操作编写菜单
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  TEXT2                                                                05/11/2008 14:57:33 PAGE     1


MACRO ASSEMBLER A51 V7.02a
OBJECT MODULE PLACED IN .\obj\Text2.obj
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE src\Text2.asm SET(SMALL) DEBUG PRINT(.\lst\Text2.lst) OBJECT(.\obj\Text2.o
                      bj) EP

LOC  OBJ            LINE     SOURCE

                       1     ;IO口定义
  0080                 2             _WR       BIT P0.0
  0081                 3             _RD       BIT P0.1
  0082                 4             CSL       BIT P0.2
  0083                 5             RS        BIT P0.3
  0084                 6             RST       BIT P0.4
  0085                 7             BUSY      BIT P0.5
  00B2                 8             KEY       BIT P3.2
                       9     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  0090                10             DBUS      EQU P1
  0030                11             REGNAME   EQU 30H
  0031                12             REGDATA   EQU 31H
  0032                13             REGDATA1  EQU 32H
  0033                14             LCM_X     EQU 33H
  0034                15             LCM_Y     EQU 34H
  0035                16             LCM_DATA1 EQU 35H
  0036                17             LCM_DATA2 EQU 36H
  0037                18             COUNT1    EQU 37H
  0038                19             COUNT2    EQU 38H
                      20     ;#define   PORTB   P1
                      21     ;sbit   WRT   =P0^0;//低电平有效//
                      22     ;sbit   RAD   =P0^1;//低电平有效//
                      23     ;sbit   CS   =P0^2;//低电平有效//
                      24     ;sbit   RS   =P0^3;//1:数据寄存器 0:指令寄存器//
                      25     ;sbit   RESET=P0^4;//低电平有效//正常工作应为高电平//
                      26     ;sbit   BUSY =P0^5;//默认高电平为忙//
                      27     ;sbit   INT  =P0^6;//默认高电平触发中断//
                      28     ;====================================================================
                      29     ;程序代码开始
0000                  30             ORG 0000H
0000 0140             31             AJMP MAIN
                      32     ;==============================================================
0040                  33             ORG 0040H
0040                  34     MAIN:
0040 1201D9           35             LCALL DELAY2
0043 758160           36             MOV SP,#60H
0046 C2B2             37             CLR KEY ;如果执行此语句,将全速运行,否则要按一次按键才能显示下一个画面
0048 C284             38             CLR RST
004A 1201D9           39             LCALL DELAY2
004D 1201D9           40             LCALL DELAY2
0050 D284             41             SETB RST
                      42     ;;;;;;;;;;;;;;;;;主程序部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0052 120082           43     LCALL LCM_INIT ;初始化
                      44             ;---------------清除显示数据:文本和图形
0055 1200F2           45             LCALL CLR_P1
0058 120116           46             LCALL CLR_P2
                      47             ;---------------全屏显示:横条
005B 1201D9           48             LCALL DELAY2
005E 900236           49             MOV DPTR,#TABOFTEXT
0061 1200A0           50             LCALL HZ_DIS ;显示汉字表中的汉字
0064 1201D1           51     TEST_PRO:       LCALL DELAY1
0067 1201D9           52             LCALL DELAY2
006A 1201D9           53             LCALL DELAY2  
006D 1201D9           54             LCALL DELAY2
0070 1201D9           55             LCALL DELAY2 
0073 1201D9           56             LCALL DELAY2
0076 1201D9           57             LCALL DELAY2  
A51 MACRO ASSEMBLER  TEXT2                                                                05/11/2008 14:57:33 PAGE     2

0079 1201D9           58             LCALL DELAY2
007C 1201D9           59             LCALL DELAY2      
007F 020064           60             LJMP TEST_PRO
                      61     ;;;;;;;;;;;;;;;;;;;;主程序部分结束;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
                      62     ;****************************************************
0082                  63     LCM_INIT:
0082 1201D9           64             LCALL DELAY2
                      65             ; MOV REGNAME,#00H
                      66             ; MOV REGDATA,#0F0H
                      67             ; LCALL WRITE_COM ;软件复位
0085 1201D1           68             LCALL DELAY1
0088 9001E7           69             MOV DPTR,#INITTAB
008B E4               70     IIINIT: CLR A
008C 93               71             MOVC A,@A+DPTR
008D F530             72             MOV REGNAME,A
008F C3               73             CLR C
0090 94FF             74             SUBB A,#0FFH
0092 600B             75             JZ OUTINT
0094 E4               76             CLR A
0095 A3               77             INC DPTR
0096 93               78             MOVC A,@A+DPTR
0097 F531             79             MOV REGDATA,A
0099 120184           80             LCALL WRITE_COM
009C A3               81             INC DPTR
009D 018B             82             AJMP IIINIT
009F 22               83     OUTINT: RET
                      84     ;==============================================
00A0                  85     HZ_DIS:
00A0 753000           86             MOV REGNAME,#00H
00A3 7531CD           87             MOV REGDATA,#0CDH ;字符模式
00A6 120184           88             LCALL WRITE_COM
00A9 753708           89             MOV COUNT1,#8 ;字符表中共8行汉字
00AC 753300           90             MOV LCM_X,#00H ;设显示行列地址
00AF 753400           91             MOV LCM_Y,#00H ;
00B2 120171           92     HZ_DP0: LCALL LOCAL_XY ;
00B5 75381E           93     HZ_DIS1:MOV COUNT2,#30 ;一行字节计数(含标点15个汉字,合计30个字节)
00B8 E4               94     HZ_DIS11:CLR A
00B9 93               95             MOVC A,@A+DPTR
00BA 1201A4           96             LCALL WRITE_DAT
00BD A3               97             INC DPTR
00BE D538F7           98             DJNZ COUNT2,HZ_DIS11
00C1 E534             99             MOV A,LCM_Y
00C3 2410            100             ADD A,#16 ;指向下一行地址
00C5 F534            101             MOV LCM_Y,A
00C7 D537E8          102             DJNZ COUNT1,HZ_DP0
00CA 22              103             RET
                     104     ;=====================================================
00CB                 105     BMP_DIS:
00CB 753000          106             MOV REGNAME,#00H
00CE 7531C5          107             MOV REGDATA,#0C5H ;图形模式
00D1 120184          108             LCALL WRITE_COM
00D4 753780          109             MOV COUNT1,#128 ;垂直 =128点
00D7 753300          110             MOV LCM_X,#00H ;画 BMP 图
00DA 753400          111             MOV LCM_Y,#00H
00DD 120171          112     BMP_D1: LCALL LOCAL_XY ;设显示定行列地址
00E0 75381E          113             MOV COUNT2,#30 ;水平 30X8=240点
00E3 E4              114     BMP_D2: CLR A
00E4 93              115             MOVC A,@A+DPTR
00E5 1201A4          116             LCALL WRITE_DAT
00E8 A3              117             INC DPTR
00E9 D538F7          118             DJNZ COUNT2,BMP_D2
00EC 0534            119             INC LCM_Y ;指向下一行地址
00EE D537EC          120             DJNZ COUNT1,BMP_D1
00F1 22              121             RET
                     122     ;======================================================
00F2                 123     CLR_P1: ;清除文本层显示数据
A51 MACRO ASSEMBLER  TEXT2                                                                05/11/2008 14:57:33 PAGE     3

00F2 753000          124             MOV REGNAME,#00H
00F5 7531CD          125             MOV REGDATA,#0CDH ;文本模式
00F8 120184          126             LCALL WRITE_COM
00FB 753300          127             MOV LCM_X,#00H
00FE 753400          128             MOV LCM_Y,#00H
0101 120171          129             LCALL LOCAL_XY ;设行列地址
0104 753710          130             MOV COUNT1,#16;垂直16行文本
0107 75381E          131     CLR_P11:MOV COUNT2,#30 ;水平40个字节宽
010A 7400            132     CLR_P12:MOV A,#00H;MOV A,#020H
010C 1201A4          133             LCALL WRITE_DAT
010F D538F8          134             DJNZ COUNT2,CLR_P12
0112 D537F2          135             DJNZ COUNT1,CLR_P11
0115 22              136             RET
                     137     ;======================================================
0116                 138     CLR_P2: ;清除图形层显示数据
0116 753000          139             MOV REGNAME,#00H
0119 7531C5          140             MOV REGDATA,#0C5H ;图形模式
011C 120184          141             LCALL WRITE_COM
011F 753300          142             MOV LCM_X,#00H
0122 753400          143             MOV LCM_Y,#00H
0125 120171          144             LCALL LOCAL_XY ;设行列地址
0128 753780          145             MOV COUNT1,#128 ;垂直 =240行
012B 75381E          146     CLR_P21:MOV COUNT2,#30 ;水平40X8=320点
012E E4              147     CLR_P22:CLR A
012F 7400            148             MOV A,#00H
0131 1201A4          149             LCALL WRITE_DAT
0134 D538F7          150             DJNZ COUNT2,CLR_P22
0137 D537F1          151             DJNZ COUNT1,CLR_P21
013A 22              152             RET
                     153     ;======================================================
013B                 154     TEST_LCD: ;图形模式下测试LCD屏
013B 753000          155             MOV REGNAME,#00H
013E 7531C5          156             MOV REGDATA,#0C5H ;图形模式
0141 120184          157             LCALL WRITE_COM 
0144 753740          158             MOV COUNT1,#64;;;;;;;;;;;;;;;;;;;;
0147 753400          159             MOV LCM_Y,#00H;
014A 753300          160     TEST_1: MOV LCM_X,#00H
014D 120171          161             LCALL LOCAL_XY
0150 75381E          162             MOV COUNT2,#30;;;;;;;;;;;;;;;;;;;
0153 E535            163     TEST_2: MOV A,LCM_DATA1
0155 1201A4          164             LCALL WRITE_DAT
0158 D538F8          165             DJNZ COUNT2,TEST_2
015B 0534            166             INC LCM_Y
015D 120171          167             LCALL LOCAL_XY
0160 75381E          168             MOV COUNT2,#30
0163 E536            169     TEST_3: MOV A,LCM_DATA2
0165 1201A4          170             LCALL WRITE_DAT
0168 D538F8          171             DJNZ COUNT2,TEST_3
016B 0534            172             INC LCM_Y
016D D537DA          173             DJNZ COUNT1,TEST_1
0170 22              174             RET
                     175     ;==============================================================
0171                 176     LOCAL_XY:
0171 753060          177             MOV REGNAME,#60H ;设定显示列地址
0174 853331          178             MOV REGDATA,LCM_X
0177 120184          179             LCALL WRITE_COM
017A 753070          180             MOV REGNAME,#70H ;设定显示行地址
017D 853431          181             MOV REGDATA,LCM_Y
0180 120184          182             LCALL WRITE_COM
0183 22              183             RET
                     184     ;==============================================================
0184                 185     WRITE_COM:
0184 E530            186             MOV A,REGNAME
0186 12018F          187             LCALL WRITE_REG
0189 E531            188             MOV A,REGDATA
018B 12018F          189             LCALL WRITE_REG
A51 MACRO ASSEMBLER  TEXT2                                                                05/11/2008 14:57:33 PAGE     4

018E 22              190             RET
                     191     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
018F                 192     WRITE_REG:
018F F590            193             MOV DBUS,A
0191 C282            194             CLR CSL
0193 D281            195             SETB _RD
0195 C283            196             CLR RS
0197 C280            197             CLR _WR
0199 00              198             NOP
019A 00              199             NOP
019B 00              200             NOP
019C 00              201             NOP
019D D280            202             SETB _WR
019F D283            203             SETB RS
01A1 D282            204             SETB CSL
01A3 22              205             RET
                     206     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
01A4                 207     WRITE_DAT:
01A4 F590            208             MOV DBUS,A
01A6 C282            209             CLR CSL
01A8 D281            210             SETB _RD
01AA D283            211             SETB RS
01AC C280            212             CLR _WR
01AE 00              213             NOP
01AF 00              214             NOP
01B0 00              215             NOP
01B1 00              216             NOP
01B2 D280            217             SETB _WR
01B4 D283            218             SETB RS
01B6 D282            219             SETB CSL
01B8 22              220             RET
                     221     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
01B9                 222     READ_RS:
01B9 E530            223             MOV A,REGNAME ;读缓存器
01BB 12018F          224             LCALL WRITE_REG
01BE 7590FF          225             MOV DBUS,#0FFH

⌨️ 快捷键说明

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