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

正文內(nèi)容

基于單片機(jī)的溫度采集系統(tǒng)設(shè)計(jì)-資料下載頁

2025-06-07 00:58本頁面
  

【正文】 a。}/********1602顯示溫度********/void send_T(uint address,uint avalue,uchar tflag){ uint a,b,c,d。 uchar flagdat。 a=avalue/1000+0x30。//百位數(shù) b=avalue%1000/100+0x30。//十位數(shù) c=avalue%100/10+0x30。//個(gè)位數(shù) d=avalue%10+0x30。//小數(shù)位 if(tflag==0) flagdat=0x20。//正溫度不顯示符號(hào) else flagdat=0x2d。//負(fù)溫度顯示負(fù)號(hào): if(a==0x30) { a=0x20。//如果百位為0,不顯示 if(b==0x30) { b=0x20。//如果百位為0,十位為0也不顯示 } } send_mand(address++)。 send_data(flagdat)。//顯示符號(hào)位 send_mand(address++)。 send_data(a)。//顯示百位 send_mand(address++)。 send_data(b)。//顯示十位 send_mand(address++)。 send_data(c)。//顯示個(gè)位 send_mand(address++)。 send_data(0x2e)。//顯示小數(shù)點(diǎn) send_mand(address++)。 send_data(d)。//顯示小數(shù)位 send_mand(address)。 send_data(0xdf)。//顯示溫度符號(hào)}/********設(shè)置最大值********/void setmax(){ while(1) { if(KEY4==0) { max=max+10。 time()。 } else if(KEY5==0) { max=max10。 time()。 } if(KEY3==0) break。 send_mand(0x01)。 if(max=0) send_T(0xC9,max,0)。 else send_T(0xC9,0max,1)。 } }/********設(shè)置最小值********/void setmin(){ while(1) { if(KEY4==0) { min=min+10。 time()。 } else if(KEY5==0) { min=min10。 time()。 } if(KEY3==0) break。 send_mand(0x01)。 if(min=0) send_T(0xC0,min,0)。 else send_T(0xC0,0min,1)。 }}/********ds18b20程序********/void delay_18B20(uint i)//延時(shí)1微秒{ while(i)。}void ds18b20rst()/*ds18b20復(fù)位*/{ unsigned char x=0。 DQ = 1。 //DQ復(fù)位 delay_18B20(4)。 //延時(shí) DQ = 0。 //DQ拉低 delay_18B20(100)。 //精確延時(shí)大于480us DQ = 1。 //拉高 delay_18B20(40)。 } uchar ds18b20rd()/*讀數(shù)據(jù)*/{ unsigned char i=0。 unsigned char dat = 0。 for (i=8。i0。i) { DQ = 0。 //給脈沖信號(hào) dat=1。 DQ = 1。 //給脈沖信號(hào) if(DQ) dat|=0x80。 delay_18B20(10)。 } return(dat)。}void ds18b20wr(uchar wdata)/*寫數(shù)據(jù)*/{ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = wdataamp。0x01。 delay_18B20(10)。 DQ = 1。 wdata=1。 }}void read_temp()/*讀取溫度值并轉(zhuǎn)換*/{ uchar a1,b1。 uint avalue。//溫度值 uchar tflag。//溫度正負(fù)標(biāo)志 ds18b20rst()。 ds18b20wr(0xcc)。//*跳過讀序列號(hào)*/ ds18b20wr(0x44)。//*啟動(dòng)溫度轉(zhuǎn)換*/ delay()。 ds18b20rst()。 ds18b20wr(0xcc)。//*跳過讀序列號(hào)*/ ds18b20wr(0xbe)。//*讀取溫度*/ a1=ds18b20rd()。 b1=ds18b20rd()。 avalue=(b18)。 avalue+=a1。 if(avalue0x0fff) tflag=0。 else { avalue=~avalue+1。 tflag=1。 } avalue=avalue*()。//溫度值擴(kuò)大10倍,精確到1位小數(shù) send_mand(0x80)。 send_data(39。T39。)。//顯示 T send_mand(0x81)。 send_data(39。:39。)。//顯示 : send_T(0x89,avalue,tflag)。//在1602上顯示溫度值 if(tflag==0) t=avalue。 else t=0avalue。}/********主函數(shù)********/main(){ KEY1=1。 KEY2=1。 KEY3=1。 KEY4=1。 KEY5=1。 BUZZER=1。 send_mand(0x38)。 send_mand(0x0c)。 send_mand(0x06)。 send_mand(0x01)。 send_mand(0x81)。 while(1) { if(KEY1==0) //掃描按鍵 setmax()。 else if(KEY2==0) setmin()。 read_temp()。//讀溫度并顯示 if(min=0) //顯示最小值 send_T(0xC0,min,0)。 else send_T(0xC0,0min,1)。 if(max=0) //顯示最大值 send_T(0xC9,max,0)。 else send_T(0xC9,0max,1)。 if((t=max)||(t=min)) //蜂鳴器報(bào)警 BUZZER=0。 else BUZZER=1。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1