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

📄 lcd.h

📁 自己写的ATmega16单片机驱动1602液晶的头文件
💻 H
字号:
#include <avr/sfr_defs.h>
#define LCDPORT PORTB          //数据总线接在PB口
#define LCDDDR DDRB
#define LCDPIN PINB
#define En_H sbi(PORTD,5)      //En接PD5
#define En_L cbi(PORTD,5)
#define RW_R sbi(PORTD,4)      //R/W接PD4
#define RW_W cbi(PORTD,4)
#define RS_H sbi(PORTD,3)      //RS接PD3
#define RS_L cbi(PORTD,3)
#define DelaytE Delay(10)
#define Clear_Screen Write_Command(0x01)  //定义清屏语句


void Delay(uint16_t time)      //延时程序
{
	while(time>0)
	{
	time--;		
	}
}

void En_Toggle(void)           //产生一个使能脉冲
{
	En_H;                  //拉高使能位
	DelaytE;               //保持高电平一定时间
	En_L;                  //拉低使能位,产生一个下降沿
	DelaytE;               //保持电平一定时间
}

/*不断检测LCD的忙标志(BF),直到其为0,表示可以执行下一条指令*/
void Wait_Until_Ready(void)
{
	RW_R;                  //设为读状态
	RS_L;                  //所读为状态位
	LCDDDR=0x00;           //单片机设为输入,用以读取LCD的忙标志
	LCDPORT=0x00;
	En_H;
	DelaytE;
	loop_until_bit_is_clear(LCDPIN,7);  //不断循环,直至BF=0
	En_L;
}

void Write_Command(uint8_t Command)         //向LCD写入命令字
{
	RW_W;                   //置为写状态
	RS_L;                   //写入的是命令字
	LCDDDR=0xFF;
	LCDPORT=Command;        //写命令字
	En_Toggle();            //产生使能脉冲,在下降沿开始执行指令
	Wait_Until_Ready();     //等待指令执行完毕
}

void Write_Data(uint8_t Data)
{
	RW_W;
	RS_H;                    //写入的是数据
	LCDDDR=0xFF;
	LCDPORT=Data;
	En_Toggle();
	Wait_Until_Ready();
}

void Write_Position(uint8_t row,uint8_t colum)    //设字符位置
{
	uint8_t p;
	if(row==1)
	{
		p=0x80+colum-1;
		Write_Command(p);
	}
	else
	{
		p=0xC0+colum-1;
		Write_Command(p);
	}
}

void Write_String(uint8_t *s)     //写入字符串
{
	for(;*s!='\0';s++)
		Write_Data(*s);
}

void Initialize_LCD(void)         //LCD初始化
{
	DDRD=0xFF;                //LCD的控制线在PD口,所以将其设为输出
				  //此处可根据实际情况调整,或者在主程序中设置
	Write_Command(0x38);      //设为8位接口模式,显示两行字符
	Write_Command(0x06);      //写入新数据后光标右移
	Write_Command(0x0C);      //显示功能开,不显示光标
	Clear_Screen;             //清屏
}

⌨️ 快捷键说明

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