⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 lcd 1602 实现简单的字符显示,共大家学习参考.
💻 C
字号:

/************************51单片机学习板*************************/
/************************************程序详解************************************/
//将1602液晶的1-16脚对应插上位于学习板左上的1602的插座的1-16脚,
//板上注释了第一脚的位置,位于最右边
//编译执行,下载程序,
//

#include <AT89X52.H>
#define uchar unsigned char
#define uint unsigned int
#define dat_delay 200
#define dat_port 	P0		//1602液晶数据接口,由跳线跳接
#define com_port 	P2		//1602液晶控制接口,由跳线跳接

sbit rs=com_port^0;			
sbit rw=com_port^1;
sbit lcden=com_port^2;

uchar table1[]="SIMPLE SN51A_1.1";
uchar table2[]="GOOD LUCK TO YOU";

void delay(uint x)
{
	uint a,b;
	for(a=x;a>0;a--)
		for(b=10;b>0;b--); 
}

void delay1(uint x)
{
	uint a,b;
	for(a=x;a>0;a--)
		for(b=600;b>0;b--); 
}

void write_com(uchar com)	////1602液晶控制函数
{

	rs=0;
	rw=0;
//	lcden=0;
	dat_port=com;
	delay(dat_delay );
	lcden=1;
	delay(dat_delay );
	lcden=0;
	
}

void write_date(uchar dat)	////1602液晶写数据函数
{

	rs=1;
	rw=0;
	dat_port=dat;
//	lcden=0;
	delay(dat_delay );
	lcden=1;
	delay(dat_delay );
	lcden=0;
	
}

void init1602()			//1602液晶初始化函数
{

	write_com(0x38);	//液晶显示方式设置
	delay(dat_delay );
//	write_com(0x0f);	//光标开 闪烁
	write_com(0x0c);	//光标不开 不闪烁
	delay(dat_delay );
	write_com(0x06);	//数据指针顺序设置
	delay(dat_delay );
	write_com(0x01);	//液晶屏幕清屏命令
	delay(dat_delay );	
}



void main()
{
	uchar a=0;
	init1602();		//初始化1602液晶
	//1602液晶显示器地址:第一行从0X80开始--0X81-0X82---...0X8F
	//					:第二行从0XC0开始--0XC1-0XC2---...0XCF

	write_com(0x80);//从第一行第一个字符显示"IMPLE SN51A_1.1"
	delay(dat_delay );//#define dat_delay 200
	for(a=0;a<16;a++)
	{
	write_date(table1[a]);
	delay(dat_delay );		
	}

	write_com(0xc0);//从第二行第一个字符显示"GOOD LUCK TO YOU"
	delay(dat_delay );
	for(a=0;a<16;a++)
	{
	write_date(table2[a]);
	delay(dat_delay );		
	}

	delay1(300);


	for(a=0;a<40;a++)		//循环移位//左移16之后再移3个空位从右边出来
	{
		write_com(0x18);	//左移位指令
		delay1(20);
	}

	while(1);
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -