#include<reg51.h>
#include<intrins.h>
sbit DS18B20_DQ=P3^3;
sbit LCD_RS = P2^0;
sbit LCD_RW = P2^1;
sbit LCD_EN = P2^2;
typedef unsigned int u8;
typedef unsigned char u16;
typedef float u4;
void LCD_busyCheck()
{
u8 sta;
P0=0xff;
LCD_RS=0;
LCD_RW=1;
do{
LCD_EN=1;
sta=P0;
LCD_EN=0;
}while((sta&0x80)!=0x80);//10000000
}
void LCD_write_x(u8 x)//写单个数据
{
LCD_busyCheck();
LCD_RS=1;
LCD_RW=0;
P0=x;
LCD_EN=1;
LCD_EN=0;
}
void LCD_write_xx(u8 *x)//写单个数据
{
while(*x)
{
LCD_write_x(*x++);//自加
}
}
void LCD_write_cmd(u8 cmd)//写命令
{
LCD_busyCheck();
LCD_RS=0;
LCD_RW=0;
P0=cmd;
LCD_EN=1;
LCD_EN=0;
}
void LCD_position(bit x,u8 y)
{
u8 position;
if(x==0)
position=0x80+y;
else
position=0xc0+y;
}
void main()
{
u8 i;
LCD_write_cmd(0x01);
LCD_write_cmd(0x38);//八位接口,两行显示
LCD_write_x(0x80);//从第一位开始显示,写地址
LCD_write_xx("Temperature : ");
LCD_write_x(0x0c);//从第二行开始显示,写地址
LCD_write_xx("TEMP: ");
for(i=0;i<2000;i++);
while(1)
{
}
}
代码运行出来没有错误,但proteus中的显示屏(LCD)没有办法显示,运行的话就是下面的图,什么都没有
这个要怎么改呀