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

正文內(nèi)容

基于單片機(jī)的溫度計(jì)設(shè)計(jì)開(kāi)發(fā)畢業(yè)論文(參考版)

2025-06-30 19:43本頁(yè)面
  

【正文】 write_dat。 delay(2)。K39。 delay(2)。O39。 delay(2)。T39。 write_(0x80+0x0d)。(t=warn_l1)) //溫度適中在26與28度之間 { write_(0x80+0x40)。 } else if ((twarn_h1)amp。 TD3=1。)。 write_data(39。)。 write_data(39。)。 write_data(39。 delay(2)。339。 delay(2)。H39。 delay(2)。T39。 write_(0x80+0x0d)。 led=0。 delay(2)。239。 delay(2)。D39。 delay(2)。T39。 write_(0x80+0x4d)。)。 write_data(39。)。 write_data(39。)。 write_data(39。(t=warn_h2)) //大于30度小于32度 { warn(t)。 } else if((twarn_h3)amp。 TD1=1。)。 write_data(39。)。 write_data(39。)。 write_data(39。 delay(2)。139。 delay(2)。H39。 delay(2)。T39。 write_(0x80+0x0d)。amp。 delay(2)。R39。 delay(2)。T39。 write_(0x80+0x4d)。 delay(2)。L39。 delay(2)。T39。 write_(0x80+0x0d)。 beep=0。(tem=warn_l1))) { beep=1。} else { while(~((temwarn_h1)amp。amp。 //乘以10表示小數(shù)點(diǎn)后面只取1位, return temp。 //溫度在寄存器中為12位 176。 //兩個(gè)字節(jié)組合為1個(gè)字 temp=temp|a。 //讀高8位 temp=b。 a=tempread()。 tempwritebyte(0xcc)。 dsreset()。 // 寫(xiě)跳過(guò)讀ROM指令 tempwritebyte(0x44)。//18B20復(fù)位,初始化函數(shù) delay(1)。i++。 ds=1。 //寫(xiě) 0 i=8。while(i0)i。 ds=1。 i++。 dat=dat1。j++) { testb=datamp。 for(j=1。 uchar j。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里 } return(dat)。i++) { j=tempreadbit()。 for(i=1。}uchar tempread(void) //讀1個(gè)字節(jié){ uchar i,j,dat。while(i0)i。 dat=ds。i++。i++。 bit dat。 while(i0)i。 ds=1。 i=103。}////////////////////////DS18B20相關(guān)程序//////////////////////////////////void dsreset(void) //18B20復(fù)位,初始化函數(shù){ uint i。y0。x0。//顯示溫度及處理過(guò)程 }}/////////////延時(shí)函數(shù)///////////////////void delay(uint z)//延時(shí)函數(shù){uint x,y。//獲取十進(jìn)制溫度deal(temp)。while(1) { tempchange()。 //顯示名字////////////////////////主程序//////////////////////////void main(){init_1602()。 //1602寫(xiě)數(shù)據(jù)void dis_1602()。 //初始化1602void write_(uchar )。 //蜂鳴器報(bào)警聲音 ,s控制音調(diào),流水燈報(bào)警void deal(uint t)。 //DS18B20 開(kāi)始獲取溫度并轉(zhuǎn)換uint get_temp()。 //讀1個(gè)字節(jié)void tempwritebyte(uchar dat)。 //18B20復(fù)位,初始化函數(shù)bit tempreadbit(void)。/////////////聲明子函數(shù)////////////////////void delay(uint z)。 //定義字符數(shù)組顯示數(shù)字uint temp。uint warn_h3=320。uint warn_h1=280。 //風(fēng)扇3檔sbit led=P2^0。 //風(fēng)扇1檔sbit TD2=P1^1。 //溫度傳感器信號(hào)線sbit beep=P2^1。sbit lcdrw=P2^6。//顯示溫度及處理過(guò)程 }}include include define uchar unsigned chardefine uint unsigned intsbit lcden=P2^7。//獲取十進(jìn)制溫度deal(temp)。 while(1) { tempchange()。void main(){init_1602()。 delay(2)。K39。 delay(2)。O39。 delay(2)。T39。 write_(0x80+0x4d)。)。 write_data(39。)。 write_data(39。)。 write_data(39。 dis_1602()。amp。 led=0。 delay(2)。339。 delay(2)。D39。 delay(2)。T39。 write_(0x80+0x4d)。)。 write_data(39。)。 write_data(39。)。 write_data(39。 } else if(t=warn_h3) //大于32度 { warn(t)。 TD2=1。)。 write_data(39。)。 write_data(39。)。 write_data(39。 delay(2)。239。 delay(2)。H39。 delay(2)。T39。 write_(0x80+0x0d)。amp。 led=0。 delay(2)。139。 delay(2)。D39。 delay(2)。T39。 write_(0x80+0x4d)。)。 write_data(39。)。 write_data(39。)。 write_data(39。(t=warn_h1)) //小于30度大于28度 { warn(t)。 } else if((twarn_h2)amp。)。 write_data(39。)。 write_data(39。 led=0。)。 write_data(39。)。 write_data(39。程序如下:void deal(uint t) //溫度處理過(guò)程 { if(t=warn_l1) //小于26度 { warn(t)。 } }} }該程序是溫度處理程序,首先用if進(jìn)行判斷,判斷當(dāng)前溫度所在的范圍,當(dāng)達(dá)到設(shè)定低溫時(shí),在右上角顯示TL,以示當(dāng)前溫度低;當(dāng)溫度達(dá)到預(yù)告高溫時(shí),在右上角顯示TH1,并在1602右下角顯示TD1,以示溫度需要降低,當(dāng)達(dá)到高溫上線限時(shí),在右上角顯示TH2,并在1602右下角顯示TD2,以示溫度急需要降低,當(dāng)溫度再高的話(huà),在右上角顯示TH3,并在1602右下角顯示TD3。 delay(2)。amp。(tem=warn_l1)) {beep=0。程序如下:void warn(uint s,uchar led) //蜂鳴器報(bào)警聲音 ,s控制音調(diào),流水燈報(bào)警{ void warn(uint tem) //蜂鳴器報(bào)警聲音 ,s控制音調(diào),燈報(bào)警{ if((temwarn_h1)amp。delay(2)。J39。delay(2)。a39。delay(2)。e39。delay(2)。s39。delay(2)。r39。delay(2)。o39。delay(2)。F39。程序如下:void disname(){write_(0x80+0x00)。delay(2)。delay(2)。write_data(digit[xiaoshu])。)。write_data(39。write_data(digit[ge])。write_data(digit[shi])。xiaoshu=temp%10。shi=temp/100。完后在顯示攝氏度的符號(hào)。}下面程序作用是顯示數(shù)據(jù),首先對(duì)溫度分割,分出來(lái)十位,個(gè)位,以及小數(shù)位。write_(0x06)。write_(0x38)。初始化程序如下:void init_1602() //初始化1602{lcdrw=0。再寫(xiě)命令0x06作用是每當(dāng)寫(xiě)入一個(gè)字符后,地址指針加1,寫(xiě)入一個(gè)字符,整屏顯示不移動(dòng)。然后是顯示模式的設(shè)置寫(xiě)命令0x38,功能是設(shè)置1602顯示,5X7點(diǎn)陣,8位數(shù)據(jù)接口。lcden=0。lcden=1。P0=date。寫(xiě)命令程序如下:void write_data(uchar date) //1602寫(xiě)數(shù)據(jù){lcdrw=0。lcden=0。lcden=1。P0=。寫(xiě)命令程序如下:void write_(uchar ) //1602寫(xiě)指令{lcdrw=0。 //temp是整型}////////////////////顯示程序//////////////////////////顯示驅(qū)動(dòng)程序的設(shè)計(jì)也是要先初始化,因?yàn)槌跏蓟瘯r(shí)候會(huì)往芯片里面寫(xiě)命令和數(shù)據(jù),所以這里先介紹一下怎么給1602寫(xiě)命令和數(shù)據(jù)。 temp=f_temp*10+。 f_temp=temp*。 temp=8。 //讀低8位 b=tempread()。 tempwritebyte(0xbe)。 delay(1)。讀取溫度程序如下:uint get_temp() //讀取寄存器中存儲(chǔ)的溫度數(shù)據(jù){ uchar a,b。 // 寫(xiě)溫度轉(zhuǎn)換指令}這里的程序作用是從剛轉(zhuǎn)換到寄存器中的溫度讀出來(lái),讀之前首先也是對(duì)芯片進(jìn)行復(fù)位,讀之前也要寫(xiě)0xcc這條跳過(guò)讀ROM的指令,跳過(guò)之后寫(xiě)入數(shù)據(jù)0xbe進(jìn)行從RAM中讀數(shù)據(jù),讀出來(lái)是二進(jìn)制表示的,這里用兩個(gè)變量來(lái)存儲(chǔ),如下:a存高8位,b存低8位,然后通過(guò)移位把它們合成一個(gè)字,乘以10保留一位小數(shù)。 tempwritebyte(0xcc)。溫度轉(zhuǎn)換程序如下:void tempchange(void) //DS18B20 開(kāi)始獲取溫度并轉(zhuǎn)換{ dsreset()。 //讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里 } return(dat)。i++) { j=tempreadbit()。 for(i=1。}uchar tempread(void) //讀1個(gè)字節(jié){ uchar i,j,dat。while(i0)i。 dat=ds。i++。i++。 bit dat。在通信時(shí)是以 8 位“0”或“1”為一個(gè)字節(jié),字節(jié)的讀或?qū)懯菑母呶婚_(kāi)始的,即 A7到 A0.。每一位的讀取之前都由控制器加一個(gè)起始信號(hào)。讀時(shí)間隙時(shí)控制時(shí)的采樣時(shí)間應(yīng)該更加的精確才行,讀時(shí)間隙時(shí)也是必須先由主機(jī)產(chǎn)生至少 1uS的低電平,表示讀時(shí)間的起始。i++。 ds=1。 //寫(xiě) 0 i=8。while(i0)i。 ds=1。 i++。 dat=dat1。j++) { testb=datamp。 for(j=1。 uchar j。整個(gè)位的發(fā)送時(shí)間應(yīng)該保持在 60~120uS,否則不能保證通信的正常。采樣時(shí)間內(nèi)如果控制器將總線拉高則表示寫(xiě)“1”,如果控制器將總線拉低則表示寫(xiě)“0”。如下寫(xiě)入的字為dat,而testb則是字的位,這里采用字右移后與0x01相與取出字的每一位,然后賦給單總線。 while(i0)i。 ds=1。 i=103。初始化函數(shù)如下:void dsreset(void) //18B20復(fù)位,初始化函數(shù){ uint i。 //初始化1602dis_1602()。 //1602寫(xiě)指令void write_data(uchar date)。 //獲十進(jìn)制溫度deal(temp)。 //
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1