📄 ledtest.lis
字号:
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 + -