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

📄 splc501hardware.lst

📁 单片机开发的数字电压表,带保护提示功能,精确度比较高
💻 LST
📖 第 1 页 / 共 4 页
字号:
                     <      	.EXTERNAL 	F_RampUpDAC1					// reserved old
                     <      	.EXTERNAL 	F_RampDnDAC1					// reserved old
                     <      	.EXTERNAL 	F_RampUpDAC2					// reserved old
                     <      	.EXTERNAL  	F_RampDnDAC2					// reserved old
                     <      	///////////////////////////////////////////////////////////////////
                     <      	
                     <      	
                     <      		
                     <      	//========================================================================================        
                     <      	// End of hardware.inc
                     <      	//========================================================================================
                            	.define		C_data
                            	.include		splc501c_io.inc
                     <      	//========================================================
                     <      	//SPLC501C Library Pin Definition
                     <      	//==========================================================
                     <      	//6800 Control Pin
                     <      	//-----------------------------------------------------------------------------
                     <      	//User can change  any of control pins at any bit, except user select the IO port 
                     <      	//of control pin the same as control bus. 
                     <      	//=======================================================
                     <      	//								FEDCBA9876543210					
                     <      	//.define		C_AOP_Pin    	00100000000000b;		//IO AOP
                     <      	//.define		C_EP_Pin   		01000000000000b;		//IO EP
                     <      	//.define		C_RWP_Pin     	10000000000000b;		//IO as RWP
                     <      	//								FEDCBA9876543210
                     <      	.define		C_AOP_Pin    	    0000000000010000b;		//IO AOP
                     <      	.define		C_EP_Pin   			0000000001000000b;		//IO EP
                     <      	.define		C_RWP_Pin     		0000000000100000b;		//IO as RWP
                     <      	//========================================================
                     <      	//Define the SPLC Data Bus Pin
                     <      	//Only Two Type Can Select
                     <      	//=====================================================
                     <      	//							FEDCBA9876543210
                     <      	.define		C_DataBus		1111111100000000b;		//IO Data Bus
                     <      	//.define		C_DataBus		0000000011111111b;
                     <      	.define		C_BusHighLow	1;			//Set Data High/Low Byte 1:High	
                     <      	//.define	C_AddressBus	0000000011111111b;		//IO Data Bus
                     <      	//.define	C_DataBus		0000000011111111b;		//IO Data Bus
                     <      	//.define	C_BusHighLow	0;			//Set Data High/Low Byte 0:Low
                     <      	//=====================================================
                     <      	//================================================
                     <      	//Set Control Pins Port
                     <      	//================================================
                     <      	//Set Control Pins At Port A
                     <      	//.define	P_IO_Control_Data			0x7000;		//P_IOA_Data
                     <      	//.define	P_IO_Control_Buffer			0x7001;		//P_IOA_Buffer
                     <      	//.define	P_IO_Control_Dir			0x7002;		//P_IOA_Dir
                     <      	//.define	P_IO_Control_Attrib			0x7003;		//P_IOA_Attrib
                     <      	//=========================================================
                     <      	//Set Control Pins At Port B
                     <      	.define	P_IO_Control_Data		0x7005;		//P_IOB_Data
                     <      	.define	P_IO_Control_Buffer		0x7006;		//P_IOB_Buffer
                     <      	.define	P_IO_Control_Dir		0x7007;		//P_IOB_Dir
                     <      	.define	P_IO_Control_Attrib		0x7008;		//P_IOB_Attrib
                     <      	//========================================================
                     <      	//=========================================================
                     <      	//Set Control Bus Port
                     <      	//==========================================================
                     <      	//Set Control Bus At Port A
                     <      	.define	P_IO_Data_Data				0x7000;		//P_IOA_Data
                     <      	.define	P_IO_Data_Buffer			0x7001;		//P_IOA_Buffer
                     <      	.define	P_IO_Data_Dir				0x7002;		//P_IOA_Dir
                     <      	.define	P_IO_Data_Attrib			0x7003;		//P_IOA_Attrib
                     <      	//==========================================================
                     <      	//Set Control Bus At Port B
                     <      	//.define	P_IO_Data_Data			0x7005;		//P_IOB_Data
                     <      	//.define	P_IO_Data_Buffer		0x7006;		//P_IOB_Buffer
                     <      	//.define	P_IO_Data_Dir			0x7007;		//P_IOB_Dir
                     <      	//.define	P_IO_Data_Attrib		0x7008;		//P_IOB_Attrib
                     <      	//=========================================================
0000E74A                    	.code
                            	//////////////////////////////////////////////////////////////////////////////
                            	//Filename : F_Init_LCD_501
                            	//Function : Intialize  SPLC501c
                            	//Input    : None
                            	//Output   : None
                            	//Destory  : R1,R2,r3
                            	//////////////////////////////////////////////////////////////////////////////
                            	.public		_Init_LCD_501
                            	_Init_LCD_501:		.proc
0000E74A 41 92              			R1 = 0x0001;
0000E74B 19 D3 12 70        	        [P_Watchdog_Clear] = R1;   // reset watchdog
0000E74D 40 F0 68 E7        	        CALL    F_LCD_Reset_Command;//Destory  : r3
0000E74F 40 F0 76 E7        	        CALL    F_LCD_Command_Nop;	//Destory  : r3
0000E751 40 F0 84 E7        	        CALL    F_LCD_Solomon_Freq;	//Destory  : r3
0000E753 40 F0 9F E7        	        CALL    F_LCD_Power_Set;	//Destory  : r3
0000E755 40 F0 14 E8        	        CALL    F_LCD_Display_On;	//Destory  : r3
0000E757 40 92              	        R1 = 0x0000;                //Page No. = 0
0000E758 40 F0 3E E8        	        CALL    F_Set_LCD_Page_No;	//Destory  : r3,r1
0000E75A 40 92              	        R1 = 0x0000;                //Start line = 0
0000E75B 40 F0 56 E8        	        CALL    F_Set_LCD_Start_Line;//Destory  : r3,r1
0000E75D 40 94              	        R2 = 0x0000;                //Column address = 0
0000E75E 40 F0 67 E8        	        CALL    F_Set_LCD_Column_Addr;//Destory  : r3,r2,r1
0000E760 40 F0 22 E8        	        CALL    F_LCD_ALL_On;		//Destory  : r3
0000E762 40 F0 30 E8        	        CALL    F_LCD_Normal_Display;//Destory  : r3
0000E764 40 96              	        R3 = 0x0000;                //Fill "00"
0000E765 40 F0 9D E8        	        CALL  F_Fill_All_LCD_Value;	
0000E767 90 9A              	        RETF;
                            			.endp
                            		
                            		
                            	//////////////////////////////////////////////////////////////////////////////
                            	//Subroutine
                            	//////////////////////////////////////////////////////////////////////////////
                            	F_LCD_Reset_Command:
0000E768 13 97 00 70        			r3=[P_IO_Data_Data]
0000E76A 0A 95 00 FF        			r2=C_DataBus
0000E76C 0A 85 FF FF        			r2^=0xffff
0000E76E 02 B7              			r3&=r2
0000E76F 0B A7 00 E2        			r3|=0xe200
                            		.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E771 1B D7 00 70        			[P_IO_Data_Data]=r3
0000E773 40 F0 CC E8        			CALL F_Send_data			   
                            	//        R1=0x0AE2;                //Reset
                            	//        [P_Lcd501Ctrl]=R1;
                            	//        CALL    F_Delay_Bus_Time;
                            	
0000E775 90 9A              	        RETF;
                            	
                            	//////////////////////////////////////////////////////////////////////////////
                            	F_LCD_Command_Nop:
0000E776 13 97 00 70        			r3=[P_IO_Data_Data]
                            			
0000E778 0A 95 00 FF        			r2=C_DataBus
0000E77A 0A 85 FF FF        			r2^=0xffff
0000E77C 02 B7              			r3&=r2
                            		
0000E77D 0B A7 00 E3        			r3|=0xe300
                            		.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E77F 1B D7 00 70        			[P_IO_Data_Data]=r3
0000E781 40 F0 CC E8        			CALL F_Send_data			   
                            	//        R1=0x0AE3;                //Nop
                            	//        [P_Lcd501Ctrl]=R1;
                            	//        CALL F_Delay_Bus_Time;
                            	
0000E783 90 9A              	        RETF;
                            	
                            	//////////////////////////////////////////////////////////////////////////////
                            	F_LCD_Solomon_Freq:
0000E784 13 97 00 70        			r3=[P_IO_Data_Data]
0000E786 0A 95 00 FF        					r2=C_DataBus
0000E788 0A 85 FF FF        			r2^=0xffff
0000E78A 02 B7              			r3&=r2
                            		
0000E78B 0B A7 00 C8        			r3|=0xC800					//C8
                            		.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E78D 1B D7 00 70        			[P_IO_Data_Data]=r3
0000E78F 40 F0 CC E8        			CALL F_Send_data			  
                            	//        R1=0x0AA9;                //
                            	//        [P_Lcd501Ctrl]=R1;
                            	//        CALL F_Delay_Bus_Time;
0000E791 13 97 00 70        			r3=[P_IO_Data_Data]
0000E793 0A 95 00 FF        					r2=C_DataBus
0000E795 0A 85 FF FF        			r2^=0xffff
0000E797 02 B7              			r3&=r2
                            		
0000E798 0B A7 00 A0        			r3|=0xa000					//A0
                            		.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E79A 1B D7 00 70        			[P_IO_Data_Data]=r3
0000E79C 40 F0 CC E8        			CALL F_Send_data			  
                            	//        R1=0x0AA1;                //ADC : Normal
                            	//        [P_Lcd501Ctrl]=R1;
                            	//        CALL F_Delay_Bus_Time;
                            	
0000E79E 90 9A              	        RETF;
                            	
                            	//////////////////////////////////////////////////////////////////////////////
                            	F_LCD_Power_Set:
0000E79F 13 97 00 70        			r3=[P_IO_Data_Data]
0000E7A1 0A 95 00 FF        					r2=C_DataBus
0000E7A3 0A 85 FF FF        			r2^=0xffff
0000E7A5 02 B7              			r3&=r2
                            		
0000E7A6 0B A7 00 A2        			r3|=0xa200
                            		.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E7A8 1B D7 00 70        			[P_IO_Data_Data]=r3
0000E7AA 40 F0 CC E8        			CALL F_Send_data			   
                            	//        R1=0x0AA2;
                            	//        [P_Lcd501Ctrl]=R1;        // 1/9 bias
                            	//        CALL F_Delay_Bus_Time;
0000E7AC 13 97 00 70        			r3=[P_IO_Data_Data]
0000E7AE 0A 95 00 FF        					r2=C_DataBus
0000E7B0 0A 85 FF FF        			r2^=0xffff
0000E7B2 02 B7              			r3&=r2
                            		
0000E7B3 0B A7 00 24        			r3|=0x2400
                            			.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E7B5 1B D7 00 70        			[P_IO_Data_Data]=r3
0000E7B7 40 F0 CC E8        			CALL F_Send_data			   
                            	//        R1=0x0A24;
                            	//        [P_Lcd501Ctrl]=R1;        // V5 RATIO 5 FOR 1/9 BIAS
                            	//        CALL F_Delay_Bus_Time;
0000E7B9 13 97 00 70        			r3=[P_IO_Data_Data]
0000E7BB 0A 95 00 FF        					r2=C_DataBus
0000E7BD 0A 85 FF FF        			r2^=0xffff
0000E7BF 02 B7              			r3&=r2
                            		
0000E7C0 0B A7 00 81        			r3|=0x8100
                            		.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E7C2 1B D7 00 70        			[P_IO_Data_Data]=r3
0000E7C4 40 F0 CC E8        			CALL F_Send_data			  
                            	//        R1=0x0A81;
                            	//        [P_Lcd501Ctrl]=R1;        // ELECTRONIC VOLUME MODE
                            	//        CALL F_Delay_Bus_Time;
0000E7C6 13 97 00 70        			r3=[P_IO_Data_Data]
0000E7C8 0A 95 00 FF        					r2=C_DataBus
0000E7CA 0A 85 FF FF        			r2^=0xffff
0000E7CC 02 B7              			r3&=r2
                            		
0000E7CD 0B A7 00 1A        			r3|=0x1a00
                            		.if	C_BusHighLow
                            		.else
                            			R3	=	R3	lsr	4;
                            			R3	=	R3	lsr	4;		
                            		.endif
0000E7CF 1B D7 00 70        			[P_IO_Data_Data]=r3

⌨️ 快捷键说明

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