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

正文內(nèi)容

基于51單片機及ds18b20溫度傳感器的數(shù)字溫度計設(shè)計-wenkub.com

2025-05-28 08:55 本頁面
   

【正文】 break。//第四個數(shù)碼管顯示 wei1=0。 wei4=0。 break。//第二個數(shù)碼管顯示 wei1=0。 wei4=0。j4。 bit f=0。 wei4=1。 if(s1==1) P0=temperature1[min%10]。//若s=0則顯示第四個數(shù)碼管,否則不顯示 else P0=temperature3[0]。 wei3=1。 if(s1==1) selsct_2(f_min,min)。//若s=0則顯示第三個數(shù)碼管,否則不顯示 else P0=temperature3[0]。 wei2=1。 if(s1==1) selsct_1(f_min,min)。//若s=0則顯示第二個數(shù)碼管,否則不顯示 else P0=temperature3[0]。 //關(guān)第四個數(shù)碼管 wei1=1。 //若a=1則在第一個數(shù)碼管上顯示‘H’ } if(a==2) { P0=temperature3[4]。 for(i=0。 else P0=temperature1[k%100/10]。 else P0=temperature3[2]。 //定時1s時間到時自動關(guān)閉報警上下限顯示功能 v1=1。}else{beer=1。led=1。 //每進入一次定時器中斷num加1(每50ms加1一次) if(num5) {s=1。 //開定時器1中斷 TR1=t。 //設(shè)定定時器1工作在方式1, TH0=0x3c。i) for(j=120。 //帶小數(shù)點的0.~9.uchar code temperature3[]={ 0x00,0x80,0x40,0x76,0x38}。 //sbit wei4=P2^7。 } } } }endif/*********************************************************************** 程序名。 if(key4==0) { beer=1。v1=0。 //開定時器1開始定時1s s1=1。 keyscan_delay(10)。 //開定時器1開始定時一分鐘左右 s1=1。 keyscan_delay(10)。else f_min=~f_min。 if(key4==0) { beer=1。min=temp_change(min,f_min)。max=temp_change(max,f_max)。 //K1松按鍵時消抖 keyscan_delay(10)。 //a=1選擇顯示上限溫度 case 2:a=2。 //存儲調(diào)整后的上下限報警溫度 } switch(i) //顯示選擇 { case 0:a=0。 //進入正常模式 TR1=0。//開定時器1,通過s標志位的變化,實現(xiàn)在上下限溫度調(diào)整時溫度顯示時閃爍的功能 k4=1。}/*****************************讀鍵盤函數(shù)******************************/void keyscan(){ if(key1==0) { if(v2==0) beer=0。}//當(dāng)溫度值達到0時不再調(diào) if(a==2){if(count0) count=0。 keyscan_delay(10)。}//當(dāng)溫度值小于55時不再下調(diào) if(a==2){if(count55) count=55。 //每按一下K2溫度上調(diào)1 if(a==1){if(count125) count=125。}/****************************溫度調(diào)節(jié)函數(shù)******************************/int temp_change(int count,bit f) //上下限溫度調(diào)整{ if(key2==0) //判斷K2是否按下 { if(v2==0)beer=0。i0。 //KK3按鍵雙功能選擇位,v=0時選擇上下限查看功能,v=1時選擇上下限溫度加減功能bit v1=0。 //uchar i=0。 __keyscan_H__ * 功 能: ds18b20鍵盤頭文件,通過鍵盤設(shè)定設(shè)定上下限報警溫度* 編程者:zicreate* 編程時間:2009/10/2 **********************************************************************/ifndef __keyscan_H__ //定義頭文件define __keyscan_H__sbit key1=P2^2。(temp+temp_d*)max) {w=0。} } } } if(f_max==1) //若下限值是負值 { if(f_min==1) //若下限值是負值 { if(f==1) //若測量值是負值 { if((temp+temp_d*)=max||(temp+temp_d*)=min) {w=1。} if((temp+temp_d*)max )//當(dāng)測量值小于最大值時不報警 {w=0。} //當(dāng)測量值大于最小值且小于最大值時不報警 } if(f==1){w=1。TR1=1。 //向配置寄存器寫命令,進行溫度值分辨率設(shè)置 ds18b20_init()。 //向DS18B20發(fā)跳過讀ROM命令 ds18b20_write(0x4e)。 }}/*************************存儲極限溫度函數(shù)***************************/ void store_t() { if(f_max==1) //若上限溫度為負,將上限溫度轉(zhuǎn)換成有符號數(shù)(最高1是負,0是正) max=max+0x80。 //負數(shù)的整數(shù)部分取反 temp=((a4)|(b4))。 temp_d=a。 if (i==0) { f=0。min=(min0x80)。max=(max0x80)。 //讀內(nèi)部RAM (MSB) if(f==1) //局部位變量f=1時讀上下線報警溫度 { max=ds18b20_read()。 //DS18B20初始化 ds18b20_write(0xcc)。//寫啟動DS18B20進行溫度轉(zhuǎn)換命令,轉(zhuǎn)換結(jié)果存入內(nèi)部RAM if(f==1) { //首次啟動DS18B20進行溫度轉(zhuǎn)換需要500ms,若轉(zhuǎn)換時間不夠就出錯,讀出的是85度的錯誤值。 uint i。 //寫數(shù)據(jù) ds18b20_delayus(5)。 _nop_()。 for(i=8。 //必須寫1,否則讀出來的將是不預(yù)期的數(shù)據(jù); if(DQ) //在12us處讀取數(shù)據(jù),送給d的最高位 d |= 0x80。 _nop_()。 //準備讀; for(i=8。 //延時,等待上拉電阻拉高總線 DQ=1。 //控制器向DS18B20發(fā)低電平脈沖 ds18b20_delayus(30)。j0。}void ds18b20_delayms(uint t) //延時1ms左右{ uint i,j。 //測量溫度的標志位,0’表示“正溫度”‘1’表示“負溫度”)bit f_max=0。 //sbit led=P1^1。 //按鍵掃面函數(shù) }} /********************************************************************* 程序名。 //獲取溫度函數(shù) keyscan()。 //關(guān)閉LED燈 timer1_init(0)。 //s是調(diào)整上下限溫度時溫度閃爍的標志位,s=0不顯示200ms,s=1顯示1s左右bit s1=0。在正常模式下,按一下K2進入查看上限溫度模式,顯示1s左右自動* 退出;按一下K3進入查看下限溫度模式,顯示1s左右自動退出;按一下K4消除* 按鍵音,再按一下啟動按鍵音。在以后的學(xué)習(xí)中,我們會更加注重實踐方面的鍛煉,多提高自己的動手實踐能力。經(jīng)過此次的硬件制作與調(diào)試,鍛煉了我們的動手實踐能了。這次的設(shè)計不僅使我們將課堂上學(xué)到的理論知識與實際應(yīng)用結(jié)合了起來,而且使我們對電子電路、電子元器件、印制電路板等方面的知識有了更進一步的認識,同時在軟件編程、焊板調(diào)試、相關(guān)調(diào)試儀器的使用等方面得到較全面的鍛煉和提高,為今后能夠獨立進行某些單片機應(yīng)用系統(tǒng)的開發(fā)設(shè)計工作打下一定的基礎(chǔ)。但考慮到單片機的I/O口默認狀態(tài)時為高電平,這樣一上電蜂鳴器就會響,所以將NPN型9013換成了PNP型的9012三極管,效果還不錯。具體的程序流程圖如圖35所示。圖34 DS18B20程序流程圖 顯示程序設(shè)計顯示電路是由四位一體的數(shù)碼管來實現(xiàn)的。整個讀時序必須有最短60μs的持續(xù)期。如圖32的上半部分。當(dāng)主機把數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫時序。DS18B20的初始化時序如圖32所示。重調(diào) EEPROM0xB8將EEPROM中內(nèi)容恢復(fù)到RAM中的第3 、4字節(jié)。溫度變換0x44啟動DS1820進行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時最長為750ms()。為操作各器件作好準備。如圖31 DS18B20的操作流程 DS18B20傳感器的指令表DS18B20傳感器的操作指令如表31所示。該電路是由一個蜂鳴器和一個紅色的發(fā)光二極管組成,具體的電路如圖29所示。圖25 四位一體的共陰數(shù)碼管管腳分布圖顯示電路的總體設(shè)計如圖26所示。采用寄生電源供電方式時VDD端接地。原理圖如圖24所示。程序設(shè)計為低電平觸發(fā)。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。表22是一部分溫度值對應(yīng)的二進制溫度數(shù)據(jù)。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第2字節(jié)。因此,在實際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。圖23 DS18B20的高速暫存RAM的結(jié)構(gòu)頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝是易失的,每次上電復(fù)位時被刷新。圖22 DS18B20的封裝形式DS18B20的64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗碼,這也是多個DS18B20可以采用一線進行
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1