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

📄 1602.h

📁 凌阳1602液晶显示器驱动。IOA高8接数据 IOB8~10接RS、RW、E
💻 H
字号:
#ifndef	__1602_h__
#define	__1602_h__
//	write your header here
#define uint unsigned int
#define uchar unsigned char
#define RS0     0xfeff	//RS置0,与上RS0  rs,rw,e:选择IOB8~10
#define RS1     0x0100	//RS置1,或上RS1
#define RW0	0xfdff	//RW置0,与上RW0
#define RW1	0x0200	//RW置1,或上RW1
#define E0	0xfbff	//E置0, 与上E0
#define E1	0x0400	//E置1, 或上E1
void lcd_enable(int x1);
void write(unsigned char x2);
void lcd_init(void);
void displayone (int x,int y,unsigned char d);
void di(void);
void ds(void);
void dc(void);

void lcd_enable(int x1)	//写指令
{
	delay(4);
	*P_IOA_Data=x1*256;
	*P_IOB_Data&=RS0;    //RS置0,该字节数据为命令,而不是数据	
	*P_IOB_Data&=RW0;    //RW置0
	*P_IOB_Data&=E0;     //E置0
	*P_IOB_Data&=E0;     //E置0
	*P_IOB_Data|=E1;     //E置1;拉高使能信号,建立LCD操作所需要的上升沿
}
void write(unsigned char x2)		//写数据
{
	delay(2);
	*P_IOA_Data=x2*256;	     //待显示数据送B口
	*P_IOB_Data|=RS1;   	//RS置1,该字节数据为数据,而不是命令
	*P_IOB_Data&=RW0;   	//RW置0,此次操作为写,而不是读	
	*P_IOB_Data&=E0;    	//E置0 ;拉低使能信号
	*P_IOB_Data&=E0;    	//E置0 ;拉低使能信号
	*P_IOB_Data|=E1;    	//E置1;拉高使能信号,建立LCD操作所需要的上升沿
}

void lcd_init(void)	 //1602初始化                                                     
{
	lcd_enable(1);		//清屏
	lcd_enable(0x0038);		//系统初始化设置:数据总线为8位、两行显示、显示5x7的点阵字符
	lcd_enable(0x000c);		//显示开关控制指令:开显示、无光标、光标不闪烁
	lcd_enable(0x0006);		//设置输入模式指令:AC自动加1、显示不移动
}
void disf(void)				//显示框架
{
	int i=0;
	unsigned char Data1[]={"Vi:    v Set:  v"};
	unsigned char Data2[]={"Current:    mA"};
	lcd_enable(1);
	lcd_enable(6);
	lcd_enable(0x80);
	do{
		write(Data1[i]);
		i++;
	   }while(Data1[i]);
	i=0;
	lcd_enable(0xc0);
	do{
		write(Data2[i]);
		i++;
	   }while(Data2[i]);
	
}
void displayone (int x,int y,unsigned char d)	//显示一个字符
{
	lcd_enable(y*0x40+x+0x80);
	write(d);
}

void di(void)
{
	int i;
	unsigned char d[]={"32.5"};
	lcd_enable(3+0x80);
	for (i=0;i<4;i++)
	{
		write(d[i]);
	}
}
#endif

⌨️ 快捷键说明

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