📄 lcd1286418.lst
字号:
7EA 859B LDD R25,Y+11
7EB 9701 SBIW R24,1
7EC 879B STD Y+11,R25
7ED 878A STD Y+10,R24
(0201) draw_y4++;
7EE 818E LDD R24,Y+6
7EF 819F LDD R25,Y+7
7F0 9601 ADIW R24,1
7F1 839F STD Y+7,R25
7F2 838E STD Y+6,R24
(0202) draw_y5++;
7F3 01C5 MOVW R24,R10
7F4 9601 ADIW R24,1
7F5 015C MOVW R10,R24
(0203) draw_y6--;
7F6 858C LDD R24,Y+12
7F7 859D LDD R25,Y+13
7F8 9701 SBIW R24,1
7F9 879D STD Y+13,R25
7FA 878C STD Y+12,R24
(0204) draw_y7--;
7FB 01C6 MOVW R24,R12
7FC 9701 SBIW R24,1
7FD 016C MOVW R12,R24
7FE 940E 14EE CALL 0x14EE
(0205)
(0206) /* 要判断当前点是否在有效范围内 */
(0207) LcdDisplayDot(draw_x0, draw_y0, color);
800 852E LDD R18,Y+14
801 853F LDD R19,Y+15
802 810A LDD R16,Y+2
803 811B LDD R17,Y+3
804 DDCD RCALL _LcdDisplayDot
805 940E 14EE CALL 0x14EE
(0208) LcdDisplayDot(draw_x1, draw_y1, color);
807 892E LDD R18,Y+22
808 893F LDD R19,Y+23
809 8508 LDD R16,Y+8
80A 8519 LDD R17,Y+9
80B DDC6 RCALL _LcdDisplayDot
80C 940E 14EE CALL 0x14EE
(0209) LcdDisplayDot(draw_x2, draw_y2, color);
80E 8928 LDD R18,Y+16
80F 8939 LDD R19,Y+17
810 810C LDD R16,Y+4
811 811D LDD R17,Y+5
812 DDBF RCALL _LcdDisplayDot
813 940E 14EE CALL 0x14EE
(0210) LcdDisplayDot(draw_x3, draw_y3, color);
815 8D28 LDD R18,Y+24
816 8D39 LDD R19,Y+25
817 850A LDD R16,Y+10
818 851B LDD R17,Y+11
819 DDB8 RCALL _LcdDisplayDot
81A 940E 14EE CALL 0x14EE
81C 940E 1717 CALL 0x1717
(0211) LcdDisplayDot(draw_x4, draw_y4, color);
81E DDB3 RCALL _LcdDisplayDot
81F 940E 14EE CALL 0x14EE
(0212) LcdDisplayDot(draw_x5, draw_y5, color);
821 0195 MOVW R18,R10
822 890C LDD R16,Y+20
823 891D LDD R17,Y+21
824 DDAD RCALL _LcdDisplayDot
825 940E 14EE CALL 0x14EE
(0213) LcdDisplayDot(draw_x6, draw_y6, color);
827 852C LDD R18,Y+12
828 853D LDD R19,Y+13
829 8D0A LDD R16,Y+26
82A 8D1B LDD R17,Y+27
82B DDA6 RCALL _LcdDisplayDot
82C 940E 14EE CALL 0x14EE
(0214) LcdDisplayDot(draw_x7, draw_y7, color);
82E 0196 MOVW R18,R12
82F 8D0C LDD R16,Y+28
830 8D1D LDD R17,Y+29
831 DDA0 RCALL _LcdDisplayDot
832 1746 CP R20,R22
833 0757 CPC R21,R23
834 F40C BGE 0x0836
835 CF67 RJMP 0x079D
836 966E ADIW R28,0x1E
837 940C 10B2 JMP pop_xgsetF0FC
_GuiDrawSquare:
color --> R20
y1 --> R14
x1 --> R10
y0 --> R12
x0 --> R22
839 940E 10B7 CALL push_xgsetF0FC
83B 2EC2 MOV R12,R18
83C 2F60 MOV R22,R16
83D 9725 SBIW R28,5
83E 84AF LDD R10,Y+15
83F 88E9 LDD R14,Y+17
840 894B LDD R20,Y+19
(0215) }
(0216) }
(0217)
(0218) /*****************************************
(0219) * FUNCTION NAME: GuiDrawSquare
(0220) * DESCRIPTION: Draw Square
(0221) * (x0,y0)----------------------------
(0222) * | |
(0223) * | |
(0224) * | |
(0225) * | |
(0226) * | |
(0227) * -----------------------------(x1,y1)
(0228) /*****************************************/
(0229) void GuiDrawSquare(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char color)
(0230) {
(0231) GuiDrawLine(x0, y0, x0, y1, color);
841 834C STD Y+4,R20
842 82EA STD Y+2,R14
843 8368 STD Y+0,R22
844 2D2C MOV R18,R12
845 2F06 MOV R16,R22
846 DE30 RCALL _GuiDrawLine
(0232) GuiDrawLine(x0, y0, x1, y0, color);
847 834C STD Y+4,R20
848 82CA STD Y+2,R12
849 82A8 STD Y+0,R10
84A 2D2C MOV R18,R12
84B 2F06 MOV R16,R22
84C DE2A RCALL _GuiDrawLine
(0233) GuiDrawLine(x0, y1, x1, y1, color);
84D 834C STD Y+4,R20
84E 82EA STD Y+2,R14
84F 82A8 STD Y+0,R10
850 2D2E MOV R18,R14
851 2F06 MOV R16,R22
852 DE24 RCALL _GuiDrawLine
(0234) GuiDrawLine(x1, y0, x1, y1, color);
853 834C STD Y+4,R20
854 82EA STD Y+2,R14
855 82A8 STD Y+0,R10
856 2D2C MOV R18,R12
857 2D0A MOV R16,R10
858 DE1E RCALL _GuiDrawLine
859 9625 ADIW R28,5
85A 940C 10B2 JMP pop_xgsetF0FC
_GuiDisCharF3:
offset --> R10
temp --> R20
color --> Y,+12
data --> R12
y --> R14
x --> R10
85C 940E 10B9 CALL push_xgset30FC
85E 2EE2 MOV R14,R18
85F 2EA0 MOV R10,R16
860 9722 SBIW R28,2
861 84CA LDD R12,Y+10
(0235) }
(0236)
(0237) /*****************************************
(0238) * FUNCTION NAME: GuiDisCharF3
(0239) * DESCRIPTION: Display ASCII Char
(0240) * ---------------------------->
(0241) * | x(0-20)
(0242) * |
(0243) * | y(0-7)
(0244) * |
(0245) * |
(0246) /*****************************************/
(0247) void GuiDisCharF3(unsigned char x,unsigned char y,unsigned char data,unsigned char color)
(0248) {
(0249) unsigned char temp,offset;
(0250) offset = x * 6; /* Display Place */
862 E086 LDI R24,6
863 9D8A MUL R24,R10
864 2CA0 MOV R10,R0
(0251) for(temp=0; temp<6; temp++)
865 2744 CLR R20
866 C02B RJMP 0x0892
(0252) {
(0253) if(color == 0)
867 840C LDD R0,Y+12
868 2000 TST R0
869 F4A1 BNE 0x087E
(0254) LcdDisplaySeg(y,offset+temp,~font6x8[data-32][temp]);
86A E086 LDI R24,6
86B 9D8C MUL R24,R12
86C 940E 1602 CALL 0x1602
86E 2FE4 MOV R30,R20
86F 27FF CLR R31
870 0DE2 ADD R30,R2
871 1DF3 ADC R31,R3
872 940E 154E CALL 0x154E
874 2E24 MOV R2,R20
875 2433 CLR R3
876 2D2A MOV R18,R10
877 2733 CLR R19
878 0D22 ADD R18,R2
879 1D33 ADC R19,R3
87A 2D0E MOV R16,R14
87B 2711 CLR R17
87C DD2B RCALL _LcdDisplaySeg
87D C013 RJMP 0x0891
(0255) else
(0256) LcdDisplaySeg(y,offset+temp,font6x8[data-32][temp]);
87E E086 LDI R24,6
87F 9D8C MUL R24,R12
880 940E 1602 CALL 0x1602
882 2FE4 MOV R30,R20
883 27FF CLR R31
884 940E 15BE CALL 0x15BE
886 8239 STD Y+1,R3
887 8228 STD Y+0,R2
888 2E24 MOV R2,R20
889 2433 CLR R3
88A 2D2A MOV R18,R10
88B 2733 CLR R19
88C 0D22 ADD R18,R2
88D 1D33 ADC R19,R3
88E 2D0E MOV R16,R14
88F 2711 CLR R17
890 DD17 RCALL _LcdDisplaySeg
891 9543 INC R20
892 3046 CPI R20,6
893 F408 BCC 0x0895
894 CFD2 RJMP 0x0867
895 9622 ADIW R28,2
896 940C 10AF JMP pop_xgset30FC
_GuiDisStringF3:
color --> Y,+11
p --> R10
y0 --> R12
x0 --> R20
898 940E 10DC CALL push_xgset303C
89A 2EC2 MOV R12,R18
89B 2F40 MOV R20,R16
89C 9723 SBIW R28,3
89D 84A9 LDD R10,Y+9
89E 84BA LDD R11,Y+10
(0257) }
(0258) }
(0259)
(0260) /*****************************************
(0261) * FUNCTION NAME: GuiDisStringF3
(0262) * DESCRIPTION: Display ASCII String
(0263) * (x0,y0) display start place
(0264) * Auto Change Line...
(0265) * ---------------------------->
(0266) * | x(0-20)
(0267) * |
(0268) * | y(0-7)
(0269) * |
(0270) * |
(0271) /*****************************************/
(0272) void GuiDisStringF3(unsigned char x0,unsigned char y0,unsigned char *p,unsigned char color)
(0273) {
89F C00E RJMP 0x08AE
(0274) while(*p != 0x00)
(0275) {
(0276) if(x0 == 21)
8A0 3145 CPI R20,0x15
8A1 F411 BNE 0x08A4
(0277) {
(0278) x0 = 0;
8A2 2744 CLR R20
(0279) y0 = y0+1;
8A3 94C3 INC R12
(0280) }
(0281) GuiDisCharF3(x0,y0,*(p++),color);
8A4 840B LDD R0,Y+11
8A5 820A STD Y+2,R0
8A6 01F5 MOVW R30,R10
8A7 9021 LD R2,Z+
8A8 015F MOVW R10,R30
8A9 8228 STD Y+0,R2
8AA 2D2C MOV R18,R12
8AB 2F04 MOV R16,R20
8AC DFAF RCALL _GuiDisCharF3
(0282) x0++;
8AD 9543 INC R20
8AE 01F5 MOVW R30,R10
8AF 8020 LDD R2,Z+0
8B0 2022 TST R2
8B1 F771 BNE 0x08A0
8B2 9623 ADIW R28,3
8B3 940C 10E3 JMP pop_xgset303C
_GuiDisLogo:
y --> R10
count --> R20
x --> R22
color --> R12
8B5 940E 10E8 CALL push_xgsetF03C
8B7 2EC0 MOV R12,R16
8B8 9722 SBIW R28,2
(0283) }
(0284) }
(0285)
(0286) /*****************************************
(0287) * FUNCTION NAME: GuiDisLogo
(0288) * DESCRIPTION: Display One Full Screen
(0289) * Picture 128X64...
(0290) /*****************************************/
(0291) void GuiDisLogo(unsigned char color)
(0292) {
(0293) unsigned char x=0,y=0;
8B9 2766 CLR R22
8BA 24AA CLR R10
(0294) unsigned int count=0;
8BB 2744 CLR R20
8BC 2755 CLR R21
(0295) for(count=0;count<128*8;count++)
8BD C01E RJMP 0x08DC
(0296) {
(0297) if(x ==128)
8BE 3860 CPI R22,0x80
8BF F411 BNE 0x08C2
(0298) {
(0299) x = 0;
8C0 2766 CLR R22
(0300) y = y +1;
8C1 94A3 INC R10
(0301) }
(0302) if(color == 0)
8C2 20CC TST R12
8C3 F459 BNE 0x08CF
(0303) LcdDisplaySeg(y,x,~startlogo[count]);
8C4 EB84 LDI R24,0xB4
8C5 E092 LDI R25,2
8C6 01FA MOVW R30,R20
8C7 0FE8 ADD R30,R24
8C8 1FF9 ADC R31,R25
8C9 940E 154E CALL 0x154E
8CB 940E 1753 CALL 0x1753
8CD DCDA RCALL _LcdDisplaySeg
8CE C00A RJMP 0x08D9
(0304) else
(0305) LcdDisplaySeg(y,x,startlogo[count]);
8CF EB84 LDI R24,0xB4
8D0 E092 LDI R25,2
8D1 01FA MOVW R30,R20
8D2 0FE8 ADD R30,R24
8D3 1FF9 ADC R31,R25
8D4 940E 15C3 CALL 0x15C3
8D6 940E 1753 CALL 0x1753
8D8 DCCF RCALL _LcdDisplaySeg
(0306) x++;
8D9 9563 INC R22
8DA 5F4F SUBI R20,0xFF
8DB 4F5F SBCI R21,0xFF
8DC 3040 CPI R20,0
8DD E0E4 LDI R30,4
8DE 075E CPC R21,R30
8DF F2F0 BCS 0x08BE
8E0 9622 ADIW R28,2
8E1 940C 10EF JMP pop_xgsetF03C
_GuiDisRoolStringF3:
temp3 --> Y,+3
a --> Y,+3
n --> Y,+3
totallength --> R14
dislength --> Y,+4
i --> R10
textlength --> Y,+2
temp2 --> R22
step --> R20
temp1 --> R12
color --> Y,+24
p --> Y,+22
y --> Y,+20
x1 --> Y,+18
x0 --> Y,+16
8E3 940E 16A8 CALL 0x16A8
8E5 9726 SBIW R28,6
(0307) }
(0308) }
(0309)
(0310) /****************************************************
(0311) * FUNCTION NAME: GuiDisRoolStringF3
(0312) * DESCRIPTION: Display One Line With Left Rolling
(0313) * ---------------------------->
(0314) * | x(0-127)
(0315) * |
(0316) * | y(0-7)
(0317) * |
(0318) * |
(0319) /****************************************************/
(0320) void GuiDisRoolStringF3(unsigned char x0,unsigned char x1,unsigned char y,unsigned char *p,unsigned char color)
(0321) {
(0322) unsigned int dislength = x1 - x0 + 1; /* 显示区域的
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -