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

📄 lcdr.asm

📁 凌阳单片机LCD点阵及16*16字库程序,适合广大想入门的朋友.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
			CALL	W_COM
			R1	= 0x002b;
			CALL	W_COM				//set panel loading
			R1	= 0x002C;
			CALL	W_COM
			
			R1	= 0x0081;				//电压设置GAIN
			CALL	W_COM				//可以调节亮度
			R1	= 0x00CE;
			CALL	W_COM
			
			R1	= 0x0089;
			CALL 	W_COM				//列溢出时页加一
			
			R1	= 0x002F;				//内部VLCD
			CALL	W_COM
			
			R1	= 0x00C0;				//行列是否反向
			CALL	W_COM
						
			R1	= 0x0032;				//设置最大列
			CALL	W_COM;
			R1 	= 0x007F;
			CALL	W_COM;
			
			R1	= 0x00AF;
			CALL	W_COM
			R3	=0x0000;				//LCD初始化
			[P_Lcd501BdySel]	= R3;	//模式
			
			R1	= 0x01EB;
			CALL	W_COM
			
			R1	= 0x00D0;
			CALL	W_COM				//灰度
					
			CALL	ALL_ON_SCR			//全部点亮
			R1	= 0x00A4;
			CALL	W_COM
			RETF
//***************************************************************/
//* 功能 : 延时1s												*/
//* 入口 : 无		                                   			*/
//* 出口 : 无				               				     	*/
//* 影响寄存器 : 无									     		*/
//* 说明 : 直接使用延时,需判断是否低电压标记				    */
//* 低速时700000cycles,高速时28000000cycles                     */
//* 2004.11.18修改:减去中断的时间10%.4ms,32ms中断 
//***************************************************************/
.public		F_Delay1s
F_Delay1s:
				PUSH R1 TO [SP];            //7
			    R1 = 0x55AA;
			    [P_Watchdog_Clr] = R1;		//复位后清看门狗
			  	R1 = [P_SystemClock];       //6
			  	TEST R1,0x80;               //3
			  	JZ ?_Delay1sSlow;		    //3
?_Delay1sFast:
                R1 = 38620;	// 34758;                //3
                //51+(358*2+3+3+3)*38620=27999449
                JMP ?_Delay1sLoop;
?_Delay1sSlow:
                R1 = 962;	//867;                  //3
                //51+(358*2+3+3+3)*962=699425
?_Delay1sLoop:
                CALL F_B_Delay359;          //358
                CALL F_B_Delay359;          //359
                R1 -= 1;                    //3
                CMP R1,0;                   //3
                JNE ?_Delay1sLoop;        //3
				POP R1 FROM [SP]
				RETF
//***************************************************************/
//* 功能 : 延时96ms												*/
//* 入口 : 无		                                     		*/
//* 出口 : 无				               					    */
//* 影响寄存器 : 无									     		*/
//* 说明 : 直接使用延时,需判断是否低电压标记   				*/
//* 低速时67200cycles,高速时2688000cycles                       */
//***************************************************************/
.public		F_Delay96ms
F_Delay96ms:
				PUSH R1 TO [SP];            //7
			    R1 = 0x55AA;
			    [P_Watchdog_Clr] = R1;		//复位后清看门狗
			  	R1 = [P_SystemClock];       //6
			  	TEST R1,0x80;               //3
			  	JZ ?_Delay96msSlow;	    //3
?_Delay96msFast:
                R1 = 7324;                  //3
                //51+(358+3+3+3)*7324=2687959
                JMP ?_Delay96msLoop;
?_Delay96msSlow:
                R1 = 183;                   //3
                //51+(358+3+3+3)*183=67161
?_Delay96msLoop:
                CALL F_B_Delay359;          //358
                R1 -= 1;                    //3
                CMP R1,0;                   //3
                JNE ?_Delay96msLoop;        //3
				POP R1 FROM [SP];           //7
				RETF;                       //13+12
//***************************************************************/
//* 功能 : 延时0.5s												*/
//* 入口 : 无		                                     		*/
//* 出口 : 无				               					    */
//* 影响寄存器 : 无									     		*/
//* 说明 : 使用定时器A定时溢出,应用层延时专用		 			*/
//***************************************************************/
.public		F_Delay500ms
F_Delay500ms:
				PUSH R1 TO [SP]
			    R1 = 0x55AA;
			    [P_Watchdog_Clr] = R1;		//复位后清看门狗
				CALL F_Delay96ms
				CALL F_Delay96ms
			//	CALL F_Delay96ms
			//	CALL F_Delay96ms
				CALL F_Delay96ms
			    R1 = 0x55AA;
			    [P_Watchdog_Clr] = R1;		//复位后清看门狗
				POP R1 FROM [SP]
				RETF;
//***************************************************************/
//* 功能 : 延时10ms												*/
//* 入口 : 无		                                     		*/
//* 出口 : 无				               					    */
//* 影响寄存器 : 无									     		*/
//* 说明 : 直接使用延时,需判断是否低电压标记   				*/
//* 低速时7000cycles,高速时28000cycles		                    */
//***************************************************************/
.public		F_Delay10ms
F_Delay10ms:
				PUSH R1 TO [SP];            //7
			  	R1 = [P_SystemClock];       //6
			  	TEST R1,0x80;               //3
			  	JZ ?_Delay10msSlow;	    //3
?_Delay10msFast:
                R1 = 19;                  	//3
                //51+(358+3+3+3)*19=7024
                JMP ?_Delay10msLoop;
?_Delay10msSlow:
                R1 = 183;                   //3
                //51+(358+3+3+3)*183=67161
?_Delay10msLoop:
                CALL F_B_Delay359;          //358
                R1 -= 1;                    //3
                CMP R1,0;                   //3
                JNE ?_Delay10msLoop;        //3
				POP R1 FROM [SP];           //7
				RETF;                       //13+12
//***************************************************************/
//* 功能 : 延时50us												*/
//* 入口 : 无		                                     		*/
//* 出口 : 无                                  					*/
//* 影响寄存器 : 无									     		*/
//* 说明 : 直接使用nop延时,需判断是否低电压标记				*/
//* 算法 : 35cycle/0.7M = 50us  or  1400cycle/28M = 50us        */
//* call-13c, retf-12c, R1&=IM6-3c, R1=[A6]-6c, test/cmp-3c     */
//* push/pop-3n+4c, nop-5c, je-3c                               */
//***************************************************************/
F_B_Delay50us:
			  	PUSH R1 TO [SP];            //7
			  	R1 = [P_SystemClock];       //6
			  	TEST R1,0x80;               //3
			  	JZ ?_B_Delay50usSlow;		//3
?_B_Delay50usFast:
                //51+3+3*359
                CALL F_B_Delay359
                CALL F_B_Delay359
                CALL F_B_Delay359
				JMP ?_B_Delay50usEnd;       //3
?_B_Delay50usSlow:
                //低速时实际时间较长,51cyc/0.7M=73us
?_B_Delay50usEnd:
                POP R1 FROM [SP];           //7
                RETF;                       //13+12
//--------------------------------------------
//功能: 延时359cycle
//入口: 无
//出口: 无
//算法: 13+12+6*56
//--------------------------------------------
F_B_Delay359:
                CALL F_B_Delay56;
                CALL F_B_Delay56;
                CALL F_B_Delay56;
                CALL F_B_Delay56;
                CALL F_B_Delay56;
                CALL F_B_Delay56;
                RETF;
//--------------------------------------------
//功能: 延时56cycle
//入口: 无
//出口: 无
//算法: 13+12+3+3+5*5
//--------------------------------------------
F_B_Delay56:
                NOP
                NOP
                NOP
                NOP
                NOP
                JMP ?_B_Delay56_1;
?_B_Delay56_1:
                JMP ?_B_Delay56_2;
?_B_Delay56_2:
                RETF;
										
//载入图片
//128*128
TABLE:
	.dw	0xFF,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0
	.dw	0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0
	.dw	0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0
	.dw	0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0
	.dw	0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0
	.dw	0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0
	.dw	0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0
	.dw	0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xFF
	.dw	0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF
	.dw	0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,0x01,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF
	.dw	0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07
	.dw	0x07,0x0F,0x1F,0x1F,0x1F,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFC,0x7C,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x7F,0xFF,0xFF,0x7F,0x7F,0x3F,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x1F,0x1F,0x3F,0x3F,0x1F
	.dw	0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07
	.dw	0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07
	.dw	0x07,0x07,0x07,0x07,0x0F,0x1F,0x1F,0x07,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0xFF
	.dw	0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0
	.dw	0xF8,0xFC,0xFF,0xFF,0xFF,0xFF,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x03,0x0F
	.dw	0x0F,0x0F,0x03,0x01,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00
	.dw	0x00,0x00,0x3F,0x3F,0x3F,0x3F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
	.dw	0xFE,0xFC,0xF8,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xFF,0xFF
	.dw	0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0
	.dw	0xF0,0xF8,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x38,0x00,0x00,0x00,0x00,0xFF
	.dw	0xFF,0x00,0x00,0x00,0x00,0x01,0x1F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F
	.dw	0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x7F,0x1F,0x1F,0x1F,0x1F,0x07,0xF8,0xFF
	.dw	0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00
	.dw	0x20,0x7F,0xFF,0xFF,0xFF,0xFC,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
	.dw	0xFD,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF
	.dw	0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0xFF
	.dw	0xFF,0x00,0x00,0x00,0x00,0xF0,0xF0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x03,0x07,0x9F
	.dw	0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0xF0,0xFC,0xFE,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x18
	.dw	0x7C,0xF8,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
	.dw	0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF
	.dw	0xFF,0x7F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0xFF,0xFF
	.dw	0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F
	.dw	0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF
	.dw	0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,0x07,0x0F,0x3F,0xFF,0xFF,0xFF,0xFE
	.dw	0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0xF8,0xF8,0xFE,0x7F,0x1F,0x1F,0x07,0x01

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -