📄 lcd.lis
字号:
.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 + -