📄 lcdtest.lst
字号:
1F42 8933 LDD R19,Z+19
1F43 940E31B5 CALL fp2int
1F45 0178 MOVW R14,R16
1F46 0167 MOVW R12,R14
(0184) Y_ADDR = y;
1F47 92A08001 STS 0x8001,R10
(0185) X_ADDR = x;
1F49 92C08000 STS 0x8000,R12
(0186) CMD = ( x/256)<<2;//TFT板为CMD = ( x/256)<<2;,CSTN板为CMD = (( x/256)<<6)|0x04;
1F4B 0116 MOVW R2,R12
1F4C 2C23 MOV R2,R3
1F4D 2433 CLR R3
1F4E 0C22 LSL R2
1F4F 1C33 ROL R3
1F50 0C22 LSL R2
1F51 1C33 ROL R3
1F52 92208002 STS 0x8002,R2
(0187) DAT = color;
1F54 A00C LDD R0,Y+36
1F55 92008003 STS 0x8003,R0
(0188) _NOP();
1F57 0000 NOP
(0189) _NOP();
1F58 0000 NOP
(0190) DAT = color;
1F59 92008003 STS 0x8003,R0
1F5B 94A3 INC R10
1F5C A00A LDD R0,Y+34
1F5D 14A0 CP R10,R0
1F5E F408 BCC 0x1F60
1F5F CF61 RJMP 0x1EC1
(0191) //Y_ADDR = y;
(0192) //X_ADDR = x+1;
(0193) //CMD = ( x/256)<<2;//TFT板为CMD = ( x/256)<<2;,CSTN板为CMD = (( x/256)<<6)|0x04;
(0194) //DAT = color;
(0195) }
(0196) }
1F60 9664 ADIW R28,0x14
1F61 940E310A CALL pop_gset5
1F63 9622 ADIW R28,2
1F64 9508 RET
_Dis_Command:
cmd --> R20
1F65 940E3115 CALL push_gset1
1F67 01A8 MOVW R20,R16
1F68 9727 SBIW R28,7
(0197) }
(0198)
(0199) /*
(0200) 功能:显示命令按键
(0201) 参数:struct Command
(0202)
(0203) */
(0204) void Dis_Command(struct Command cmd)
(0205) {
(0206) if((cursor.x >cmd.x)&&(cursor.y >cmd.y)&&((cursor.x-cmd.x)<cmd.width)&&((cursor.y - cmd.y) < cmd.lenth))
1F69 01FA MOVW R30,R20
1F6A 8020 LDD R2,Z+0
1F6B 8031 LDD R3,Z+1
1F6C 9040121A LDS R4,cursor
1F6E 9050121B LDS R5,cursor+1
1F70 1424 CP R2,R4
1F71 0435 CPC R3,R5
1F72 F008 BCS 0x1F74
1F73 C077 RJMP 0x1FEB
1F74 8042 LDD R4,Z+2
1F75 2455 CLR R5
1F76 9060121C LDS R6,cursor+2
1F78 2477 CLR R7
1F79 1446 CP R4,R6
1F7A 0457 CPC R5,R7
1F7B F00C BLT 0x1F7D
1F7C C06E RJMP 0x1FEB
1F7D 9060121A LDS R6,cursor
1F7F 9070121B LDS R7,cursor+1
1F81 1862 SUB R6,R2
1F82 0873 SBC R7,R3
1F83 01FA MOVW R30,R20
1F84 8023 LDD R2,Z+3
1F85 8034 LDD R3,Z+4
1F86 1462 CP R6,R2
1F87 0473 CPC R7,R3
1F88 F008 BCS 0x1F8A
1F89 C061 RJMP 0x1FEB
1F8A 9020121C LDS R2,cursor+2
1F8C 2433 CLR R3
1F8D 1824 SUB R2,R4
1F8E 0835 SBC R3,R5
1F8F 01FA MOVW R30,R20
1F90 8047 LDD R4,Z+7
1F91 2455 CLR R5
1F92 1424 CP R2,R4
1F93 0435 CPC R3,R5
1F94 F00C BLT 0x1F96
1F95 C055 RJMP 0x1FEB
(0207) {
(0208) if((cmd.width >0)&&(cmd.lenth>0))
1F96 01FA MOVW R30,R20
1F97 8023 LDD R2,Z+3
1F98 8034 LDD R3,Z+4
1F99 2022 TST R2
1F9A F411 BNE 0x1F9D
1F9B 2033 TST R3
1F9C F0B9 BEQ 0x1FB4
1F9D 2422 CLR R2
1F9E 01FA MOVW R30,R20
1F9F 8037 LDD R3,Z+7
1FA0 1423 CP R2,R3
1FA1 F490 BCC 0x1FB4
(0209) {
(0210) Dis_Rect(cmd.x,cmd.y,cmd.width,cmd.lenth,cmd.cursor_color);
1FA2 01FA MOVW R30,R20
1FA3 8820 LDD R2,Z+16
1FA4 822C STD Y+4,R2
1FA5 01FA MOVW R30,R20
1FA6 8027 LDD R2,Z+7
1FA7 822A STD Y+2,R2
1FA8 01FA MOVW R30,R20
1FA9 8023 LDD R2,Z+3
1FAA 8034 LDD R3,Z+4
1FAB 8239 STD Y+1,R3
1FAC 8228 STD Y+0,R2
1FAD 01FA MOVW R30,R20
1FAE 8122 LDD R18,Z+2
1FAF 01FA MOVW R30,R20
1FB0 8100 LDD R16,Z+0
1FB1 8111 LDD R17,Z+1
1FB2 940E2491 CALL _Dis_Rect
(0211) }
(0212) if(cmd.font == FLAG)
1FB4 01FA MOVW R30,R20
1FB5 8587 LDD R24,Z+15
1FB6 3082 CPI R24,2
1FB7 F4D1 BNE 0x1FD2
(0213) {
(0214) Dis_Flag(cmd.x+5,cmd.y+5,*cmd.str - 0x30,cmd.string_color,cmd.color);
1FB8 01FA MOVW R30,R20
1FB9 8421 LDD R2,Z+9
1FBA 2433 CLR R3
1FBB 823D STD Y+5,R3
1FBC 822C STD Y+4,R2
1FBD 01FA MOVW R30,R20
1FBE 8426 LDD R2,Z+14
1FBF 822A STD Y+2,R2
1FC0 01FA MOVW R30,R20
1FC1 85A2 LDD R26,Z+10
1FC2 85B3 LDD R27,Z+11
1FC3 918C LD R24,0(X)
1FC4 2799 CLR R25
1FC5 97C0 SBIW R24,0x30
1FC6 8399 STD Y+1,R25
1FC7 8388 STD Y+0,R24
1FC8 01FA MOVW R30,R20
1FC9 8122 LDD R18,Z+2
1FCA 5F2B SUBI R18,0xFB
1FCB 01FA MOVW R30,R20
1FCC 8100 LDD R16,Z+0
1FCD 8111 LDD R17,Z+1
1FCE 5F0B SUBI R16,0xFB
1FCF 4F1F SBCI R17,0xFF
1FD0 D072 RCALL _Dis_Flag
(0215) }
1FD1 C06D RJMP 0x203F
(0216) else
(0217) {
(0218) Display(cmd.x+5,cmd.y+5,cmd.str,cmd.font,cmd.string_color,cmd.cursor_color);
1FD2 01FA MOVW R30,R20
1FD3 8820 LDD R2,Z+16
1FD4 822E STD Y+6,R2
1FD5 01FA MOVW R30,R20
1FD6 8426 LDD R2,Z+14
1FD7 822C STD Y+4,R2
1FD8 01FA MOVW R30,R20
1FD9 8427 LDD R2,Z+15
1FDA 822A STD Y+2,R2
1FDB 01FA MOVW R30,R20
1FDC 8422 LDD R2,Z+10
1FDD 8433 LDD R3,Z+11
1FDE 8239 STD Y+1,R3
1FDF 8228 STD Y+0,R2
1FE0 01FA MOVW R30,R20
1FE1 8122 LDD R18,Z+2
1FE2 5F2B SUBI R18,0xFB
1FE3 01FA MOVW R30,R20
1FE4 8100 LDD R16,Z+0
1FE5 8111 LDD R17,Z+1
1FE6 5F0B SUBI R16,0xFB
1FE7 4F1F SBCI R17,0xFF
1FE8 940E25A9 CALL _Display
(0219) }
(0220) }
1FEA C054 RJMP 0x203F
(0221) else
(0222) {
(0223) if((cmd.width >0)&&(cmd.lenth>0))
1FEB 01FA MOVW R30,R20
1FEC 8023 LDD R2,Z+3
1FED 8034 LDD R3,Z+4
1FEE 2022 TST R2
1FEF F411 BNE 0x1FF2
1FF0 2033 TST R3
1FF1 F0B9 BEQ 0x2009
1FF2 2422 CLR R2
1FF3 01FA MOVW R30,R20
1FF4 8037 LDD R3,Z+7
1FF5 1423 CP R2,R3
1FF6 F490 BCC 0x2009
(0224) {
(0225) Dis_Rect(cmd.x,cmd.y,cmd.width,cmd.lenth,cmd.color);
1FF7 01FA MOVW R30,R20
1FF8 8421 LDD R2,Z+9
1FF9 822C STD Y+4,R2
1FFA 01FA MOVW R30,R20
1FFB 8027 LDD R2,Z+7
1FFC 822A STD Y+2,R2
1FFD 01FA MOVW R30,R20
1FFE 8023 LDD R2,Z+3
1FFF 8034 LDD R3,Z+4
2000 8239 STD Y+1,R3
2001 8228 STD Y+0,R2
2002 01FA MOVW R30,R20
2003 8122 LDD R18,Z+2
2004 01FA MOVW R30,R20
2005 8100 LDD R16,Z+0
2006 8111 LDD R17,Z+1
2007 940E2491 CALL _Dis_Rect
(0226) }
(0227) if(cmd.font == FLAG)
2009 01FA MOVW R30,R20
200A 8587 LDD R24,Z+15
200B 3082 CPI R24,2
200C F4D1 BNE 0x2027
(0228) {
(0229) Dis_Flag(cmd.x+5,cmd.y+5,*cmd.str - 0x30,cmd.string_color,cmd.color);
200D 01FA MOVW R30,R20
200E 8421 LDD R2,Z+9
200F 2433 CLR R3
2010 823D STD Y+5,R3
2011 822C STD Y+4,R2
2012 01FA MOVW R30,R20
2013 8426 LDD R2,Z+14
2014 822A STD Y+2,R2
2015 01FA MOVW R30,R20
2016 85A2 LDD R26,Z+10
2017 85B3 LDD R27,Z+11
2018 918C LD R24,0(X)
2019 2799 CLR R25
201A 97C0 SBIW R24,0x30
201B 8399 STD Y+1,R25
201C 8388 STD Y+0,R24
201D 01FA MOVW R30,R20
201E 8122 LDD R18,Z+2
201F 5F2B SUBI R18,0xFB
2020 01FA MOVW R30,R20
2021 8100 LDD R16,Z+0
2022 8111 LDD R17,Z+1
2023 5F0B SUBI R16,0xFB
2024 4F1F SBCI R17,0xFF
2025 D01D RCALL _Dis_Flag
(0230) }
2026 C018 RJMP 0x203F
(0231) else
(0232) {
(0233) Display(cmd.x+5,cmd.y+5,cmd.str,cmd.font,cmd.string_color,cmd.color);
2027 01FA MOVW R30,R20
2028 8421 LDD R2,Z+9
2029 822E STD Y+6,R2
202A 01FA MOVW R30,R20
202B 8426 LDD R2,Z+14
202C 822C STD Y+4,R2
202D 01FA MOVW R30,R20
202E 8427 LDD R2,Z+15
202F 822A STD Y+2,R2
2030 01FA MOVW R30,R20
2031 8422 LDD R2,Z+10
2032 8433 LDD R3,Z+11
2033 8239 STD Y+1,R3
2034 8228 STD Y+0,R2
2035 01FA MOVW R30,R20
2036 8122 LDD R18,Z+2
2037 5F2B SUBI R18,0xFB
2038 01FA MOVW R30,R20
2039 8100 LDD R16,Z+0
203A 8111 LDD R17,Z+1
203B 5F0B SUBI R16,0xFB
203C 4F1F SBCI R17,0xFF
203D 940E25A9 CALL _Display
(0234) }
(0235) }
203F 9627 ADIW R28,7
2040 940E3118 CALL pop_gset1
2042 9508 RET
_Dis_Flag:
k --> R20
j --> R22
back --> R10
front --> R12
dat --> R14
y --> Y+13
x --> Y+11
2043 940E301B CALL push_arg4
2045 940E310D CALL push_gset5
2047 9721 SBIW R28,1
2048 84EF LDD R14,Y+15
2049 88F8 LDD R15,Y+16
204A 88C9 LDD R12,Y+17
204B 88AB LDD R10,Y+19
204C 88BC LDD R11,Y+20
(0236)
(0237) }
(0238) /*显示光标*/
(0239) unsigned char const DotCursor[][32]=
(0240) {
(0241) 0xFF,0xC0,0x80,0x80,0x81,0x00,0x82,0x00,//光标 0
(0242) 0x81,0x00,0x80,0x80,0x90,0x40,0xA8,0x20,
(0243) 0xC4,0x10,0x82,0x08,0x01,0x04,0x00,0x88,
(0244) 0x00,0x50,0x00,0x20,0x00,0x00,0x00,0x00,
(0245) /*-- 宽度x高度=16x16 --*/
(0246) 0x01,0x80,0x03,0xC0,0x06,0x60,0x0C,0x30,//上键头 1
(0247) 0x18,0x18,0x30,0x0C,0x3F,0xFC,0x01,0x80,
(0248) 0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
(0249) 0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
(0250) /*-- 调入了一幅图像:这是向右的箭头的图像 --*/
(0251) /*-- 宽度x高度=16x16 --*/
(0252) 0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x70,//右键头 2
(0253) 0x00,0x58,0x00,0x4C,0x00,0x46,0xFF,0xC3,
(0254) 0xFF,0xC3,0x00,0x46,0x00,0x4C,0x00,0x58,
(0255) 0x00,0x70,0x00,0x60,0x00,0x00,0x00,0x00,
(0256)
(0257) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,//√ 3
(0258) 0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,
(0259) 0x00,0x60,0x40,0xC0,0x61,0x80,0xF3,0x00,
(0260) 0xB6,0x00,0x1E,0x00,0x0C,0x00,0x00,0x00,
(0261) /*-- 调入了一幅图像:这是各向左的粗箭头的图像 --*/
(0262) /*-- 宽度x高度=16x16 --*/
(0263) 0x03,0x00,0x07,0x00,0x0F,0x00,0x1B,0x00,//4
(0264) 0x33,0xFF,0x63,0xFF,0x40,0x03,0x80,0x03,
(0265) 0x80,0x03,0x40,0x03,0x63,0xFF,0x33,0xFF,
(0266) 0x1B,0x00,0x0F,0x00,0x07,0x00,0x03,0x00,
(0267)
(0268) /*-- 调入了一幅图像:这是向右的粗箭头的图像 --*/
(0269) /*-- 宽度x高度=16x16 --*/
(0270) 0x00,0xC0,0x00,0xE0,0x00,0xF0,0x00,0xD8,//5
(0271) 0xFF,0xCC,0xFF,0xC6,0xC0,0x02,0xC0,0x01,
(0272) 0xC0,0x01,0xC0,0x02,0xFF,0xC6,0xFF,0xCC,
(0273) 0x00,0xD8,0x00,0xF0,0x00,0xE0,0x00,0xC0,
(0274) /*-- 调入了一幅图像:这是向上的粗箭头的图像 --*/
(0275) /*-- 宽度x高度=16x16 --*/
(0276) 0x01,0x80,0x03,0xC0,0x06,0x60,0x0C,0x30,//6
(0277) 0x18,0x18,0x30,0x0C,0x7E,0x7E,0x7E,0x7E,
(0278) 0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,
(0279) 0x06,0x60,0x06,0x60,0x07,0xE0,0x07,0xE0,
(0280) /*-- 调入了一幅图像:这是向下的粗箭头的图像 --*/
(0281) /*-- 宽度x高度=16x16 --*/
(0282) 0x07,0xE0,0x07,0xE0,0x06,0x60,0x06,0x60,//7
(0283) 0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,
(0284) 0x7E,0x7E,0x7E,0x7E,0x30,0x0C,0x18,0x18,
(0285) 0x0C,0x30,0x06,0x60,0x03,0xC0,0x01,0x80,
(0286) /*-- 调入了一幅图像:滚动条里向下标志 --*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -