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

📄 ¿-

📁 atmega128串行操作lcd12864
💻
📖 第 1 页 / 共 3 页
字号:
 01CE                   .dbline 140
 01CE 199A              sbi 0x3,1
 01D0                   .dbline 140
 01D0 02C0              xjmp L57
 01D2           L56:
 01D2                   .dbline 142
 01D2           ;   else
 01D2           ;       {SID_CLE;}
 01D2                   .dbline 142
 01D2 119A              sbi 0x2,1
 01D4                   .dbline 142
 01D4 1998              cbi 0x3,1
 01D6                   .dbline 142
 01D6           L57:
 01D6                   .dbline 143
 01D6           ; delay_us(1);
 01D6 01E0              ldi R16,1
 01D8 10E0              ldi R17,0
 01DA 27DF              xcall _delay_us
 01DC                   .dbline 144
 01DC           ;  SCLK_SET;//时钟总线拉高,数据传送给显示屏
 01DC 159A              sbi 0x2,5
 01DE                   .dbline 144
 01DE 1D9A              sbi 0x3,5
 01E0                   .dbline 145
 01E0           ;  delay_us(3);
 01E0 03E0              ldi R16,3
 01E2 10E0              ldi R17,0
 01E4 22DF              xcall _delay_us
 01E6                   .dbline 146
 01E6           ;  SCLK_CLE;
 01E6 159A              sbi 0x2,5
 01E8                   .dbline 146
 01E8 1D98              cbi 0x3,5
 01EA                   .dbline 147
 01EA           ;  delay_us(3);
 01EA 03E0              ldi R16,3
 01EC 10E0              ldi R17,0
 01EE 1DDF              xcall _delay_us
 01F0                   .dbline 148
 01F0           ;  date=date<<1;//高位先发
 01F0 440F              lsl R20
 01F2                   .dbline 149
 01F2           ; }
 01F2           L53:
 01F2                   .dbline 137
 01F2 6395              inc R22
 01F4           L55:
 01F4                   .dbline 137
 01F4 6830              cpi R22,8
 01F6 30F3              brlo L52
 01F8           X15:
 01F8                   .dbline -2
 01F8           L39:
 01F8                   .dbline 0 ; func end
 01F8 0C940000          xjmp pop_xgsetF00C
 01FC                   .dbsym r i 22 c
 01FC                   .dbsym r date 20 c
 01FC                   .dbsym r dat 10 c
 01FC                   .dbend
 01FC                   .dbfunc e Lcd_putsachar _Lcd_putsachar fV
 01FC           ;            dat -> R10
 01FC           ;              y -> R20
 01FC           ;              x -> R12
                        .even
 01FC           _Lcd_putsachar::
 01FC 0E940000          xcall push_xgsetF03C
 0200 422F              mov R20,R18
 0202 C02E              mov R12,R16
 0204 A884              ldd R10,y+8
 0206                   .dbline -1
 0206                   .dbline 154
 0206           ; }
 0206           ;  
 0206           ; //在指定的位置显示一个字母
 0206           ; void Lcd_putsachar(unsigned char x,unsigned char y,unsigned char dat)
 0206           ; {
 0206                   .dbline 155
 0206           ; switch(x)
 0206 6C2D              mov R22,R12
 0208 7727              clr R23
 020A 6030              cpi R22,0
 020C 6707              cpc R22,R23
 020E 69F0              breq L62
 0210           X16:
 0210 6130              cpi R22,1
 0212 E0E0              ldi R30,0
 0214 7E07              cpc R23,R30
 0216 79F0              breq L63
 0218           X17:
 0218 6230              cpi R22,2
 021A E0E0              ldi R30,0
 021C 7E07              cpc R23,R30
 021E 89F0              breq L64
 0220           X18:
 0220 6330              cpi R22,3
 0222 E0E0              ldi R30,0
 0224 7E07              cpc R23,R30
 0226 99F0              breq L65
 0228           X19:
 0228 17C0              xjmp L59
 022A           L62:
 022A                   .dbline 158
 022A           ;     {
 022A           ;       case 0:
 022A           ;          Write_Command(0x80);
 022A 00E8              ldi R16,128
 022C 29DF              xcall _Write_Command
 022E                   .dbline 159
 022E           ;          Write_Command(0x80+y);
 022E 042F              mov R16,R20
 0230 0058              subi R16,128    ; addi 128
 0232 26DF              xcall _Write_Command
 0234                   .dbline 160
 0234           ;          break;
 0234 11C0              xjmp L60
 0236           L63:
 0236                   .dbline 162
 0236           ;       case 1:
 0236           ;          Write_Command(0x90);
 0236 00E9              ldi R16,144
 0238 23DF              xcall _Write_Command
 023A                   .dbline 163
 023A           ;          Write_Command(0x90+y);
 023A 042F              mov R16,R20
 023C 0057              subi R16,112    ; addi 144
 023E 20DF              xcall _Write_Command
 0240                   .dbline 164
 0240           ;          break;
 0240 0BC0              xjmp L60
 0242           L64:
 0242                   .dbline 166
 0242           ;       case 2:
 0242           ;          Write_Command(0x88);
 0242 08E8              ldi R16,136
 0244 1DDF              xcall _Write_Command
 0246                   .dbline 167
 0246           ;          Write_Command(0x88+y);
 0246 042F              mov R16,R20
 0248 0857              subi R16,120    ; addi 136
 024A 1ADF              xcall _Write_Command
 024C                   .dbline 168
 024C           ;          break;
 024C 05C0              xjmp L60
 024E           L65:
 024E                   .dbline 170
 024E           ;       case 3:
 024E           ;          Write_Command(0x98);
 024E 08E9              ldi R16,152
 0250 17DF              xcall _Write_Command
 0252                   .dbline 171
 0252           ;          Write_Command(0x98+y);
 0252 042F              mov R16,R20
 0254 0856              subi R16,104    ; addi 152
 0256 14DF              xcall _Write_Command
 0258                   .dbline 172
 0258           ;          break;
 0258           L59:
 0258           L60:
 0258                   .dbline 174
 0258           ;        }
 0258           ; Write_one_char(dat);//写数据
 0258 0A2D              mov R16,R10
 025A 71DF              xcall _Write_one_char
 025C                   .dbline -2
 025C           L58:
 025C                   .dbline 0 ; func end
 025C 0C940000          xjmp pop_xgsetF03C
 0260                   .dbsym r dat 10 c
 0260                   .dbsym r y 20 c
 0260                   .dbsym r x 12 c
 0260                   .dbend
 0260                   .dbfunc e Lcd_puts_any _Lcd_puts_any fV
 0260           ;              i -> R10
 0260           ;              p -> R12,R13
 0260           ;              y -> R20
 0260           ;              x -> R14
                        .even
 0260           _Lcd_puts_any::
 0260 0E940000          xcall push_xgsetF0FC
 0264 422F              mov R20,R18
 0266 E02E              mov R14,R16
 0268 CA84              ldd R12,y+10
 026A DB84              ldd R13,y+11
 026C                   .dbline -1
 026C                   .dbline 178
 026C           ; }
 026C           ; //从指定的位置开始显示汉字或字符
 026C           ; void Lcd_puts_any(unsigned char x,unsigned char y,unsigned char *p)
 026C           ; {
 026C                   .dbline 179
 026C           ; unsigned char i=0;
 026C AA24              clr R10
 026E                   .dbline 180
 026E           ; switch(x)
 026E 6E2D              mov R22,R14
 0270 7727              clr R23
 0272 6030              cpi R22,0
 0274 6707              cpc R22,R23
 0276 69F0              breq L70
 0278           X20:
 0278 6130              cpi R22,1
 027A E0E0              ldi R30,0
 027C 7E07              cpc R23,R30
 027E 79F0              breq L71
 0280           X21:
 0280 6230              cpi R22,2
 0282 E0E0              ldi R30,0
 0284 7E07              cpc R23,R30
 0286 89F0              breq L72
 0288           X22:
 0288 6330              cpi R22,3
 028A E0E0              ldi R30,0
 028C 7E07              cpc R23,R30
 028E 99F0              breq L73
 0290           X23:
 0290 17C0              xjmp L67
 0292           L70:
 0292                   .dbline 183
 0292           ;     {
 0292           ;       case 0:
 0292           ;          Write_Command(0x80);
 0292 00E8              ldi R16,128
 0294 F5DE              xcall _Write_Command
 0296                   .dbline 184
 0296           ;          Write_Command(0x80+y);
 0296 042F              mov R16,R20
 0298 0058              subi R16,128    ; addi 128
 029A F2DE              xcall _Write_Command
 029C                   .dbline 185
 029C           ;          break;
 029C 11C0              xjmp L68
 029E           L71:
 029E                   .dbline 187
 029E           ;       case 1:
 029E           ;          Write_Command(0x90);
 029E 00E9              ldi R16,144
 02A0 EFDE              xcall _Write_Command
 02A2                   .dbline 188
 02A2           ;          Write_Command(0x90+y);
 02A2 042F              mov R16,R20
 02A4 0057              subi R16,112    ; addi 144
 02A6 ECDE              xcall _Write_Command
 02A8                   .dbline 189
 02A8           ;          break;
 02A8 0BC0              xjmp L68
 02AA           L72:
 02AA                   .dbline 191
 02AA           ;       case 2:
 02AA           ;          Write_Command(0x88);
 02AA 08E8              ldi R16,136
 02AC E9DE              xcall _Write_Command
 02AE                   .dbline 192
 02AE           ;          Write_Command(0x88+y);
 02AE 042F              mov R16,R20
 02B0 0857              subi R16,120    ; addi 136
 02B2 E6DE              xcall _Write_Command
 02B4                   .dbline 193
 02B4           ;          break;
 02B4 05C0              xjmp L68
 02B6           L73:
 02B6                   .dbline 195
 02B6           ;       case 3:
 02B6           ;          Write_Command(0x98);
 02B6 08E9              ldi R16,152
 02B8 E3DE              xcall _Write_Command
 02BA                   .dbline 196
 02BA           ;          Write_Command(0x98+y);
 02BA 042F              mov R16,R20
 02BC 0856              subi R16,104    ; addi 152
 02BE E0DE              xcall _Write_Command
 02C0                   .dbline 197
 02C0           ;          break;
 02C0           L67:
 02C0           L68:
 02C0                   .dbline 199
 02C0           ;        }
 02C0           ; for(i=0;p[i]!='\0';i++)
 02C0 AA24              clr R10
 02C2 07C0              xjmp L77
 02C4           L74:
 02C4                   .dbline 200
 02C4           ;       {
 02C4                   .dbline 201
 02C4           ;               Write_one_char(p[i]);
 02C4 EA2D              mov R30,R10
 02C6 FF27              clr R31
 02C8 EC0D              add R30,R12
 02CA FD1D              adc R31,R13
 02CC 0081              ldd R16,z+0
 02CE 37DF              xcall _Write_one_char
 02D0                   .dbline 202
 02D0           ;       }
 02D0           L75:
 02D0                   .dbline 199
 02D0 A394              inc R10
 02D2           L77:
 02D2                   .dbline 199
 02D2 EA2D              mov R30,R10
 02D4 FF27              clr R31
 02D6 EC0D              add R30,R12
 02D8 FD1D              adc R31,R13
 02DA 2080              ldd R2,z+0
 02DC 2220              tst R2
 02DE 91F7              brne L74
 02E0           X24:
 02E0                   .dbline -2
 02E0           L66:
 02E0                   .dbline 0 ; func end
 02E0 0C940000          xjmp pop_xgsetF0FC
 02E4                   .dbsym r i 10 c
 02E4                   .dbsym r p 12 pc
 02E4                   .dbsym r y 20 c
 02E4                   .dbsym r x 14 c
 02E4                   .dbend
 02E4           ; }
 02E4           ;  

⌨️ 快捷键说明

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