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

📄 lcd1602func.c

📁 利用DS18B20
💻 C
字号:
/*******************************************************************
**函数功能:LCD的驱动函数										  **
**创建人:xingyuegu												  **
**创建日期:2006-7-12											  **
**版本:1.0														  **
**修改日期:2006-10-30										  	  **
**版本:2.0														  **
*******************************************************************/

#include "lcd1602.h>
unsigned char data  ac=0;

/*************************************************************
**功能:延时1.64ms											**
**参数:无													**
*************************************************************/

void delay1_64ms(void)
{
	uint i;
	for(i = 0;i < 200;i++)
	{
		;
	}
}
/*************************************************************
**功能:延时40us											**
**参数:无													**
*************************************************************/

void delay40us(void)
{
	uchar i;
	for(i = 0;i < 11;i++)
	{
		;
	}
}
/*************************************************************
**功能:判断LCD忙											**
**参数:无       											**
*************************************************************/

unsigned char Lcd_Wait(void)
{
	LcdRs=0;
	LcdRw=1;
	
	LcdEn=1;
	_nop_();
	_nop_();
	//while(DBPort&0x80);
	LcdEn=0;
	return DBPort;
}
/**************************************************************
**功能:写LCD函数											 **
**参数:style为写命令/数据,0-命令,1-数据;input为写入的8位 **
**		命令/数据											 **
**************************************************************/


void Lcd_Write(bit style,unsigned char input)
{
	LcdEn=0;
	LcdRs=style;
	LcdRw=0;
	DBPort=input;
	LcdEn=1; 
	LcdEn=0;
	Lcd_Wait();
}
/****************************************************************
**功能:LCD清屏函数										       **
**参数:无     											       **
****************************************************************/
void ClrScreen(void)
{
	
	Lcd_Write(Lcd_Command,Lcd_Clear_Screen);
	delay1_64ms();							//必须有,LCD清屏要1.64ms
	ac=0;
}

/****************************************************************
**功能:LCD归位函数										       **
**参数:无     											       **
****************************************************************/
void Screen_home(void)
{
	
	Lcd_Write(Lcd_Command,Lcd_Home);
	delay1_64ms();							//必须有,LCD清屏要1.64ms
	ac=0;
}
/***************************************************************
**功能:设置显示模式										  **
**参数:													  **
***************************************************************/

void  Lcd_SetDisplay(unsigned char DisplayMode)
{
	Lcd_Write(Lcd_Command,0x08|DisplayMode);
	delay40us(); //在真硬件时不需要
}
/***************************************************************
**功能:LCD移动设置											  **
**参数:取值如下											  **
***************************************************************/


void Lcd_Move(unsigned char MoveMode)
{
	Lcd_Write(Lcd_Command,0x10|MoveMode);
	delay40us(); //在真硬件时不需要
}

/****************************************************************
**功能:LCD输入设置											   **
**参数:取值如下											   **
****************************************************************/
//
void Lcd_SetInput(unsigned char InputMode)
{
	Lcd_Write(Lcd_Command,0x04|InputMode);
	delay40us(); //在真硬件时不需要
}
/****************************************************************
**功能:LCD初始化										       **
**参数:取值如下											   **
****************************************************************/
void Lcd_Init(void)
{

	Lcd_Write(Lcd_Command,0x38);           //8位数据端口,2行显示,5*7点阵
	delay1_64ms();
	Lcd_SetDisplay(Lcd_Display_On|Lcd_No_Cursor|Lcd_No_Flash);    //开启显示, 无光标
	Lcd_Write(Lcd_Command,Lcd_Clear_Screen);   //清屏
	Lcd_SetInput(Lcd_Ac_Up|Lcd_No_Move);       //AC递增, 画面不动
	delay1_64ms(); //在真硬件时不需要
	
}

/****************************************************************
**功能:显示位置设置										   **
**参数:x-行;y-列											   **
****************************************************************/
void GotoXY(unsigned char x,unsigned char y)
{
	if(y==0)
		{Lcd_Write(Lcd_Command,0x80|x);
		ac=x;}
	if(y==1)
		{Lcd_Write(Lcd_Command,0x80|(x+0x40));
		 ac=16+x;}
}

/****************************************************************
**功能:LCD显示函数											   **
**参数:str-要显示的字符串指针								   **
****************************************************************/
void Print(unsigned char *str)
{	
	while(*str!='\0')
	{
		
		if(ac==16)
		GotoXY(0,1);
		else if(ac==32)
		{GotoXY(0,0);
		ac=0;}
		Lcd_Write(Lcd_Data,*str);
		ac++;
		str++;
	}
}

		

⌨️ 快捷键说明

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