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

📄 t.c

📁 LCD1602.rar
💻 C
字号:
#include <reg51.h>

#define cd P3_0
#define rd P3_1
#define wr P3_2

void delay(int c)
	{
	int i,j;
	for(i=0;i<c;i++)
		for(j=0;j<1000;j++)
			;
	}

char rd_state()	//读状态
	{
	char temp;
	P2=0xff;
	cd=1;
	rd=0;
	temp=P2;
	rd=1;
	return(temp);
	}

void rd_enable()	//等待可读写
	{
	char temp;
	temp=rd_state();
	while((temp&0x03)!=0x03)
		temp=rd_state();
	}

void rd_auto()	//等待自动读写
	{
	char temp;
	temp=rd_state();
	while((temp&0x04)!=0x04)
		temp=rd_state();
	}

void wr_auto()	//等待自动写
	{
	char temp;
	temp=rd_state();
	while((temp&0x08)!=0x08)
		temp=rd_state();
	}

/*写命令、写数据命令*********************
数据1、数据2、命令、参数个数*************
*****************************************/
void wr_data(char data1,char data2,char cmd,char num)
	{
	char temp;
	temp=num;
	if(temp==2)
		{
		rd_enable();
		cd=0;
		P2=data1;
		wr=0;
		wr=1;
		}
	 if(temp==2||temp==1)
	 	{
		rd_enable();
		cd=0;
		P2=data2;
		wr=0;
		wr=1;
		}
	rd_enable();
	cd=1;
	P2=cmd;
	wr=0;
	wr=1;
	}

char rd_data()	//读数据
	{
	char temp;
	rd_enable();
	cd=0;
	P2=0xff;
	rd=0;
	temp=P2;
	rd=1;
	return(temp);
	}

void lcd_init()
	{
	wr_data(0x00,0x00,0x40,0x02);	//设置文本显示首地址
	wr_data(0x14,0x00,0x41,0x02);	//设置文本显示宽度
	wr_data(0x40,0x01,0x42,0x02);	//设置图形显示首地址
	wr_data(0x20,0x00,0x43,0x02);	//设置图形显示宽度
	wr_data(0x00,0x00,0xa7,0x00);	//光标形状设置
	wr_data(0x00,0x00,0x80,0x00);	//显示方式设置,“或”
	wr_data(0x00,0x00,0x9c,0x00);	//显示开关设置
	}

void main()
	{
	char i,temp=0,row=0;
	delay(50);
	P3|=0x07;
	lcd_init();
	wr_data(0x00,0x00,0x24,0x02);	//设置写地址
	wr_data(0x00,0x00,0xb0,0x00);	//设置自动写方式
	for(i=0;i<127;i++)
		{

		wr_auto();
		cd=0;
		P2=temp;
		wr=0;
		wr=1;
		temp++;
		P1=temp;
		}
	wr_data(0x00,0x00,0xb2,0x00);	//自动写结束
	wr_data(0x40,0x01,0x24,0x02);	//设置写地址
	wr_data(0x00,0xaa,0xc4,0x01);	//写图像区
	while(1)
		{
		wr_data(row,0x00,0x40,0x02);	//设置文本显示首地址
		delay(40);
		row++;
		if(row>126)
			row=100;
		}

	}

⌨️ 快捷键说明

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