求教STC12C5A60S2+12864OLED+DS18B20無法顯示溫度(附件有KEIL工程)新人小白,代碼是拼的,搞不好了希望在這里能得到幫助,怎么搞都沒法顯示溫度,真心求教。下圖是運行時照片,后面那個小點是亂碼不知是什么鬼。
WIN_20170912_18_40_47_Pro.jpg (784 KB, 下載次數(shù): 43)
下載附件
2017-9-12 18:41 上傳
MAIN.c #include "lq12864.h" #include "ds18b20.h" #include "REG52.h"
/**********************************定義變量*********************************/
unsigned int Temp_Buffer = 0;
/********************(STC12C5608AD 11MHZ z=1時精確延時1ms)*******************/ void delayms(unsigned int z) { unsigned int x,y; for(x=z; x>0; x--) for(y=1848; y>0; y--); }
/*****************************************顯示溫度****************************/ void Display_Temp() { Temp_Buffer = Get_temp(); //讀取DS18B20的值 LCD_WrCmd(0x80+0x40+10); if(flag_temper == 1) //根據(jù)溫度標(biāo)志位顯示溫度正負(fù) { LCD_WrDat('-'); } if( Temp_Buffer/1000 != 0 ) //如果第一位為0,忽略顯示 { LCD_WrDat(Temp_Buffer/1000+0X30); //顯示溫度百位值 } LCD_WrDat(Temp_Buffer%1000/100+0X30); //顯示溫度十位值 LCD_WrDat(Temp_Buffer%100/10+0X30); //顯示溫度個位值 LCD_WrDat('.'); //顯示小數(shù)點 LCD_WrDat(Temp_Buffer%10+0X30); //顯示溫度十分位值 LCD_WrDat('C'); //顯示字符C } /***********************************主函數(shù)**********************************/ void main() { unsigned char i; LCD_Init(); //OLED初始化
LCD_P8x16Str(0,3,"Wellcome to use!"); //顯示歡迎界面 delayms(1000); //延時 LCD_CLS(); //清屏 Temp_Buffer = Get_temp(); //讀取DS18B20的值 delayms(500);
while(1) { for(i=0; i<8; i++) {LCD_P16x16Ch(i*16,0,i); //點陣顯示 } LCD_P16x161Ch(0,2,0); LCD_P16x161Ch(16,2,1); LCD_P16x161Ch(32,2,2); LCD_P16x161Ch(48,2,3); LCD_P16x161Ch(64,2,4); Display_Temp(); //獲取并顯示溫度值 } } 這里紅色部分的LCD_WrDat和LCD_WrDat以及后面跟的參數(shù)我真的不理解,他們的定義在LQ12864.c里,下面我貼出來:
/*********************LCD寫數(shù)據(jù)************************************/
void LCD_WrDat(unsigned char dat)
{
unsigned char i=8;
LCD_DC=1;
for(i=0;i<8;i++) //發(fā)送一個八位數(shù)據(jù)
{
LCD_SCL=0;
LCD_SDA=dat&0x80;
LCD_SCL=1;
dat<<=1;
}
}
/*********************LCD寫命令************************************/
void LCD_WrCmd(unsigned char cmd)
{
unsigned char i=8;
LCD_DC=0;
for(i=0;i<8;i++) //發(fā)送一個八位數(shù)據(jù)
{
LCD_SCL=0;
LCD_SDA=cmd&0x80;
LCD_SCL=1;
cmd<<=1;;
}
}
不知道問題出在哪兒,小白虛心求教,也可能原因跟上面這些沒有關(guān)系,下面我把Keil工程文件上傳上來,希望各位大大能幫下小弟,虛心求教
stc51 ds18b20 oled.rar
(55.06 KB, 下載次數(shù): 151)
2017-9-12 19:02 上傳
點擊文件名下載附件
keil工程
|