📄 ledtest.lis
字号:
0256 00936200 sts 98,R16
025A .dbline 178
025A ; asm(" nop ");
025A 0000 nop
025C .dbline 179
025C ; ClrWR; //写使能
025C 82B3 in R24,0x12
025E 8F77 andi R24,127
0260 82BB out 0x12,R24
0262 .dbline 179
0262 .dbline 180
0262 ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
0262 0000 nop
0264 .dbline 181
0264 ; asm(" nop ");
0264 0000 nop
0266 .dbline 182
0266 ; SetWR;
0266 979A sbi 0x12,7
0268 .dbline 182
0268 .dbline 183
0268 ; SetCS;
0268 969A sbi 0x12,6
026A .dbline 183
026A .dbline 185
026A ; //====================================
026A ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
026A 0000 nop
026C .dbline 186
026C ; asm(" nop ");
026C 0000 nop
026E .dbline 187
026E ; SetWR;
026E 979A sbi 0x12,7
0270 .dbline 187
0270 .dbline 188
0270 ; SetRD;
0270 959A sbi 0x12,5
0272 .dbline 188
0272 .dbline 189
0272 ; ClrRS; //RS = 0 输入命令
0272 83B1 in R24,0x3
0274 8E7F andi R24,254
0276 83B9 out 0x3,R24
0278 .dbline 189
0278 .dbline 190
0278 ; ClrCS;
0278 82B3 in R24,0x12
027A 8F7B andi R24,191
027C 82BB out 0x12,R24
027E .dbline 190
027E .dbline 191
027E ; PORTF = Com_Data;
027E 20936200 sts 98,R18
0282 .dbline 192
0282 ; asm(" nop ");
0282 0000 nop
0284 .dbline 193
0284 ; ClrWR; //写使能
0284 82B3 in R24,0x12
0286 8F77 andi R24,127
0288 82BB out 0x12,R24
028A .dbline 193
028A .dbline 194
028A ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
028A 0000 nop
028C .dbline 195
028C ; asm(" nop ");
028C 0000 nop
028E .dbline 196
028E ; SetWR;
028E 979A sbi 0x12,7
0290 .dbline 196
0290 .dbline 197
0290 ; SetCS;
0290 969A sbi 0x12,6
0292 .dbline 197
0292 .dbline -2
0292 L17:
0292 .dbline 0 ; func end
0292 0895 ret
0294 .dbsym r Com_Data 18 c
0294 .dbsym r Command 16 c
0294 .dbend
0294 .dbfunc e SdData _SdData fV
0294 ; DData -> R16
.even
0294 _SdData::
0294 .dbline -1
0294 .dbline 201
0294 ; }
0294 ; //===============================================
0294 ; void SdData(uchar DData) //send display data
0294 ; {
0294 .dbline 202
0294 ; SetWR;
0294 979A sbi 0x12,7
0296 .dbline 202
0296 .dbline 203
0296 ; SetRD;
0296 959A sbi 0x12,5
0298 .dbline 203
0298 .dbline 204
0298 ; SetRS; //RS = 1 输入数据
0298 189A sbi 0x3,0
029A .dbline 204
029A .dbline 205
029A ; ClrCS;
029A 82B3 in R24,0x12
029C 8F7B andi R24,191
029E 82BB out 0x12,R24
02A0 .dbline 205
02A0 .dbline 206
02A0 ; PORTF = DData;
02A0 00936200 sts 98,R16
02A4 .dbline 207
02A4 ; asm(" nop ");
02A4 0000 nop
02A6 .dbline 208
02A6 ; ClrWR; //写使能
02A6 82B3 in R24,0x12
02A8 8F77 andi R24,127
02AA 82BB out 0x12,R24
02AC .dbline 208
02AC .dbline 209
02AC ; asm(" nop "); // 8MHZ 执行一条指令大约125ns
02AC 0000 nop
02AE .dbline 210
02AE ; asm(" nop ");
02AE 0000 nop
02B0 .dbline 211
02B0 ; SetWR;
02B0 979A sbi 0x12,7
02B2 .dbline 211
02B2 .dbline 212
02B2 ; SetCS;
02B2 969A sbi 0x12,6
02B4 .dbline 212
02B4 .dbline -2
02B4 L18:
02B4 .dbline 0 ; func end
02B4 0895 ret
02B6 .dbsym r DData 16 c
02B6 .dbend
02B6 .dbfunc e LCD_ChkBusy _LCD_ChkBusy fV
02B6 ; TempM -> R16
.even
02B6 _LCD_ChkBusy::
02B6 .dbline -1
02B6 .dbline 217
02B6 ; }
02B6 ; //====================================
02B6 ; //=================================
02B6 ; void LCD_ChkBusy(void)
02B6 ; {
02B6 .dbline 218
02B6 ; uchar TempM = 0x08;
02B6 08E0 ldi R16,8
02B8 .dbline 219
02B8 ; DDRG = 0X00; //将端口设为输入
02B8 2224 clr R2
02BA 20926400 sts 100,R2
02BE 03C0 xjmp L21
02C0 L20:
02C0 .dbline 221
02C0 .dbline 222
02C0 00916300 lds R16,99
02C4 .dbline 223
02C4 0870 andi R16,8
02C6 .dbline 224
02C6 L21:
02C6 .dbline 220
02C6 ; while(TempM)
02C6 0023 tst R16
02C8 D9F7 brne L20
02CA .dbline 225
02CA ; {
02CA ; TempM = PING;
02CA ; TempM &= 0x08; //读取DB.3位
02CA ; }
02CA ; DDRG = 0XFF; //将端口设为输出
02CA 8FEF ldi R24,255
02CC 80936400 sts 100,R24
02D0 .dbline -2
02D0 L19:
02D0 .dbline 0 ; func end
02D0 0895 ret
02D2 .dbsym r TempM 16 c
02D2 .dbend
02D2 .dbfunc e Welcome_interface _Welcome_interface fV
.even
02D2 _Welcome_interface::
02D2 2297 sbiw R28,2
02D4 .dbline -1
02D4 .dbline 229
02D4 ; }
02D4 ; //====================================
02D4 ; void Welcome_interface(void)
02D4 ; {
02D4 .dbline 230
02D4 ; SdCmd(0x12,0x95);LCD_ChkBusy(); //操作图层1
02D4 25E9 ldi R18,149
02D6 02E1 ldi R16,18
02D8 B6DF xcall _SdCmd
02DA .dbline 230
02DA EDDF xcall _LCD_ChkBusy
02DC .dbline 231
02DC ; CleanScreen();
02DC 31D0 xcall _CleanScreen
02DE .dbline 232
02DE ; SdCmd(0xf1,0x1f);LCD_ChkBusy(); //设置字型大小
02DE 2FE1 ldi R18,31
02E0 01EF ldi R16,241
02E2 B1DF xcall _SdCmd
02E4 .dbline 232
02E4 E8DF xcall _LCD_ChkBusy
02E6 .dbline 235
02E6 ; //SdCmd(0x60,0x0a);LCD_ChkBusy(); //设置光标X坐标
02E6 ; //SdCmd(0x70,0x4b);LCD_ChkBusy(); //设置光标Y坐标
02E6 ; ShowText(10,75,"金特维");
02E6 80E0 ldi R24,<L24
02E8 90E0 ldi R25,>L24
02EA 9983 std y+1,R25
02EC 8883 std y+0,R24
02EE 2BE4 ldi R18,75
02F0 30E0 ldi R19,0
02F2 0AE0 ldi R16,10
02F4 10E0 ldi R17,0
02F6 40D0 xcall _ShowText
02F8 .dbline 236
02F8 ; SdCmd(0xf1,0x0f);LCD_ChkBusy(); //设置字型大小
02F8 2FE0 ldi R18,15
02FA 01EF ldi R16,241
02FC A4DF xcall _SdCmd
02FE .dbline 236
02FE DBDF xcall _LCD_ChkBusy
0300 .dbline 239
0300 ; //SdCmd(0x60,0x10);LCD_ChkBusy(); //设置光标X坐标
0300 ; //SdCmd(0x70,0x55);LCD_ChkBusy(); //设置光标Y坐标
0300 ; ShowText(16,85,"技术有限公司");
0300 80E0 ldi R24,<L25
0302 90E0 ldi R25,>L25
0304 9983 std y+1,R25
0306 8883 std y+0,R24
0308 25E5 ldi R18,85
030A 30E0 ldi R19,0
030C 00E1 ldi R16,16
030E 10E0 ldi R17,0
0310 33D0 xcall _ShowText
0312 .dbline 240
0312 ; SdCmd(0xf0,0xa0);LCD_ChkBusy(); //设置为简体字型
0312 20EA ldi R18,160
0314 00EF ldi R16,240
0316 97DF xcall _SdCmd
0318 .dbline 240
0318 CEDF xcall _LCD_ChkBusy
031A .dbline 241
031A ; SdCmd(0xf1,0x5f);LCD_ChkBusy(); //设置字型大小
031A 2FE5 ldi R18,95
031C 01EF ldi R16,241
031E 93DF xcall _SdCmd
0320 .dbline 241
0320 CADF xcall _LCD_ChkBusy
0322 .dbline 242
0322 ; SdCmd(0x10,0x79);LCD_ChkBusy(); //设置光标及粗体显示
0322 29E7 ldi R18,121
0324 00E1 ldi R16,16
0326 8FDF xcall _SdCmd
0328 .dbline 242
0328 C6DF xcall _LCD_ChkBusy
032A .dbline 245
032A ; //SdCmd(0x60,0x09);LCD_ChkBusy(); //设置光标X坐标
032A ; //SdCmd(0x70,0x72);LCD_ChkBusy(); //设置光标Y坐标
032A ; ShowText(9,114,"GTW - 2008");
032A 80E0 ldi R24,<L26
032C 90E0 ldi R25,>L26
032E 9983 std y+1,R25
0330 8883 std y+0,R24
0332 22E7 ldi R18,114
0334 30E0 ldi R19,0
0336 09E0 ldi R16,9
0338 10E0 ldi R17,0
033A 1ED0 xcall _ShowText
033C .dbline -2
033C L23:
033C 2296 adiw R28,2
033E .dbline 0 ; func end
033E 0895 ret
0340 .dbend
0340 .dbfunc e CleanScreen _CleanScreen fV
0340 ; i -> R20
0340 ; j -> R22
.even
0340 _CleanScreen::
0340 0E940000 xcall push_gset2
0344 .dbline -1
0344 .dbline 250
0344 ;
0344 ; }
0344 ; //==================================
0344 ; void CleanScreen()
0344 ; {
0344 .dbline 252
0344 ; uchar i,j;
0344 ; asm(" cli "); //加入禁止中断,以免人为的外界的中断频繁产生从而使显示屏无反应,即死屏现象
0344 F894 cli
0346 .dbline 253
0346 ; SdCmd(0x60,0x00); LCD_ChkBusy(); //set cursor X location
0346 2227 clr R18
0348 00E6 ldi R16,96
034A 7DDF xcall _SdCmd
034C .dbline 253
034C B4DF xcall _LCD_ChkBusy
034E .dbline 254
034E ; SdCmd(0x70,0x00); LCD_ChkBusy(); //set cursor Y location
034E 2227 clr R18
0350 00E7 ldi R16,112
0352 79DF xcall _SdCmd
0354 .dbline 254
0354 B0DF xcall _LCD_ChkBusy
0356 .dbline 255
0356 ; for(i=0;i<40;i++)
0356 4427 clr R20
0358 09C0 xjmp L31
035A L28:
035A .dbline 256
035A ; {
035A .dbline 257
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -