📄 lcd1602.h
字号:
/****************************************Copyright (c)**************************************************
** 中国矿业大学理学院
** 物理系04级
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: lcd1602.h
**创 建 人: 卢家顺
**最后修改日期: 2007年8月24日
**描 述: lcd1602驱动程序,用KEILC编译
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 卢家顺
** 版 本: 1.0
** 日 期: 2007年8月24日
** 描 述: 原始版本
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版 本:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef _LCD1602_ljs
#define _LCD1602_ljs
#ifndef uchar
#define uchar unsigned char
#endif
#ifndef uint
#define uint unsigned int
#endif
#include <absacc.h>
/* *********************************************************************************************************
* 与lcd1602体系结构相关的一些定义
**********************************************************************************************************/
#define LCD_CMD_WR XBYTE[0x00]
#define LCD_DATA_WR XBYTE[0x01]
#define LCD_BUSY_RD XBYTE[0x02]
#define LCD_DATA_RD XBYTE[0x03]
#define LCD_LINE1 0X80
#define LCD_LINE2 0XC0
#define LCD_CLS 1
#define LCD_HOME 2
#define LCD_SETMODE 4
#define LCD_SETVISIBLE 8
#define LCD_SHIFT 16
#define LCD_SETFUNCTION 32
#define LCD_SETCGADDR 64
#define LCD_SETDDADDR 128
#define LCD_BUSY() while((LCD_BUSY_RD&0x80)!=0);
#define LCD_CHAR(dat) LCD_BUSY();LCD_DATA_WR=dat;
#define LCD_CMD(cmd) LCD_BUSY();LCD_CMD_WR=cmd;
/*********************************************************************************************************
** 函数名称: lcd_str
** 功能描述: 将字符串写入lcd1602
**
** 输 入: x :字符从第x列输出
y :字符从第y行输出
str:输出字符
** 输 出 : 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 卢家顺
** 日 期: 2007年8月24日
**-------------------------------------------------------------------------------------------------------
** 修 改:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void lcd_str(uchar x,uchar y,uchar str[])
{
if(y==1)
{
LCD_CMD(LCD_LINE1+x-1);
while((*str)!='\0')
{
LCD_CHAR(*str++);
}
}
else
{
LCD_CMD(LCD_LINE2+x-1);
while((*str)!='\0')
{
LCD_CHAR(*str++);
}
}
}
/*********************************************************************************************************
** 函数名称: _lcd_init
** 功能描述: lcd1602初始化
**
** 输 入: 无
** 输 出 : 无
** 全局变量: 无
** 调用模块: 无
**
** 作 者: 卢家顺
** 日 期: 2007年8月24日
**-------------------------------------------------------------------------------------------------------
** 修 改:
** 日 期:
**-------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void lcd_init()
{
LCD_CMD(LCD_SETFUNCTION+0X18);
LCD_CMD(LCD_SETVISIBLE+4);
LCD_CMD(LCD_SETMODE+2);
}
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -