|
現(xiàn)在只寫了液晶顯示部分,溫度測量和控制應(yīng)該怎么加,電路圖對嗎?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
sbit lcdrs=P2^0; //1602:0寫指令,1寫數(shù)據(jù)
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延時函數(shù)**********************/
void delayms(uint ms)
{
uint y;
while(ms--)
{
for(y=0;y<125;y++);
}
}
/***********************LCD寫指令 寫數(shù)據(jù)**********************/
void write_comdata(uchar rs,uchar comdata)
{
lcdrs=rs; //0寫指令,1寫數(shù)據(jù)
lcdwr=0; //0寫數(shù)據(jù),1讀數(shù)據(jù)
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); //設(shè)置指針+1 屏幕不移動
write_comdata(0,0x01); //清屏
write_comdata(0,0x80); //初始化顯示地址
}
/**********************主函數(shù)*********************/
main()
{
lcdinitial(); //液晶顯示初始化
write_charchuan(0x80,dispbuf); //寫第二行字
write_charchuan(0x80+0x40,dispbuf1);//寫第一行字
//write_charchuan(0x80+0x40+0x00,dispbuf2);
//為穩(wěn)定性考慮,最好把它寫到循環(huán)里面
while(1);
}
|
-
|