現在只寫了液晶顯示部分,溫度測量和控制應該怎么加,電路圖對嗎?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
sbit lcdrs=P2^0; //1602:0寫指令,1寫數據
sbit lcdwr=P2^1; //1602讀寫信號
sbit lcden=P2^2; //1602片選信號
uchar code dispbuf[]="Hello mcu";
uchar code dispbuf1[]="I love you";
//uchar code dispbuf2[]="www.bucea.edu.cn";
/***********************1ms延時函數**********************/
void delayms(uint ms)
{
uint y;
while(ms--)
{
for(y=0;y<125;y++);
}
}
/***********************LCD寫指令 寫數據**********************/
void write_comdata(uchar rs,uchar comdata)
{
lcdrs=rs; //0寫指令,1寫數據
lcdwr=0; //0寫數據,1讀數據
P0=comdata;
lcden=1;
delayms(1);
lcden=0;
}
/***********************指針形式寫一個字符串*********************/
void write_charchuan(uchar add, uchar *zfc)
{
write_comdata(0,add);
for(;*zfc!='\0';zfc++)
{
write_comdata(1,*zfc);
}
}
/***********************LCD初始化*********************/
void lcdinitial()
{
lcden=0;
write_comdata(0,0x38); //顯示模式5*7
write_comdata(0,0x0c);
write_comdata(0,0x06); //設置指針+1 屏幕不移動
write_comdata(0,0x01); //清屏
write_comdata(0,0x80); //初始化顯示地址
}
/**********************主函數*********************/
main()
{
lcdinitial(); //液晶顯示初始化
write_charchuan(0x80,dispbuf); //寫第二行字
write_charchuan(0x80+0x40,dispbuf1);//寫第一行字
//write_charchuan(0x80+0x40+0x00,dispbuf2);
//為穩定性考慮,最好把它寫到循環里面
while(1);
}
|