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

📄 lcd12864.c

📁 51单片机实现的温湿度采集监控
💻 C
字号:
#include <delay.h>
#include <reg52.h>
#include <LCD12864.h>
#include <intrins.h>


sbit 	LCD_RS = P1^3;		//数据/命令选择
sbit	LCD_RW = P1^4;		//读写控制
sbit	LCD_EN = P1^5;		//片选信号
sbit	LCD_PSB = P1^6;		//通信方式选择



/*********************************
函数名称:write_cmd(uint lcd_cmd)写指令
入口参数:lcd_cmd
返回参数:无
*********************************/

void WriteCmd12864(uchar lcd_cmd)
{
	while(ReadBusy());
	LCD_RS = LOW;			
	LCD_RW = LOW;			
	LCD_EN = LOW;		
	LCD_DATA = lcd_cmd;
	delayNop();
	LCD_EN = HIGH;
	delayNop();
	LCD_EN = LOW;
}



/********************************
函数名称:write_data(uint lcd_data)写数据
入口参数:current_data
返回参数:无
********************************/

void WriteData12864(uchar lcd_data)
{
	while(ReadBusy());
	LCD_RS=HIGH;
	LCD_RW=LOW;
	LCD_EN=LOW;
	LCD_DATA=lcd_data;
	delayNop();
	LCD_EN=HIGH;
	delayNop();
	LCD_EN=LOW;
}



/********************************
函数名称:ReadBusy()判忙
入口参数:无
返回参数:"1"忙;"0"不忙
********************************/

bit ReadBusy()
{
	bit result;
	LCD_RS = LOW;
	LCD_RW = HIGH;
	LCD_EN =HIGH;
	delayNop();
	result = (bit)(P0&0x80);
	LCD_EN = LOW;
	return (result);
}



/********************************
函数名称:LcdInit()初始化
入口参数:无
返回参数:无
********************************/

void LcdInit()
{
	delay(10);
	LCD_PSB=HIGH;

	//WriteCmd12864(0x34);
	WriteCmd12864(FUN_MODE);
	WriteCmd12864(DISPLAY_ON);
	WriteCmd12864(CLEAR_SCREEN);
}



/********************************
函数名称:LcdClear()清屏
入口参数:无
返回参数:无
********************************/

void LcdClear(void)
{
	while(ReadBusy());
	WriteCmd12864(CLEAR_SCREEN);
	delay(5);
}


/********************************
函数名称:Display12864(uchar addr,uchar *hz)显示CGROM里的汉字
入口参数:无
返回参数:无
********************************/

void Display12864(uchar addr,uchar *hz)
{

	WriteCmd12864(addr);
	while(*hz != '\0')
	{	
		WriteData12864(*hz);
	 	hz++;

	}
} 




⌨️ 快捷键说明

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