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

📄 splc501sys.lst

📁 单片机开发的数字电压表,带保护提示功能,精确度比较高
💻 LST
📖 第 1 页 / 共 5 页
字号:
0000B4D2 90 9A              			retf
                            	image_eightrow_begin:             
0000B4D3 40 F0 3E E8        	        CALL    F_Set_LCD_Page_No
0000B4D5 12 95 A8 01        	        R2 = [image_jumpoff_point_x]
0000B4D7 40 F0 67 E8        	        CALL    F_Set_LCD_Column_Addr
0000B4D9 40 F0 E9 E8        	        call	F_Read_Lcd_data				//read data on lcd
0000B4DB 0B B7 00 FF        	        r3&=0xff00
0000B4DD 1B D7 AD 01        	        [image_lcd_data]=r3
0000B4DF 12 95 A8 01        	        R2 = [image_jumpoff_point_x]
0000B4E1 40 F0 67 E8        	        CALL    F_Set_LCD_Column_Addr
0000B4E3 13 97 B0 01        			r3=[image_tab_pointer]
0000B4E5 88 D2              			push r1 to [sp]
0000B4E6 11 93 02 02        			r1=[sign]
0000B4E8 48 B2              			r1&=sign_zk_bank //0x008
0000B4E9 04 5E              			jz image_process_bank_1
0000B4EA 16 AD A4 01        			sr|=[bank]						//
0000B4EC E3 96              			r3=d:[r3]
0000B4ED 01 EE              			jmp	image_process_bank_2
                            	image_process_bank_1:	
0000B4EE C3 96              			r3=[r3]
                            	image_process_bank_2:
0000B4EF 88 90              			pop  r1 from  [sp]	
0000B4F0 41 08              			r4+=0x01
0000B4F1 12 95 AC 01        			r2=[image_bit]						//analyze place of image
0000B4F3 44 44              			cmp	r2,0x04							//split data of image begin
0000B4F4 05 9E              			ja image_split_1_1
                            	image_split_1_2:
0000B4F5 40 44              			cmp r2 ,0x00
0000B4F6 0A 5E              			je	image_split_1_3
0000B4F7 43 97              			r3=r3 lsl 0x01		
0000B4F8 41 24              			r2-=0x01
0000B4F9 45 EE              			jmp	image_split_1_2
                            	image_split_1_1:
0000B4FA 5B 97              			r3=r3 lsl 0x04
0000B4FB 44 24              			r2-=0x04
                            	image_split_1_4:	
0000B4FC 40 44              			cmp r2 ,0x00
0000B4FD 03 5E              			je	image_split_1_3
0000B4FE 43 97              			r3=r3 lsl 0x01
0000B4FF 41 24              			r2-=0x01
0000B500 45 EE              			jmp	image_split_1_4
                            	image_split_1_3:
0000B501 1B D7 AE 01        			[image_temp_data]=r3				//split data of image end
                            			//r3&=0xff00
                            		
0000B503 0B B7 00 FF        			r3&=0xff00
0000B505 11 93 01 02        			r1=[R_GraphicMode_temp]
0000B507 09 B3 C0 01        			r1&=0x001c0
                            	image_process_cover_frist:	
0000B509 03 4E              			jnz	image_process_xor_frist
0000B50A 13 A7 AD 01        			r3|=[image_lcd_data]				//or data on lcd
                            			
0000B50C 0A EE              			jmp	image_proc_mod_frist_end
                            	image_process_xor_frist:
0000B50D 09 43 00 01        			cmp	r1,0x0100
0000B50F 03 5E              			je	image_process_clear_frist
0000B510 13 87 AD 01        			r3^=[image_lcd_data]				//xor data on lcd
0000B512 04 EE              			jmp	image_proc_mod_frist_end
                            	image_process_clear_frist:		
0000B513 0B 87 00 FF        			r3^=0xff00
0000B515 13 B7 AD 01        			r3&=[image_lcd_data]
                            	image_proc_mod_frist_end:
                            				
                            			//r3|=[image_lcd_data]		
0000B517 7B 97              			r3=r3 lsr 0x04
0000B518 7B 97              			r3=r3 lsr 0x04
0000B519 40 F0 17 E9        			call	F_Display_point				//display frist part  data
                            			
0000B51B 11 93 AB 01        			R1 = [image_page]
0000B51D 41 22              			r1-=0x01 
0000B51E 48 42              			cmp	r1,0x08							//if overstep area
0000B51F 02 0E              			jb	  image_second_begin
0000B520 80 FE 4C B5        			goto	image_process_end
                            	image_second_begin:		
0000B522 40 F0 3E E8        	        CALL    F_Set_LCD_Page_No
0000B524 12 95 A8 01        	        R2 = [image_jumpoff_point_x]                
0000B526 40 F0 67 E8        	        CALL    F_Set_LCD_Column_Addr
0000B528 40 F0 E9 E8        	        call	F_Read_Lcd_data				//read data on lcd
0000B52A 0B B7 00 FF        	        r3&=0xff00
0000B52C 7B 97              	        r3=r3 lsr 0x04
0000B52D 7B 97              	        r3=r3 lsr 0x04
0000B52E 1B D7 AD 01        	        [image_lcd_data]=r3
0000B530 12 95 A8 01        	        R2 = [image_jumpoff_point_x]
0000B532 40 F0 67 E8        	        CALL    F_Set_LCD_Column_Addr
0000B534 13 97 AE 01        			r3=[image_temp_data]
                            			//r3|=[image_lcd_data]
0000B536 0B B7 FF 00        			r3&=0x00ff	
                            			
0000B538 11 93 01 02        			r1=[R_GraphicMode_temp]
0000B53A 09 B3 C0 01        			r1&=bmp_mode_bit
                            	image_process_cover_second:	
0000B53C 03 4E              			jne	image_process_xor_second
0000B53D 13 A7 AD 01        			r3|=[image_lcd_data]				//or data on lcd
                            	//		[image_temp_data1]=r3
0000B53F 0A EE              			jmp	image_proc_mod_second_end
                            	image_process_xor_second:
0000B540 09 43 00 01        			cmp	r1,0x0100
0000B542 03 5E              			je	image_process_clear_second
0000B543 13 87 AD 01        			r3^=[image_lcd_data]				//xor data on lcd
0000B545 04 EE              			jmp	image_proc_mod_second_end
                            	image_process_clear_second:		
0000B546 0B 87 FF 00        			r3^=0x00ff
0000B548 13 B7 AD 01        			r3&=[image_lcd_data]
                            	image_proc_mod_second_end:	
0000B54A 40 F0 17 E9        			call	F_Display_point				//display remanent part  data
                            	image_process_end:	
0000B54C 11 93 A8 01        			r1=[image_jumpoff_point_x]
0000B54E 41 22              			r1-=0x01
0000B54F 19 D3 A8 01        			[image_jumpoff_point_x]=r1
0000B551 13 97 B0 01        			r3=[image_tab_pointer]
0000B553 13 07 A6 01        			r3+=[image_width_byte]
0000B555 1B D7 B0 01        			[image_tab_pointer]=r3
0000B557 14 49 A7 01        			cmp	r4,[image_high_bit]
0000B559 02 5E              			je	image_process_complete				//if display complete 
0000B55A 80 FE CE B4        			goto	image_display_eightrow_begin
                            	image_process_complete:		
0000B55C 90 9A              			retf
                            	
                            	//////////////////////////////////////////////////////////////////////////////  
                            	//R_GraphicMode:
                            	//		1 byte for graphic mode.
                            	//
                            	//		Bit7,6:	Bitmap/Char/String
                            	//						00:COVER		;Default Mode
                            	//						01:AND
                            	//						10:OR
                            	//						11:XOR
                            	//		Bit5:	(unused)
                            	//		Bit4,3:	Rect/Line/Pixel
                            	//					 	00:SOLID_COVER	;Default (Bar) Mode
                            	//					 	01:DOTTED_COVER
                            	//				     	10:SOLID_XOR
                            	//				     	11:DOTTED_XOR
                            	//
                            	//		Bit2:	Pixel Toggle
                            	//						0:COVER(black)(default)
                            	//						1:ERASE(white)
                            	//
                            	//					(Toggle Bit for Dotted Line Mode)
                            	//					IF bit3=1, that is dotted mode
                            	//					then bit2 will be toggled between pixels
                            	//					IF bit3=0 then no toggle occured
                            	
                            	//		Bit1:	(unused)
                            	//		Bit0:	Swapping Flag for LineTo
                            	//		@
                            	
                            	//X0: 1 byte x-coordinate of current point (CP).
                            	//Y0: 1 byte y-coordinate of CP.	
                            	.external		R_GraphicMode
                            	.external		_x0
                            	.external		_y0
                            	///////////////////////////////////////////////////////////////////
                            	//Function Name: FG_InitGraphic
                            	//Parameters:
                            	//Description: Initializing LCD graphics parameters
                            	//Destroy:r1,r2,f3
                            	//Memory Modified:
                            	//Usage: FG_InitGraphic()
                            	//Example:
                            	//	FG_InitGraphic()
                            	///////////////////////////////////////////////////////////////////
                            	.public		_FG_InitGraphic
                            	_FG_InitGraphic:		.proc
0000B55D 40 F0 32 E9        			call	_Init_IO		//Initial i/o
0000B55F 40 F0 4A E7        			call	_Init_LCD_501	//Initial SPLC501
0000B561 40 92              			r1=0x00
0000B562 19 D3 01 02        			[R_GraphicMode_temp]=r1
0000B564 19 D3 02 02        			[sign]=r1
0000B566 19 D3 45 02        			[_x0]=r1
0000B568 19 D3 46 02        			[_y0]=r1
0000B56A 90 9A              			retf
                            			.endp
                            			
                            	///////////////////////////////////////////////////////////////////
                            	//Function Name: FG_ClearScreen
                            	//Parameters: DG_CLS_ERASE(default), DG_CLS_FILL
                            	//Description: Clear LCD screen with 0 or 1.
                            	//Destroy: r1,r2,r3,r4
                            	//Memory Modified: None
                            	//Usage: 	FG_ClearScreen(short arg)
                            	//Example:
                            	//	FG_ClearScreen()
                            	//	FG_ClearScreen(DG_CLS_FILL)
                            	///////////////////////////////////////////////////////////////////
                            	.public		_FG_ClearScreen
                            	_FG_ClearScreen:		.proc
0000B56B 88 DA              			PUSH BP,BP TO [SP]
0000B56C 00 93              			r1=sp
0000B56D 05 95              			r2=bp
0000B56E 01 25              			r2-=r1
0000B56F 44 44              			cmp	r2,0x04
0000B570 06 5E              			je	clearscreen
0000B571 00 9B              			bp=sp
0000B572 44 0A              			bp+=0x04
0000B573 C5 92              			r1=[bp]
0000B574 40 42              			cmp	r1,0x00
0000B575 01 5E              			je	clearscreen
0000B576 02 EE              			jmp	fillscreen
                            	clearscreen:
0000B577 40 96              			r3=0x0000
0000B578 02 EE              			jmp	fillaction
                            	fillscreen:		
0000B579 0B 97 00 FF        			r3=0xff00
                            	fillaction:
0000B57B 40 F0 9D E8        			call	F_Fill_All_LCD_Value	
0000B57D 88 98              			pop	bp,bp from	[sp]
0000B57E 90 9A              			retf
                            			.endp
                            	///////////////////////////////////////////////////////////////////		
                            	//Function Name:	FG_GetBMPMode
                            	//				FG_GetLineStyle
                            	//				FG_GetRectStyle
                            	//				FG_GetCircleStyle
                            	//				FG_GetEllipseStyle
                            	//				FG_GetCharMode
                            	//Description: Get current graphic mode.
                            	//Destroy: r1
                            	//Memory Modified: 

⌨️ 快捷键说明

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