📄 3310lcd_function.lis
字号:
02DA 0C00 .byte 12,0
02DC 0201 .byte 2,1
02DE 0004 .byte 0,4
02E0 0502 .byte 5,2
02E2 0100 .byte 1,0
02E4 0102 .byte 1,2
02E6 0400 .byte 4,0
02E8 08F9 .byte 8,249
02EA 0200 .byte 2,0
02EC FE42 .byte 254,'B
02EE 41FE .byte 'A,254
02F0 0282 .byte 2,130
02F2 FE00 .byte 254,0
02F4 0601 .byte 6,1
02F6 0202 .byte 2,2
02F8 0404 .byte 4,4
02FA 0405 .byte 4,5
02FC 0404 .byte 4,4
02FE 0400 .byte 4,0
0300 1012 .byte 16,18
0302 14F8 .byte 20,248
0304 101F .byte 16,31
0306 F018 .byte 240,24
0308 1412 .byte 20,18
030A 1000 .byte 16,0
030C 0404 .byte 4,4
030E 0201 .byte 2,1
0310 0000 .byte 0,0
0312 0304 .byte 3,4
0314 0404 .byte 4,4
0316 0700 .byte 7,0
0318 FC00 .byte 252,0
031A FF00 .byte 255,0
031C 10CC .byte 16,204
031E 47CC .byte 'G,204
0320 5444 .byte 'T,'D
0322 C400 .byte 196,0
0324 0100 .byte 1,0
0326 0700 .byte 7,0
0328 0007 .byte 0,7
032A 0203 .byte 2,3
032C 0202 .byte 2,2
032E 0700 .byte 7,0
0330 0484 .byte 4,132
0332 4424 .byte 'D,36
0334 14FF .byte 20,255
0336 1424 .byte 20,36
0338 4486 .byte 'D,134
033A 0400 .byte 4,0
033C 0100 .byte 1,0
033E 0101 .byte 1,1
0340 0107 .byte 1,7
0342 0101 .byte 1,1
0344 0100 .byte 1,0
0346 0100 .byte 1,0
0348 00FF .byte 0,255
034A 4931 .byte 'I,49
034C 4D81 .byte 'M,129
034E 4931 .byte 'I,49
0350 CD01 .byte 205,1
0352 FF00 .byte 255,0
0354 0007 .byte 0,7
0356 0000 .byte 0,0
0358 0000 .byte 0,0
035A 0000 .byte 0,0
035C 0404 .byte 4,4
035E 0700 .byte 7,0
0360 0475 .byte 4,'u
0362 8674 .byte 134,'t
0364 04C0 .byte 4,192
0366 407F .byte 64,127
0368 44C4 .byte 'D,196
036A 0400 .byte 4,0
036C 0202 .byte 2,2
036E 0101 .byte 1,1
0370 0107 .byte 1,7
0372 0202 .byte 2,2
0374 0207 .byte 2,7
0376 0000 .byte 0,0
0378 001C .byte 0,28
037A 7E7E .byte 126,126
037C 1C00 .byte 28,0
037E 0000 .byte 0,0
0380 0000 .byte 0,0
0382 0000 .byte 0,0
0384 0000 .byte 0,0
0386 0303 .byte 3,3
0388 0000 .byte 0,0
038A 0000 .byte 0,0
038C 0000 .byte 0,0
038E 0000 .byte 0,0
0390 .dbfile C:\AVR\M\1/move_chinese_string_pixel.h
0390 .dbsym e move_chinese_string _move_chinese_string A[192:8:24]kc
.area text(rom, con, rel)
0000 .dbfile C:\AVR\M\1/move_chinese_string_pixel.h
0000 .dbfile C:\AVR\M\1\3310LCD_function.c
0000 .dbfunc e LCD_init _LCD_init fV
.even
0000 _LCD_init::
0000 .dbline -1
0000 .dbline 10
0000 ; #include <iom128v.h>
0000 ; #include <macros.h>
0000 ; #include "3310LCD_function.h"
0000 ; #include "english_6x8_pixel.h"
0000 ; #include "write_chinese_string_pixel.h"
0000 ; #include "move_chinese_string_pixel.h"
0000 ; #include "SPI.h"
0000 ;
0000 ; void LCD_init(void)
0000 ; {
0000 .dbline 11
0000 ; DDRA |= LCD_RST | LCD_DC | LCD_CE;
0000 8AB3 in R24,0x1a
0002 8067 ori R24,112
0004 8ABB out 0x1a,R24
0006 .dbline 12
0006 ; PORTA &= ~LCD_RST; // 产生一个让LCD复位的低电平脉冲
0006 DD98 cbi 0x1b,5
0008 .dbline 13
0008 ; delay_1us();
0008 0E940000 xcall _delay_1us
000C .dbline 14
000C ; PORTA |= LCD_RST;
000C DD9A sbi 0x1b,5
000E .dbline 16
000E ;
000E ; PORTA &= ~LCD_CE ; // 关闭LCD
000E DC98 cbi 0x1b,4
0010 .dbline 17
0010 ; delay_1us();
0010 0E940000 xcall _delay_1us
0014 .dbline 18
0014 ; PORTA |= LCD_CE; // 使能LCD
0014 DC9A sbi 0x1b,4
0016 .dbline 19
0016 ; delay_1us();
0016 0E940000 xcall _delay_1us
001A .dbline 21
001A ;
001A ; LCD_write_byte(0x21, 0); // 使用扩展命令设置LCD模式
001A 2227 clr R18
001C 01E2 ldi R16,33
001E A6D1 xcall _LCD_write_byte
0020 .dbline 22
0020 ; LCD_write_byte(0xc8, 0); // 设置偏置电压
0020 2227 clr R18
0022 08EC ldi R16,200
0024 A3D1 xcall _LCD_write_byte
0026 .dbline 23
0026 ; LCD_write_byte(0x06, 0); // 温度校正
0026 2227 clr R18
0028 06E0 ldi R16,6
002A A0D1 xcall _LCD_write_byte
002C .dbline 24
002C ; LCD_write_byte(0x13, 0); // 1:48
002C 2227 clr R18
002E 03E1 ldi R16,19
0030 9DD1 xcall _LCD_write_byte
0032 .dbline 25
0032 ; LCD_write_byte(0x20, 0); // 使用基本命令
0032 2227 clr R18
0034 00E2 ldi R16,32
0036 9AD1 xcall _LCD_write_byte
0038 .dbline 26
0038 ; LCD_clear(); // 清屏
0038 05D0 xcall _LCD_clear
003A .dbline 27
003A ; LCD_write_byte(0x0c, 0); // 设定显示模式,正常显示
003A 2227 clr R18
003C 0CE0 ldi R16,12
003E 96D1 xcall _LCD_write_byte
0040 .dbline 29
0040 ;
0040 ; PORTA &= ~LCD_CE ; // 关闭LCD
0040 DC98 cbi 0x1b,4
0042 .dbline -2
0042 L1:
0042 .dbline 0 ; func end
0042 0895 ret
0044 .dbend
0044 .dbfunc e LCD_clear _LCD_clear fV
0044 ; i -> R20,R21
.even
0044 _LCD_clear::
0044 0E940000 xcall push_gset1
0048 .dbline -1
0048 .dbline 39
0048 ; }
0048 ;
0048 ; /*-----------------------------------------------------------------------
0048 ; LCD_clear : LCD清屏函数
0048 ;
0048 ; 编写日期 :2004-8-10
0048 ; 最后修改日期 :2004-8-10
0048 ; -----------------------------------------------------------------------*/
0048 ; void LCD_clear(void)
0048 ; {
0048 .dbline 42
0048 ; unsigned int i;
0048 ;
0048 ; LCD_write_byte(0x0c, 0);
0048 2227 clr R18
004A 0CE0 ldi R16,12
004C 8FD1 xcall _LCD_write_byte
004E .dbline 43
004E ; LCD_write_byte(0x80, 0);
004E 2227 clr R18
0050 00E8 ldi R16,128
0052 8CD1 xcall _LCD_write_byte
0054 .dbline 45
0054 ;
0054 ; for (i=0; i<504; i++)
0054 4427 clr R20
0056 5527 clr R21
0058 05C0 xjmp L6
005A L3:
005A .dbline 46
005A 21E0 ldi R18,1
005C 0027 clr R16
005E 86D1 xcall _LCD_write_byte
0060 L4:
0060 .dbline 45
0060 4F5F subi R20,255 ; offset = 1
0062 5F4F sbci R21,255
0064 L6:
0064 .dbline 45
0064 483F cpi R20,248
0066 E1E0 ldi R30,1
0068 5E07 cpc R21,R30
006A B8F3 brlo L3
006C .dbline -2
006C L2:
006C 0E940000 xcall pop_gset1
0070 .dbline 0 ; func end
0070 0895 ret
0072 .dbsym r i 20 i
0072 .dbend
0072 .dbfunc e LCD_set_XY _LCD_set_XY fV
0072 ; Y -> R22
0072 ; X -> R20
.even
0072 _LCD_set_XY::
0072 0E940000 xcall push_gset2
0076 622F mov R22,R18
0078 402F mov R20,R16
007A .dbline -1
007A .dbline 59
007A ; LCD_write_byte(0, 1);
007A ; }
007A ;
007A ; /*-----------------------------------------------------------------------
007A ; LCD_set_XY : 设置LCD坐标函数
007A ;
007A ; 输入参数:X :0-83
007A ; Y :0-5
007A ;
007A ; 编写日期 :2004-8-10
007A ; 最后修改日期 :2004-8-10
007A ; -----------------------------------------------------------------------*/
007A ; void LCD_set_XY(unsigned char X, unsigned char Y)
007A ; {
007A .dbline 60
007A ; LCD_write_byte(0x40 | Y, 0); // column
007A 2227 clr R18
007C 062F mov R16,R22
007E 0064 ori R16,64
0080 75D1 xcall _LCD_write_byte
0082 .dbline 61
0082 ; LCD_write_byte(0x80 | X, 0); // row
0082 2227 clr R18
0084 042F mov R16,R20
0086 0068 ori R16,128
0088 71D1 xcall _LCD_write_byte
008A .dbline -2
008A L7:
008A 0E940000 xcall pop_gset2
008E .dbline 0 ; func end
008E 0895 ret
0090 .dbsym r Y 22 c
0090 .dbsym r X 20 c
0090 .dbend
0090 .dbfunc e LCD_write_char _LCD_write_char fV
0090 ; line -> R20
0090 ; c -> R22
.even
0090 _LCD_write_char::
0090 0E940000 xcall push_gset2
0094 602F mov R22,R16
0096 .dbline -1
0096 .dbline 73
0096 ; }
0096 ;
0096 ; /*-----------------------------------------------------------------------
0096 ; LCD_write_char : 显示英文字符
0096 ;
0096 ; 输入参数:c :显示的字符;
0096 ;
0096 ; 编写日期 :2004-8-10
0096 ; 最后修改日期 :2004-8-10
0096 ; -----------------------------------------------------------------------*/
0096 ; void LCD_write_char(unsigned char c)
0096 ; {
0096 .dbline 76
0096 ; unsigned char line;
0096 ;
0096 ; c -= 32;
0096 6052 subi R22,32
0098 .dbline 78
0098 ;
0098 ; for (line=0; line<6; line++)
0098 4427 clr R20
009A 0FC0 xjmp L12
009C L9:
009C .dbline 79
009C 21E0 ldi R18,1
009E 86E0 ldi R24,6
00A0 869F mul R24,R22
00A2 1001 movw R2,R0
00A4 80E0 ldi R24,<_font6x8
00A6 90E0 ldi R25,>_font6x8
00A8 280E add R2,R24
00AA 391E adc R3,R25
00AC E42F mov R30,R20
00AE FF27 clr R31
00B0 E20D add R30,R2
00B2 F31D adc R31,R3
00B4 0491 lpm R16,Z
00B6 5AD1 xcall _LCD_write_byte
00B8 L10:
00B8 .dbline 78
00B8 4395 inc R20
00BA L12:
00BA .dbline 78
00BA 4630 cpi R20,6
00BC 78F3 brlo L9
00BE .dbline -2
00BE L8:
00BE 0E940000 xcall pop_gset2
00C2 .dbline 0 ; func end
00C2 0895 ret
00C4 .dbsym r line 20 c
00C4 .dbsym r c 22 c
00C4 .dbend
00C4 .dbfunc e LCD_write_english_string _LCD_write_english_string fV
00C4 ; s -> R20,R21
00C4 ; Y -> R10
00C4 ; X -> R22
.even
00C4 _LCD_write_english_string::
00C4 0E940000 xcall push_gset3
00C8 A22E mov R10,R18
00CA 602F mov R22,R16
00CC 4E81 ldd R20,y+6
00CE 5F81 ldd R21,y+7
00D0 .dbline -1
00D0 .dbline 92
00D0 ; LCD_write_byte(font6x8[c][line], 1);
00D0 ; }
00D0 ;
00D0 ; /*-----------------------------------------------------------------------
00D0 ; LCD_write_english_String : 英文字符串显示函数
00D0 ;
00D0 ; 输入参数:*s :英文字符串指针;
00D0 ; X、Y : 显示字符串的位置,x 0-83 ,y 0-5
00D0 ;
00D0 ; 编写日期 :2004-8-10
00D0 ; 最后修改日期 :2004-8-10
00D0 ; -----------------------------------------------------------------------*/
00D0 ; void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
00D0 ; {
00D0 .dbline 93
00D0 ; LCD_set_XY(X,Y);
00D0 2A2D mov R18,R10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -