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

📄 lcd1602.h

📁 基于ds18b20的数字温度计
💻 H
字号:
#ifndef lcd1602_h															//
#include<absacc.H>			 												//包含外部数据传送指令的宏定义 																			//引用XBYTE[]相当于用汇编中的MOVX指令 
#define  write_lcd_addr      XBYTE[0xfceb]  								// 1111 1100 1110 1100
#define  write_lcd_data      XBYTE[0xfdeb]  								// 1111 1101 1110 1100
#define  rd_lcd_busy         XBYTE[0xfeeb]  								// 1111 1110 1110 1100 sbit RS=P2^0;sbit RW=P2^1;
																			//
sbit BF=ACC^7;                 												//忙标志位
																			//
void lcd_delay()															//
{unsigned char a;															//
 for(a=100;a>0;a--);														//
}																			//
																			//
wait()                     													// 准备写指令
{wait:lcd_delay();              											// 等待液晶响应
      ACC=rd_lcd_busy ;        	 											// 地址的低位第8位向p17口写1,并读回其状态  
      if(BF==1)goto wait;       											// 判断液晶是否忙
}																			//
/***************************************************************************************************************/
/***********************液晶初使化******************************************************************************
																			//
void lcd_ready_nclr(unsigned char a,unsigned char b,unsigned char c)		//
{																			//
	wait();																	//		a=0:无光标
	write_lcd_addr=0x38;													//		a=1:光标闪烁
	wait();																	//		b=0:地址自减
	write_lcd_addr=a*0x0f+!a*0x0c;											//		b=1:地址自加
	if(c==0)																//		c=0:不移屏
	{																		//		c=1:输入字符后左移屏
		wait();																//	0x0c  无光标; 0x0f 光标闪烁
		write_lcd_addr=b*0x06+!b*0x04;										// 	0x04  地址减; 0x06 地址加
	}																		//
	if(c==1)																//
	{																		//
		wait();																//
		write_lcd_addr=b*0x07+!b*0x05;										//
	}																		//
}																			//
/***************************************************************************************************************/
/************************液晶初使化*****************************************************************************/
																			//
void lcd_ready(unsigned char a,unsigned char b,unsigned char c)				//
{																			//		a=0:无光标
	wait();																	//		a=1:光标闪烁
	write_lcd_addr=0x01;													//		b=0:地址自减
	wait();																	//		b=1:地址自加
	write_lcd_addr=0x38;													//		c=0:不移屏
	wait();																	//		c=1:输入字符后左移屏
	write_lcd_addr=a*0x0f+!a*0x0c;											//
	if(c==0)																//
	{																		//
		wait();																//	0x0c  无光标; 0x0f 光标闪烁
		write_lcd_addr=b*0x06+!b*0x04;										// 	0x04  地址减; 0x06 地址加
	}																		//
	if(c==1)																//
	{																		//
		wait();																//
		write_lcd_addr=b*0x07+!b*0x05;										//
	}																		//
}																			//
/***************************************************************************************************************/	
/***********************字符定位********************************************************************************/
																			//
void begin(unsigned char x,unsigned char y)									//
{																			//
	if(x==1)																//
	{																		//
		wait();																//
		write_lcd_addr=0x80+y;												//第一行起始数据地址
	}																		//
	if(x==2)																//
	{																		//
		wait();																//
		write_lcd_addr=0xc0+y;												//第二行起始数据地址
	}																		//
}																			//
/***************************************************************************************************************/
/************************带定位的字符串输出函数*****************************************************************/
																			//
void addr_zfc_print(unsigned char x,unsigned char y,unsigned char zf[])		//
{																			//
	unsigned char i=0;														//
	begin(x,y);																//
	while(zf[i]!='\0')														//
	{																		//
		wait();																//
		write_lcd_data=zf[i++];												//
	}																		//
}																			//
/***************************************************************************************************************/
/***********************不带定位的字符串输出函数****************************************************************
																			//
void naddr_zfc_print(unsigned char zf[])										//
{																			//
	unsigned char i=0;														//
	while(zf[i]!='\0')														//
	{																		//
		wait();																//
		write_lcd_data=zf[i++];												//
	}																		//
}																			//
/***************************************************************************************************************/
/***********************不带定位的字符输出函数****************************************************************/
																			//
void naddr_zf_print(unsigned char zf)										//
{																			//
		wait();																//
		write_lcd_data=zf;													//
}																			//
/***************************************************************************************************************/
/***********************不带定位的数据输出函数******************************************************************/
																			//
void naddr_sj_print(float f)												//
{																			//
	unsigned char zf[16];													//
	unsigned char p=0,i=1,s=0;												//
	long n;																	//
	n=f*10000;																//
	while(n!=0)																//
	{																		//
		if(n%10>=0.00005||s>3)												//
			p=1;															//
		if(p==1)															//
		{																	//
			zf[i++]=n%10+'0';												//
			if(s==3)														//
				zf[i++]='.';												//
		}																	//
		n=n/10;																//
		s++;																//
	}																		//
	i--;																	//
	while(zf[i]!='\0')														//
	{																		//
		wait();																//
		write_lcd_data=zf[i--];												//
	}																		//
}																			//
/***************************************************************************************************************/ 
#endif

⌨️ 快捷键说明

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