项目11—LCD1602的显示

1602LCD是指显示的内容16×2,即最多只能显示32个字符。

5X7点阵可以看做5行7列等间距分布的led灯,每一个灯相当于一个像素点,你要表达的字母或者数字都是由这些像素点组成的。要显示字母数字或者图形只需控制灯的亮灭就可以了。

一般1602一共有16位引脚。(引脚作用如下)

明白了引脚后,就可以将引脚链接到单片机用单片机I\O口来控制每一个引脚来让1602显示字符。编程用到的主要管脚不过三个,分别为:RS(数据命令选择端),R/W(读写选择端),E(使能信号);编程便主要围绕这三个管脚展开按照时序进行初始化,写命令,写数据。基本操作如下:
(1) 读状态:输入:RS=L, RW=H,E=H 输出:D0-D7=状态字。
(2) 写指令:输入:RS=L, RW=L,D0-D7=指令码,E=H,输出:无。
(3) 读数据:输入:RS=H, RW=H,E=H 输出:D0~D7=数据。
(4) 写数据:输入:RS=L,RW=H,D0-D7=数据,E=高脉冲,输出:无。
 

如我们要写第一行HELLO WORLD,第二行1234.就可以这样写:

主函数为:

#include<reg51.h>
#include<lcd1602.c>
void main(void)
{
	lcd1602_init();
	lcd1602_clear();
	while(1)
	{
		goto_xy(1,0);
		display_string("HELLO WORLD");
		goto_xy(2,0);
		display_num(12);
		display_num(34);
	}
}					

 LCD1602.C为:

#define uchar unsigned char 
#define uint  unsigned int
sbit RS = P2^4;//数据/命令	 RS =0 命令,RS = 1 数据
sbit RW = P2^5;//读/写		 read / write 读 = 1或者写 = 0
sbit E  = P2^6;//使能		 enable 使能 =0禁止, = 1 允许
uchar i;
void delay(unsigned int x)
{
	while(x--);
}
void write_command(uchar command)	//写命令
{
	RW = 0;
	RS = 0;
	P0 = command;
	E = 1;
	delay(100);
	E = 0;
	RW = 1;
}
void write_data(uchar date)	 //写数据
{
	RW = 0;
	RS = 1;
	E = 1;
	P0 = date;
	delay(100);
	E = 0;
	RW = 1;
}
void lcd1602_init(void)
{
	write_command(0x38);//显示两行,5*7
	write_command(0x0f);//开显示,有光标	
	write_command(0x0c);//开显示,无光标	
	write_command(0x06);//光标右移
}
void lcd1602_clear(void)
{
	write_command(0x01);
	write_command(0x02);//光标复位
}									 
void display_string(uchar *p)  //显示字符串的
{
	while(*p)
	{
		write_data(*p);
		p++;	
	}
}
void display_num(uchar x) //显示数字的
{
//双数字 
	write_data((x / 10) + 0x30);
	write_data((x % 10) + 0x30);
//单数字
//	write_data(x + 0x30);
}
void goto_xy(uchar x,uchar y)
{
	if(x == 1)
	write_command(0x80 + y);
	if(x == 2)
	write_command(0x80 + 0x40 + y);
}

即如图所示:

 仿真图如下:

仿真结果如图:

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单旦羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值