📄 lcddrive.lst
字号:
732 020e 80E0 ldi r24,lo8(0)
733 0210 0E94 0000 call LcdSendData
276:lcddrive.c **** LcdSendData(97);
735 .LM108:
736 0214 81E6 ldi r24,lo8(97)
737 0216 0E94 0000 call LcdSendData
277:lcddrive.c **** SetLcdCs();
739 .LM109:
740 /* #APP */
741 021a 929A SBI 0x12,2
742
278:lcddrive.c ****
279:lcddrive.c **** LcdSendCommand(0x2b); //page address set
744 .LM110:
745 /* #NOAPP */
746 021c 8BE2 ldi r24,lo8(43)
747 021e 0E94 0000 call LcdSendCommand
280:lcddrive.c **** LcdSendData(0);
749 .LM111:
750 0222 80E0 ldi r24,lo8(0)
751 0224 0E94 0000 call LcdSendData
281:lcddrive.c **** LcdSendData(66);
753 .LM112:
754 0228 82E4 ldi r24,lo8(66)
755 022a 0E94 0000 call LcdSendData
282:lcddrive.c **** SetLcdCs();
757 .LM113:
758 /* #APP */
759 022e 929A SBI 0x12,2
760
283:lcddrive.c ****
284:lcddrive.c **** LcdSendCommand(0x2c); //memory write
762 .LM114:
763 /* #NOAPP */
764 0230 8CE2 ldi r24,lo8(44)
765 0232 0E94 0000 call LcdSendCommand
285:lcddrive.c **** for(y=0;y<67;y++)
767 .LM115:
768 0236 00E0 ldi r16,lo8(0)
769 .L46:
770 0238 10E6 ldi r17,lo8(96)
771 .L45:
286:lcddrive.c **** {
287:lcddrive.c **** for(x=0;x<98;x+=2)
288:lcddrive.c **** {
289:lcddrive.c **** LcdSendData(color>>4);//第一字节写第一个点的RG
773 .LM116:
774 023a CE01 movw r24,r28
775 023c 24E0 ldi r18,4
776 023e 9695 1: lsr r25
777 0240 8795 ror r24
778 0242 2A95 dec r18
779 0244 E1F7 brne 1b
780 0246 0E94 0000 call LcdSendData
290:lcddrive.c **** LcdSendData(((color & 0x00f)<<4)|(color >> 8));//第二字节写第一个点的B和第二个点的R
782 .LM117:
783 024a 2C2F mov r18,r28
784 024c 2295 swap r18
785 024e 207F andi r18,0xf0
786 0250 8D2F mov r24,r29
787 0252 9927 clr r25
788 0254 822B or r24,r18
789 0256 0E94 0000 call LcdSendData
291:lcddrive.c **** LcdSendData(color & 0x0ff);//写第二个点的GB
791 .LM118:
792 025a 8C2F mov r24,r28
793 025c 0E94 0000 call LcdSendData
795 .LM119:
796 0260 1250 subi r17,lo8(-(-2))
797 0262 17FF sbrs r17,7
798 0264 EACF rjmp .L45
800 .LM120:
801 0266 0F5F subi r16,lo8(-(1))
802 0268 0334 cpi r16,lo8(67)
803 026a 30F3 brlo .L46
292:lcddrive.c **** }
293:lcddrive.c **** }
294:lcddrive.c **** SetLcdCs();
805 .LM121:
806 /* #APP */
807 026c 929A SBI 0x12,2
808
809 /* #NOAPP */
810 /* epilogue: frame size=0 */
811 026e DF91 pop r29
812 0270 CF91 pop r28
813 0272 1F91 pop r17
814 0274 0F91 pop r16
815 0276 0895 ret
816 /* epilogue end (size=5) */
817 /* function LcdClr size 70 (61) */
823 .Lscope6:
826 .global LCD_ColorSet
828 LCD_ColorSet:
295:lcddrive.c **** }
296:lcddrive.c ****
297:lcddrive.c ****
298:lcddrive.c ****
299:lcddrive.c ****
300:lcddrive.c **** /* 以下为LCM的用户接口层,主要负责解释用户命令,并发送到LCM,为用户编程提供接口 */
301:lcddrive.c ****
302:lcddrive.c ****
303:lcddrive.c ****
304:lcddrive.c **** /****************************************************************************
305:lcddrive.c **** * 名称:LCD_ColorSet()
306:lcddrive.c **** * 功能:设置LCD颜色模式
307:lcddrive.c **** * 入口参数:color :1为4096色;0为256色;
308:lcddrive.c **** * ret 保存颜色值的指针
309:lcddrive.c **** * 出口参数:返回0时表示指定地址超出有效范围。
310:lcddrive.c **** ****************************************************************************/
311:lcddrive.c **** void LCD_ColorSet(uint8_t Color)
312:lcddrive.c **** {
830 .LM122:
831 /* prologue: frame size=0 */
832 /* prologue end (size=0) */
313:lcddrive.c ****
314:lcddrive.c **** if (Color==TRUE) {
834 .LM123:
835 0278 8130 cpi r24,lo8(1)
836 027a 29F4 brne .L52
315:lcddrive.c **** LcdSendCommand(0x3a); //interface pixel format
838 .LM124:
839 027c 8AE3 ldi r24,lo8(58)
840 027e 0E94 0000 call LcdSendCommand
316:lcddrive.c **** LcdSendData(0x03); //0x03 为4096色,0x02为256色
842 .LM125:
843 0282 83E0 ldi r24,lo8(3)
844 0284 44C0 rjmp .L54
845 .L52:
317:lcddrive.c **** LCD_DataOver();
318:lcddrive.c **** }
319:lcddrive.c **** else
320:lcddrive.c **** {
321:lcddrive.c **** LcdSendCommand(0x3a); //interface pixel format
847 .LM126:
848 0286 8AE3 ldi r24,lo8(58)
849 0288 0E94 0000 call LcdSendCommand
322:lcddrive.c **** LcdSendData(0x02); //0x03 为4096色,0x02为256色
851 .LM127:
852 028c 82E0 ldi r24,lo8(2)
853 028e 0E94 0000 call LcdSendData
323:lcddrive.c **** LCD_DataOver();
855 .LM128:
856 /* #APP */
857 0292 929A SBI 0x12,2
858
324:lcddrive.c ****
325:lcddrive.c ****
326:lcddrive.c **** LcdSendCommand(0x2d); //调色板设置
860 .LM129:
861 /* #NOAPP */
862 0294 8DE2 ldi r24,lo8(45)
863 0296 0E94 0000 call LcdSendCommand
327:lcddrive.c **** //red
328:lcddrive.c **** LcdSendData(0x00);
865 .LM130:
866 029a 80E0 ldi r24,lo8(0)
867 029c 0E94 0000 call LcdSendData
329:lcddrive.c **** LcdSendData(0x02);
869 .LM131:
870 02a0 82E0 ldi r24,lo8(2)
871 02a2 0E94 0000 call LcdSendData
330:lcddrive.c **** LcdSendData(0x03);
873 .LM132:
874 02a6 83E0 ldi r24,lo8(3)
875 02a8 0E94 0000 call LcdSendData
331:lcddrive.c **** LcdSendData(0x04);
877 .LM133:
878 02ac 84E0 ldi r24,lo8(4)
879 02ae 0E94 0000 call LcdSendData
332:lcddrive.c **** LcdSendData(0x05);
881 .LM134:
882 02b2 85E0 ldi r24,lo8(5)
883 02b4 0E94 0000 call LcdSendData
333:lcddrive.c **** LcdSendData(0x06);
885 .LM135:
886 02b8 86E0 ldi r24,lo8(6)
887 02ba 0E94 0000 call LcdSendData
334:lcddrive.c **** LcdSendData(0x08);
889 .LM136:
890 02be 88E0 ldi r24,lo8(8)
891 02c0 0E94 0000 call LcdSendData
335:lcddrive.c **** LcdSendData(0x0f);
893 .LM137:
894 02c4 8FE0 ldi r24,lo8(15)
895 02c6 0E94 0000 call LcdSendData
336:lcddrive.c ****
337:lcddrive.c **** //green
338:lcddrive.c **** LcdSendData(0x00);
897 .LM138:
898 02ca 80E0 ldi r24,lo8(0)
899 02cc 0E94 0000 call LcdSendData
339:lcddrive.c **** LcdSendData(0x02);
901 .LM139:
902 02d0 82E0 ldi r24,lo8(2)
903 02d2 0E94 0000 call LcdSendData
340:lcddrive.c **** LcdSendData(0x03);
905 .LM140:
906 02d6 83E0 ldi r24,lo8(3)
907 02d8 0E94 0000 call LcdSendData
341:lcddrive.c **** LcdSendData(0x04);
909 .LM141:
910 02dc 84E0 ldi r24,lo8(4)
911 02de 0E94 0000 call LcdSendData
342:lcddrive.c **** LcdSendData(0x05);
913 .LM142:
914 02e2 85E0 ldi r24,lo8(5)
915 02e4 0E94 0000 call LcdSendData
343:lcddrive.c **** LcdSendData(0x06);
917 .LM143:
918 02e8 86E0 ldi r24,lo8(6)
919 02ea 0E94 0000 call LcdSendData
344:lcddrive.c **** LcdSendData(0x08);
921 .LM144:
922 02ee 88E0 ldi r24,lo8(8)
923 02f0 0E94 0000 call LcdSendData
345:lcddrive.c **** LcdSendData(0x0f);
925 .LM145:
926 02f4 8FE0 ldi r24,lo8(15)
927 02f6 0E94 0000 call LcdSendData
346:lcddrive.c **** //blue
347:lcddrive.c **** LcdSendData(0x00);
929 .LM146:
930 02fa 80E0 ldi r24,lo8(0)
931 02fc 0E94 0000 call LcdSendData
348:lcddrive.c **** LcdSendData(0x03);
933 .LM147:
934 0300 83E0 ldi r24,lo8(3)
935 0302 0E94 0000 call LcdSendData
349:lcddrive.c **** LcdSendData(0x06);
937 .LM148:
938 0306 86E0 ldi r24,lo8(6)
939 0308 0E94 0000 call LcdSendData
350:lcddrive.c **** LcdSendData(0x0f);
941 .LM149:
942 030c 8FE0 ldi r24,lo8(15)
943 .L54:
944 030e 0E94 0000 call LcdSendData
351:lcddrive.c **** LCD_DataOver();
946 .LM150:
947 /* #APP */
948 0312 929A SBI 0x12,2
949
950 /* #NOAPP */
951 0314 0895 ret
952 /* epilogue: frame size=0 */
953 /* epilogue: noreturn */
954 /* epilogue end (size=0) */
955 /* function LCD_ColorSet size 85 (85) */
957 .Lscope7:
962 .global GUI_Point
964 GUI_Point:
352:lcddrive.c **** }
353:lcddrive.c **** }
354:lcddrive.c **** /****************************************************************************
355:lcddrive.c **** * 名称:GUI_Point()
356:lcddrive.c **** * 功能:在指定位置上画点。
357:lcddrive.c **** * 入口参数: x 指定点所在列的位置
358:lcddrive.c **** * y 指定点所在行的位置
359:lcddrive.c **** * color 只能为256色模式
360:lcddrive.c **** * 出口参数:返回值为1时表示操作成功,为0时表示操作失败。(操作失败原因是指定地址超出有
361:lcddrive.c **** * 效范围)
362:lcddrive.c **** * 说明:
363:lcddrive.c **** ****************************************************************************/
364:lcddrive.c ****
365:lcddrive.c **** void GUI_Point(uint8 x, uint8 y,uint8 Color)
366:lcddrive.c **** {
966 .LM151:
967 /* prologue: frame size=0 */
968 0316 FF92 push r15
969 0318 0F93 push r16
970 031a 1F93 push r17
971 /* prologue end (size=3) */
972 031c 182F mov r17,r24
973 031e 062F mov r16,r22
974 0320 F42E mov r15,r20
367:lcddrive.c **** LcdSendCommand(0x2a);//column address set
976 .LM152:
977 0322 8AE2 ldi r24,lo8(42)
978 0324 0E94 0000 call LcdSendCommand
368:lcddrive.c **** LcdSendData(x );
980 .LM153:
981 0328 812F mov r24,r17
982 032a 0E94 0000 call LcdSendData
369:lcddrive.c **** LcdSendData(x );
984 .LM154:
985 032e 812F mov r24,r17
986 0330 0E94 0000 call LcdSendData
370:lcddrive.c **** LCD_DataOver();
988 .LM155:
989 /* #APP */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -