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

📄 ledtest.lis

📁 使用ATMEGA128加CH375对U盘扇区进行读写,本程序在ICCAVR上调试,并在相应硬件电路上调试通过!供参考用
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0236 80E0              ldi R24,<L15
 0238 90E0              ldi R25,>L15
 023A 9983              std y+1,R25
 023C 8883              std y+0,R24
 023E 2BE4              ldi R18,75
 0240 30E0              ldi R19,0
 0242 0AE0              ldi R16,10
 0244 10E0              ldi R17,0
 0246 40D0              xcall _ShowText
 0248                   .dbline 190
 0248           ;   SdCmd(0xf1,0x0f);LCD_ChkBusy();     //设置字型大小
 0248 2FE0              ldi R18,15
 024A 01EF              ldi R16,241
 024C A4DF              xcall _SdCmd
 024E                   .dbline 190
 024E DBDF              xcall _LCD_ChkBusy
 0250                   .dbline 193
 0250           ;   //SdCmd(0x60,0x10);LCD_ChkBusy();     //设置光标X坐标
 0250           ;   //SdCmd(0x70,0x55);LCD_ChkBusy();     //设置光标Y坐标
 0250           ;   ShowText(16,85,"技术有限公司");
 0250 80E0              ldi R24,<L16
 0252 90E0              ldi R25,>L16
 0254 9983              std y+1,R25
 0256 8883              std y+0,R24
 0258 25E5              ldi R18,85
 025A 30E0              ldi R19,0
 025C 00E1              ldi R16,16
 025E 10E0              ldi R17,0
 0260 33D0              xcall _ShowText
 0262                   .dbline 194
 0262           ;   SdCmd(0xf0,0xa0);LCD_ChkBusy();     //设置为简体字型
 0262 20EA              ldi R18,160
 0264 00EF              ldi R16,240
 0266 97DF              xcall _SdCmd
 0268                   .dbline 194
 0268 CEDF              xcall _LCD_ChkBusy
 026A                   .dbline 195
 026A           ;   SdCmd(0xf1,0x5f);LCD_ChkBusy();     //设置字型大小
 026A 2FE5              ldi R18,95
 026C 01EF              ldi R16,241
 026E 93DF              xcall _SdCmd
 0270                   .dbline 195
 0270 CADF              xcall _LCD_ChkBusy
 0272                   .dbline 196
 0272           ;   SdCmd(0x10,0x79);LCD_ChkBusy();     //设置光标及粗体显示
 0272 29E7              ldi R18,121
 0274 00E1              ldi R16,16
 0276 8FDF              xcall _SdCmd
 0278                   .dbline 196
 0278 C6DF              xcall _LCD_ChkBusy
 027A                   .dbline 199
 027A           ;   //SdCmd(0x60,0x09);LCD_ChkBusy();     //设置光标X坐标
 027A           ;   //SdCmd(0x70,0x72);LCD_ChkBusy();     //设置光标Y坐标
 027A           ;   ShowText(9,114,"GTW - 2008");
 027A 80E0              ldi R24,<L17
 027C 90E0              ldi R25,>L17
 027E 9983              std y+1,R25
 0280 8883              std y+0,R24
 0282 22E7              ldi R18,114
 0284 30E0              ldi R19,0
 0286 09E0              ldi R16,9
 0288 10E0              ldi R17,0
 028A 1ED0              xcall _ShowText
 028C                   .dbline -2
 028C           L14:
 028C 2296              adiw R28,2
 028E                   .dbline 0 ; func end
 028E 0895              ret
 0290                   .dbend
 0290                   .dbfunc e CleanScreen _CleanScreen fV
 0290           ;              i -> R20
 0290           ;              j -> R22
                        .even
 0290           _CleanScreen::
 0290 0E940000          xcall push_gset2
 0294                   .dbline -1
 0294                   .dbline 204
 0294           ;   
 0294           ; }
 0294           ; //==================================
 0294           ; void CleanScreen()
 0294           ; {  
 0294                   .dbline 206
 0294           ;    uchar i,j;
 0294           ;    asm(" cli ");  //加入禁止中断,以免人为的外界的中断频繁产生从而使显示屏无反应,即死屏现象
 0294 F894               cli 
 0296                   .dbline 207
 0296           ;    SdCmd(0x60,0x00); LCD_ChkBusy();  //set cursor X location
 0296 2227              clr R18
 0298 00E6              ldi R16,96
 029A 7DDF              xcall _SdCmd
 029C                   .dbline 207
 029C B4DF              xcall _LCD_ChkBusy
 029E                   .dbline 208
 029E           ;    SdCmd(0x70,0x00); LCD_ChkBusy();  //set cursor Y location
 029E 2227              clr R18
 02A0 00E7              ldi R16,112
 02A2 79DF              xcall _SdCmd
 02A4                   .dbline 208
 02A4 B0DF              xcall _LCD_ChkBusy
 02A6                   .dbline 209
 02A6           ;       for(i=0;i<40;i++)
 02A6 4427              clr R20
 02A8 09C0              xjmp L22
 02AA           L19:
 02AA                   .dbline 210
 02AA           ;        {
 02AA                   .dbline 211
 02AA           ;               for(j=0;j<240;j++)
 02AA 6627              clr R22
 02AC 04C0              xjmp L26
 02AE           L23:
 02AE                   .dbline 212
 02AE                   .dbline 213
 02AE 0027              clr R16
 02B0 99DF              xcall _SdData
 02B2                   .dbline 214
 02B2 A9DF              xcall _LCD_ChkBusy
 02B4                   .dbline 215
 02B4           L24:
 02B4                   .dbline 211
 02B4 6395              inc R22
 02B6           L26:
 02B6                   .dbline 211
 02B6 603F              cpi R22,240
 02B8 D0F3              brlo L23
 02BA                   .dbline 216
 02BA           L20:
 02BA                   .dbline 209
 02BA 4395              inc R20
 02BC           L22:
 02BC                   .dbline 209
 02BC 4832              cpi R20,40
 02BE A8F3              brlo L19
 02C0                   .dbline 217
 02C0           ;               {
 02C0           ;                 SdData(0x00);
 02C0           ;                         LCD_ChkBusy();
 02C0           ;                   }
 02C0           ;      }
 02C0           ;    asm(" sei ");  //开户中断
 02C0 7894               sei 
 02C2                   .dbline -2
 02C2           L18:
 02C2 0E940000          xcall pop_gset2
 02C6                   .dbline 0 ; func end
 02C6 0895              ret
 02C8                   .dbsym r i 20 c
 02C8                   .dbsym r j 22 c
 02C8                   .dbend
 02C8                   .dbfunc e ShowText _ShowText fV
 02C8           ;           text -> R20,R21
 02C8           ;              y -> R22
 02C8           ;              x -> R10
                        .even
 02C8           _ShowText::
 02C8 0E940000          xcall push_gset3
 02CC 622F              mov R22,R18
 02CE A02E              mov R10,R16
 02D0 4E81              ldd R20,y+6
 02D2 5F81              ldd R21,y+7
 02D4                   .dbline -1
 02D4                   .dbline 221
 02D4           ; }
 02D4           ; //---------------------------------
 02D4           ; void ShowText(uchar x, uchar y,uchar *text)
 02D4           ; {
 02D4                   .dbline 222
 02D4           ;     SdCmd(0x00,0xCD);LCD_ChkBusy();   //send command normal power mode, Char mode    display on, normal display 
 02D4 2DEC              ldi R18,205
 02D6 0027              clr R16
 02D8 5EDF              xcall _SdCmd
 02DA                   .dbline 222
 02DA 95DF              xcall _LCD_ChkBusy
 02DC                   .dbline 223
 02DC           ;     SdCmd(0x60,0x00+x);LCD_ChkBusy();  //set cursor X location to 0
 02DC 2A2D              mov R18,R10
 02DE 00E6              ldi R16,96
 02E0 5ADF              xcall _SdCmd
 02E2                   .dbline 223
 02E2 91DF              xcall _LCD_ChkBusy
 02E4                   .dbline 224
 02E4           ;     SdCmd(0x70,0x00+y);LCD_ChkBusy();  //set cursor Y location to 0
 02E4 262F              mov R18,R22
 02E6 00E7              ldi R16,112
 02E8 56DF              xcall _SdCmd
 02EA                   .dbline 224
 02EA 8DDF              xcall _LCD_ChkBusy
 02EC 06C0              xjmp L29
 02EE           L28:
 02EE                   .dbline 226
 02EE                   .dbline 227
 02EE FA01              movw R30,R20
 02F0 0081              ldd R16,z+0
 02F2 78DF              xcall _SdData
 02F4                   .dbline 228
 02F4 4F5F              subi R20,255  ; offset = 1
 02F6 5F4F              sbci R21,255
 02F8                   .dbline 229
 02F8 86DF              xcall _LCD_ChkBusy
 02FA                   .dbline 230
 02FA           L29:
 02FA                   .dbline 225
 02FA           ;       while(*text>0)
 02FA 2224              clr R2
 02FC FA01              movw R30,R20
 02FE 3080              ldd R3,z+0
 0300 2314              cp R2,R3
 0302 A8F3              brlo L28
 0304                   .dbline -2
 0304           L27:
 0304 0E940000          xcall pop_gset3
 0308                   .dbline 0 ; func end
 0308 0895              ret
 030A                   .dbsym r text 20 pc
 030A                   .dbsym r y 22 c
 030A                   .dbsym r x 10 c
 030A                   .dbend
 030A                   .dbfunc e delay_1us _delay_1us fV
                        .even
 030A           _delay_1us::
 030A                   .dbline -1
 030A                   .dbline 235
 030A           ;        {
 030A           ;               SdData(*text);
 030A           ;               text++;
 030A           ;               LCD_ChkBusy();
 030A           ;        }
 030A           ; }
 030A           ; //========================================================
 030A           ; //-----------------------------------
 030A           ; void delay_1us(void)
 030A           ; {
 030A                   .dbline 236
 030A           ;       asm("nop");
 030A 0000              nop
 030C                   .dbline 237
 030C           ;       asm("nop");
 030C 0000              nop
 030E                   .dbline 238
 030E           ;       asm("nop");
 030E 0000              nop
 0310                   .dbline 239
 0310           ;       asm("nop");
 0310 0000              nop
 0312                   .dbline 240
 0312           ;       asm("nop");
 0312 0000              nop
 0314                   .dbline 241
 0314           ;       asm("nop");
 0314 0000              nop
 0316                   .dbline 242
 0316           ;       asm("nop");
 0316 0000              nop
 0318                   .dbline 243
 0318           ;       asm("nop");
 0318 0000              nop
 031A                   .dbline -2
 031A           L31:
 031A                   .dbline 0 ; func end
 031A 0895              ret
 031C                   .dbend
 031C                   .dbfunc e delay_1ms _delay_1ms fV
 031C           ;              i -> R16,R17
                        .even
 031C           _delay_1ms::
 031C                   .dbline -1
 031C                   .dbline 246
 031C           ; }
 031C           ; void delay_1ms(void)
 031C           ; {
 031C                   .dbline 248
 031C           ;       unsigned int i;
 031C           ;       for(i=1; i<(unsigned int)(8*143-2); i++)
 031C 01E0              ldi R16,1
 031E 10E0              ldi R17,0
 0320 02C0              xjmp L36
 0322           L33:
 0322                   .dbline 249
 0322           L34:
 0322                   .dbline 248
 0322 0F5F              subi R16,255  ; offset = 1
 0324 1F4F              sbci R17,255
 0326           L36:
 0326                   .dbline 248
 0326 0637              cpi R16,118
 0328 E4E0              ldi R30,4
 032A 1E07              cpc R17,R30
 032C D0F3              brlo L33
 032E                   .dbline -2
 032E           L32:
 032E                   .dbline 0 ; func end
 032E 0895              ret
 0330                   .dbsym r i 16 i
 0330                   .dbend
 0330                   .dbfunc e delay_ms _delay_ms fV
 0330           ;              i -> R20,R21
 0330           ;              n -> R22,R23
                        .even
 0330           _delay_ms::
 0330 0E940000          xcall push_gset2
 0334 B801              movw R22,R16
 0336                   .dbline -1
 0336                   .dbline 253
 0336           ;       ;
 0336           ; }
 0336           ; 
 0336           ; void delay_ms(unsigned int n)
 0336           ; {
 0336                   .dbline 255
 0336           ;       unsigned int i;
 0336           ;       for(i=0; i<n; i++)
 0336 4427              clr R20
 0338 5527              clr R21
 033A 03C0              xjmp L41
 033C           L38:
 033C                   .dbline 256
 033C EFDF              xcall _delay_1ms
 033E           L39:
 033E                   .dbline 255
 033E 4F5F              subi R20,255  ; offset = 1
 0340 5F4F              sbci R21,255
 0342           L41:
 0342                   .dbline 255
 0342 4617              cp R20,R22
 0344 5707              cpc R21,R23
 0346 D0F3              brlo L38
 0348                   .dbline -2
 0348           L37:
 0348 0E940000          xcall pop_gset2
 034C                   .dbline 0 ; func end
 034C 0895              ret
 034E                   .dbsym r i 20 i
 034E                   .dbsym r n 22 i
 034E                   .dbend
 034E                   .dbfunc e delay_us _delay_us fV
 034E           ;              i -> R20,R21
 034E           ;              n -> R22,R23
                        .even
 034E           _delay_us::
 034E 0E940000          xcall push_gset2
 0352 B801              movw R22,R16
 0354                   .dbline -1
 0354                   .dbline 259
 0354           ;       delay_1ms();
 0354           ; }
 0354           ; void delay_us(unsigned int n)
 0354           ; {
 0354                   .dbline 261
 0354           ;       unsigned int i;

⌨️ 快捷键说明

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