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

📄 1335.lis

📁 AVR单片机
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 009C           ;   lcd_write_data(0x87);////////////////////////////P2   WF 0 0 0 0    FX(0-7)
 009C 07E8              ldi R16,135
 009E CADF              xcall _lcd_write_data
 00A0                   .dbline 142
 00A0           ;   lcd_write_data(0x07);////////////////////////////P3   0  0 0 0     FY(0-F)
 00A0 07E0              ldi R16,7
 00A2 C8DF              xcall _lcd_write_data
 00A4                   .dbline 143
 00A4           ;   lcd_write_data((LCD_X_SIZE/8)-1); ///////////////P4          C/R
 00A4 07E2              ldi R16,39
 00A6 C6DF              xcall _lcd_write_data
 00A8                   .dbline 144
 00A8           ;   lcd_write_data(0x42); ///////////////////////////P5          TC/R>cr+4
 00A8 02E4              ldi R16,66
 00AA C4DF              xcall _lcd_write_data
 00AC                   .dbline 145
 00AC           ;   lcd_write_data(LCD_Y_SIZE - 1);//////////////////P6          L/F  240-1
 00AC 0FEE              ldi R16,239
 00AE C2DF              xcall _lcd_write_data
 00B0                   .dbline 146
 00B0           ;   lcd_write_data(LCD_X_SIZE/8);////////////////////P7          APL  40
 00B0 08E2              ldi R16,40
 00B2 C0DF              xcall _lcd_write_data
 00B4                   .dbline 147
 00B4           ;   lcd_write_data(0x00);//////////////////////////////P8          APH    
 00B4 0027              clr R16
 00B6 BEDF              xcall _lcd_write_data
 00B8                   .dbline 149
 00B8           ;   // Scroll
 00B8           ;   lcd_write_command(0x44); 
 00B8 04E4              ldi R16,68
 00BA B7DF              xcall _lcd_write_command
 00BC                   .dbline 150
 00BC           ;   lcd_write_data(0x00);    
 00BC 0027              clr R16
 00BE BADF              xcall _lcd_write_data
 00C0                   .dbline 151
 00C0           ;   lcd_write_data(0x00);    
 00C0 0027              clr R16
 00C2 B8DF              xcall _lcd_write_data
 00C4                   .dbline 152
 00C4           ;   lcd_write_data(LCD_Y_SIZE);
 00C4 00EF              ldi R16,240
 00C6 B6DF              xcall _lcd_write_data
 00C8                   .dbline 153
 00C8           ;   lcd_write_data(0x00);      
 00C8 0027              clr R16
 00CA B4DF              xcall _lcd_write_data
 00CC                   .dbline 154
 00CC           ;   lcd_write_data(0x10);      
 00CC 00E1              ldi R16,16
 00CE B2DF              xcall _lcd_write_data
 00D0                   .dbline 155
 00D0           ;   lcd_write_data(LCD_Y_SIZE);
 00D0 00EF              ldi R16,240
 00D2 B0DF              xcall _lcd_write_data
 00D4                   .dbline 157
 00D4           ;   // Horizontal scroll
 00D4           ;   lcd_write_command(0x5a);  
 00D4 0AE5              ldi R16,90
 00D6 A9DF              xcall _lcd_write_command
 00D8                   .dbline 158
 00D8           ;   lcd_write_data(0x00);     
 00D8 0027              clr R16
 00DA ACDF              xcall _lcd_write_data
 00DC                   .dbline 160
 00DC           ;   // Overlay
 00DC           ;   lcd_write_command(0x5b);  
 00DC 0BE5              ldi R16,91
 00DE A5DF              xcall _lcd_write_command
 00E0                   .dbline 161
 00E0           ;   lcd_write_data(0x03);    
 00E0 03E0              ldi R16,3
 00E2 A8DF              xcall _lcd_write_data
 00E4                   .dbline 163
 00E4           ;   // Display On/Off I
 00E4           ;   lcd_write_command(0x58);
 00E4 08E5              ldi R16,88
 00E6 A1DF              xcall _lcd_write_command
 00E8                   .dbline 164
 00E8           ;   lcd_write_data(0x14);     
 00E8 04E1              ldi R16,20
 00EA A4DF              xcall _lcd_write_data
 00EC                   .dbline 166
 00EC           ;   // Cursor format
 00EC           ;   lcd_write_command(0x5d); 
 00EC 0DE5              ldi R16,93
 00EE 9DDF              xcall _lcd_write_command
 00F0                   .dbline 167
 00F0           ;   lcd_write_data(0x07);    
 00F0 07E0              ldi R16,7
 00F2 A0DF              xcall _lcd_write_data
 00F4                   .dbline 168
 00F4           ;   lcd_write_data(0x87);    
 00F4 07E8              ldi R16,135
 00F6 9EDF              xcall _lcd_write_data
 00F8                   .dbline 170
 00F8           ;   // Display On/Off II 
 00F8           ;   lcd_write_command(0x59);   
 00F8 09E5              ldi R16,89
 00FA 97DF              xcall _lcd_write_command
 00FC                   .dbline 171
 00FC           ;   lcd_write_data(0x14); // 0 0 0 1 0 1 0 0     
 00FC 04E1              ldi R16,20
 00FE 9ADF              xcall _lcd_write_data
 0100                   .dbline 173
 0100           ;   // Curson direction  
 0100           ;   lcd_write_command(0x4c);          
 0100 0CE4              ldi R16,76
 0102 93DF              xcall _lcd_write_command
 0104                   .dbline 175
 0104           ;   // CUrsor write  
 0104           ;   lcd_write_command(0x46);
 0104 06E4              ldi R16,70
 0106 91DF              xcall _lcd_write_command
 0108                   .dbline 176
 0108           ;   lcd_write_data(0x00); 
 0108 0027              clr R16
 010A 94DF              xcall _lcd_write_data
 010C                   .dbline 177
 010C           ;   lcd_write_data(0x00);  
 010C 0027              clr R16
 010E 92DF              xcall _lcd_write_data
 0110                   .dbline -2
 0110           L13:
 0110                   .dbline 0 ; func end
 0110 5991              ld R21,y+
 0112 4991              ld R20,y+
 0114 0895              ret
 0116                   .dbsym r i 20 I
 0116                   .dbend
 0116                   .dbfunc e lcd_clear_text _lcd_clear_text fV
 0116           ;              i -> R20,R21
                        .even
 0116           _lcd_clear_text::
 0116 4A93              st -y,R20
 0118 5A93              st -y,R21
 011A                   .dbline -1
 011A                   .dbline 183
 011A           ; }
 011A           ; /***********************************************************************
 011A           ; Clears the text layer / screen.
 011A           ; ***********************************************************************/
 011A           ; void lcd_clear_text(void)
 011A           ; {
 011A                   .dbline 185
 011A           ;   int i;
 011A           ;   lcd_write_command(0x46);
 011A 06E4              ldi R16,70
 011C 86DF              xcall _lcd_write_command
 011E                   .dbline 186
 011E           ;   lcd_write_data(0x00);
 011E 0027              clr R16
 0120 89DF              xcall _lcd_write_data
 0122                   .dbline 187
 0122           ;   lcd_write_data(0x00);
 0122 0027              clr R16
 0124 87DF              xcall _lcd_write_data
 0126                   .dbline 188
 0126           ;   lcd_write_command(0x42); 
 0126 02E4              ldi R16,66
 0128 80DF              xcall _lcd_write_command
 012A                   .dbline 189
 012A           ;   for (i=0; i<((LCD_X_SIZE/8)*(LCD_Y_SIZE/8)); i++) lcd_write_data(' ');
 012A 4427              clr R20
 012C 5527              clr R21
 012E           L19:
 012E                   .dbline 189
 012E 00E2              ldi R16,32
 0130 81DF              xcall _lcd_write_data
 0132           L20:
 0132                   .dbline 189
 0132 4F5F              subi R20,255  ; offset = 1
 0134 5F4F              sbci R21,255
 0136                   .dbline 189
 0136 403B              cpi R20,176
 0138 E4E0              ldi R30,4
 013A 5E07              cpc R21,R30
 013C C4F3              brlt L19
 013E           X3:
 013E                   .dbline 190
 013E           ;   lcd_write_command(0x46); 
 013E 06E4              ldi R16,70
 0140 74DF              xcall _lcd_write_command
 0142                   .dbline 191
 0142           ;   lcd_write_data(0x00);
 0142 0027              clr R16
 0144 77DF              xcall _lcd_write_data
 0146                   .dbline 192
 0146           ;   lcd_write_data(0x00);
 0146 0027              clr R16
 0148 75DF              xcall _lcd_write_data
 014A                   .dbline -2
 014A           L18:
 014A                   .dbline 0 ; func end
 014A 5991              ld R21,y+
 014C 4991              ld R20,y+
 014E 0895              ret
 0150                   .dbsym r i 20 I
 0150                   .dbend
 0150                   .dbfunc e lcd_goto _lcd_goto fV
 0150           ;             hi -> R10
 0150           ;             lo -> R12
 0150           ;           addr -> R20,R21
 0150           ;           line -> R12
 0150           ;         column -> R10
                        .even
 0150           _lcd_goto::
 0150 0E940000          xcall push_xgset303C
 0154 C22E              mov R12,R18
 0156 A02E              mov R10,R16
 0158                   .dbline -1
 0158                   .dbline 200
 0158           ; }
 0158           ; 
 0158           ; 
 0158           ; /***********************************************************************
 0158           ; Goto specified column and line. 1,1 is the upper left corner.
 0158           ; ***********************************************************************/
 0158           ; void lcd_goto(unsigned char column, unsigned char line)
 0158           ; {
 0158                   .dbline 204
 0158           ;   int addr;
 0158           ;   unsigned char lo;
 0158           ;   unsigned char hi;
 0158           ;   column--;
 0158 AA94              dec R10
 015A                   .dbline 205
 015A           ;   line--;
 015A CA94              dec R12
 015C                   .dbline 206
 015C           ;   addr = (line * (LCD_X_SIZE/8)) + column;
 015C 88E2              ldi R24,40
 015E 8C9D              mul R24,R12
 0160 A001              movw R20,R0
 0162 2A2C              mov R2,R10
 0164 3324              clr R3
 0166 420D              add R20,R2
 0168 531D              adc R21,R3
 016A                   .dbline 207
 016A           ;   lo = (unsigned char) (addr & 0x00ff);
 016A CA01              movw R24,R20
 016C 9070              andi R25,0
 016E C82E              mov R12,R24
 0170                   .dbline 208
 0170           ;   hi = (unsigned char) ((addr & 0xff00) >> 8);
 0170 CA01              movw R24,R20
 0172 8070              andi R24,0
 0174 5C01              movw R10,R24
 0176 AB2C              mov R10,R11
 0178 BB24              clr R11
 017A                   .dbline 209
 017A           ;   lcd_write_command(0x46);
 017A 06E4              ldi R16,70
 017C 56DF              xcall _lcd_write_command
 017E                   .dbline 210
 017E           ;   lcd_write_data(lo);
 017E 0C2D              mov R16,R12
 0180 59DF              xcall _lcd_write_data
 0182                   .dbline 211
 0182           ;   lcd_write_data(hi);
 0182 0A2D              mov R16,R10
 0184 57DF              xcall _lcd_write_data
 0186                   .dbline -2
 0186           L23:
 0186                   .dbline 0 ; func end
 0186 0C940000          xjmp pop_xgset303C
 018A                   .dbsym r hi 10 c
 018A                   .dbsym r lo 12 c
 018A                   .dbsym r addr 20 I
 018A                   .dbsym r line 12 c
 018A                   .dbsym r column 10 c
 018A                   .dbend
 018A                   .dbfunc e lcd_write_string _lcd_write_string fV
 018A           ;              i -> <dead>
 018A           ;            ptr -> R10,R11
                        .even
 018A           _lcd_write_string::
 018A AA92              st -y,R10
 018C BA92              st -y,R11
 018E 5801              movw R10,R16
 0190                   .dbline -1
 0190                   .dbline 220
 0190           ; }
 0190           ; 
 0190           ; 
 0190           ; /***********************************************************************
 0190           ; Write strings to the text layer. Set position with lcd_goto.
 0190           ; Text will wrap if to long to show on one line.
 0190           ; ***********************************************************************/
 0190           ; void lcd_write_string(char *ptr)
 0190           ; {
 0190                   .dbline 222
 0190           ;   int i;
 0190           ;   lcd_write_command(0x42);
 0190 02E4              ldi R16,66
 0192 4BDF              xcall _lcd_write_command
 0194 04C0              xjmp L26
 0196           L25:
 0196                   .dbline 223
 0196           ;   while (*ptr != 0x00) lcd_write_data(*ptr++);
 0196 F501              movw R30,R10
 0198 0191              ld R16,Z+
 019A 5F01              movw R10,R30
 019C 4BDF              xcall _lcd_write_data
 019E           L26:
 019E                   .dbline 223
 019E F501              movw R30,R10
 01A0 2080              ldd R2,z+0
 01A2 2220              tst R2
 01A4 C1F7              brne L25
 01A6           X4:
 01A6                   .dbline -2
 01A6           L24:
 01A6                   .dbline 0 ; func end
 01A6 B990              ld R11,y+
 01A8 A990              ld R10,y+
 01AA 0895              ret
 01AC                   .dbsym l i 1 I
 01AC                   .dbsym r ptr 10 pc
 01AC                   .dbend
 01AC                   .dbfunc e lcd_show_cursor _lcd_show_cursor fV
 01AC           ;           show -> R10
                        .even
 01AC           _lcd_show_cursor::
 01AC AA92              st -y,R10
 01AE A02E              mov R10,R16
 01B0                   .dbline -1
 01B0                   .dbline 231

⌨️ 快捷键说明

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