freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于stc89c52單片機(jī)的溫度測量及警報電路設(shè)計-資料下載頁

2025-06-27 18:50本頁面
  

【正文】 清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。 硬件設(shè)計,DS18B20將采集到的數(shù)據(jù)送給單片機(jī),經(jīng)過單片機(jī)處理后,顯示在8位數(shù)據(jù)線與單片機(jī)P0口的液晶顯示器LCD上。串口經(jīng)過MAX232的電平轉(zhuǎn)換后R1 OUT和T1 IN接到單片機(jī)的RXD與TXD來實現(xiàn)與用C語言編輯的計算機(jī)軟件的界面間的通信。液晶LCD的RS、RW175。、~。(1)STC89C52RC單片機(jī):實現(xiàn)對整個系統(tǒng)的控制。(2)DS18BLCD1602:,DS18B20將采集到的數(shù)據(jù)送給單片機(jī),經(jīng)過單片機(jī)處理后,顯示在8位數(shù)據(jù)線與單片機(jī)P0口的液晶LCD上。(1),,8位數(shù)據(jù)線DB0~DB7接到單片機(jī)的P0口。(2)4個按鍵K1~~。(3).第四章 軟件設(shè)計程序介紹 1602液晶顯示處理部分 在本次設(shè)計系統(tǒng)中定義了P2^2口為1602液晶的使能端;P2^0為數(shù)據(jù)命令的選擇端;P2^1為讀,寫選擇端。定義了有關(guān)的函數(shù);write_()向1602寫入命令碼函數(shù),write_date()向1602寫入數(shù)據(jù)函數(shù);display()1602顯示函數(shù);lcd_init()1602初始化;lcd_display()1602顯示初始化。 具體程序如下所示; void lcd_init()//1602初始化{ write_(0x38)。//兩行顯示,5*7點陣 delayms(5)。//延時5毫秒 write_(0x01)。//顯示清屏 delayms(5)。 write_(0x0c)。//開顯示,不顯示光標(biāo),光標(biāo)不閃爍 delayms(5)。 write_(0x06)。//當(dāng)讀或?qū)懸粋€字符后地址指針加一,且光標(biāo)加一 delayms(5)。 }void lcd_display()//1602顯示初始化{lcd_init()。//1602初始化 write_(0x80)。//第一行第一個字符開始顯示 display(str1)。//第一行顯示temperature write_(0xc0)。//第二行第一個字符開始顯示 display(str2)。//顯示空白} 18B20函數(shù)處理部分在本次設(shè)計系統(tǒng)中P3^3口用來單片機(jī)與溫度傳感器通訊;它用到的相關(guān)函數(shù)如下;ds_init()18B20初始化 ; ds_write()向18B20中寫入數(shù)據(jù) ;ds_read()由18B20讀取數(shù)據(jù) ;ds_temp()從18B20中讀取溫度值 ;ds_dis()把溫度值送入1602中顯示。具體程序如下所示;void ds_init()//18B20初始化{dq=1。 delayus(4)。//CPU將總線拉高 dq=0。 delayus(480)。//CPU將總線拉低延時480微妙 dq=1。 delayus(60)。//CPU將總線拉高延時60微妙 if(dq==0) delayus(240)。//CPU判斷是否為低電平,是的話說明溫度傳感器在線上}void ds_write(uchar date1)//向18B20中寫入數(shù)據(jù)注意寫入是按從低位到高位的順序發(fā)送數(shù)據(jù)一次只發(fā)送一位。uchar ds_read()//由18B20讀取數(shù)據(jù),讀的時候也是從最低位讀uint ds_temp()//從18B20中讀取溫度值{ uchar a,b。 ds_init()。//初始化溫度傳感器 ds_write(0xcc)。//忽略ROM指令 ds_write(0x44)。//開始溫度轉(zhuǎn)換 ds_init()。//初始化溫度傳感器 ds_write(0xcc)。//忽略ROM指令 ds_write(0xbe)。//讀取溫度值 a=ds_read()。//讀取低八位 b=ds_read()。//讀取高八位 tvalue=b。// tvalue=8。// tvalue=tvalue|a。//得到16位的溫度值 if(tvalue0x0fff)//判斷溫度大于0 tflag=0。 else {tvalue=~tvalue+1。//如果溫度小于0,取反加一 tflag=1。// } tvalue=tvalue*()。//乘以最小分辨率得到溫度值 return(tvalue)。// }void ds_dis()//把溫度值送入1602中顯示{uchar flagdat。 disdata[0]=tvalue/1000+0x30。//溫度百位 disdata[1]=tvalue%1000/100+0x30。//溫度十位 disdata[2]=tvalue%100/10+0x30。//溫度個位 disdata[3]=tvalue%10+0x30。//小數(shù)點后一位 if(tflag==0) flagdat=0x20。//如果溫度大于0,不顯示 if(tflag==1) flagdat=0x2d。//如果溫度小于0顯示負(fù)號 if(disdata[0]==0x30) {disdata[0]=0x20。//百位為0不顯示 if(disdata[1]==0x30) {disdata[1]=0x20。//十位為0不顯示 } } write_(0xc0)。 write_date(flagdat)。//第二行第一個顯示溫度正負(fù) write_(0xc1)。 write_date(disdata[0])。//第二行第二個顯示溫度百位 write_(0xc2)。 write_date(disdata[1])。//第二行第三個顯示溫度十位 write_(0xc3)。 write_date(disdata[2])。//第二行第四個顯示溫度個位 write_(0xc4)。// write_date(0x2e)。//第二行第五個顯示小數(shù)點 write_(0xc5)。// write_date(disdata[3])。//第二行第六個顯示小數(shù)點后一位} void main()//主程序{lcd_display()。//1602顯示初始化 while(1){ds_temp()。//從18B20中讀取溫度 ds_dis()。//1602顯示溫度}}XXII
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1