LCD1602液晶显示设计

内容:
(1) LCD1602液晶显示屏:单片机系统一般采用字符型液晶显示模块。因LCD显示面板较为脆弱,厂商已将LCD控制器、驱动器、RAM 、ROM和液晶显示器用PCB连接到一起,称为液晶显示模块(LCD Module,LCM)。单片机只需向LCD模块写入相应命令和数据就可显示需要的内容。
LCD 1602工作电压4.5~5.5V,典型5V,工作电流2mA。标准的14引脚(无背光)或16个引脚(有背光)的外形及引脚分布,如图。

(2)工作方式:单片机控制LCD1602显示字符,只需将待显示字符的ASCII码写入显示数据存储器(DDRAM),内部控制电路就可将字符在显示器上显示出来。
模块内有80字节数据显示RAM(DDRAM),除显示192个字符(5×7点阵)的字符库ROM(CGROM)外,还有64字节自定义字符RAM(CGRAM),用户可自行定义8个5×7点阵字符。

#include 
#include 			//包含_nop_( )空函数指令的头文件
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit RS=P2^0; 					//位变量开发板6 平时0
sbit RW=P2^1;					//位变量开发板5	平时1
sbit E=P2^2; 					//位变量开发板7	平时2
void lcd_initial(void);			//LCD初始化函数
void check_busy(void); 				//检查忙标志函数
void write_command(uchar com); 			//写命令函数
void write_data(uchar dat);			//写数据函数
void string(uchar ad ,uchar *s);
void lcd_test(void);
void delay(uint);
 
void main(void) 			//主函数
{
   lcd_initial( );			//调用对LCD初始化函数
   while(1)
   {
		string(0x80,"chengdu neusoft");		//显示的第1行字符串,从左边第5个字符开始显示 
		string(0xC2,"CSDN");	//显示的第2行字符串,,从左边第2个字符开始显示	
		delay(300); 			//延时
		write_command(0x01);		//写入清屏命令
		delay(300);			//延时
	}
}
void delay(uint j)			//1ms延时子程序
{
	uchar i=250;
	for(;j>0;j--)
   {
		while(--i);
		i=249;
		while(--i);
		i=250;
	}
}

void check_busy(void)	    //检查忙标志函数
{
	uchar dt;
	do
	{
		dt=0xff;
		E=0;
		RS=0;	
		RW=1;
        E=1;
        dt=out;
    }while(dt&0x80);
    E=0;
}
void write_command(uchar com) 	//写命令函数
{
check_busy();
E=0;
RS=0;
RW=0;
out=com;
E=1;
_nop_( );
E=0;
delay(1);
}

void write_data(uchar dat)		 //写数据函数
{       check_busy();
	E=0;
	RS=1;
	RW=0;
	out=dat;
	E=1;
	_nop_();
	E=0;
	delay(1);	
}

void lcd_initial(void)          //液晶显示器初始化函数
{
    write_command(0x38);	       //写入命令0x38:8位两行显示,5×7点阵字符
    write_command(0x0C);	       //写入命令0x0C:开整体显示,光标关,无黑块
    write_command(0x06);	       //写入命令0x06:光标右移
    write_command(0x01); 	       //写入命令0x01:清屏
    delay(1);
}

void string(uchar ad,uchar *s)	//输出显示字符串的函数
{
    write_command(ad);
    while(*s>0)
   {
       write_data(*s++);		//输出字符串,且指针增1
       delay(100);
   }
}

图例:
LCD1602液晶显示设计_第1张图片

你可能感兴趣的:(嵌入式)