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

正文內(nèi)容

基于單片機(jī)的恒溫控制系統(tǒng)-資料下載頁(yè)

2025-06-26 19:07本頁(yè)面
  

【正文】 t=DispBuf[1]。 Led1=0。 uDelay(20)。 Led1=1。 LedPort=DispBuf[2]。 Led2=0。 uDelay(20)。 Led2=1。 LedPort=DispBuf[3]。 Led3=0。 uDelay(20)。 Led3=1。 }}void Inti(){ DataPort=0。 //拉低 uDelay(180)。 //延時(shí)后拉高 DataPort=1。 uDelay(24)。 //延時(shí)后讀狀態(tài),如果存在,由18B20將端口拉低 Presence=DataPort。//狀態(tài)存入,用于后面顯示判斷 uDelay(230)。 //延時(shí)完成一周期時(shí)間}void WriteByte(uchar val) //字節(jié)寫入{ uchar i。 for (i=8。 i0。 i) { DataPort = 0。 uDelay(4)。 DataPort = valamp。0x01。 uDelay(20)。 DataPort = 1。 val=val/2。 } uDelay(50)。}uchar ReadByte() //字節(jié)讀取{uchar i。uchar value=0。 for (i=0。i8。i++)//讀入8字節(jié) { DataPort=0。 //拉低后再拉高,產(chǎn)生讀間隙 DataPort=1。 uDelay(4)。 //延時(shí)后讀入 if(DataPort) value|=0x01i。 uDelay(20)。 //延時(shí)完成一周期時(shí)間 }return (value)。}void SetStep(uchar Dat) //入口參數(shù),1F-0。5度步進(jìn),3F-0。25度,5F0。125度,7F0。0625度{ Inti()。 WriteByte(0xcc)。 WriteByte(0x4e)。 WriteByte(0x15)。 //寫地址2—TH WriteByte(0x00)。 //寫地址3—TL WriteByte(Dat)。 //地址4,保留區(qū),用于小數(shù)后分辨率,1F,3F,5F,7F取值,值越大分辨率越高 Inti()。 WriteByte(0xcc)。 WriteByte(0xbe)。 ReadByte()。 Inti()。 WriteByte(0xcc)。 WriteByte(0x48)。 //拷貝指令,發(fā)出后等6ms等待18B20將數(shù)據(jù)寫入EEPROM,寫結(jié)束再?gòu)?fù)位。 uDelay(100)。 Inti()。 DataPort=1。}void GetTemp() //溫度獲得子程序,返回值在TempH,TempL中{ Inti()。 // Display(8)。//每執(zhí)行一條指令補(bǔ)充顯示,消除閃動(dòng) WriteByte(0xcc)。// Display(8)。 WriteByte(0x44)。// Display(8)。 Inti()。 // Display(8)。 WriteByte(0xcc)。// Display(8)。 WriteByte(0xbe)。// Display(8)。 TempL=ReadByte()。// Display(8)。 TempH=ReadByte()。// Display(8)。}void delay(uint x){ uint i。 for(i=0。ix。i++)。} void display(void){ P0=DispTab[one]。 LED_0=0。 delay(100)。 LED_0=1。 P0=DispTab[two]。 LED_1=0。 delay(100)。 LED_1=1。 P0=DispTab[three]。 LED_2=0。 delay(100)。 LED_2=1。 P0=DispTab[four]。 LED_3=0。 delay(100)。 LED_3=1。 }void led_analyze(uint l){ l=l%10000。 one=l/1000。 two=(l/100)%10。 three=(l%100)/10。 four=(l%100)%10。}void Keys_Scan(){ uchar Tmp。 P2=0xf0。 delay(10)。 if(((P2amp。0xf0)!=0xf0)amp。amp。(delaycount25)){ //如果有按鍵按下,并且距上次檢測(cè)到按鍵有一段較長(zhǎng)時(shí)間 numce=1。 //使能改變鍵值 delaycount=0。 //計(jì)時(shí)復(fù)位 } P2=0x0f。 //高4位置0,放入4行 delay(2)。 Tmp=P2^0x0f。//按鍵后0f變成0000XXXX,X中一個(gè)為0,3個(gè)仍為1,通過(guò)異或把3個(gè)1變?yōu)?,唯一的0變?yōu)? switch(Tmp) //判斷按鍵發(fā)生于0~3列的哪一列 { case 1: KeyNo=0。break。 case 2: KeyNo=1。break。 case 4: KeyNo=2。break。 case 8: KeyNo=3。break。 //default:KeyNo=16。 //無(wú)鍵按下 } P2=0x30。 //低4位置0,放入4列 delay(2)。 Tmp=P24^0x03。//按鍵后f0變成XXXX0000,X中有1個(gè)為0,三個(gè)仍為1;高4位轉(zhuǎn)移到低4位并異或得到改變的值 switch(Tmp) //對(duì)0~3行分別附加起始值0,4,8,12 { case 1: KeyNo+=0。break。 case 2: KeyNo+=4。break。 }}void settemp(void){ switch(num2num[KeyNo]){ case 0:setnum+=10。 if(setnum100){ setnum=99。 } break。 case 1:if(setnum10){ setnum=10。 }else{ setnum=0。 } break。 case 2:setnum+=5。 if(setnum100){ setnum=99。 } break。 case 3:if(setnum5){ setnum=5。 }else{ setnum=0。 } break。 case 4:setnum+=1。 if(setnum99){ setnum=99。 } break。 case 5:if(setnum0){ setnum=1。 } break。 } }void main(void){ float Temp。 Temp=(TempH*256+TempL)*0。625。 uDelay(100)。 Presence=1。 SetStep(0x7f)。 GetTemp()。 //獲取溫度值 while(1) { Keys_Scan()。 //掃描鍵盤值 if(delaycount26){ //按鍵改值延時(shí) delaycount++。 } if((numce==1)){ //當(dāng)允許改變?cè)O(shè)定值時(shí) numce=0。 //不允許改變?cè)O(shè)定值 settemp()。 //改變?cè)O(shè)定值 } GetTemp()。 //獲得當(dāng)前溫度值 Hex2Bcd()。 //將16進(jìn)制溫度值轉(zhuǎn)化為十進(jìn)制溫度值 led_analyze(setnum*100+TempH)。 //setnum是設(shè)置的溫度值,Temp是測(cè)量的溫度值 display()。 if(TempHsetnum) { //測(cè)量值大于設(shè)定值亮紅燈,共陽(yáng)極 lightr=0。 lightg=1。 } else //測(cè)量值大于設(shè)定值亮綠燈,共陽(yáng)極 { lightr=1。 lightg=0。 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1