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

📄 lcd1602_packet.h

📁 89C52单片机12M晶振下DS18B20温度传感器测量温度应用子程序源码
💻 H
字号:
/*--------------------------------------------------------------------------
LCD.H


--------------------------------------------------------------------------*/

//**************************************************************************************//
//			                             头文件区                                       //
//**************************************************************************************//

#define write_data_operation 		XBYTE[0XCDFF] 			//写数据//E =1 RS=1 RW=0
#define write_commend_operation 	XBYTE[0XCCFF] 			//写命令//E=1 RS=0 RW=0
#define read_operation 				XBYTE[0xCEFF]			//读数据//CS=1 RS=0 RW=1


//**************************************************************************************//
//			                             全局变量定义                                   //
//**************************************************************************************//
unsigned char test_value,temptemp;
unsigned char code display[]= "                It will take  years of hard work to speak English well!                        ";
unsigned char code display1[]= "Try our best to study! ";
unsigned char code display2[]= "   to study!    ";
unsigned char code display3[]= " tsp!  English!   ";
unsigned char code display4[]= "   so lovely!   ";


//**************************************************************************************//
//			                             延时程序                                       //
//**************************************************************************************//
void delay5ms(void)
{
	unsigned int TempCyc = 5552;
	while(TempCyc--);
}


//**************************************************************************************//
//			                           状态字检测程序                                   //
//**************************************************************************************// 
void read_write_test(void)      	//状态字检测程序
{                         			//对控制器每次进行读写操作前,都必须进行读写检测
	temptemp=read_operation;
	test_value=(temptemp&0x80);
}


//**************************************************************************************//
//			                           写指令子函数                                     //
//**************************************************************************************// 
void write_command_not(unsigned char value)//(不检测忙信号)写指令子函数
{
	write_commend_operation=value;
}


void write_command(unsigned char value)//(须检测忙信号)写指令子函数
{
	do
	{
		read_write_test();             //对控制器每次进行读写操作前,都必须进行读写检测
    }while(test_value==0x80);  //STA7=P0^7最高们为读/写操作使能端,1:禁止 0:允许

	write_commend_operation=value;
}


//**************************************************************************************//
//			                           写数据子函数                                     //
//**************************************************************************************// 
void write_data(unsigned char value)   
{
	do
	{
		read_write_test();             //对控制器每次进行读写操作前,都必须进行读写检测
    }while(test_value==0x80);  //STA7=P0^7最高们为读/写操作使能端,1:禁止 0:允许

	write_data_operation=value;
}

//**************************************************************************************//
//			                           LCD系统初始化                                    //
//**************************************************************************************// 
void LCD_system_Init ( void )
{
	delay5ms();
	delay5ms();
	delay5ms();		
    write_command_not(0x38);	//(不检测忙信号)写指令子函数 
    delay5ms();
    write_command_not(0x38);	// 
    delay5ms();
    write_command_not(0x38);	//

	write_command(0x38);	//设置显示模式 ,8位2行5x7点阵
    write_command(0x08);	// 关显示
	write_command(0x01);	//清屏 	  
    write_command(0x38);	//设置显示模式 ,8位2行5x7点阵
    write_command(0x06);	//文字不动,光标自动右移 
	write_command(0x0F);	//显示器开、光标开、闪烁开 
}

void LCD_display(bit hang,unsigned char lie,unsigned char *string)
{
	unsigned char i;
	if(hang==0)
	{
		for(i=0;i<17-lie;i++)
		{
			write_command(0x80|(lie+i));
			write_data(*(string+i));	
		}	
	}

	else
	{
		 for(i=0;i<17-lie;i++)//#0C0H ;写入显示起始地址(第二行第一个位置)
		{
			write_command(0xc0|(lie+i));
			write_data(*(string+i));	
		}	
	} 	
} 

⌨️ 快捷键说明

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