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

📄 3310lcd_function.lis

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

⌨️ 快捷键说明

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