📄 mp3_7210.lst
字号:
(0176) delay_ms(50);
01EC E302 LDI R16,0x32
01ED E010 LDI R17,0
01EE 940E05E6 CALL _delay_ms
(0177) set_lcd_reset;
01F0 9AC4 SBI 0x18,4
(0178) delay_ms(50);
01F1 E302 LDI R16,0x32
01F2 E010 LDI R17,0
01F3 940E05E6 CALL _delay_ms
(0179)
(0180) LCD_write(LCD_CMD_SWRESET,0);
01F5 2722 CLR R18
01F6 E001 LDI R16,1
01F7 DFAB RCALL _LCD_write
(0181) LCD_write(LCD_CMD_SLEEPOUT,0);
01F8 2722 CLR R18
01F9 E101 LDI R16,0x11
01FA DFA8 RCALL _LCD_write
(0182) LCD_write(LCD_CMD_DISPON,0);
01FB 2722 CLR R18
01FC E209 LDI R16,0x29
01FD DFA5 RCALL _LCD_write
(0183) LCD_write(LCD_CMD_BSTRON,0);
01FE 2722 CLR R18
01FF E003 LDI R16,3
0200 DFA2 RCALL _LCD_write
(0184) LCD_write(LCD_CMD_MADCTL,0);
0201 2722 CLR R18
0202 E306 LDI R16,0x36
0203 DF9F RCALL _LCD_write
(0185) LCD_write(MADCTL_HORIZ,1);
0204 E021 LDI R18,1
0205 E408 LDI R16,0x48
0206 DF9C RCALL _LCD_write
(0186) LCD_write(LCD_CMD_COLMOD,0);
0207 2722 CLR R18
0208 E30A LDI R16,0x3A
0209 DF99 RCALL _LCD_write
(0187) LCD_write(2,1); //2\3\5
020A E021 LDI R18,1
020B E002 LDI R16,2
020C DF96 RCALL _LCD_write
(0188) LCD_write(LCD_CMD_INVON,0);
020D 2722 CLR R18
020E E201 LDI R16,0x21
020F DF93 RCALL _LCD_write
(0189) LCD_write(LCD_CMD_RGBSET,0);
0210 2722 CLR R18
0211 E20D LDI R16,0x2D
0212 DF90 RCALL _LCD_write
(0190) //wrtab1
(0191) LCD_write(0,1);
0213 E021 LDI R18,1
0214 2700 CLR R16
0215 DF8D RCALL _LCD_write
(0192) LCD_write(2,1);
0216 E021 LDI R18,1
0217 E002 LDI R16,2
0218 DF8A RCALL _LCD_write
(0193) LCD_write(4,1);
0219 E021 LDI R18,1
021A E004 LDI R16,4
021B DF87 RCALL _LCD_write
(0194) LCD_write(6,1);
021C E021 LDI R18,1
021D E006 LDI R16,6
021E DF84 RCALL _LCD_write
(0195) LCD_write(9,1);
021F E021 LDI R18,1
0220 E009 LDI R16,0x9
0221 DF81 RCALL _LCD_write
(0196) LCD_write(11,1);
0222 E021 LDI R18,1
0223 E00B LDI R16,0xB
0224 DF7E RCALL _LCD_write
(0197) LCD_write(13,1);
0225 E021 LDI R18,1
0226 E00D LDI R16,0xD
0227 DF7B RCALL _LCD_write
(0198) LCD_write(15,1);
0228 E021 LDI R18,1
0229 E00F LDI R16,0xF
022A DF78 RCALL _LCD_write
(0199)
(0200) LCD_write(0,1);
022B E021 LDI R18,1
022C 2700 CLR R16
022D DF75 RCALL _LCD_write
(0201) LCD_write(2,1);
022E E021 LDI R18,1
022F E002 LDI R16,2
0230 DF72 RCALL _LCD_write
(0202) LCD_write(4,1);
0231 E021 LDI R18,1
0232 E004 LDI R16,4
0233 DF6F RCALL _LCD_write
(0203) LCD_write(6,1);
0234 E021 LDI R18,1
0235 E006 LDI R16,6
0236 DF6C RCALL _LCD_write
(0204) LCD_write(9,1);
0237 E021 LDI R18,1
0238 E009 LDI R16,0x9
0239 DF69 RCALL _LCD_write
(0205) LCD_write(11,1);
023A E021 LDI R18,1
023B E00B LDI R16,0xB
023C DF66 RCALL _LCD_write
(0206) LCD_write(13,1);
023D E021 LDI R18,1
023E E00D LDI R16,0xD
023F DF63 RCALL _LCD_write
(0207) LCD_write(15,1);
0240 E021 LDI R18,1
0241 E00F LDI R16,0xF
0242 DF60 RCALL _LCD_write
(0208) //wrtab1
(0209) LCD_write(00,1);
0243 E021 LDI R18,1
0244 2700 CLR R16
0245 DF5D RCALL _LCD_write
(0210) LCD_write(07,1);
0246 E021 LDI R18,1
0247 E007 LDI R16,7
0248 DF5A RCALL _LCD_write
(0211) LCD_write(0x0b,1);
0249 E021 LDI R18,1
024A E00B LDI R16,0xB
024B DF57 RCALL _LCD_write
(0212) LCD_write(0x0f,1);
024C E021 LDI R18,1
024D E00F LDI R16,0xF
024E DF54 RCALL _LCD_write
(0213) LCD_contrast(54); //对比度00~127
024F E306 LDI R16,0x36
0250 D002 RCALL _LCD_contrast
(0214) set_lcd_cs; //disable lcd
0251 9AC3 SBI 0x18,3
(0215) }
0252 9508 RET
_LCD_contrast:
data --> R20
0253 940E05FE CALL push_gset1
0255 2F40 MOV R20,R16
(0216) /***********液晶对比度******************/
(0217) void LCD_contrast(unsigned char data) //对比度00~127
(0218) {
(0219) LCD_write(LCD_CMD_SETCON,0);
0256 2722 CLR R18
0257 E205 LDI R16,0x25
0258 DF4A RCALL _LCD_write
(0220) LCD_write(data,1);
0259 E021 LDI R18,1
025A 2F04 MOV R16,R20
025B DF47 RCALL _LCD_write
(0221) }
025C 940E0601 CALL pop_gset1
025E 9508 RET
(0222) /***********液晶颜色******************/
(0223) /******bkg=背景颜色***text=前景颜色*****/
(0224) void lcd_color(unsigned char bkg,unsigned char text)
(0225) {
(0226) lcd_bkg_color=bkg;
_lcd_color:
text --> R18
bkg --> R16
025F 93000165 STS _lcd_bkg_color,R16
(0227) lcd_text_color=text;
0261 93200164 STS _lcd_text_color,R18
(0228) }
0263 9508 RET
_lcd_window:
ye --> Y+6
xe --> Y+4
yp --> R20
xp --> R22
0264 940E0615 CALL push_gset2
0266 2F42 MOV R20,R18
0267 2F60 MOV R22,R16
(0229) /********液晶窗口*P=原点***e=终点******/
(0230) void lcd_window(unsigned char xp,unsigned char yp,unsigned char xe,unsigned char ye)
(0231) {
(0232) LCD_write(LCD_CMD_CASET,0);
0268 2722 CLR R18
0269 E20A LDI R16,0x2A
026A DF38 RCALL _LCD_write
(0233) LCD_write(xp,1);
026B E021 LDI R18,1
026C 2F06 MOV R16,R22
026D DF35 RCALL _LCD_write
(0234) LCD_write(xe,1);
026E E021 LDI R18,1
026F 810C LDD R16,Y+4
0270 DF32 RCALL _LCD_write
(0235) LCD_write(LCD_CMD_PASET,0);
0271 2722 CLR R18
0272 E20B LDI R16,0x2B
0273 DF2F RCALL _LCD_write
(0236) LCD_write(yp,1);
0274 E021 LDI R18,1
0275 2F04 MOV R16,R20
0276 DF2C RCALL _LCD_write
(0237) LCD_write(ye,1);
0277 E021 LDI R18,1
0278 810E LDD R16,Y+6
0279 DF29 RCALL _LCD_write
(0238) }
027A 940E05F5 CALL pop_gset2
027C 9508 RET
_lcd_gotoxy:
y --> R22
x --> R20
027D 940E0615 CALL push_gset2
027F 2F62 MOV R22,R18
0280 2F40 MOV R20,R16
0281 9723 SBIW R28,3
(0239) /********液晶窗口跳转**128x128*******/
(0240) void lcd_gotoxy(unsigned char x, unsigned char y)
(0241) {
(0242) clr_lcd_cs; //enable lcd
0282 98C3 CBI 0x18,3
(0243) lcd_x=x;
0283 93400163 STS _lcd_x,R20
(0244) lcd_y=y;
0285 93600162 STS _lcd_y,R22
(0245) lcd_window(x,y,129,129);
0287 E881 LDI R24,0x81
0288 838A STD Y+2,R24
0289 8388 STD Y+0,R24
028A 2F26 MOV R18,R22
028B 2F04 MOV R16,R20
028C DFD7 RCALL _lcd_window
(0246) set_lcd_cs; //disable lcd
028D 9AC3 SBI 0x18,3
(0247) }
028E 9623 ADIW R28,3
028F 940E05F5 CALL pop_gset2
0291 9508 RET
_lcd_clr:
count --> R20
0292 940E05FE CALL push_gset1
0294 9723 SBIW R28,3
(0248) /***********用底色清屏******************/
(0249) void lcd_clr(void)
(0250) {
(0251) unsigned int count;
(0252) clr_lcd_cs; //enable lcd
0295 98C3 CBI 0x18,3
(0253) lcd_x=0;
0296 2422 CLR R2
0297 92200163 STS _lcd_x,R2
(0254) lcd_y=0;
0299 92200162 STS _lcd_y,R2
(0255) lcd_window(0x00,0x00,0x82,0x83);
029B E883 LDI R24,0x83
029C 838A STD Y+2,R24
029D E882 LDI R24,0x82
029E 8388 STD Y+0,R24
029F 2722 CLR R18
02A0 2700 CLR R16
02A1 DFC2 RCALL _lcd_window
(0256) LCD_write(LCD_CMD_RAMWR,0);
02A2 2722 CLR R18
02A3 E20C LDI R16,0x2C
02A4 DEFE RCALL _LCD_write
(0257) for (count=0;count<18000;count++)
02A5 2744 CLR R20
02A6 2755 CLR R21
02A7 C006 RJMP 0x02AE
(0258) {
(0259) LCD_write(lcd_bkg_color,1);
02A8 E021 LDI R18,1
02A9 91000165 LDS R16,_lcd_bkg_color
02AB DEF7 RCALL _LCD_write
02AC 5F4F SUBI R20,0xFF
02AD 4F5F SBCI R21,0xFF
02AE 3540 CPI R20,0x50
02AF E4E6 LDI R30,0x46
02B0 075E CPC R21,R30
02B1 F3B0 BCS 0x02A8
(0260) }
(0261) set_lcd_cs; //disable lcd
02B2 9AC3 SBI 0x18,3
(0262) }
02B3 9623 ADIW R28,3
02B4 940E0601 CALL pop_gset1
02B6 9508 RET
_lcd_bar:
count --> R20
fillcol --> R22
bkgcol --> R10
val --> R12
len --> R14
02B7 940E0621 CALL push_gset5
02B9 2EC2 MOV R12,R18
02BA 2EE0 MOV R14,R16
02BB 9723 SBIW R28,3
02BC 84AD LDD R10,Y+13
02BD 856F LDD R22,Y+15
(0263) /**********显示一个进度条****粗=14点************/
(0264) void lcd_bar(unsigned char len,unsigned char val,unsigned char bkgcol,unsigned char fillcol)
(0265) {
(0266) unsigned int count;
(0267) clr_lcd_cs; //enable lcd
02BE 98C3 CBI 0x18,3
(0268) LCD_write(LCD_CMD_MADCTL,0);
02BF 2722 CLR R18
02C0 E306 LDI R16,0x36
02C1 DEE1 RCALL _LCD_write
(0269) LCD_write(MADCTL_VERT,1);
02C2 E021 LDI R18,1
02C3 E608 LDI R16,0x68
02C4 DEDE RCALL _LCD_write
(0270) lcd_window(lcd_x,lcd_y,lcd_x+len+1,lcd_y+13);
02C5 91800162 LDS R24,_lcd_y
02C7 5F83 SUBI R24,0xF3
02C8 838A STD Y+2,R24
02C9 91800163 LDS R24,_lcd_x
02CB 0D8E ADD R24,R14
02CC 5F8F SUBI R24,0xFF
02CD 8388 STD Y+0,R24
02CE 91200162 LDS R18,_lcd_y
02D0 91000163 LDS R16,_lcd_x
02D2 DF91 RCALL _lcd_window
(0271) LCD_write(LCD_CMD_RAMWR,0);
02D3 2722 CLR R18
02D4 E20C LDI R16,0x2C
02D5 DECD RCALL _LCD_write
(0272) for (count=0;count<14;count++)
02D6 2744 CLR R20
02D7 2755 CLR R21
02D8 C005 RJMP 0x02DE
(0273) {
(0274) LCD_write(0,1);
02D9 E021 LDI R18,1
02DA 2700 CLR R16
02DB DEC7 RCALL _LCD_write
02DC 5F4F SUBI R20,0xFF
02DD 4F5F SBCI R21,0xFF
02DE 304E CPI R20,0xE
02DF E0E0 LDI R30,0
02E0 075E CPC R21,R30
02E1 F3B8 BCS 0x02D9
(0275) }
(0276) for (count=0;count<val*14;count++)
02E2 2744 CLR R20
02E3 2755 CLR R21
02E4 C005 RJMP 0x02EA
(0277) {
(0278) LCD_write(fillcol,1);
02E5 E021 LDI R18,1
02E6 2F06 MOV R16,R22
02E7 DEBB RCALL _LCD_write
02E8 5F4F SUBI R20,0xFF
02E9 4F5F SBCI R21,0xFF
02EA E08E LDI R24,0xE
02EB 9D8C MUL R24,R12
02EC 1540 CP R20,R0
02ED 0551 CPC R21,R1
02EE F3B0 BCS 0x02E5
(0279) }
(0280) for (count=0;count<(len-val)*14;count++)
02EF 2744 CLR R20
02F0 2755 CLR R21
02F1 C005 RJMP 0x02F7
(0281) {
(0282) LCD_write(bkgcol,1);
02F2 E021 LDI R18,1
02F3 2D0A MOV R16,R10
02F4 DEAE RCALL _LCD_write
02F5 5F4F SUBI R20,0xFF
02F6 4F5F SBCI R21,0xFF
02F7 2C2E MOV R2,R14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -