资讯详情

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

/*************************************************************************** *** 功能:1602的使用 *** 实验内容:LCD显示本站网址和电话 *** 连接方法: 调节1602电位器,使LCD对比度最好,装1602时不要装错了,否测会烧掉。 ***************************************************************************/ #include<pic.h>

__CFIG(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() { AON1 = 0X07; //设置A口为普通I/O口 RA1=1; SA = 0X00; //设置A口为输出 TR = 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显示设置 * 入口参数: * 出口参数: * 说 明: * 备 注: ****************************************************************************/ void lcd_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++); }

-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台