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

📄 lcd.lis

📁 ATMEGA16L 驱动的串口12864
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module lcd.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\AVR程序\12864串口/lcd.h
 0000                   .dbfunc e delay_1us _delay_1us fV
                        .even
 0000           _delay_1us::
 0000                   .dbline -1
 0000                   .dbline 19
 0000           ; #include "lcd.h"
 0000           ; 
 0000           ; #define CS BIT(5)
 0000           ; #define SID BIT(6)
 0000           ; #define SCLK BIT(7)
 0000           ; 
 0000           ; #define LCD_ON PORTD &=~ BIT(7)
 0000           ; #define LCD_OFF PORTD &=~ BIT(7)
 0000           ; 
 0000           ; 
 0000           ; #define EN_CS PORTA  |=  CS
 0000           ; #define DIS_CS PORTA &=~ CS
 0000           ; 
 0000           ; #define ST_SID PORTA |= SID
 0000           ; #define CLS_SID PORTA &=~ SID
 0000           ; 
 0000           ; #define ST_SCLK PORTA |= SCLK
 0000           ; #define CLS_SCLK PORTA &=~ SCLK
 0000           ; 
 0000                   .dbline 20
 0000           ; 
 0000 0000              nop
 0002                   .dbline -2
 0002           L1:
 0002                   .dbline 0 ; func end
 0002 0895              ret
 0004                   .dbend
 0004                   .dbfunc e delay_nus _delay_nus fV
 0004           ;              i -> R20,R21
 0004           ;              n -> R22,R23
                        .even
 0004           _delay_nus::
 0004 0E940000          xcall push_gset2
 0008 B801              movw R22,R16
 000A                   .dbline -1
 000A                   .dbline 24
 000A           ; unsigned char  ma[] ={"汉字显示LCD"};
 000A           ; unsigned char flash ma2[]={"自带字库图文混排"};
 000A           ; unsigned char flash ma3[]={"控制IC:ST7920  "};
 000A           ; unsigned char flash ma4[]={"功能强大使用方便"};
 000A                   .dbline 25
 000A           ; 
 000A 4427              clr R20
 000C 5527              clr R21
 000E                   .dbline 26
 000E           ; void portini(void)
 000E 03C0              xjmp L6
 0010           L3:
 0010                   .dbline 27
 0010 F7DF              xcall _delay_1us
 0012           L4:
 0012                   .dbline 26
 0012 4F5F              subi R20,255  ; offset = 1
 0014 5F4F              sbci R21,255
 0016           L6:
 0016                   .dbline 26
 0016 4617              cp R20,R22
 0018 5707              cpc R21,R23
 001A D0F3              brlo L3
 001C                   .dbline -2
 001C           L2:
 001C 0E940000          xcall pop_gset2
 0020                   .dbline 0 ; func end
 0020 0895              ret
 0022                   .dbsym r i 20 i
 0022                   .dbsym r n 22 i
 0022                   .dbend
 0022                   .dbfunc e delay_1ms _delay_1ms fV
 0022           ;              i -> R16,R17
                        .even
 0022           _delay_1ms::
 0022                   .dbline -1
 0022                   .dbline 31
 0022           ; {
 0022           ;     DDRD=0xff;
 0022           ;     PORTD = 0xff;
 0022           ;     DDRB = 0xff;
 0022           ;     PORTB = 0xff;
 0022                   .dbline 33
 0022 0027              clr R16
 0024 1127              clr R17
 0026 02C0              xjmp L11
 0028           L8:
 0028                   .dbline 33
 0028           L9:
 0028                   .dbline 33
 0028 0F5F              subi R16,255  ; offset = 1
 002A 1F4F              sbci R17,255
 002C           L11:
 002C                   .dbline 33
 002C           ; }
 002C           ; 
 002C 0437              cpi R16,116
 002E E4E0              ldi R30,4
 0030 1E07              cpc R17,R30
 0032 D0F3              brlo L8
 0034                   .dbline -2
 0034           L7:
 0034                   .dbline 0 ; func end
 0034 0895              ret
 0036                   .dbsym r i 16 i
 0036                   .dbend
 0036                   .dbfunc e delay_nms _delay_nms fV
 0036           ;              i -> R20,R21
 0036           ;              n -> R22,R23
                        .even
 0036           _delay_nms::
 0036 0E940000          xcall push_gset2
 003A B801              movw R22,R16
 003C                   .dbline -1
 003C                   .dbline 37
 003C           ; void delaynms(uint di) //延时
 003C           ; {
 003C           ;  uint da,db;
 003C           ;  for(da=0;da<di;da++)
 003C                   .dbline 38
 003C           ;    for(db=0;db<1000;db++);
 003C 4427              clr R20
 003E 5527              clr R21
 0040                   .dbline 39
 0040           ; }
 0040 03C0              xjmp L16
 0042           L13:
 0042                   .dbline 40
 0042 EFDF              xcall _delay_1ms
 0044           L14:
 0044                   .dbline 39
 0044 4F5F              subi R20,255  ; offset = 1
 0046 5F4F              sbci R21,255
 0048           L16:
 0048                   .dbline 39
 0048 4617              cp R20,R22
 004A 5707              cpc R21,R23
 004C D0F3              brlo L13
 004E                   .dbline -2
 004E           L12:
 004E 0E940000          xcall pop_gset2
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbsym r i 20 i
 0054                   .dbsym r n 22 i
 0054                   .dbend
                        .area data(ram, con, rel)
 0000                   .dbfile E:\AVR程序\12864串口/lcd.h
 0000           _ma::
 0000                   .blkb 12
                        .area idata
 0000 BABAD7D6CFD4CABE4C434400  .byte 186,186,215,214,207,212,202,190,'L,'C,'D,0
                        .area data(ram, con, rel)
 000C                   .dbfile E:\AVR程序\12864串口/lcd.h
 000C                   .dbfile E:\AVR程序\12864串口\lcd.c
 000C                   .dbsym e ma _ma A[12:12]c
                        .area lit(rom, con, rel)
 0000           _ma2::
 0000 D7D4B4F8D7D6BFE2CDBCCEC4BBECC5C5  .byte 215,212,180,248,215,214,191,226,205,188,206,196,187,236,197,197
 0010 00                .byte 0
 0011                   .dbsym e ma2 _ma2 A[17:17]kc
 0011           _ma3::
 0011 BFD8D6C64943A3BA5354373932302020  .byte 191,216,214,198,'I,'C,163,186,'S,'T,55,57,50,48,32,32
 0021 00                .byte 0
 0022                   .dbsym e ma3 _ma3 A[17:17]kc
 0022           _ma4::
 0022 B9A6C4DCC7BFB4F3CAB9D3C3B7BDB1E3  .byte 185,166,196,220,199,191,180,243,202,185,211,195,183,189,177,227
 0032 00                .byte 0
 0033                   .dbsym e ma4 _ma4 A[17:17]kc
                        .area text(rom, con, rel)
 0054                   .dbfile E:\AVR程序\12864串口\lcd.c
 0054                   .dbfunc e portini _portini fV
                        .even
 0054           _portini::
 0054                   .dbline -1
 0054                   .dbline 27
 0054                   .dbline 28
 0054 8FEF              ldi R24,255
 0056 81BB              out 0x11,R24
 0058                   .dbline 29
 0058 82BB              out 0x12,R24
 005A                   .dbline 30
 005A 87BB              out 0x17,R24
 005C                   .dbline 31
 005C 88BB              out 0x18,R24
 005E                   .dbline -2
 005E           L17:
 005E                   .dbline 0 ; func end
 005E 0895              ret
 0060                   .dbend
 0060                   .dbfunc e delaynms _delaynms fV
 0060           ;             da -> R20,R21
 0060           ;             db -> R22,R23
 0060           ;             di -> R16,R17
                        .even
 0060           _delaynms::
 0060 0E940000          xcall push_gset2
 0064                   .dbline -1
 0064                   .dbline 35
 0064                   .dbline 37
 0064 4427              clr R20
 0066 5527              clr R21
 0068 0BC0              xjmp L22
 006A           L19:
 006A                   .dbline 38
 006A 6627              clr R22
 006C 7727              clr R23
 006E 02C0              xjmp L26
 0070           L23:
 0070                   .dbline 38
 0070           L24:
 0070                   .dbline 38
 0070 6F5F              subi R22,255  ; offset = 1
 0072 7F4F              sbci R23,255
 0074           L26:
 0074                   .dbline 38
 0074 683E              cpi R22,232
 0076 E3E0              ldi R30,3
 0078 7E07              cpc R23,R30
 007A D0F3              brlo L23
 007C           L20:
 007C                   .dbline 37
 007C 4F5F              subi R20,255  ; offset = 1
 007E 5F4F              sbci R21,255
 0080           L22:
 0080                   .dbline 37
 0080 4017              cp R20,R16
 0082 5107              cpc R21,R17
 0084 90F3              brlo L19
 0086                   .dbline -2
 0086           L18:
 0086 0E940000          xcall pop_gset2
 008A                   .dbline 0 ; func end
 008A 0895              ret
 008C                   .dbsym r da 20 i
 008C                   .dbsym r db 22 i
 008C                   .dbsym r di 16 i
 008C                   .dbend
 008C                   .dbfunc e lcdinit _lcdinit fV
                        .even
 008C           _lcdinit::
 008C                   .dbline -1
 008C                   .dbline 43
 008C           ; 
 008C           ; 
 008C           ; void lcdinit(void)//初始化LCD
 008C           ; {
 008C                   .dbline 44
 008C           ;     delaynms(10);
 008C 0AE0              ldi R16,10
 008E 10E0              ldi R17,0
 0090 E7DF              xcall _delaynms
 0092                   .dbline 45
 0092           ;     EN_CS;
 0092 DD9A              sbi 0x1b,5
 0094                   .dbline 46
 0094           ;     write(0,0x30); //8位界面,基本指令集
 0094 20E3              ldi R18,48
 0096 0027              clr R16
 0098 19D0              xcall _write
 009A                   .dbline 47
 009A           ;       delaynms(10);
 009A 0AE0              ldi R16,10
 009C 10E0              ldi R17,0
 009E E0DF              xcall _delaynms
 00A0                   .dbline 48
 00A0           ;     write(0,0x30); //显示打开,光标关,反白关
 00A0 20E3              ldi R18,48
 00A2 0027              clr R16
 00A4 13D0              xcall _write
 00A6                   .dbline 49
 00A6           ;       delaynms(10);
 00A6 0AE0              ldi R16,10
 00A8 10E0              ldi R17,0
 00AA DADF              xcall _delaynms
 00AC                   .dbline 50
 00AC           ;       write(0,0x0c); //显示打开,光标关,反白关
 00AC 2CE0              ldi R18,12
 00AE 0027              clr R16
 00B0 0DD0              xcall _write
 00B2                   .dbline 51
 00B2           ;               delaynms(10);
 00B2 0AE0              ldi R16,10
 00B4 10E0              ldi R17,0
 00B6 D4DF              xcall _delaynms
 00B8                   .dbline 52
 00B8           ;     write(0,0x01); //清屏
 00B8 21E0              ldi R18,1
 00BA 0027              clr R16

⌨️ 快捷键说明

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