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

📄 3310lcd_function.lis

📁 Nakia LCD3310 Driver
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 02AE 0201              .byte 2,1
 02B0 0000              .byte 0,0
 02B2 0304              .byte 3,4
 02B4 0404              .byte 4,4
 02B6 0700              .byte 7,0
 02B8 FC00              .byte 252,0
 02BA FF00              .byte 255,0
 02BC 10CC              .byte 16,204
 02BE 47CC              .byte 'G,204
 02C0 5444              .byte 'T,'D
 02C2 C400              .byte 196,0
 02C4 0100              .byte 1,0
 02C6 0700              .byte 7,0
 02C8 0007              .byte 0,7
 02CA 0203              .byte 2,3
 02CC 0202              .byte 2,2
 02CE 0700              .byte 7,0
 02D0 0484              .byte 4,132
 02D2 4424              .byte 'D,36
 02D4 14FF              .byte 20,255
 02D6 1424              .byte 20,36
 02D8 4486              .byte 'D,134
 02DA 0400              .byte 4,0
 02DC 0100              .byte 1,0
 02DE 0101              .byte 1,1
 02E0 0107              .byte 1,7
 02E2 0101              .byte 1,1
 02E4 0100              .byte 1,0
 02E6 0100              .byte 1,0
 02E8 00FF              .byte 0,255
 02EA 4931              .byte 'I,49
 02EC 4D81              .byte 'M,129
 02EE 4931              .byte 'I,49
 02F0 CD01              .byte 205,1
 02F2 FF00              .byte 255,0
 02F4 0007              .byte 0,7
 02F6 0000              .byte 0,0
 02F8 0000              .byte 0,0
 02FA 0000              .byte 0,0
 02FC 0404              .byte 4,4
 02FE 0700              .byte 7,0
 0300 0475              .byte 4,'u
 0302 8674              .byte 134,'t
 0304 04C0              .byte 4,192
 0306 407F              .byte 64,127
 0308 44C4              .byte 'D,196
 030A 0400              .byte 4,0
 030C 0202              .byte 2,2
 030E 0101              .byte 1,1
 0310 0107              .byte 1,7
 0312 0202              .byte 2,2
 0314 0207              .byte 2,7
 0316 0000              .byte 0,0
 0318 001C              .byte 0,28
 031A 7E7E              .byte 126,126
 031C 1C00              .byte 28,0
 031E 0000              .byte 0,0
 0320 0000              .byte 0,0
 0322 0000              .byte 0,0
 0324 0000              .byte 0,0
 0326 0303              .byte 3,3
 0328 0000              .byte 0,0
 032A 0000              .byte 0,0
 032C 0000              .byte 0,0
 032E 0000              .byte 0,0
 0330                   .dbfile D:\AVR\527dz\0----test\实验三\3310/move_chinese_string_pixel.h
 0330                   .dbsym e move_chinese_string _move_chinese_string A[192:8:24]kc
                        .area text(rom, con, rel)
 0000                   .dbfile D:\AVR\527dz\0----test\实验三\3310/move_chinese_string_pixel.h
 0000                   .dbfile D:\AVR\527dz\0----test\实验三\3310\3310LCD_function.c
 0000                   .dbfunc e LCD_init _LCD_init fV
                        .even
 0000           _LCD_init::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; #include <iom8v.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           ; 
 0000           ; /*-----------------------------------------------------------------------
 0000           ; LCD_init          : 3310LCD初始化
 0000           ; 
 0000           ; 编写日期          :2004-8-10 
 0000           ; 最后修改日期      :2004-8-10 
 0000           ; -----------------------------------------------------------------------*/
 0000           ; void LCD_init(void)
 0000           ;   {
 0000                   .dbline 16
 0000           ;     PORTB &= ~LCD_RST;          // 产生一个让LCD复位的低电平脉冲
 0000 C498              cbi 0x18,4
 0002                   .dbline 17
 0002           ;     delay_1us();
 0002 00D0              rcall _delay_1us
 0004                   .dbline 18
 0004           ;     PORTB |= LCD_RST;
 0004 C49A              sbi 0x18,4
 0006                   .dbline 20
 0006           ;     
 0006           ;     PORTB &= ~LCD_CE ;                // 关闭LCD
 0006 C298              cbi 0x18,2
 0008                   .dbline 21
 0008           ;     delay_1us();
 0008 00D0              rcall _delay_1us
 000A                   .dbline 22
 000A           ;     PORTB |= LCD_CE;          // 使能LCD
 000A C29A              sbi 0x18,2
 000C                   .dbline 23
 000C           ;     delay_1us();
 000C 00D0              rcall _delay_1us
 000E                   .dbline 25
 000E           ; 
 000E           ;     LCD_write_byte(0x21, 0);  // 使用扩展命令设置LCD模式
 000E 2227              clr R18
 0010 01E2              ldi R16,33
 0012 8ED1              rcall _LCD_write_byte
 0014                   .dbline 26
 0014           ;     LCD_write_byte(0xc8, 0);  // 设置偏置电压
 0014 2227              clr R18
 0016 08EC              ldi R16,200
 0018 8BD1              rcall _LCD_write_byte
 001A                   .dbline 27
 001A           ;     LCD_write_byte(0x06, 0);  // 温度校正
 001A 2227              clr R18
 001C 06E0              ldi R16,6
 001E 88D1              rcall _LCD_write_byte
 0020                   .dbline 28
 0020           ;     LCD_write_byte(0x13, 0);  // 1:48
 0020 2227              clr R18
 0022 03E1              ldi R16,19
 0024 85D1              rcall _LCD_write_byte
 0026                   .dbline 29
 0026           ;     LCD_write_byte(0x20, 0);  // 使用基本命令
 0026 2227              clr R18
 0028 00E2              ldi R16,32
 002A 82D1              rcall _LCD_write_byte
 002C                   .dbline 30
 002C           ;     LCD_clear();              // 清屏
 002C 05D0              rcall _LCD_clear
 002E                   .dbline 31
 002E           ;     LCD_write_byte(0x0c, 0);  // 设定显示模式,正常显示
 002E 2227              clr R18
 0030 0CE0              ldi R16,12
 0032 7ED1              rcall _LCD_write_byte
 0034                   .dbline 33
 0034           ;         
 0034           ;     PORTB &= ~LCD_CE ;          // 关闭LCD
 0034 C298              cbi 0x18,2
 0036                   .dbline -2
 0036           L1:
 0036                   .dbline 0 ; func end
 0036 0895              ret
 0038                   .dbend
 0038                   .dbfunc e LCD_clear _LCD_clear fV
 0038           ;              i -> R20,R21
                        .even
 0038           _LCD_clear::
 0038 00D0              rcall push_gset1
 003A                   .dbline -1
 003A                   .dbline 43
 003A           ;   }
 003A           ; 
 003A           ; /*-----------------------------------------------------------------------
 003A           ; LCD_clear         : LCD清屏函数
 003A           ; 
 003A           ; 编写日期          :2004-8-10 
 003A           ; 最后修改日期      :2004-8-10 
 003A           ; -----------------------------------------------------------------------*/
 003A           ; void LCD_clear(void)
 003A           ;   {
 003A                   .dbline 46
 003A           ;     unsigned int i;
 003A           ; 
 003A           ;     LCD_write_byte(0x0c, 0);                  
 003A 2227              clr R18
 003C 0CE0              ldi R16,12
 003E 78D1              rcall _LCD_write_byte
 0040                   .dbline 47
 0040           ;     LCD_write_byte(0x80, 0);                  
 0040 2227              clr R18
 0042 00E8              ldi R16,128
 0044 75D1              rcall _LCD_write_byte
 0046                   .dbline 49
 0046           ; 
 0046           ;     for (i=0; i<504; i++)
 0046 4427              clr R20
 0048 5527              clr R21
 004A 05C0              rjmp L6
 004C           L3:
 004C                   .dbline 50
 004C 21E0              ldi R18,1
 004E 0027              clr R16
 0050 6FD1              rcall _LCD_write_byte
 0052           L4:
 0052                   .dbline 49
 0052 4F5F              subi R20,255  ; offset = 1
 0054 5F4F              sbci R21,255
 0056           L6:
 0056                   .dbline 49
 0056 483F              cpi R20,248
 0058 E1E0              ldi R30,1
 005A 5E07              cpc R21,R30
 005C B8F3              brlo L3
 005E                   .dbline -2
 005E           L2:
 005E 00D0              rcall pop_gset1
 0060                   .dbline 0 ; func end
 0060 0895              ret
 0062                   .dbsym r i 20 i
 0062                   .dbend
 0062                   .dbfunc e LCD_set_XY _LCD_set_XY fV
 0062           ;              Y -> R22
 0062           ;              X -> R20
                        .even
 0062           _LCD_set_XY::
 0062 00D0              rcall push_gset2
 0064 622F              mov R22,R18
 0066 402F              mov R20,R16
 0068                   .dbline -1
 0068                   .dbline 63
 0068           ;       LCD_write_byte(0, 1);                   
 0068           ;   }
 0068           ; 
 0068           ; /*-----------------------------------------------------------------------
 0068           ; LCD_set_XY        : 设置LCD坐标函数
 0068           ; 
 0068           ; 输入参数:X       :0-83
 0068           ;           Y       :0-5
 0068           ; 
 0068           ; 编写日期          :2004-8-10 
 0068           ; 最后修改日期      :2004-8-10 
 0068           ; -----------------------------------------------------------------------*/
 0068           ; void LCD_set_XY(unsigned char X, unsigned char Y)
 0068           ;   {
 0068                   .dbline 64
 0068           ;     LCD_write_byte(0x40 | Y, 0);              // column
 0068 2227              clr R18
 006A 062F              mov R16,R22
 006C 0064              ori R16,64
 006E 60D1              rcall _LCD_write_byte
 0070                   .dbline 65
 0070           ;     LCD_write_byte(0x80 | X, 0);              // row
 0070 2227              clr R18
 0072 042F              mov R16,R20
 0074 0068              ori R16,128
 0076 5CD1              rcall _LCD_write_byte
 0078                   .dbline -2
 0078           L7:
 0078 00D0              rcall pop_gset2
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbsym r Y 22 c
 007C                   .dbsym r X 20 c
 007C                   .dbend
 007C                   .dbfunc e LCD_write_char _LCD_write_char fV
 007C           ;           line -> R20
 007C           ;              c -> R22
                        .even
 007C           _LCD_write_char::
 007C 00D0              rcall push_gset2
 007E 602F              mov R22,R16
 0080                   .dbline -1
 0080                   .dbline 77
 0080           ;   }
 0080           ; 
 0080           ; /*-----------------------------------------------------------------------
 0080           ; LCD_write_char    : 显示英文字符
 0080           ; 
 0080           ; 输入参数:c       :显示的字符;
 0080           ; 
 0080           ; 编写日期          :2004-8-10 
 0080           ; 最后修改日期      :2004-8-10 
 0080           ; -----------------------------------------------------------------------*/
 0080           ; void LCD_write_char(unsigned char c)
 0080           ;   {
 0080                   .dbline 80
 0080           ;     unsigned char line;
 0080           ; 
 0080           ;     c -= 32;
 0080 6052              subi R22,32
 0082                   .dbline 82
 0082           ; 
 0082           ;     for (line=0; line<6; line++)
 0082 4427              clr R20
 0084 0FC0              rjmp L12
 0086           L9:
 0086                   .dbline 83
 0086 21E0              ldi R18,1
 0088 86E0              ldi R24,6
 008A 869F              mul R24,R22
 008C 1001              movw R2,R0
 008E 80E0              ldi R24,<_font6x8
 0090 90E0              ldi R25,>_font6x8
 0092 280E              add R2,R24
 0094 391E              adc R3,R25
 0096 E42F              mov R30,R20
 0098 FF27              clr R31
 009A E20D              add R30,R2
 009C F31D              adc R31,R3
 009E 0491              lpm R16,Z
 00A0 47D1              rcall _LCD_write_byte
 00A2           L10:
 00A2                   .dbline 82
 00A2 4395              inc R20
 00A4           L12:
 00A4                   .dbline 82
 00A4 4630              cpi R20,6
 00A6 78F3              brlo L9
 00A8                   .dbline -2
 00A8           L8:
 00A8 00D0              rcall pop_gset2
 00AA                   .dbline 0 ; func end
 00AA 0895              ret
 00AC                   .dbsym r line 20 c
 00AC                   .dbsym r c 22 c
 00AC                   .dbend
 00AC                   .dbfunc e LCD_write_english_string _LCD_write_english_string fV
 00AC           ;              s -> R20,R21
 00AC           ;              Y -> R10
 00AC           ;              X -> R22
                        .even
 00AC           _LCD_write_english_string::
 00AC 00D0              rcall push_gset3
 00AE A22E              mov R10,R18
 00B0 602F              mov R22,R16
 00B2 4E81              ldd R20,y+6
 00B4 5F81              ldd R21,y+7
 00B6                   .dbline -1
 00B6                   .dbline 96
 00B6           ;       LCD_write_byte(font6x8[c][line], 1);
 00B6           ;   }
 00B6           ; 
 00B6           ; /*-----------------------------------------------------------------------
 00B6           ; LCD_write_english_String  : 英文字符串显示函数
 00B6           ; 
 00B6           ; 输入参数:*s      :英文字符串指针;
 00B6           ;           X、Y    : 显示字符串的位置,x 0-83 ,y 0-5
 00B6           ; 
 00B6           ; 编写日期          :2004-8-10 
 00B6           ; 最后修改日期      :2004-8-10                 
 00B6           ; -----------------------------------------------------------------------*/
 00B6           ; void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
 00B6           ;   {
 00B6                   .dbline 97
 00B6           ;     LCD_set_XY(X,Y);
 00B6 2A2D              mov R18,R10
 00B8 062F              mov R16,R22
 00BA D3DF              rcall _LCD_set_XY
 00BC 05C0              rjmp L15
 00BE           L14:

⌨️ 快捷键说明

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