您的位置 首页 主动

PIC单片机驱动LCD1602液晶显示字符串程序

******************************************************************************功能:LCD1602的使用***实验内容:L

/***************************************************************************

*** 功用:LCD1602的运用
*** 试验内容:LCD显现本站网址和电话
***开发板衔接办法: 调理1602电位器,使LCD对比度最好,装1602时不要装错了,否测会烧掉。
***************************************************************************/
#include

__CONFIG(0xFF32);
//芯片装备字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振动

//LCD控制线宏界说
#define rs RA5
#define rw RA4
#define e RA3

//显现公司web地址
char web[ ] = {“***.*********.***”};

//显现公司电话号码
char tel[ ] = {” 110 ” };

void init(); //声明I/O口初始化函数
void lcd_init(); //声明LCD初始化函数
void write(char x); //声明显现1字节数据函数
void lcd_enable(); //声明LCD显现设置函数
void delay(); //声明延时函数
void writelcd(char *pt); //声明LCD写字符串函数

/****************************************************************************
* 名 称:main()
* 功 能:主函数
* 进口参数:
* 出口参数:
* 说 明:
* 备 注:
****************************************************************************/
void main()
{
init(); //调用I/O口初始化函数
lcd_init(); //调用LCD初始化函数
while (1)
{
writelcd(web); //调用显现公司web地址函数
PORTD = 0XC0; //设置第2行显现地址
lcd_enable(); //调用LCD显现设置函数
writelcd(tel); //调用显现公司tel函数
}
}

/****************************************************************************
* 名 称:init()
* 功 能:I/O口初始化
* 进口参数:
* 出口参数:
* 说 明:
* 备 注:
****************************************************************************/
void init()
{
ADCON1 = 0X07; //设置A口为一般I/O口
RA1=1;
TRISA = 0X00; //设置A口为输出
TRISD = 0X00; //设置D口为输出
}

/****************************************************************************
* 名 称:lcd_init()
* 功 能:LCD初始化
* 进口参数:
* 出口参数:
* 说 明:
* 备 注:
****************************************************************************/
void lcd_init()
{
PORTD = 0X1; //铲除显现
lcd_enable();
PORTD = 0X38; //8位2行5*7点阵
lcd_enable();
PORTD = 0X0e; //显现开,光标开,闪耀
lcd_enable();
PORTD = 0X06; //文字不动,光标右移
lcd_enable();
PORTD = 0X80; //公司web显现地址
lcd_enable();
}

/****************************************************************************
* 名 称:write()
* 功 能:写一个字节数据到LCD
* 进口参数:char x 字符
* 出口参数:
* 说 明:
* 备 注:
****************************************************************************/
void write(char x)
{
PORTD = x; //待显现数据送PORTD口
rs = 1; //该字节数据为数据,而不是指令
rw = 0; //此次操作为写,而不是读
e = 0; //拉低使能信号
delay(); //坚持使能信号为低一段时间
e = 1; //拉高使能信号,树立LCD操作所需求的上升沿
}

/****************************************************************************
* 名 称:lcd_enable()
* 功 能:LCD显现设置
* 进口参数:
* 出口参数:
* 说 明:
* 备 注:
****************************************************************************/
voidlcd_enable()
{
rs = 0; //该字节数据为指令,而不是数据
rw = 0; //此次操作为写,而不是读
e = 0; //拉低使能信号
delay(); //坚持使能信号为低一段时间
e = 1; //拉高使能信号,树立LCD操作所需求的上升沿
}

/****************************************************************************
* 名 称:delay()
* 功 能:延时
* 进口参数:
* 出口参数:
* 说 明:
* 备 注:
****************************************************************************/
void delay()
{
int i;
for (i = 0;i < 5000;i++);
}

/****************************************************************************
* 名 称: writelcd()
* 功 能: 在LCD上显现字符串
* 进口参数:char *pt 字符串的首地址
* 出口参数:
* 说 明:
* 备 注:
****************************************************************************/
void writelcd(char *pt)
{
while(*pt)
write(*pt++);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/254103.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部