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

📄 lcd.h

📁 12864 18B20做温度计 内含有仿真 是PROUUE 的仿真
💻 H
字号:
/*at89s52 lcd的D0~D7数据接P0口,  4 rs,5 r/w,6 en分别接P20,P21,P02;
/* ***************************************************** */
//#include <reg51.h>
#define _lcd_h
#define uint unsigned int
#define uchar unsigned char
//void busy_cheak(void);//忙碌标志的检测
void write_LCD_command(uchar command);//命令写入LCD
void write_LCD_data(uchar LCDdata);//数据写入LCD
void init_LCD(void);//初始化LCD
void clear_LCD();//LCD清屏
void display_LCD_string();//写入LCD字符和数字显示..5
void gotoxy(uchar x,uchar y);//光标在x行y列
sbit rs=P2^2;//指令寄存器的选择
sbit rw=P2^1;//数据写入/读出lcd
sbit en=P2^0;//始能端
sbit P27=P3^6;
void delay1ms(uint k);
void w595(uchar d);
//////////////////////////////////////////////////.......1
void write_LCD_command(uchar command)//命令写入LCD
{  //busy_cheak();//忙碌标志的检测 
	rw=0;//写入LCM
	rs=0;//指令寄存器
	en=1;//始能端
  w595(command);//写命令
//	SBUF=command;
//	while(TI==0);
//	TI=0;
delay1ms(1);
	en=0;//关闭始能端
	rw=1;//读取LCM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
}
///////////////////////////
void WRdata(uchar LCDdata)//数据写入LCD//.......2
{
// busy_cheak();//忙碌标志的检测 
	rw=0;
	rs=1;
	en=1;
	w595(LCDdata);
//SBUF=LCDdata;
 //while(TI==0);
 //TI=0;
delay1ms(1);
	en=0;
	rw=1;
}
/////////////////////////////////
void initlcd(void)//初始化LCD/////...................3
{
	write_LCD_command(0x38);// 0x38 双行显示//8位传输 
	write_LCD_command(0x0c);// 0x0C 屏幕开启//光标不出现
	//write_LCD_command(0x0c); 
}
///////////////////////////////////
void clear()//LCD清屏...........................4
{
	write_LCD_command(0x01);//0x01 LCD清屏	
	write_LCD_command(0x02);//0x02 光标回到左上角
}
/////////////////////////////////////////
void gotoxy(uchar x,uchar y)//光标在x行y列...............7
{if(x==1) write_LCD_command(128+y);//128=0b1000,0000
 else write_LCD_command(192+y);//192=0b1100,0000
}
//////////////////////////////////////
/*void busy_cheak(void)//忙碌标志的检测
{uchar key;
 P0=0xff;
 while(1)
 	{rs=0;//命令
	 rw=1;//读
  	 en=1;
 key=P0;
  	 en=0;
  	 if((key&0x80)==0x00)break;
     }
}*/
void delay1ms(uint k)
{ k*=125;
 while(k--);
}
void w595(uchar d)
{ 
  P27=0;
  SBUF=d;
 while(TI==0)
 TI=0;
 delay1ms(1);
 P27=1; 
}


//#endif

⌨️ 快捷键说明

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