📄 yj12864.lst
字号:
035B 2766 CLR R22
035C 2777 CLR R23
(0226) while(LCD12864_readBF()); //读忙标志
035D DFAD RCALL _LCD12864_readBF
035E 2300 TST R16
035F F7E9 BNE 0x035D
(0227) LCD12864_sendbyte(iCmd,LCDb_EXTCMD1); //扩充指令集,并关闭绘图显示
0360 E324 LDI R18,0x34
0361 2700 CLR R16
0362 DF7F RCALL _LCD12864_sendbyte
(0228) //写入并显示上半屏幕
(0229) for(i=0;i<32;i++) //行地址计数
0363 2744 CLR R20
0364 C02D RJMP 0x0392
(0230) {
(0231) for(j=0;j<8;j++) //列地址计数
0365 24AA CLR R10
0366 C027 RJMP 0x038E
(0232) {
(0233) LCD12864_sendbyte(iCmd,0x80|i);//输入行地址
0367 2F24 MOV R18,R20
0368 6820 ORI R18,0x80
0369 2700 CLR R16
036A DF77 RCALL _LCD12864_sendbyte
(0234) Delayus(10);
036B E00A LDI R16,0xA
036C E010 LDI R17,0
036D DF00 RCALL _Delayus
(0235) LCD12864_sendbyte(iCmd,0x80|j);//输入列地址
036E 2D2A MOV R18,R10
036F 6820 ORI R18,0x80
0370 2700 CLR R16
0371 DF70 RCALL _LCD12864_sendbyte
(0236) Delayus(10);
0372 E00A LDI R16,0xA
0373 E010 LDI R17,0
0374 DEF9 RCALL _Delayus
(0237) LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入高位字节数据
0375 011B MOVW R2,R22
0376 5F6F SUBI R22,0xFF
0377 4F7F SBCI R23,0xFF
0378 01F1 MOVW R30,R2
0379 0DEC ADD R30,R12
037A 1DFD ADC R31,R13
037B 9124 LD R18,R18
037C E001 LDI R16,1
037D DF64 RCALL _LCD12864_sendbyte
(0238) Delayus(10);
037E E00A LDI R16,0xA
037F E010 LDI R17,0
0380 DEED RCALL _Delayus
(0239) LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入低位字节数据
0381 011B MOVW R2,R22
0382 5F6F SUBI R22,0xFF
0383 4F7F SBCI R23,0xFF
0384 01F1 MOVW R30,R2
0385 0DEC ADD R30,R12
0386 1DFD ADC R31,R13
0387 9124 LD R18,R18
0388 E001 LDI R16,1
0389 DF58 RCALL _LCD12864_sendbyte
(0240) Delayus(10);
038A E00A LDI R16,0xA
038B E010 LDI R17,0
038C DEE1 RCALL _Delayus
038D 94A3 INC R10
038E 2D8A MOV R24,R10
038F 3088 CPI R24,0x8
0390 F2B0 BCS 0x0367
0391 9543 INC R20
0392 3240 CPI R20,0x20
0393 F408 BCC 0x0395
0394 CFD0 RJMP 0x0365
(0241) }
(0242) }
(0243) //写入并显示下半屏幕
(0244) for(i=0;i<32;i++)
0395 2744 CLR R20
0396 C02E RJMP 0x03C5
(0245) {
(0246) for(j=8;j<16;j++)
0397 E088 LDI R24,0x8
0398 2EA8 MOV R10,R24
0399 C027 RJMP 0x03C1
(0247) {
(0248) LCD12864_sendbyte(iCmd,0x80|i);//输入行地址
039A 2F24 MOV R18,R20
039B 6820 ORI R18,0x80
039C 2700 CLR R16
039D DF44 RCALL _LCD12864_sendbyte
(0249) Delayus(10);
039E E00A LDI R16,0xA
039F E010 LDI R17,0
03A0 DECD RCALL _Delayus
(0250) LCD12864_sendbyte(iCmd,0x80|j);//输入列地址
03A1 2D2A MOV R18,R10
03A2 6820 ORI R18,0x80
03A3 2700 CLR R16
03A4 DF3D RCALL _LCD12864_sendbyte
(0251) Delayus(10);
03A5 E00A LDI R16,0xA
03A6 E010 LDI R17,0
03A7 DEC6 RCALL _Delayus
(0252) LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入高位字节数据
03A8 011B MOVW R2,R22
03A9 5F6F SUBI R22,0xFF
03AA 4F7F SBCI R23,0xFF
03AB 01F1 MOVW R30,R2
03AC 0DEC ADD R30,R12
03AD 1DFD ADC R31,R13
03AE 9124 LD R18,R18
03AF E001 LDI R16,1
03B0 DF31 RCALL _LCD12864_sendbyte
(0253) Delayus(10);
03B1 E00A LDI R16,0xA
03B2 E010 LDI R17,0
03B3 DEBA RCALL _Delayus
(0254) LCD12864_sendbyte(iDat,ptGDRAM[x++]); //输入低位字节数据
03B4 011B MOVW R2,R22
03B5 5F6F SUBI R22,0xFF
03B6 4F7F SBCI R23,0xFF
03B7 01F1 MOVW R30,R2
03B8 0DEC ADD R30,R12
03B9 1DFD ADC R31,R13
03BA 9124 LD R18,R18
03BB E001 LDI R16,1
03BC DF25 RCALL _LCD12864_sendbyte
(0255) Delayus(10);
03BD E00A LDI R16,0xA
03BE E010 LDI R17,0
03BF DEAE RCALL _Delayus
03C0 94A3 INC R10
03C1 2D8A MOV R24,R10
03C2 3180 CPI R24,0x10
03C3 F2B0 BCS 0x039A
03C4 9543 INC R20
03C5 3240 CPI R20,0x20
03C6 F408 BCC 0x03C8
03C7 CFCF RJMP 0x0397
(0256) }
(0257) }
(0258) Delayus(10);
03C8 E00A LDI R16,0xA
03C9 E010 LDI R17,0
03CA DEA3 RCALL _Delayus
(0259) LCD12864_sendbyte(iCmd,LCDb_EXTCMD2); //打开绘图显示
03CB E326 LDI R18,0x36
03CC 2700 CLR R16
03CD DF14 RCALL _LCD12864_sendbyte
(0260) LCD12864_sendbyte(iCmd,LCDb_BASCMD); //还原回基本指令集模式
03CE E320 LDI R18,0x30
03CF 2700 CLR R16
03D0 DF11 RCALL _LCD12864_sendbyte
(0261) }
03D1 940E0435 CALL pop_gset4
03D3 9508 RET
(0262)
(0263) /*******************************************
(0264) 函数名称: main
(0265) 功 能: 12864液晶驱动主程序
(0266) 参 数: 无
(0267) 返回值 : 无
(0268) /********************************************/
(0269) void main(void)
(0270) {
(0271) uchar i;
(0272) Board_init( ); //初始化开发板
_main:
i --> Y+1
03D4 DEC7 RCALL _Board_init
(0273) LCD12864_initial(); //初始化12864液晶
03D5 DF6B RCALL _LCD12864_initial
03D6 C026 RJMP 0x03FD
(0274)
(0275) while(1)
(0276) {
(0277) LCD12864_clear();
03D7 DF2D RCALL _LCD12864_clear
(0278) while(LCD12864_readBF());
03D8 DF32 RCALL _LCD12864_readBF
03D9 2300 TST R16
03DA F7E9 BNE 0x03D8
(0279) LCD12864_gotoXY(1,0); //第1行,第1列显示
03DB 2722 CLR R18
03DC E001 LDI R16,1
03DD DF3B RCALL _LCD12864_gotoXY
(0280) LCD12864_sendstr("AVR_PQ1A 开发板");
03DE E809 LDI R16,0x89
03DF E010 LDI R17,0
03E0 DF14 RCALL _LCD12864_sendstr
(0281) LCD12864_gotoXY(2,2); //第2行,第3列显示
03E1 E022 LDI R18,2
03E2 E002 LDI R16,2
03E3 DF35 RCALL _LCD12864_gotoXY
(0282) LCD12864_sendstr("皮球制作");
03E4 E800 LDI R16,0x80
03E5 E010 LDI R17,0
03E6 DF0E RCALL _LCD12864_sendstr
(0283) LCD12864_gotoXY(3,0); //第3行,第1列显示
03E7 2722 CLR R18
03E8 E003 LDI R16,3
03E9 DF2F RCALL _LCD12864_gotoXY
(0284) LCD12864_sendstr("电话:13212800564");
03EA E60F LDI R16,0x6F
03EB E010 LDI R17,0
03EC DF08 RCALL _LCD12864_sendstr
(0285) LCD12864_gotoXY(4,1); //第4行,第2列显示
03ED E021 LDI R18,1
03EE E004 LDI R16,4
03EF DF29 RCALL _LCD12864_gotoXY
(0286) LCD12864_sendstr("www.txmcu.com ");
03F0 E600 LDI R16,0x60
03F1 E010 LDI R17,0
03F2 DF02 RCALL _LCD12864_sendstr
(0287) Delayms(2000); //延时等待
03F3 ED00 LDI R16,0xD0
03F4 E017 LDI R17,7
03F5 DE90 RCALL _Delayms
(0288)
(0289) LCD12864_clear(); //清屏幕
03F6 DF0E RCALL _LCD12864_clear
(0290) LCD12864_opGDRAM(GDRAM); //完成绘图,绘图后返回基本指令集模式
03F7 E600 LDI R16,0x60
03F8 E010 LDI R17,0
03F9 DF5E RCALL _LCD12864_opGDRAM
(0291) Delayms(2000);
03FA ED00 LDI R16,0xD0
03FB E017 LDI R17,7
03FC DE89 RCALL _Delayms
03FD CFD9 RJMP 0x03D7
(0292) }
(0293) }
FILE: <library>
03FE 9508 RET
empy16s:
03FF 920A ST R0,-Y
0400 921A ST R1,-Y
0401 938A ST R24,-Y
0402 939A ST R25,-Y
0403 9F02 MUL R16,R18
0404 01C0 MOVW R24,R0
0405 9F12 MUL R17,R18
0406 0D90 ADD R25,R0
0407 9F03 MUL R16,R19
0408 0D90 ADD R25,R0
0409 018C MOVW R16,R24
040A 9199 LD R25,Y+
040B 9189 LD R24,Y+
040C 9019 LD R1,Y+
040D 9009 LD R0,Y+
040E 9508 RET
push_gset1:
040F 935A ST R21,-Y
0410 934A ST R20,-Y
0411 9508 RET
pop_gset1:
0412 E0E1 LDI R30,1
pop:
0413 9149 LD R20,Y+
0414 9159 LD R21,Y+
0415 FDE0 SBRC R30,0
0416 9508 RET
0417 9169 LD R22,Y+
0418 9179 LD R23,Y+
0419 FDE1 SBRC R30,1
041A 9508 RET
041B 90A9 LD R10,Y+
041C 90B9 LD R11,Y+
041D FDE2 SBRC R30,2
041E 9508 RET
041F 90C9 LD R12,Y+
0420 90D9 LD R13,Y+
0421 FDE3 SBRC R30,3
0422 9508 RET
0423 90E9 LD R14,Y+
0424 90F9 LD R15,Y+
0425 9508 RET
push_gset2:
0426 937A ST R23,-Y
0427 936A ST R22,-Y
0428 940C040F JMP push_gset1
push_gset3:
042A 92BA ST R11,-Y
042B 92AA ST R10,-Y
042C 940C0426 JMP push_gset2
push_gset4:
042E 92DA ST R13,-Y
042F 92CA ST R12,-Y
0430 940C042A JMP push_gset3
pop_gset2:
0432 E0E2 LDI R30,2
0433 940C0413 JMP pop
pop_gset4:
0435 E0E8 LDI R30,0x8
0436 940C0413 JMP pop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -