⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcddrive.lst

📁 一个基于MEGA16的GUI
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -