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

📄 lchar.lst

📁 液晶字符显示完全源程序(汇编) 文件根据需要建立其他关联,默认为DXP2004,
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  LCHAR                                                                12/01/2004 13:05:08 PAGE     1


MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN D:\我的文档\MYWORK~1\单片机~1\原程序\字符液~1\LCHAR.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE D:\我的文档\MYWORK~1\单片机~1\原程序\字符液~1\LCHAR.ASM DB SB

LOC  OBJ            LINE     SOURCE

                       1     ;2*16点阵字符液晶显示程序
                       2     ;Define addressable bit:
  0090                 3               RS       BIT  P1.0
  0091                 4               RW       BIT  P1.1
  0092                 5               ENABLE   BIT  P1.2
  0080                 6               DATABUS  EQU  P0;     P0 port should be pulled up by 20k resistors
                       7     ;
  0034                 8               TIMER0   EQU  34H
  0035                 9               TIMER1   EQU  35H
  0036                10               COUNTER  EQU  36H
  0040                11               N        EQU  40H
                      12     
                      13     ;
                      14     ;
0000                  15               ORG   0000H
0000 0140             16               AJMP  BEGIN
                      17     ;
                      18     ;
0040                  19               ORG   0040H
0040 00               20     BEGIN:    NOP
0041 00               21               NOP
0042 7580FF           22               MOV   P0,#0FFH
0045 759003           23               MOV   P1,#03H
0048 00               24               NOP
0049 758160           25               MOV   SP,#60H
004C 00               26               NOP
004D 12025F           27               LCALL DELAY01
                      28     
                      29     ;
                      30     ;
                      31     ;
0050 7438             32     ASTART:   MOV   A,#38H; 8-bit,2 lines,5X8 dots
0052 1200F7           33               LCALL AWRCTRL
0055 7406             34               MOV   A,#06H; increament by 1, no shift
0057 1200F7           35               LCALL AWRCTRL
005A 120133           36               LCALL WRCGCODE; write CGRAM code
005D 00               37               NOP
005E 740C             38     DOT:      MOV   A,#0CH; display on, cursor off, blink off
0060 1200F7           39               LCALL AWRCTRL
0063 00               40               NOP
0064 7401             41               MOV   A,#01H;  clear disram, set DDRAM address 0
0066 1200F7           42               LCALL AWRCTRL
0069 120290           43               LCALL DELAY1S
006C 00               44               NOP
006D 00               45               NOP;              write dots and square
006E 7400             46               MOV   A,#00H;     A is CCODE
0070 75F00B           47               MOV   B,#11;      write 11 CCODE
0073 7A50             48     DOT1:     MOV   R2,#80
0075 120117           49     DOT2:     LCALL AWRDATA
0078 DAFB             50               DJNZ  R2,DOT2
007A 120290           51               LCALL DELAY1S
007D B40702           52               CJNE  A,#07H,DOT3
0080 7440             53               MOV   A,#40H;  41H= "A" DCODE
0082 04               54     DOT3:     INC   A
0083 D5F0ED           55               DJNZ  B,DOT1
0086 00               56               NOP
0087 00               57               NOP
0088 740F             58     LOOP1:    MOV   A,#0FH; display on, cursor blink
A51 MACRO ASSEMBLER  LCHAR                                                                12/01/2004 13:05:08 PAGE     2

008A 1200F7           59               LCALL AWRCTRL
008D 7401             60               MOV   A,#01H;  clear disram, set DDRAM address 0
008F 1200F7           61               LCALL AWRCTRL
0092 900154           62               MOV   DPTR,#ATAB0; display successively
0095 120126           63               LCALL AWRITE
0098 00               64               NOP
0099 74C0             65               MOV   A,#0C0H; line 2 start address 40H
009B 1200F7           66               LCALL AWRCTRL
009E 120126           67               LCALL AWRITE
00A1 120290           68               LCALL DELAY1S
00A4 00               69               NOP
00A5 00               70               NOP
00A6 75F003           71               MOV   B,#3;    shift 3 times
00A9 7418             72     LOOP4:    MOV   A,#18H;  shift display left
00AB 1200F7           73               LCALL AWRCTRL
00AE 120290           74               LCALL DELAY1S
00B1 D5F0F5           75               DJNZ  B,LOOP4
00B4 00               76               NOP
00B5 740C             77     LOOP41:   MOV   A,#0CH; display on, cursor off
00B7 1200F7           78               LCALL AWRCTRL
00BA 7401             79               MOV   A,#01H; clear disram, set DDRAM address 0
00BC 1200F7           80               LCALL AWRCTRL
00BF 9001A6           81               MOV   DPTR,#ATAB01
00C2 120126           82               LCALL AWRITE
00C5 00               83               NOP
00C6 74C0             84               MOV   A,#0C0H; line 2 start address 40H
00C8 1200F7           85               LCALL AWRCTRL
00CB 120126           86               LCALL AWRITE
00CE 120290           87               LCALL DELAY1S
00D1 120290           88               LCALL DELAY1S
                      89     
00D4 740C             90               MOV   A,#0CH; display on, cursor off
00D6 1200F7           91               LCALL AWRCTRL
00D9 7401             92               MOV   A,#01H; clear disram, set DDRAM address 0
00DB 1200F7           93               LCALL AWRCTRL
00DE 9001F8           94               MOV   DPTR,#PHILCHAR
00E1 120126           95               LCALL AWRITE
00E4 00               96               NOP
00E5 74C0             97               MOV   A,#0C0H; line 2 start address 40H
00E7 1200F7           98               LCALL AWRCTRL
00EA 120126           99               LCALL AWRITE
00ED 120290          100               LCALL DELAY1S
00F0 120290          101               LCALL DELAY1S
                     102     
00F3 02005E          103               LJMP  DOT
00F6 00              104               NOP;---------
00F7 12013F          105     AWRCTRL:  LCALL ABUSY
00FA C290            106     AWRCTRL1: CLR   RS
00FC C291            107               CLR   RW
00FE F580            108               MOV   DATABUS,A
0100 D292            109               SETB  ENABLE
0102 00              110               NOP
0103 C292            111               CLR   ENABLE
0105 00              112               NOP
0106 22              113               RET;---------
0107 00              114     ARDCTRL:  NOP
0108 7580FF          115               MOV   DATABUS,#0FFH
010B C290            116               CLR   RS;     RS=0
010D D291            117               SETB  RW;     R/W=1
010F D292            118               SETB  ENABLE; eanble
0111 00              119               NOP
0112 E580            120               MOV   A,DATABUS
0114 C292            121               CLR   ENABLE
0116 22              122               RET;---------
0117 12013F          123     AWRDATA:  LCALL ABUSY
011A D290            124               SETB  RS
A51 MACRO ASSEMBLER  LCHAR                                                                12/01/2004 13:05:08 PAGE     3

011C C291            125               CLR   RW
011E F580            126               MOV   DATABUS,A
0120 D292            127               SETB  ENABLE
0122 00              128               NOP
0123 C292            129               CLR   ENABLE
0125 22              130               RET;--------
0126 E4              131     AWRITE:   CLR   A
0127 93              132               MOVC  A,@A+DPTR
0128 A3              133               INC   DPTR
0129 B4FF01          134               CJNE  A,#0FFH,AWRITE1
012C 22              135               RET
012D 120117          136     AWRITE1:  LCALL AWRDATA
0130 80F4            137               SJMP  AWRITE
0132 00              138               NOP;---------
0133 7440            139     WRCGCODE: MOV   A,#40H; set CGRAM address CCODE=00H
0135 1200F7          140               LCALL AWRCTRL
0138 90020A          141               MOV   DPTR,#CODETAB1; write CGCODE
013B 120126          142               LCALL AWRITE
013E 22              143               RET;---------
013F C0E0            144     ABUSY:    PUSH  ACC;    check busy flag
0141 7580FF          145               MOV   DATABUS,#0FFH
0144 C290            146               CLR   RS;     RS=0
0146 D291            147               SETB  RW;     R/W=1
0148 D292            148               SETB  ENABLE; eanble
014A E580            149     ABUSY1:   MOV   A,DATABUS
014C 20E7FB          150               JB    ACC.7,ABUSY1
014F C292            151               CLR   ENABLE
0151 D0E0            152               POP   ACC
0153 22              153               RET;---------
0154 41424344        154     ATAB0:    DB    'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; for line 1
0158 45464748                
015C 494A4B4C                
0160 4D4E4F50                
0164 51525354                
0168 55565758                
016C 595A                    
016E 30313233        155               DB    '0123456789'
0172 34353637                
0176 3839                    

⌨️ 快捷键说明

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