📄 lcd.lst
字号:
(0198) }
(0199)
(0200) /**********************液晶文字显示相关程序END*************/
(0201)
(0202)
(0203) /**********************显示图形子程序START******************/
(0204) void PicClear1(void)
(0205) {
(0206) uchar COUNT3,COUNT2,COUNT1,LCD_X,LCD_Y;
(0207) COUNT3=0X02;
8B3 E042 LDI R20,2
(0208) LCD_X=0X80;
8B4 E860 LDI R22,0x80
(0209) for (;COUNT3!=0;COUNT3--)
8B5 C016 RJMP 0x08CC
(0210) {
(0211) LCD_Y=0X80;
8B6 E880 LDI R24,0x80
8B7 2EA8 MOV R10,R24
(0212) COUNT2=0X20;//32
8B8 E280 LDI R24,0x20
8B9 2EC8 MOV R12,R24
(0213) for (;COUNT2!=0;COUNT2--)
8BA C00D RJMP 0x08C8
(0214) {
(0215) COUNT1=0X10;//16
8BB E180 LDI R24,0x10
8BC 2EE8 MOV R14,R24
(0216) SetGraphicAddr(LCD_X,LCD_Y);
8BD 2D2A MOV R18,R10
8BE 2F06 MOV R16,R22
8BF DF01 RCALL _SetGraphicAddr
(0217) for (;COUNT1!=0;COUNT1--)
8C0 C003 RJMP 0x08C4
(0218) {
(0219) WriteData(0);
8C1 2700 CLR R16
8C2 DEB9 RCALL _WriteData
8C3 94EA DEC R14
8C4 20EE TST R14
8C5 F7D9 BNE 0x08C1
(0220) }
(0221) LCD_Y+=1;
8C6 94A3 INC R10
8C7 94CA DEC R12
8C8 20CC TST R12
8C9 F789 BNE 0x08BB
(0222) }
(0223) LCD_X=0X88;
8CA E868 LDI R22,0x88
8CB 954A DEC R20
8CC 2344 TST R20
8CD F741 BNE 0x08B6
8CE 940C 0974 JMP pop_xgsetF0FC
_Draw_Pic:
temp_y --> R20
temp_x --> R22
i --> R10
j --> R14
Draw --> Y,+10
y --> R10
x --> R12
8D0 940E 097F CALL push_xgsetF0FC
8D2 2EA2 MOV R10,R18
8D3 2EC0 MOV R12,R16
(0224) }
(0225) // send_com(0x36);
(0226) // send_com(0x30); //可省
(0227) }
(0228)
(0229) /********************************************************************
(0230) 函 数 名:Draw_Pic 128*64
(0231) 入口参数:x,y,*Draw
(0232) 出口参数:无
(0233) 建立日期:2007年8月26日
(0234) 修改日期:
(0235) 函数作用:
(0236) 说 明:
(0237) ********************************************************************/
(0238) /*************************************************/
(0239)
(0240) void Draw_Pic(uchar x, uchar y, const uchar *Draw)
(0241) {
(0242) uchar i, j, temp_x, temp_y; //
(0243) temp_x = x; //
8D4 2D6C MOV R22,R12
(0244) temp_y = y; //
8D5 2D4A MOV R20,R10
(0245) temp_x |= 0x80; //
8D6 6860 ORI R22,0x80
(0246) temp_y |= 0x80; //
8D7 6840 ORI R20,0x80
(0247) WriteCommand(0x01);//清屏
8D8 E001 LDI R16,1
8D9 DE8E RCALL _WriteCommand
(0248) Delayus(200); //清屏需要时间 1ms左右
8DA EC08 LDI R16,0xC8
8DB E010 LDI R17,0
8DC E020 LDI R18,0
8DD E030 LDI R19,0
8DE DE28 RCALL _Delayus
(0249) WriteCommand(0x36);
8DF E306 LDI R16,0x36
8E0 DE87 RCALL _WriteCommand
(0250) for(i=0;i<32;i++ ) //上半屏32行
8E1 24AA CLR R10
8E2 C016 RJMP 0x08F9
(0251) {
(0252) WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
8E3 2E24 MOV R2,R20
8E4 5F4F SUBI R20,0xFF
8E5 2D02 MOV R16,R2
8E6 DE81 RCALL _WriteCommand
(0253) WriteCommand(temp_x); //设置绘图区的X地址坐标0
8E7 2F06 MOV R16,R22
8E8 DE7F RCALL _WriteCommand
(0254) for(j=0;j<16;j++) //
8E9 24EE CLR R14
8EA C00A RJMP 0x08F5
(0255) {
(0256) WriteData(*Draw++);
8EB 842A LDD R2,Y+10
8EC 843B LDD R3,Y+11
8ED 01C1 MOVW R24,R2
8EE 9601 ADIW R24,1
8EF 879B STD Y+11,R25
8F0 878A STD Y+10,R24
8F1 01F1 MOVW R30,R2
8F2 9104 LPM R16,10(Z)
8F3 DE88 RCALL _WriteData
8F4 94E3 INC R14
8F5 2D8E MOV R24,R14
8F6 3180 CPI R24,0x10
8F7 F398 BCS 0x08EB
8F8 94A3 INC R10
8F9 2D8A MOV R24,R10
8FA 3280 CPI R24,0x20
8FB F338 BCS 0x08E3
(0257) }
(0258) }
(0259)
(0260) temp_x = 0x88; //
8FC E868 LDI R22,0x88
(0261) temp_y = 0x80; //
8FD E840 LDI R20,0x80
(0262) j = 0; //
8FE 24EE CLR R14
(0263) for(;i<64;i++ )
8FF C016 RJMP 0x0916
(0264) {
(0265)
(0266) WriteCommand(temp_y++); //设置绘图区的Y地址坐标0
900 2EC4 MOV R12,R20
901 5F4F SUBI R20,0xFF
902 2D0C MOV R16,R12
903 DE64 RCALL _WriteCommand
(0267) WriteCommand(temp_x); //设置绘图区的X地址坐标0
904 2F06 MOV R16,R22
905 DE62 RCALL _WriteCommand
(0268) for(j=0;j<16;j++)
906 24EE CLR R14
907 C00A RJMP 0x0912
(0269) {
(0270) WriteData(*Draw++);
908 84CA LDD R12,Y+10
909 84DB LDD R13,Y+11
90A 01C6 MOVW R24,R12
90B 9601 ADIW R24,1
90C 879B STD Y+11,R25
90D 878A STD Y+10,R24
90E 01F6 MOVW R30,R12
90F 9104 LPM R16,10(Z)
910 DE6B RCALL _WriteData
911 94E3 INC R14
912 2D8E MOV R24,R14
913 3180 CPI R24,0x10
914 F398 BCS 0x0908
915 94A3 INC R10
916 2D8A MOV R24,R10
917 3480 CPI R24,0x40
918 F338 BCS 0x0900
(0271) }
(0272) }
(0273) WriteCommand(0x30);//基本指令集,,绘图显示OFF
FILE: <library>
919 E300 LDI R16,0x30
91A DE4D RCALL _WriteCommand
91B 940C 0974 JMP pop_xgsetF0FC
push_arg4:
91D 933A ST R19,-Y
91E 932A ST R18,-Y
push_arg2:
91F 931A ST R17,-Y
920 930A ST R16,-Y
921 9508 RET
mod16s:
922 9468 BSET 6
923 92DA ST R13,-Y
924 2ED1 MOV R13,R17
925 C004 RJMP 0x092A
div16s:
926 94E8 BCLR 6
927 92DA ST R13,-Y
928 2ED1 MOV R13,R17
929 26D3 EOR R13,R19
92A FF17 SBRS R17,7
92B C004 RJMP 0x0930
92C 9510 COM R17
92D 9500 COM R16
92E 5F0F SUBI R16,0xFF
92F 4F1F SBCI R17,0xFF
930 FF37 SBRS R19,7
931 C004 RJMP 0x0936
932 9530 COM R19
933 9520 COM R18
934 5F2F SUBI R18,0xFF
935 4F3F SBCI R19,0xFF
936 940E 0943 CALL xdiv16u
938 FED7 SBRS R13,7
939 C004 RJMP 0x093E
93A 9510 COM R17
93B 9500 COM R16
93C 5F0F SUBI R16,0xFF
93D 4F1F SBCI R17,0xFF
93E 90D9 LD R13,Y+
93F 9508 RET
mod16u:
940 9468 BSET 6
941 C001 RJMP xdiv16u
div16u:
942 94E8 BCLR 6
xdiv16u:
943 92EA ST R14,-Y
944 92FA ST R15,-Y
945 938A ST R24,-Y
946 24EE CLR R14
947 24FF CLR R15
948 E180 LDI R24,0x10
949 0F00 LSL R16
94A 1F11 ROL R17
94B 1CEE ROL R14
94C 1CFF ROL R15
94D 16E2 CP R14,R18
94E 06F3 CPC R15,R19
94F F018 BCS 0x0953
950 1AE2 SUB R14,R18
951 0AF3 SBC R15,R19
952 9503 INC R16
953 958A DEC R24
954 F7A1 BNE 0x0949
955 F416 BRTC 0x0958
956 2D0E MOV R16,R14
957 2D1F MOV R17,R15
958 9189 LD R24,Y+
959 90F9 LD R15,Y+
95A 90E9 LD R14,Y+
95B 9508 RET
mod8u:
95C 9468 BSET 6
95D C001 RJMP xdiv8u
div8u:
95E 94E8 BCLR 6
xdiv8u:
95F 932A ST R18,-Y
960 92FA ST R15,-Y
961 92EA ST R14,-Y
962 24FF CLR R15
963 24EE CLR R14
964 E120 LDI R18,0x10
965 0F00 LSL R16
966 1CFF ROL R15
967 1CEE ROL R14
968 16E1 CP R14,R17
969 F010 BCS 0x096C
96A 1AE1 SUB R14,R17
96B 9503 INC R16
96C 952A DEC R18
96D F7B9 BNE 0x0965
96E F40E BRTC 0x0970
96F 2D0E MOV R16,R14
970 90E9 LD R14,Y+
971 90F9 LD R15,Y+
972 9129 LD R18,Y+
973 9508 RET
pop_xgsetF0FC:
974 90A9 LD R10,Y+
975 90B9 LD R11,Y+
976 90C9 LD R12,Y+
977 90D9 LD R13,Y+
978 90E9 LD R14,Y+
979 90F9 LD R15,Y+
97A 9149 LD R20,Y+
97B 9159 LD R21,Y+
97C 9169 LD R22,Y+
97D 9179 LD R23,Y+
97E 9508 RET
push_xgsetF0FC:
97F 937A ST R23,-Y
980 936A ST R22,-Y
push_xgset30FC:
981 935A ST R21,-Y
982 934A ST R20,-Y
push_xgset00FC:
983 92FA ST R15,-Y
984 92EA ST R14,-Y
push_xgset003C:
985 92DA ST R13,-Y
986 92CA ST R12,-Y
987 92BA ST R11,-Y
988 92AA ST R10,-Y
989 9508 RET
push_xgset300C:
98A 935A ST R21,-Y
98B 934A ST R20,-Y
98C 92BA ST R11,-Y
98D 92AA ST R10,-Y
98E 9508 RET
pop_xgset300C:
98F 90A9 LD R10,Y+
990 90B9 LD R11,Y+
991 9149 LD R20,Y+
992 9159 LD R21,Y+
993 9508 RET
push_xgsetF00C:
994 937A ST R23,-Y
995 936A ST R22,-Y
996 935A ST R21,-Y
997 934A ST R20,-Y
998 92BA ST R11,-Y
999 92AA ST R10,-Y
99A 9508 RET
pop_xgsetF00C:
99B 90A9 LD R10,Y+
99C 90B9 LD R11,Y+
99D 9149 LD R20,Y+
99E 9159 LD R21,Y+
99F 9169 LD R22,Y+
9A0 9179 LD R23,Y+
9A1 9508 RET
lsl32:
9A2 920F PUSH R0
9A3 9009 LD R0,Y+
9A4 2000 TST R0
9A5 F031 BEQ 0x09AC
9A6 0F00 LSL R16
9A7 1F11 ROL R17
9A8 1F22 ROL R18
9A9 1F33 ROL R19
9AA 940A DEC R0
9AB CFF8 RJMP 0x09A4
9AC 900F POP R0
9AD 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -