开篇:润墨网以专业的文秘视角,为您筛选了一篇基于MCS—51单片机的液晶1602显示设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘 要:基于mcs-51单片机的液晶1602显示的设计,利用单片机的I/O口外接液晶1602,通过软件模拟的方法,从而使得液晶1602显示所需的字符。
关键词:单片机 液晶1602
1、引言
单片机是一种可通过编程控制的微处理器,单片机芯片自身不能单独运用于某项工程或者产品上,它必须要依靠数字器件或模拟器件的协调才可以发挥其自身的强大功能,所以在学习单片机知识的同时不能仅学习单片机的一种芯片,还要循序渐进地学习它的数字及模拟芯片知识,还要学习常用到的电路的设计与调试方法等。本文介绍如何点亮液晶1602,实现显示字符的效果。
2、硬件组成
液晶1602显示系统实际是由51单片机最小系统、液晶1602构成,如下图1所示。
图1 电路图
3、程序设计
#include
#define uint unsigned int
#define uchar unsigned char
#define LCD_PORT P0//1602数据端口
sbit rs=P3^5;//4
sbit rw=P3^6;//5
sbit e=P3^7;//6
void write_add(uchar add)//写入地址
{
uint x=300;
rw=0;
rs=0;// 表示地址
LCD_PORT=add;
e=1;
while(x--);
e=0;
}
void write_data(uchar d)//写入显示数据
{
uint x=300;
rw=0;//表示写入液晶
rs=1; //表示数据
LCD_PORT=d;
e=1;
while(x--)
e=0;
}
void LCD_drive(bit x,uchar d)
{
if(x==1)
{
write_data(d);
}
else
{
write_add(d);
}
}
void LCD1602_init()
{
uint x=10000;
LCD_drive(0,0X38);//显示模式设置,8位接口,5*7,2行
LCD_drive(0,0X0f);//显示开、光标开和闪
LCD_drive(0,0X06);//地址自动加1
LCD_drive(0,0X01);//清屏
while(x--);
}
void show_char(uchar add,uchar ch)//在add显示ch
{
LCD_drive(0,add); //写入显示的地址
LCD_drive(1,ch); //写入显示的数据
}
void main()
{
e=0;
LCD1602_init();
//show_char(4,'A');
show_char(0X80,'A'); //在0x84处显示A
show_char(0Xc0,'K'); //在0xc4处显示K
while(1)
{
}
}
4、结束
当上述程序编写好之后,我们需要使用编译软件对其编译,得到单片机能识别的二进制代码,然后再用编程器将二进制代码烧写到单片机中,就能看到液晶1602显示,第一排显示字符”“A”,第二排显示字符“K”。
参考文献
[1] 谭浩强.C程序设计,北京:清华大学出版社,1991
[2] 郭天祥.51单片机C语言教程,北京:电子工业出版社,2010
[3] 余锡存等.单片机原理及接口技术,西安:西安电子科技大学出版社,2000