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

正文內(nèi)容

柯睿醫(yī)用數(shù)字溫度計的設(shè)計-資料下載頁

2025-02-04 00:37本頁面

【導(dǎo)讀】隨著時代的進(jìn)步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研,各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù)。單片機控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從數(shù)單片機技術(shù)入手,一。切向著數(shù)字化控制,智能化控制方向發(fā)展。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機AT89C2051,測溫傳感器使用DS18B20,用4位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。數(shù)字溫度計采用溫度敏感元件也就是溫度傳感器(如鉑電阻,熱電偶,半導(dǎo)體,這樣就完成了數(shù)字溫度計的基本測溫功。數(shù)字溫度計根據(jù)使用的傳感器的不同,AD轉(zhuǎn)換電路,及處理單元的不同,它的

  

【正文】 ***********/ //從總線上取 1 個字節(jié) uchar read_byte(void) { uchar i。 uchar value=0。 for(i=8。i0。i) { DQ=1。_nop_()。_nop_()。 value=1。 DQ=0。_nop_()。_nop_()。_nop_()。_nop_()。 //4 us DQ=1。_nop_()。_nop_()。_nop_()。_nop_()。 //4 us if(DQ)value|=0x80。 delay(6)。 //66 us } DQ=1。 return(value)。 } /***************讀出溫度函數(shù) **************/ read_temp() { ow_reset()。 //總線復(fù)位 delay(200)。 write_byte(0xcc)。 //發(fā)命令 write_byte(0x44)。 //發(fā) 轉(zhuǎn)換命令 ow_reset()。 delay(1)。 write_byte(0xcc)。 //發(fā)命令 write_byte(0xbe)。 temp_data[0]=read_byte()。 //讀溫度值的第字節(jié) temp_data[1]=read_byte()。 //讀溫度值的高字節(jié) temp=temp_data[1]。 temp=8。 temp=temp|temp_data[0]。 // 兩字節(jié)合成一個整型變量。 return temp。 //返回溫度值 } /***************溫度數(shù)據(jù)處 理函數(shù) ************/ //二進(jìn)制高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一字節(jié) ,這個 //字節(jié)的二進(jìn)制轉(zhuǎn)換為十進(jìn)制后 ,就是溫度值的百、十、個位值 ,而剩 //下的低字節(jié)的低半字節(jié)轉(zhuǎn)化成十進(jìn)制后 ,就是溫度值的小數(shù)部分 /***********************************************/ work_temp(uint tem) { uchar n=0。 if(tem6348) // 溫度值正負(fù)判斷 {tem=65536tem。n=1。} // 負(fù)溫度求補碼 ,標(biāo)志位置 1 display[4]=temamp。0x0f。 // 取小數(shù)部分的值 display[0]=ditab[display[4]]。 // 存入小數(shù)部分顯示值 display[4]=tem4。 // 取中間八位 ,即整數(shù)部分的值 display[3]=display[4]/100。 // 取百位數(shù)據(jù)暫存 display[1]=display[4]%100。 // 取后兩位數(shù)據(jù)暫存 display[2]=display[1]/10。 // 取十位數(shù)據(jù)暫存 display[1]=display[1]%10。 //個位數(shù) 據(jù) r=display[1]+display[2]*10+display[3]*100。 /////符號位顯示判斷 ///// if(!display[3]) { display[3]=0x0a。 //最高位為 0 時不顯示 if(!display[2]) { display[2]=0x0a。 //次高位為 0 時不顯示 } } if(n){display[3]=0x0b。} //負(fù)溫度時最高位顯示 } void BEEP() { 2 if((r=highamp。amp。r129)||rlow) { beep=!beep。 } else { beep=0。 } } //*********設(shè)置溫度顯示轉(zhuǎn)換 ************// void xianshi(int horl) { int n=0。 if(horl128) { horl=256horl。n=1。 } display[3]=horl/100。 display[3]=display[3]amp。0x0f。 display[2]=horl%100/10。 display[1]=horl%10。 display[0]=0。 if(!display[3]) { display[3]=0x0a。 //最高位為 0 時不顯示 if(!display[2]) { display[2]=0x0a。 //次高位為 0 時不顯示 } } if(n) { display[3]=0x0b。 //負(fù)溫度時最高位顯示 } } //*********按鍵查詢程序 **************// void keyscan() { int temp1。 //最高溫度和最低溫度標(biāo)志位 if(set==0) { while(1) { delay(500)。//消抖 if(set==0) { temp1++。 while(!set) scan()。 } if(temp1==1) { xianshi(high)。 scan()。 if(add==0) { while(!add) scan()。 high+=1。 } if(dec==0) { while(!dec) scan()。 high=1。 } } if(temp1==2) { xianshi(low)。 if(add==0) { while(!add) scan()。 low+=1。 } if(dec==0) { while(!dec) scan()。 low=1。 } scan()。 } if(temp1=3) { temp1=0。 break。 } } 3 } } /****************主函數(shù) ************************/ void main() { dm=0x00。 //初始化端口 w0=0。 w1=0。 w2=0。 w3=0。 for(h=0。h4。h++) //開機顯示 0000 { display[h]=0。 } ow_reset()。 //開機先轉(zhuǎn)換一次 write_byte(0xcc)。 //Skip ROM write_byte(0x44)。 //發(fā)轉(zhuǎn)換命令 for(h=0。h100。h++) //開機顯示 0000 { scan()。 } while(1) { if (temp1==0) { work_temp(read_temp())。 //處理溫度數(shù)據(jù) BEEP()。 scan()。 //顯示溫度值 keyscan()。 } else keyscan()。 } } //***********************結(jié)束 ************//
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1