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

📄 main.lst

📁 液晶控制器S6B0724的控制。mplab 7.60+pic ccs 4.057
💻 LST
📖 第 1 页 / 共 4 页
字号:
.................... // 注    意:	本函数具有自动换行功能  
.................... 				Flag=0  正常显示 
.................... 				Flag=1  反白显示 
.................... ***************************************************/ 
.................... void Display_En_16X8(int8 page,int8 column,int8 len,int8 *En,int1 Flag) 
.................... { 
.................... 	int8 i,j,count; 
.................... //	count=column;  //对列进行计数,若大于本行的最大列,则转移到下一行。 
.................... 	 
.................... 	page=page%PAGES; //防止输入的行超过0-7 
.................... 	column=column%COLUMNS; //防止输入的列超过0-131 
.................... 	   
.................... 	for(i=0;i<len;i++) 
.................... 	{ 
.................... 		if(column+8>COLUMNS-1 && page<PAGES-2)  //如果本行已经不够显示此字符,且行小于在0-5,则转移到下一行。 
.................... 		{  
.................... 			page+=2; 
....................         	LCD_SelPage(page);    // 
.................... 			LCD_SelColumn(0); 
.................... 			column=0; 
.................... 		} 
....................  
.................... 		LCD_SelPage(page);    
....................   	    LCD_SelColumn(column); 
.................... 		 
.................... 		for(j=0;j<8;j++)   //上半个字符 
.................... 		{ 
.................... 			if(Flag)    
.................... 			LCD_WriteDat(~En[i*16+j]);//反白 
.................... 			else	 
.................... 			LCD_WriteDat(En[i*16+j]); 
.................... 		} 
.................... 		 
.................... 		page++; 
.................... 		LCD_SelPage(page);    
....................   	    LCD_SelColumn(column); 
.................... 		for(j=8;j<16;j++) //下半个字符 
.................... 		{ 
.................... 			if(Flag)   
.................... 			LCD_WriteDat(~En[i*16+j]);//反白 
.................... 			else 
.................... 			LCD_WriteDat(En[i*16+j]); 
.................... 		} 
....................  
.................... 		page--; 
....................  
.................... 	//	count=count+8;    //列数监视 
.................... 		column+=8; 
.................... 	} 
.................... } 
.................... /*************************************************** 
.................... // 函数原型:    Display_Chn_16X16(int8,int8,int8,int1) 
.................... // 入口参数:    page 起始行,column 起始列,len 字符个数,Flag 反白显示。 
.................... // 出口参数:  void 
.................... // 功    能:    显示16*16汉字。 
.................... // 最后修改:    2008.09.29 
.................... // 注    意:	本函数具有自动换行功能  
.................... 				Flag=0  正常显示 
.................... 				Flag=1  反白显示 
.................... ***************************************************/ 
.................... void Display_Chn_16X16(int8 page,int8 column,int8 len,int8 *En,int1 Flag) 
.................... { 
.................... 	int8 i,j,count; 
.................... 	page=page%PAGES; //防止输入的行超过0-7 
.................... 	column=column%COLUMNS; //防止输入的列超过0-131 
.................... 	   
.................... 	for(i=0;i<len;i++) 
.................... 	{ 
.................... 		if(column+16>COLUMNS-1 && page<PAGES-2)  //如果本行已经不够显示此字符,且行小于在0-5,则转移到下一行。 
.................... 		{  
.................... 			page+=2; 
....................         	LCD_SelPage(page);    // 
.................... 			LCD_SelColumn(0); 
.................... 			column=0; 
.................... 		} 
....................  
.................... 		LCD_SelPage(page);    
....................   	    LCD_SelColumn(column); 
.................... 		 
.................... 		for(j=0;j<16;j++)   //上半个字符 
.................... 		{ 
.................... 			if(Flag)    
.................... 			LCD_WriteDat(~En[i*32+j]);//反白 
.................... 			else	 
.................... 			LCD_WriteDat(En[i*32+j]); 
.................... 		} 
.................... 		 
.................... 		page++; 
.................... 		LCD_SelPage(page);    
....................   	    LCD_SelColumn(column); 
.................... 		for(j=16;j<32;j++) //下半个字符 
.................... 		{ 
.................... 			if(Flag)   
.................... 			LCD_WriteDat(~En[i*32+j]);//反白 
.................... 			else 
.................... 			LCD_WriteDat(En[i*32+j]); 
.................... 		} 
....................  
.................... 		page--; 
....................  
.................... 	//	count=count+8;    //列数监视 
.................... 		column+=16; 
.................... 	} 
.................... } 
.................... /*************************************************** 
.................... // 函数原型:    Display_Chn_16X16(int8,int8,int8,int1) 
.................... // 入口参数:    page 起始行,column 起始列,len 字符个数,Flag 反白显示。 
.................... // 出口参数:  void 
.................... // 功    能:    显示16*16汉字。 
.................... // 最后修改:    2008.09.29 
.................... // 注    意:	本函数具有自动换行功能  
.................... 				Flag=0  正常显示 
.................... 				Flag=1  反白显示 
.................... ***************************************************/ 
.................... void Display_Chn_32X32(int8 page,int8 column,int8 len,int8 *En,int1 Flag) 
.................... { 
.................... 	 
.................... } 
....................  
.................... void Display_Bmp_126X64() 
.................... { 
.................... 	int8 i,j; 
.................... 	for(i=0;i<2;i++) 
*
0611:  CLRF   3B
0612:  MOVF   3B,W
0613:  SUBLW  01
0614:  BTFSS  03.0
0615:  GOTO   62D
.................... 	{ 
.................... 	    LCD_SelPage(i); 
0616:  MOVF   3B,W
0617:  MOVWF  3D
0618:  CALL   56F
.................... 		LCD_SelColumn(0); 
0619:  CLRF   3D
061A:  CALL   57E
.................... 		for(j=0;j<128;j++) 
061B:  CLRF   3C
061C:  MOVF   3C,W
061D:  SUBLW  7F
061E:  BTFSS  03.0
061F:  GOTO   62B
.................... 		{ 
.................... 			LCD_WriteDat(nBitmapDot1[i*128+j]); 
0620:  CLRF   20
0621:  BTFSC  3B.0
0622:  BSF    20.7
0623:  MOVF   20,W
0624:  ADDWF  3C,W
0625:  CALL   035
0626:  MOVWF  3F
0627:  MOVWF  40
0628:  CALL   5B5
.................... 		} 
0629:  INCF   3C,F
062A:  GOTO   61C
.................... 	} 
062B:  INCF   3B,F
062C:  GOTO   612
.................... 	for(i=2;i<4;i++) 
062D:  MOVLW  02
062E:  MOVWF  3B
062F:  MOVF   3B,W
0630:  SUBLW  03
0631:  BTFSS  03.0
0632:  GOTO   64A
.................... 	{ 
.................... 	    LCD_SelPage(i); 
0633:  MOVF   3B,W
0634:  MOVWF  3D
0635:  CALL   56F
.................... 		LCD_SelColumn(0); 
0636:  CLRF   3D
0637:  CALL   57E
.................... 		for(j=0;j<128;j++) 
0638:  CLRF   3C
0639:  MOVF   3C,W
063A:  SUBLW  7F
063B:  BTFSS  03.0
063C:  GOTO   648
.................... 		{ 
.................... 			LCD_WriteDat(nBitmapDot2[i*128+j]); 
063D:  CLRF   20
063E:  BTFSC  3B.0
063F:  BSF    20.7
0640:  MOVF   20,W
0641:  ADDWF  3C,W
0642:  CALL   13C
0643:  MOVWF  3F
0644:  MOVWF  40
0645:  CALL   5B5
.................... 		} 
0646:  INCF   3C,F
0647:  GOTO   639
.................... 	} 
0648:  INCF   3B,F
0649:  GOTO   62F
.................... 	for(i=4;i<6;i++) 
064A:  MOVLW  04
064B:  MOVWF  3B
064C:  MOVF   3B,W
064D:  SUBLW  05
064E:  BTFSS  03.0
064F:  GOTO   667
.................... 	{ 
.................... 	    LCD_SelPage(i); 
0650:  MOVF   3B,W
0651:  MOVWF  3D
0652:  CALL   56F
.................... 		LCD_SelColumn(0); 
0653:  CLRF   3D
0654:  CALL   57E
.................... 		for(j=0;j<128;j++) 
0655:  CLRF   3C
0656:  MOVF   3C,W
0657:  SUBLW  7F
0658:  BTFSS  03.0
0659:  GOTO   665
.................... 		{ 
.................... 			LCD_WriteDat(nBitmapDot3[i*128+j]); 
065A:  CLRF   20
065B:  BTFSC  3B.0
065C:  BSF    20.7
065D:  MOVF   20,W
065E:  ADDWF  3C,W
065F:  CALL   243
0660:  MOVWF  3F
0661:  MOVWF  40
0662:  CALL   5B5
.................... 		} 
0663:  INCF   3C,F
0664:  GOTO   656
.................... 	} 
0665:  INCF   3B,F
0666:  GOTO   64C
.................... 	for(i=6;i<8;i++) 
0667:  MOVLW  06
0668:  MOVWF  3B
0669:  MOVF   3B,W
066A:  SUBLW  07
066B:  BTFSS  03.0
066C:  GOTO   684
.................... 	{ 
.................... 	    LCD_SelPage(i); 
066D:  MOVF   3B,W
066E:  MOVWF  3D
066F:  CALL   56F
.................... 		LCD_SelColumn(0); 
0670:  CLRF   3D
0671:  CALL   57E
.................... 		for(j=0;j<128;j++) 
0672:  CLRF   3C
0673:  MOVF   3C,W
0674:  SUBLW  7F
0675:  BTFSS  03.0
0676:  GOTO   682
.................... 		{ 
.................... 			LCD_WriteDat(nBitmapDot4[i*128+j]); 
0677:  CLRF   20
0678:  BTFSC  3B.0
0679:  BSF    20.7
067A:  MOVF   20,W
067B:  ADDWF  3C,W
067C:  CALL   34A
067D:  MOVWF  3F
067E:  MOVWF  40
067F:  CALL   5B5
.................... 		} 
0680:  INCF   3C,F
0681:  GOTO   673
.................... 	} 
0682:  INCF   3B,F
0683:  GOTO   669
.................... } 
0684:  RETLW  00
.................... void LCD_Init() 
.................... { 
.................... 	 
.................... 	output_low(PIN_B6);  //8080 
*
04E8:  BCF    06.6
.................... 	output_low(PIN_B5);  //CS1=0; 
04E9:  BCF    06.5
.................... 	 
.................... 	//液晶复位 
.................... 	output_low(PIN_B1); 
04EA:  BCF    06.1
.................... 	delay_ms(10); 
04EB:  MOVLW  0A
04EC:  MOVWF  3B
04ED:  CALL   4D4
.................... 	output_high(PIN_B1); 
04EE:  BSF    06.1
.................... 	delay_us(1); 
04EF:  NOP
04F0:  CLRF   2E
04F1:  BTFSC  0B.7
04F2:  BSF    2E.7
04F3:  BCF    0B.7
....................  
.................... 	//软复位 
.................... 	LCD_WriteCmd(0xe2);   
04F4:  MOVLW  E2
04F5:  MOVWF  41
04F6:  CALL   451
04F7:  BTFSC  2E.7
04F8:  BSF    0B.7
.................... 	delay_ms(10); 
04F9:  MOVLW  0A
04FA:  MOVWF  3B
04FB:  CALL   4D4
04FC:  CLRF   2E
04FD:  BTFSC  0B.7
04FE:  BSF    2E.7
04FF:  BCF    0B.7
....................  
.................... 	//设置ADC  seg131-seg0 
.................... 	LCD_WriteCmd(0xa1); 
0500:  MOVLW  A1
0501:  MOVWF  41
0502:  CALL   451
0503:  BTFSC  2E.7
0504:  BSF    0B.7
0505:  CLRF   2E
0506:  BTFSC  0B.7
0507:  BSF    2E.7
0508:  BCF    0B.7
....................     //设置SHL  com0-com64 
.................... 	LCD_WriteCmd(0xc8);  
0509:  MOVLW  C8
050A:  MOVWF  41
050B:  CALL   451
050C:  BTFSC  2E.7
050D:  BSF    0B.7
050E:  CLRF   2E
050F:  BTFSC  0B.7
0510:  BSF    2E.7
0511:  BCF    0B.7
.................... 	//设置Bias 1/9 
.................... 	LCD_WriteCmd(0xa2); 
0512:  MOVLW  A2
0513:  MOVWF  41
0514:  CALL   451
0515:  BTFSC  2E.7
0516:  BSF    0B.7
0517:  CLRF   2E
0518:  BTFSC  0B.7
0519:  BSF    2E.7
051A:  BCF    0B.7
.................... 	//Voltage Converter ON  
.................... 	LCD_WriteCmd(0x2c); 
051B:  MOVLW  2C
051C:  MOVWF  41
051D:  CALL   451
051E:  BTFSC  2E.7
051F:  BSF    0B.7
.................... 	delay_ms(40); 
0520:  MOVLW  28
0521:  MOVWF  3B

⌨️ 快捷键说明

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