📄 lcd.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 + -