1樓:匿名使用者
應該是你的程式上出來還存在小問題。
2樓:匿名使用者
近期通過ds18b20再加lcd1602加序列輸出除錯成功,的lcddata埠p0
#包括#包括#「 stc12c5a.h「
#定義xtal 11059200 / /杯晶振頻率
#定義波特率9600 / /通訊波特率
#定義uchar無符號字元型
#定義的uint無符號整數 br p> sbit dq = p2 ^ 3; / / ds18b20的資料腳
sbit e = p2 ^ 7 / / 1602,使
sbit rw = p2 ^ 6 / / 1602讀取和寫入
sbit rs = p2 ^ 5 / / 1602資料/命令選擇
uchar資料temp_data的[2] = / / 8 - 位的資料快取記憶體》 uchar**編號 = ; / / lcd1602數字ascii表,用來顯示數字
uint ds [4]; / /溫度顯示4個顯著的數字
uint dh;
uint升
uint pic16f684; / /十六進位制轉十進位制資料快取
無效延遲(無符號整型數)
的無效inituart(無效)/ /串列埠初始化
無效sendonebyte(無符號字元)/ /串列埠傳送1位元組
無效的delay()/ / lcd1602延遲
無效wcmd(uchar德爾)/ /寫命令程式
>無效寫(uchar德爾)/ /寫入資料
無效l1602_init(無效)/ / lcd1602初始化
:無效l1602_char(uchar掛起,的uchar李,燒焦的跡象)/ /寫一個字元
uchar;
(掛起== 2)一個= 0xc0;
= a +謊言 - 1
wcmd(一)寫(標誌);}
無效l1602_string(uchar uchar李掛起,,uchar * p),/ /寫字串
uchar a,b = 0;
(掛起== 1)= 0x80的;
(掛起== 2)= 0xc0;
= a +謊言 - 1; 而(1) }
uchar init_ds18b20(無效)
:uchar readonechar(無效)
dq = 1;
回報率(值); br />}
,無效writeonechar(無符號字元型dat)
} 無效read_temperature的(無效)
無效的主要() }
居然把ascii碼只要38就夠了,當我沒想到
3樓:
如果ds18b20壞了會一直顯示85的,
我編寫ds18b20程式想顯示溫度在led燈上但
include reg52.h include include 要用到取絕對值函式abs define uchar unsigned char define uint unsigned int sbit ds p2 1 sbit ds p3 2 ds18b20 sbit duan p2 6 sbit...
我想用微控制器寫個ds18b20溫度感測器的程式但是讀
先解決一個18b20,不用系列號的。再解決一個18b20,使用系列號的。最後,再解決二個18b20,使用系列號的。現在,你弄的規模這麼大,難說在那一個步驟,有問題。 舉例說明 八位二進位制為一位元組,那最大為 1111 1111 255.先將這個數除100得到百位2,然後100取餘為55,將取餘後的...
ds18b20裡的溫度值正負判斷為什麼要判斷大於
科強小米 tem data l read byte 讀低8位資料,低8位資料格式 2 3,2 2,2 1,2 0,2 tem data h read byte 讀高8位資料,高8位資料格式 s,s,s,s,s,2 6,2 5 temp data tem data h 256 tem data l s...