#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P1^0;
sbit lcdrw=P1^1;
sbit lcden=P1^2;
uchar code wendu[]="0123456789";
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@//
//###############液晶显示模块######################//
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@//
void delay(uchar z)
{
uchar x,y;
for(x=1000;x>1;x--)
for(y=z;y>1;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)
{
lcdrs=1;
P2=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init_lcd()
{
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x01);
write_com(0x0c);
write_com(0x06);
write_com(0x80);
}
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@//
//###############液晶显示模块end###################//
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@//
这个是LCD1602的显示模块
引用时先引用init_lcd();初始化LCD
结合上一个温度读取模块,就可以写成一个LCD1602显示的温度计
num=Readtemp(); //读取温度
shi=num/100; //十位
ge=num/10%10; //个位
xiaoshu=num%10; //小数位
write_com(0x80); //LCD1602第一行第一位
write_date(wendu[shi]); //显示十位
write_com(0x81); //LCD1602第一行第二位
write_date(wendu[ge]); //显示个位
write_com(0x82); //LCD1602第一行第三位
write_date(0x2e); //显示小数点
write_com(0x83); //LCD1602第一行第四位
write_date(wendu[xiaoshu]); //显示小数点