新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机驱动LCD1602的电路图+程序

51单片机驱动LCD1602的电路图+程序

作者: 时间:2016-11-30 来源:网络 收藏


如网页上出现格式错乱可从此处本例的完整源码:http://www.51hei.com/f/1602430.rar上图是仿真效果 显示2行字符.

本文引用地址://m.amcfsurvey.com/article/201611/323943.htm

#include
#define uchar unsigned char
/*****************************************
电路连接

P1------DB0~DB7
P2.0------RS
P2.1------RW
P2.2------E

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

#define LCD_DB P1
sbit LCD_RS=P2^0;
sbit LCD_RW=P2^1;
sbit LCD_E=P2^2;
uchar code ttt[]="ShanXi Dianzi Kejixueyuan";//25
uchar code kkk[]="Dianzi GonGcheng Xueyun";//23
/******定义函数****************/

#define uchar unsigned char
#define uint unsigned int
void LCD_init(void);//声明初始化函数
void LCD_write_command(uchar command);//写指令函数
void LCD_write_data(uchar dat);//写数据函数
void LCD_disp_char(uchar x,uchar y,uchar dat);//在某个屏幕位置上显示一

//个字符,X(0-16),y(1-2)

//void LCD_check_busy(void);//检查忙函数。我没用到此函数,因为通过率极低。

void delay_n40us(uint n);//延时函数

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

//*******初始化函数***************

void LCD_init(void)

{

LCD_write_command(0x38);//设置8位格式,2行,5x7

LCD_write_command(0x0c);//整体显示,关光标,不闪烁

LCD_write_command(0x06);//设定输入方式,增量不移位--------------

LCD_write_command(0x01);//清除屏幕显示----------------

delay_n40us(100);//实践证明,我的LCD1602上,用for 循环200 次就能可靠完成清屏指令。

}

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

//********写指令函数***********设置先向1602写入的数据为地址*

void LCD_write_command(uchar dat)

{

LCD_DB=dat;

LCD_RS=0;//指令

LCD_RW=0;//写入

LCD_E=1;//允许

LCD_E=0;//产生下降沿

delay_n40us(1);//实践证明,我的LCD1602 上,用for 循环1 次就能完成普通写指令。

}


上一页 1 2 下一页

关键词:51单片机LCD160

评论


技术专区

关闭