码迷,mamicode.com
首页 > 其他好文 > 详细

单片机第14课:LCD使用

时间:2014-10-19 23:26:29      阅读:622      评论:0      收藏:0      [点我收藏+]

标签:单片机   lcd   

下面是LCD的电路,其中RD接P2^6;LCDE接P2^7,WR接P2^5。

bubuko.com,布布扣

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char

sbit lcd_E = P2^7;
sbit lcd_RS = P2^6;
sbit lcd_WR = P2^5;

uchar code table_show1[] = "Hello!";
uchar code table_show2[] = "I am ChenLu!";

void delay(uint time);
void init_lcd();
void write_lcd_command(uchar comm);
void write_lcd_data(uchar lcdData);

void main()
{
	int flag1,flag2,flag3;
	init_lcd();
	//写入缓存区
	write_lcd_command(0x80+0x10);
	for(flag1=0; flag1<6; flag1++)
	{
		write_lcd_data(table_show1[flag1]);
	}
	//写入缓存区
	write_lcd_command(0x80+0x50);
	for(flag2=0; flag2<12; flag2++)
	{
		write_lcd_data(table_show2[flag2]);
	}
	//整个屏幕向左移动至最左端
	for(flag3=0; flag3<16; flag3++)
	{
		write_lcd_command(0x18);	
	}
	//停在这里,避免反复刷新
	while(1);
}

//初始化LCD
void init_lcd()
{
	//初始化LCD的属性
	//显示模式
	write_lcd_command(0x38);
	//光标
	write_lcd_command(0x0f);
	write_lcd_command(0x06);
	//清屏
	write_lcd_command(0x01);
	//数据指针
	write_lcd_command(0x80);

}

//LCD写命令
void write_lcd_command(uchar comm)
{
	delay(5);
	//RS=L  RW = L  E=H
	lcd_RS = 0;
	delay(5);
	lcd_WR = 0;
	//写命令
	P0 = comm;
	delay(5);	
	lcd_E = 1;
	delay(5);
	lcd_E = 0;
	
}

//LCD写数据
void write_lcd_data(uchar lcdData)
{
	delay(5);
	//RS=H  RW = L  E=H
	lcd_RS = 1;
	delay(5);
	lcd_WR = 0;
	//写数据
	P0 = lcdData;
	delay(5);	
	lcd_E = 1;
	delay(5);
	lcd_E = 0;
	
}

//延时函数
void delay(uint time)
{
	uint i,j;
	for(i=100; i>time; i--)
		for(j=0; j<100; j++);
}
使用LCD主要是参考LCD数据手册,基本的用法就是上面的程序,关键是要注意时序问题。

bubuko.com,布布扣

读者可以在网上下载1602液晶资料,然后对着本程序琢磨。

注意:写命令---可以理解为设置显示屏的属性;写数据---可以理解成为你要让显示器显示的数据。

单片机第14课:LCD使用

标签:单片机   lcd   

原文地址:http://blog.csdn.net/kotei_88_luluc_66/article/details/40269203

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!