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

📄 lcd.h

📁 基于AT89S51的开发
💻 H
字号:

  文件名: lcd.h
  描  述: TS12864A3液晶驱动程序(s51)
  日  期: 8/01/2006 	
 
  占用资源:
  	  1. P1
  	  2.    
  	  
  函数声明清单:  
      1. void InitLCD(void);				
      2. bool SendToLCD(uchar dataType,uchar val);        
*******************************************************************************/
#ifndef _LCD_H_
#define _LCD_H_

#include "main.h"

//////////////////////////////////////////////////////////////////////
#define DAT  0xfa //E=1,RW=0,RS=1
#define CMD  0xf8 //E=1,RW=0,RS=0
#define INFO 0xfc //E=1,RW=1,RS=0

/*********************************************************************
 根据不同型号液晶对下列参数进行设置(当液晶型号为TS12864A时,设置如下)
*********************************************************************/
#define FUNCTION        0x30      	 	// Function setting, 8 bit data,basic instruction.
#define DISPLAY_ON_OFF  0x0C       		// Dispay on,0x0E cursor-->on; 0x0C-->off
#define ENTRY_MODE      0x14       		// Cursor move by right
 
#define  DISP_ON    0x3F
#define  DISP_OFF   0x3E 
 

#define HARDWARE_RST  1       // if you want to reset LCD by hardware,set this to 1


/*********************************************************************
 根据需要,使能下列函数:1-->Enable; 0-->Disable 
*********************************************************************/
#define 	DISP_STR_AT_ENB       	1
#define 	DISP_NUM_ENB          	1
#define 	DISP_NUM_AT_ENB       	1
#define 	DISP_NUM_SPACE_ENB    	0
#define 	DISP_NUM_SPACE_AT_ENB 	0
#define 	DISP_NUM_SHIFT_ENB    	0
#define 	DISP_NUM_SHIFT_AT_ENB 	0


/*********************************************************************
  根据需要,设置液晶IO口(串口设置)
  TS12864A上的 E  --> CLK
              RW --> SDA
              RS --> CS
*********************************************************************/
sbit  LCD_CS    = P1^7;   
sbit  LCD_SDA   = P1^6;
sbit  LCD_CLK   = P1^5;
sbit  LCD_PSB   = P1^3;	//PSB=0时为串行方式
sbit  LCD_RESET = P1^4;

/*********************************************************************
  函数名称: InitLCD()
  函数功能: 初始化液晶
  输入参数: 无
  输出参数: 无    
  返回值:   无
*********************************************************************/
 void InitLCD();    					
 bool SendToLCD(uchar dataType,uchar val) ;            
/*********************************************************************
  函数名称: DispStr()
  函数功能: 在当前位置显示字符串
  输入参数: *str	要显示的字符串的首地址			
  输出参数: 无    
  返回值:   无
*********************************************************************/   
void DispStr(const uchar *str);                    

/*********************************************************************
  函数名称: DispStrAt()
  函数功能: 在指定位置显示字符串
  输入参数: *str	要显示的字符串的首地址	
  			x  		水平方向坐标(0 <= x <= 7)
  			y  		垂直方向坐标(0 <= y <= 3)		
  输出参数: 无    
  返回值:   无
*********************************************************************/   
void DispStrAt(const uchar *str, uchar x, uchar y);

/*********************************************************************
  函数名称: DispNum()
  函数功能: 在当前位置显示数字(向左对齐)
  输入参数: num		要显示的数字			
  输出参数: 无    
  返回值:   无
*********************************************************************/   
void DispNum(ulong num);                         

/*********************************************************************
  函数名称: DispNumAt()
  函数功能: 在指定位置显示数字 (向左对齐)
  输入参数: num		要显示的数字
  			x  		水平方向坐标(0 <= x <= 7)
  			y  		垂直方向坐标(0 <= y <= 3)		
  输出参数: 无    
  返回值:   无
*********************************************************************/   
void DispNumAt(ulong num, uchar x, uchar y);	

/*********************************************************************
  函数名称: DispNumSpace()
  函数功能: 在当前位置显示定长数字(向右对齐)
  输入参数: num		要显示的数字
  			len		要显示的数字的最大位数			
  输出参数: 无    
  返回值:   无
*********************************************************************/ 
void DispNumSpace(ulong num, uchar len);

/*********************************************************************
  函数名称: DispNumSpaceAt
  函数功能: 在指定位置显示定长数字(向右对齐)
  输入参数: num		要显示的数字
  			x  		水平方向坐标(0 <= x <= 7)
  			y  		垂直方向坐标(0 <= y <= 3)
  			len		要显示的数字的最大位数			
  输出参数: 无    
  返回值:   无
  使用说明: DispNumSpaceAt(6382, 0, 1, 6), 显示效果如下
            --------------------------------
            |                              |
            |  6382                        |
            |                              |
            |                              |
            --------------------------------
            与DispStr()配合使用效果如下:
            DispNumSpaceAt(6382, 0, 1, 6);
            DispStr("Hz");
            --------------------------------
            |                              |
            |  6382Hz                      |
            |                              |
            |                              |
            --------------------------------           
*********************************************************************/        
void DispNumSpaceAt(ulong num, uchar x, uchar  y, uchar len);

/*********************************************************************
  函数名称: DispNumShift()
  函数功能: 在当前位置显示带小数点的数字
  输入参数: num		要显示的数字
  			dotPos	小数点位置			
  输出参数: 无    
  返回值:   无
*********************************************************************/ 
void DispNumShift(ulong num, uchar dotPos);

/*********************************************************************
  函数名称: DispNumShiftAt()
  函数功能: 在指定位置显示带小数点的数字
  输入参数: num		要显示的数字
  			x  		水平方向坐标(0 <= x <= 7)
  			y  		垂直方向坐标(0 <= y <= 3)
  			dotPos	小数点位置			
  输出参数: 无    
  返回值:   无
  使用说明: 如要在LCM左上角显示 0.023, 则如下使用
            DispNumShiftAt(23, 0, 0, 3);
*********************************************************************/ 
void DispNumShiftAt(ulong num, uchar x, uchar  y, uchar dotPos);  

/*********************************************************************
  函数名称: GetCurAddr()
  函数功能: 读取当前地址
  输入参数: 无			
  输出参数: 无    
  返回值:   当前地址(值为0x80~0x90)
*********************************************************************/                                   
//uchar GetCurAddr();			

/*********************************************************************
  函数名称: GotoXY()
  函数功能: 设置当前地址
  输入参数: x  		水平方向坐标(0 <= x <= 7)
  			y  		垂直方向坐标(0 <= y <= 3)
  输出参数: 无    
  返回值:   无
*********************************************************************/
void GotoXY(uchar x, uchar y);

/*********************************************************************
  函数名称: EraseLCD()
  函数功能: 液晶清屏
  输入参数: 无			
  输出参数: 无    
  返回值:   无
*********************************************************************/
void EraseLCD();




#endif
/*********************************************************************
 End of files                                                
*********************************************************************/       

⌨️ 快捷键说明

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