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

📄 nokia_5110.lis

📁 好啊,欢迎大家都来下在,很游泳的问张哦.
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 004A           ;     delay_1us();
 004A DADF              rcall _delay_1us
 004C                   .dbline 49
 004C           ; 
 004C           ;   // LCD_RST = 1;
 004C           ;    LCD_5110_PORT |= (0x01 << LCD_RST);
 004C 949A              sbi 0x12,4
 004E                   .dbline 53
 004E           ;     
 004E           ;               // 关闭LCD
 004E           ;    //LCD_CE = 0;
 004E           ;     LCD_5110_PORT &= ~(0x01 << LCD_CE);
 004E 9398              cbi 0x12,3
 0050                   .dbline 54
 0050           ;     delay_1us();
 0050 D7DF              rcall _delay_1us
 0052                   .dbline 57
 0052           ;               // 使能LCD
 0052           ;    //LCD_CE = 1;
 0052           ;    LCD_5110_PORT |= (0x01 << LCD_CE);
 0052 939A              sbi 0x12,3
 0054                   .dbline 58
 0054           ;     delay_1us();
 0054 D5DF              rcall _delay_1us
 0056                   .dbline 60
 0056           ; 
 0056           ;     LCD_write_byte(0x21, 0);  // 使用扩展命令设置LCD模式
 0056 2227              clr R18
 0058 01E2              ldi R16,33
 005A 8ED1              rcall _LCD_write_byte
 005C                   .dbline 61
 005C           ;     LCD_write_byte(0xc8, 0);  // 设置偏置电压
 005C 2227              clr R18
 005E 08EC              ldi R16,200
 0060 8BD1              rcall _LCD_write_byte
 0062                   .dbline 62
 0062           ;     LCD_write_byte(0x06, 0);  // 温度校正
 0062 2227              clr R18
 0064 06E0              ldi R16,6
 0066 88D1              rcall _LCD_write_byte
 0068                   .dbline 63
 0068           ;     LCD_write_byte(0x13, 0);  // 1:48
 0068 2227              clr R18
 006A 03E1              ldi R16,19
 006C 85D1              rcall _LCD_write_byte
 006E                   .dbline 64
 006E           ;     LCD_write_byte(0x20, 0);  // 使用基本命令
 006E 2227              clr R18
 0070 00E2              ldi R16,32
 0072 82D1              rcall _LCD_write_byte
 0074                   .dbline 65
 0074           ;     LCD_clear();              // 清屏
 0074 05D0              rcall _LCD_clear
 0076                   .dbline 66
 0076           ;     LCD_write_byte(0x0c, 0);  // 设定显示模式,正常显示
 0076 2227              clr R18
 0078 0CE0              ldi R16,12
 007A 7ED1              rcall _LCD_write_byte
 007C                   .dbline 70
 007C           ;         
 007C           ;            // 关闭LCD
 007C           ;   // LCD_CE = 0;
 007C           ;        LCD_5110_PORT &= ~(0x01 << LCD_CE);
 007C 9398              cbi 0x12,3
 007E                   .dbline -2
 007E                   .dbline 71
 007E           ;   }
 007E           L16:
 007E                   .dbline 0 ; func end
 007E 0895              ret
 0080                   .dbend
 0080                   .dbfunc e LCD_clear _LCD_clear fV
 0080           ;              i -> R20,R21
                        .even
 0080           _LCD_clear::
 0080 00D0              rcall push_gset1
 0082                   .dbline -1
 0082                   .dbline 80
 0082           ; 
 0082           ; /*-----------------------------------------------------------------------
 0082           ; LCD_clear         : LCD清屏函数
 0082           ; 
 0082           ; 编写日期          :2004-8-10 
 0082           ; 最后修改日期      :2004-8-10 
 0082           ; -----------------------------------------------------------------------*/
 0082           ; void LCD_clear(void)
 0082           ;   {
 0082                   .dbline 83
 0082           ;     unsigned int i;
 0082           ; 
 0082           ;     LCD_write_byte(0x0c, 0);                  
 0082 2227              clr R18
 0084 0CE0              ldi R16,12
 0086 78D1              rcall _LCD_write_byte
 0088                   .dbline 84
 0088           ;     LCD_write_byte(0x80, 0);                  
 0088 2227              clr R18
 008A 00E8              ldi R16,128
 008C 75D1              rcall _LCD_write_byte
 008E                   .dbline 86
 008E           ; 
 008E           ;     for (i=0; i<504; i++)
 008E 4427              clr R20
 0090 5527              clr R21
 0092 05C0              rjmp L21
 0094           L18:
 0094                   .dbline 87
 0094 21E0              ldi R18,1
 0096 0027              clr R16
 0098 6FD1              rcall _LCD_write_byte
 009A           L19:
 009A                   .dbline 86
 009A 4F5F              subi R20,255  ; offset = 1
 009C 5F4F              sbci R21,255
 009E           L21:
 009E                   .dbline 86
 009E 483F              cpi R20,248
 00A0 E1E0              ldi R30,1
 00A2 5E07              cpc R21,R30
 00A4 B8F3              brlo L18
 00A6                   .dbline -2
 00A6                   .dbline 88
 00A6           ;       LCD_write_byte(0, 1);                   
 00A6           ;   }
 00A6           L17:
 00A6 00D0              rcall pop_gset1
 00A8                   .dbline 0 ; func end
 00A8 0895              ret
 00AA                   .dbsym r i 20 i
 00AA                   .dbend
 00AA                   .dbfunc e LCD_set_XY _LCD_set_XY fV
 00AA           ;              Y -> R22
 00AA           ;              X -> R20
                        .even
 00AA           _LCD_set_XY::
 00AA 00D0              rcall push_gset2
 00AC 622F              mov R22,R18
 00AE 402F              mov R20,R16
 00B0                   .dbline -1
 00B0                   .dbline 100
 00B0           ; 
 00B0           ; /*-----------------------------------------------------------------------
 00B0           ; LCD_set_XY        : 设置LCD坐标函数
 00B0           ; 
 00B0           ; 输入参数:X       :0-83
 00B0           ;           Y       :0-5
 00B0           ; 
 00B0           ; 编写日期          :2004-8-10 
 00B0           ; 最后修改日期      :2004-8-10 
 00B0           ; -----------------------------------------------------------------------*/
 00B0           ; void LCD_set_XY(unsigned char X, unsigned char Y)
 00B0           ;   {
 00B0                   .dbline 101
 00B0           ;     LCD_write_byte(0x40 | Y, 0);              // column
 00B0 2227              clr R18
 00B2 062F              mov R16,R22
 00B4 0064              ori R16,64
 00B6 60D1              rcall _LCD_write_byte
 00B8                   .dbline 102
 00B8           ;     LCD_write_byte(0x80 | X, 0);              // row
 00B8 2227              clr R18
 00BA 042F              mov R16,R20
 00BC 0068              ori R16,128
 00BE 5CD1              rcall _LCD_write_byte
 00C0                   .dbline -2
 00C0                   .dbline 103
 00C0           ;   }
 00C0           L22:
 00C0 00D0              rcall pop_gset2
 00C2                   .dbline 0 ; func end
 00C2 0895              ret
 00C4                   .dbsym r Y 22 c
 00C4                   .dbsym r X 20 c
 00C4                   .dbend
 00C4                   .dbfunc e LCD_write_char _LCD_write_char fV
 00C4           ;           line -> R20
 00C4           ;              c -> R22
                        .even
 00C4           _LCD_write_char::
 00C4 00D0              rcall push_gset2
 00C6 602F              mov R22,R16
 00C8                   .dbline -1
 00C8                   .dbline 114
 00C8           ; 
 00C8           ; /*-----------------------------------------------------------------------
 00C8           ; LCD_write_char    : 显示英文字符
 00C8           ; 
 00C8           ; 输入参数:c       :显示的字符;
 00C8           ; 
 00C8           ; 编写日期          :2004-8-10 
 00C8           ; 最后修改日期      :2004-8-10 
 00C8           ; -----------------------------------------------------------------------*/
 00C8           ; void LCD_write_char(unsigned char c)
 00C8           ;   {
 00C8                   .dbline 117
 00C8           ;     unsigned char line;
 00C8           ; 
 00C8           ;     c -= 32;
 00C8 6052              subi R22,32
 00CA                   .dbline 119
 00CA           ; 
 00CA           ;     for (line=0; line<6; line++)
 00CA 4427              clr R20
 00CC 0FC0              rjmp L27
 00CE           L24:
 00CE                   .dbline 120
 00CE 21E0              ldi R18,1
 00D0 86E0              ldi R24,6
 00D2 869F              mul R24,R22
 00D4 1001              movw R2,R0
 00D6 80E0              ldi R24,<_font6x8
 00D8 90E0              ldi R25,>_font6x8
 00DA 280E              add R2,R24
 00DC 391E              adc R3,R25
 00DE E42F              mov R30,R20
 00E0 FF27              clr R31
 00E2 E20D              add R30,R2
 00E4 F31D              adc R31,R3
 00E6 0491              lpm R16,Z
 00E8 47D1              rcall _LCD_write_byte
 00EA           L25:
 00EA                   .dbline 119
 00EA 4395              inc R20
 00EC           L27:
 00EC                   .dbline 119
 00EC 4630              cpi R20,6
 00EE 78F3              brlo L24
 00F0                   .dbline -2
 00F0                   .dbline 121
 00F0           ;       LCD_write_byte(font6x8[c][line], 1);
 00F0           ;   }
 00F0           L23:
 00F0 00D0              rcall pop_gset2
 00F2                   .dbline 0 ; func end
 00F2 0895              ret
 00F4                   .dbsym r line 20 c
 00F4                   .dbsym r c 22 c
 00F4                   .dbend
 00F4                   .dbfunc e LCD_write_english_string _LCD_write_english_string fV
 00F4           ;              s -> R20,R21
 00F4           ;              Y -> R10
 00F4           ;              X -> R22
                        .even
 00F4           _LCD_write_english_string::
 00F4 00D0              rcall push_gset3
 00F6 A22E              mov R10,R18
 00F8 602F              mov R22,R16
 00FA 4E81              ldd R20,y+6
 00FC 5F81              ldd R21,y+7
 00FE                   .dbline -1
 00FE                   .dbline 133
 00FE           ; 
 00FE           ; /*-----------------------------------------------------------------------
 00FE           ; LCD_write_english_String  : 英文字符串显示函数
 00FE           ; 
 00FE           ; 输入参数:*s      :英文字符串指针;
 00FE           ;           X、Y    : 显示字符串的位置,x 0-83 ,y 0-5
 00FE           ; 
 00FE           ; 编写日期          :2004-8-10 
 00FE           ; 最后修改日期      :2004-8-10                 
 00FE           ; -----------------------------------------------------------------------*/
 00FE           ; void LCD_write_english_string(unsigned char X,unsigned char Y,char *s)
 00FE           ;   {
 00FE                   .dbline 134
 00FE           ;     LCD_set_XY(X,Y);
 00FE 2A2D              mov R18,R10
 0100 062F              mov R16,R22
 0102 D3DF              rcall _LCD_set_XY
 0104 05C0              rjmp L30
 0106           L29:
 0106                   .dbline 136
 0106                   .dbline 137
 0106 FA01              movw R30,R20
 0108 0081              ldd R16,z+0
 010A DCDF              rcall _LCD_write_char
 010C                   .dbline 138
 010C 4F5F              subi R20,255  ; offset = 1
 010E 5F4F              sbci R21,255
 0110                   .dbline 139
 0110           L30:
 0110                   .dbline 135
 0110           ;     while (*s) 
 0110 FA01              movw R30,R20
 0112 2080              ldd R2,z+0
 0114 2220              tst R2
 0116 B9F7              brne L29
 0118                   .dbline -2
 0118                   .dbline 140
 0118           ;       {
 0118           ;        LCD_write_char(*s);
 0118           ;        s++;
 0118           ;       }
 0118           ;   }
 0118           L28:
 0118 00D0              rcall pop_gset3
 011A                   .dbline 0 ; func end
 011A 0895              ret
 011C                   .dbsym r s 20 pc
 011C                   .dbsym r Y 10 c
 011C                   .dbsym r X 22 c
 011C                   .dbend
 011C                   .dbfunc e LCD_write_chinese_string _LCD_write_chinese_string fV
 011C           ;              i -> R20
 011C           ;              n -> R14
 011C           ;            row -> R10
 011C           ;           line -> R12
 011C           ;            num -> R22
 011C           ;        ch_with -> y+14
 011C           ;              Y -> y+12
 011C           ;              X -> y+10
                        .even
 011C           _LCD_write_chinese_string::
 011C 00D0              rcall push_arg4
 011E 00D0              rcall push_gset5
 0120 6889              ldd R22,y+16
 0122 CA88              ldd R12,y+18
 0124 AC88              ldd R10,y+20
 0126                   .dbline -1
 0126                   .dbline 159
 0126           ; /*-----------------------------------------------------------------------
 0126           ; LCD_write_chinese_string: 在LCD上显示汉字
 0126           ; 
 0126           ; 输入参数:X、Y    :显示汉字的起始X、Y坐标;
 0126           ;           ch_with :汉字点阵的宽度
 0126           ;           num     :显示汉字的个数;  
 0126           ;           line    :汉字点阵数组中的起始行数
 0126           ;           row     :汉字显示的行间距
 0126           ; 编写日期          :2004-8-11 
 0126           ; 最后修改日期      :2004-8-12 
 0126           ; 测试:
 0126           ;       LCD_write_chi(0,0,12,7,0,0);
 0126           ;       LCD_write_chi(0,2,12,7,0,0);
 0126           ;       LCD_write_chi(0,4,12,7,0,0);    
 0126           ; -----------------------------------------------------------------------*/                        

⌨️ 快捷键说明

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