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

正文內(nèi)容

基于單片機(jī)得溫度控制器畢業(yè)設(shè)計(jì)說(shuō)明書(編輯修改稿)

2024-07-16 12:47 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 igned intdefine uchar unsigned chardefine LCD P0sbit LED=P3^4。//位定義報(bào)警顯示燈sbit xuanze=P2^2。//位定義選擇按鍵sbit up=P2^1。//位定義極限加sbit down=P2^0。//位定義極限減int th=10,tl=2,thh=0,tll=0。//初始上限值和下限值uchar i,num=0。//定義變量/******************************************************* 延時(shí)函數(shù)*******************************************************/void delay(uint z){ uint x,y。 for (x=z。x0。x) for(y=110。y0。y)。}/************************************************* LCD部分***************************************************/sbit rs=P2^5。sbit rw=P2^6。sbit E=P2^7。uchar tmp5[]=Temp:。uchar tmp6[]=^C。uchar code tab1[]=TH:。uchar code tab2[]=TL:。write_(uchar )//LCD寫地址函數(shù){ rs=0。 rw=0。 E=1。 LCD=。 delay(5)。 E=0。 }write_data(uchar dat)//LCD寫數(shù)據(jù)函數(shù){ rs=1。 rw=0。 E=1。 LCD=dat。 delay(5)。 E=0。}init_lcd()//LCD初始化函數(shù){ write_(0x38)。//16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) write_(0x0c)。//設(shè)置為顯示開,關(guān)光標(biāo),不閃爍 write_(0x06)。//寫操作后,AC自動(dòng)加1 write_(0x01)。 //LCD清屏 write_(0x80+0x01)。//LCD第一行第二個(gè)位置起顯示TH: for(i=0。i3。i++) { write_data(tab1[i])。 } write_(0x80+9)。//LCD第一行第10個(gè)位置起顯示TL: for(i=0。i3。i++) { write_data(tab2[i])。 } write_(0x80+0X40+0x00)。//LCD第二行開始出顯示Temp: for(i=0。i5。i++) { write_data(tmp5[i])。 } write_(0x80+0X40+10)。//顯示溫度的單位 for(i=0。i2。i++) { write_data(tmp6[i])。 } //以下是溫度的上限和下限初始化顯示部分 write_(0x80+0x00+4)。 write_data(39。+39。)。 write_data(th/10+0x30)。 write_data(th%10+0x30)。 write_(0x80+0x00+12)。 write_data(39。+39。)。 write_data(tl/10+0x30)。 write_data(tl%10+0x30)。}/********************************************************* DS18B20部分**********************************************************/uchar timecount。//定義中斷次數(shù)uchar test0,test1,test。//溫度值變量uchar a1,a2,a3。//溫度整數(shù)部分的十位,個(gè)位和小數(shù)部分的十分位uchar readdate[2]。//定義數(shù)組,用來(lái)暫存讀取的溫度值sbit DQ=P1^1。//DS18B20數(shù)據(jù)口bit sflag。//定義溫度的正負(fù)標(biāo)志位void delay1(uint i)//短延時(shí)函數(shù){while(i)。}void reset()//DS18B20的復(fù)位函數(shù){uchar x=0。 DQ=1。//使總線為高電平 delay1(8)。//延時(shí) DQ=0。//使總線為低電平 delay1(80)。//延時(shí),大于480us DQ=1。//使總線為高電平 delay1(14)。//延時(shí),等待DS18B20回應(yīng)低電平 x=DQ。//將DS18B20的回應(yīng)讀到變量x,用于判斷復(fù)位是否成功delay1(20)。//延時(shí)一段時(shí)間結(jié)束}void writecmd(uchar cmd)//DS18B20的寫字節(jié)函數(shù){ uchar i=0。//定義位循環(huán)變量 for(i=8。i0。i)//循環(huán)8次 { DQ=0。//總線拉低 DQ=cmdamp。0x01。//將發(fā)送字節(jié)的最低位送到總線 delay1(5)。//延時(shí)(30us),等待DS18B20取走總線數(shù)據(jù) DQ=1。//總線拉高 cmd=1。//將待發(fā)送的字節(jié)右移后,繼續(xù)發(fā)送 }}uchar readdat()//DS18B20的讀字節(jié)函數(shù){ uchar i=0。//定義位循環(huán)變量 uchar temp=0。//定義暫存變量 for(i=8。i0。i)//循環(huán)8次 { DQ=0。//總線為低電平 temp=1。//暫存變量右移 DQ=1。//總線拉高,執(zhí)行如下的讀操作 if(DQ)//如果DS18B20輸出高電平 temp|=0x80。//將暫存變量的最高位置1 delay1(4)。//延時(shí)一段時(shí)間 } return temp。//程序結(jié)束后,將暫存變量返回調(diào)用程序}/*************************************************** 按鍵設(shè)置上線溫度和下限溫度值函數(shù) ****************************************************/void key(){ // key0=0。 if(xuanze==0)//如果選擇鍵按下{delay(10)。//延時(shí)消抖if(xuanze==0)//如果按鍵還處于按下狀態(tài) { num++。//次數(shù)加1 while(!xuanze)。//等待按鍵抬起 if(num==1)//如果按下選擇鍵的次數(shù)為1 { TR0=0。//關(guān)閉中斷 write_(0x80+0x00+5)。//光標(biāo)移到第一行第七個(gè)位置 write_(0x0f)。//設(shè)置為顯示開,開光標(biāo),閃爍 } if(num==2)//如果按下選擇鍵的次數(shù)為2 { write_(0x80+0x00+13)。//光標(biāo)移到第一行第十五個(gè)位置 } if(num==3)//如果按下選擇鍵的次數(shù)為3 { num=0。//次數(shù)清零 write_(0x0c)。//設(shè)置為顯示開,關(guān)光標(biāo),不閃爍 TR0=1。//開中斷 } } }if(num!=0)//在選擇鍵按下時(shí){ if(up==0)//如果極限加按鍵按下 { delay(10)。//延時(shí)消抖 if(up==0)//如果極限加按鍵仍處于按下狀態(tài) { while(!up)。//等待按鍵抬起 if(num==1)//如果選擇鍵按了一次 { th++。//上線值加1 if(th=0)//如果上線值為正 {thh=0。//計(jì)數(shù)清零 write_(0x80+0x00+4)。 write_data(39。+39。)。//顯示正號(hào) write_(0x80+0x00+5)。 write_data(th/10+0x30)。//顯示上限溫度值的十位 write_data(th%10+0x30)。//顯示上限溫度值的個(gè)位 } if(th0) { thh。 write_(0x80+0x00+4)。 write_data(39。39。)。//顯示正號(hào) write_(0x80+0x00+5)。 write_data(thh/10+0x30)。//顯示上限溫度值的十位 write_data(thh%10+0x30)。//顯示上限溫度值的個(gè)位 } } if(num==2)//如果選擇鍵按了兩次 { tl++。//下限溫度值加1 if(tl=0)//如果下限溫度值為正 { tll=0。//計(jì)數(shù)清零 write_(0x80+0x00+12)。 // 顯示正號(hào) write_data(39。+39。)。// write_(0x80+0x00+13)。 write_data(tl/10+0x30)。//顯示下限溫度值的十位 write_data(tl%10+0x30)。//顯示下限溫度值的個(gè)位 } if(tl0) { tll。 write_(0x80+0x00+12)。 write_data(39。39。)。//顯示正號(hào) write_(0x80+0x00+13)。 write_data(tll/10+0x30)。//顯示上限溫度值的十位 write_data(tll%10+0x30)。//顯示上限溫度值的個(gè)位 } } } } } if(down==0)//如果極限減按鍵按下 { delay(10)。//延時(shí)消抖 if(down==0)//如果按鍵仍處于按下狀態(tài){while(!down)。//等待按鍵抬起 if(num==1)//如果選擇鍵按了一次 { th。//上限溫度值減1
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1