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

正文內(nèi)容

基于單片機(jī)的單總線溫度計(jì)設(shè)計(jì)-預(yù)覽頁

2025-07-13 12:52 上一頁面

下一頁面
 

【正文】 允許,欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000HFFFFH),EA端必須保持低電平(接地)。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。DS18B20 的性能特點(diǎn)如下:●獨(dú)特的單線接口方式,DS18B20在與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊●DS18B20支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫●DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)●適應(yīng)電壓范圍更寬,電壓范圍:~,在寄生電源方式下可由數(shù)據(jù)線供電●溫范圍-55℃~+125℃,在10~+85℃時(shí)精度為177。開漏單總線接口引腳。 圖 DS18B20注意事項(xiàng)DS18B20 雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:●DS18B20 從測溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時(shí)間,這是必須保證的,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤的現(xiàn)象,使溫度輸出總是顯示85?!裨贒S18B20的有關(guān)資料中均未提及單總線上所掛DS18B20 數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此,當(dāng)單總線上所掛DS18B20 超過8 個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。溫度報(bào)警觸發(fā)器TH和TL,可通過軟件寫入戶報(bào)警上下限。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器。溫度低位溫度高位THTL配置保留保留保留8位CRCLSB MSB當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。圖中,S表示位。 部分溫度值溫度/℃二進(jìn)制表示十六進(jìn)制表示+125000001111101000007D0H+00000001100100010191H+00000000000010000008H000000000000000000000H1111111111111000FFF8H1111111001101111FE6FH551111110010010000FC90HDS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較,若TTH或TTL,則將該器件內(nèi)的告警標(biāo)志置位,并對(duì)主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。 DS18B20測溫原理DS18B20的測溫原理如圖2所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),每次測量前,首先將55 ℃所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在55 ℃所對(duì)應(yīng)的一個(gè)基數(shù)值。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。 DS18B20暫存寄存器分布寄存器內(nèi)容字節(jié)地址溫度最低數(shù)字位0溫度最高數(shù)字位1高溫限值2低溫限值3保留4保留5計(jì)數(shù)剩余值6每度計(jì)數(shù)值7CRC校驗(yàn)8該字節(jié)各位的定義如下:TM R1 R0 1 1 1 1 1低5位一直都是1,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。高速暫存存儲(chǔ)器除了配置寄存器外,還有其他8個(gè)字節(jié)組成,其分配如下所示。(2)、 測量數(shù)據(jù)比較表2為采用直接讀取測溫結(jié)果方法和采用計(jì)算方法得到的測溫?cái)?shù)據(jù)比較,通過比較可以看出,計(jì)算方法在DS1820測溫中不僅是可行的,也可以大大的提高DS1820的測溫分辨率。本溫度計(jì)大體分三個(gè)工作過程。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:初始化、ROM操作指令、存儲(chǔ)器操作指令。SMCl602A芯片的接口信號(hào)說明如表1所列。但寄生電源方式需要強(qiáng)上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到E2PROM 時(shí)) , 同時(shí)芯片的性能也有所降低。DS18B20與芯片連接電路如圖 :圖 DS18B20與單片機(jī)的連接外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。經(jīng)過單線接口訪問DC18B20 必須遵循如下協(xié)議:初始化、ROM 操作命令、存儲(chǔ)器操作命令和控制操作。在檢測到I/O 引腳上的上升沿之后,DS18B20 等待15~60μs,并且接著發(fā)送脈沖(60~240μs 的低電平信號(hào))。有兩種類型的寫時(shí)間片:寫1 時(shí)間片和寫0 時(shí)間片。為了讀出從讀時(shí)間片開始算起15微秒的狀態(tài),主機(jī)必須停止把引腳驅(qū)動(dòng)拉至低電平。所有的串行通訊,讀寫每一個(gè)bit 位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來編程,同時(shí)還必須遵守總線命令序列,對(duì)單總線的DS18B20 芯片來說,訪問每個(gè)器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行ROM 命令;最后就是執(zhí)行功能命令(ROM 命令和功能命令后面以表格形式給出)。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī),且準(zhǔn)備就緒。這些命令允許主機(jī)寫入或讀出DS18B20便箋式RAM、啟動(dòng)溫度轉(zhuǎn)換。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)位。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在寫字節(jié)程序中的寫一個(gè)bit 位的時(shí)候,沒有按照通常的分別寫0時(shí)序和寫1 時(shí)序,而是把兩者結(jié)合起來,當(dāng)主機(jī)拉低總線后在15us 之內(nèi)將要寫的位c 給DO:如果c 是高電平滿足15us 內(nèi)釋放總線的要求,如果c是低電平,則DO=c這條語句仍然是把總線拉在低電平,最后都通過延時(shí)58us 完成一個(gè)寫時(shí)序(寫時(shí)序0或?qū)憰r(shí)序1)過程。I/O線電平變低后,DS18B20 在一個(gè)15μs 到60μs 的窗口內(nèi)對(duì)I/O 線采樣。每個(gè)讀時(shí)隙都由主機(jī)發(fā)起,至少拉低總線1us,在主機(jī)發(fā)起讀時(shí)序之后,單總線器件才開始在總線上發(fā)送0 或1。(也可采用發(fā)光二級(jí)管報(bào)警電路,如過需要報(bào)警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報(bào)警模型單元ALARM 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報(bào)警)報(bào)警電路硬件連接見圖 。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。主程序需要調(diào)用4 個(gè)子程序,分別為數(shù)碼管顯示程序,溫度測試及處理子程序,報(bào)警子程序,中斷設(shè)定子程序?!裰袛嘣O(shè)定程序:實(shí)現(xiàn)設(shè)定上下限報(bào)警功能。中斷設(shè)定子程序流程圖見下圖 中斷設(shè)定子程序流程圖5 總 結(jié)本設(shè)計(jì)利用89S51 芯片控制溫度傳感器DS18B20,再輔之以部分外圍電路實(shí)現(xiàn)對(duì)環(huán)境溫度的測控,性能穩(wěn)定,精度教高,而且擴(kuò)展性能很強(qiáng)大。 度,往往很多場合需要更加精確的溫度,在所測溫度精度不變的基礎(chǔ)上必須對(duì)數(shù)據(jù)進(jìn)行校正。 經(jīng)過將近數(shù)日的單片機(jī)課程設(shè)計(jì),終于完成了我的數(shù)字溫度計(jì)的設(shè)計(jì),雖然沒有完全達(dá)到設(shè)計(jì)要求,但從心底里說,還是高興的,在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個(gè)程序并不是一件簡單的事,舉個(gè)例子,以前寫的那幾次,數(shù)據(jù)加減時(shí),我用的都是BCD碼,這一次,我全部用的都是16進(jìn)制的數(shù)直接加減,顯示處理時(shí)在用除法去刪分,感覺效果比較好,有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。//溫度值高位字節(jié)/************數(shù)字09及字母A,b,C,d,E,F,負(fù)號(hào)**********/uchar code table1[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0, 0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x02}。/************延時(shí)t秒**********/void delay(uint t){ uint i。}/**************產(chǎn)生復(fù)位脈沖,初始化DS18B20***********/void TxReset(void){ uint i。 DQ=1。 while(DQ)。}/******************讀取數(shù)據(jù)的一位,滿足讀時(shí)限要求**************/bit RdBit(void){ uint i。 //保持低至少1us DQ=1。 i=8。 b=0。 b=(j7)|(b1)。 bit btmp。0x01。i++。//整個(gè)寫1時(shí)隙不低于60us } else { /*寫0*/ DQ=0。 i++。//等待DS18B20給出應(yīng)答脈沖 delay(1)。//產(chǎn)生復(fù)位脈沖,初始化DS18B20 RxWait()。//read scratchpad 命令 tplsb=RdByte()。//延時(shí)1ms convert()。 tpmsb=tpmsb4。 bit Compare=1。Compare。 if(T1=0)//為正數(shù)時(shí)小數(shù)原碼表示 XSW=After_Dot[3]*500+After_Dot[2]*250+After_Dot[1]*125+After_Dot[0]*62。After_Dot[1]==1) XSW=(!After_Dot[3])*500+(!After_Dot[2])*250+After_Dot[1]*125。amp。After_Dot[1]==0amp。After_Dot[3]==1) XSW=After_Dot[3]*500。amp。 } return (XSW)。 //分配百位 bai=(CC%100)/10。 bai=(0CC)/10。amp。// k用于判斷小數(shù)位是否全為0 if(k==1) shi=(0CC)%10。tab[1]=bai。//將數(shù)位以數(shù)組tab[]返回}/*********************結(jié)果顯示數(shù)位譯碼(不帶小數(shù)點(diǎn)) *******************/uchar yima(uchar ge_shi_bai_sign) { uchar GE_SHI_BAI_SIGN。 break。 break。 break。 break。 break。39。EE39。 break。 break。 break。 break。 break。break。break。}/**********************數(shù)碼管顯示初始化***********************/void Init_shumaguan(void){ P1=0x00。 P1=0x08。 P14=0。 P0=figure3。 //顯示小數(shù)位 P14=1。 delay(1)。 unsigned short XiaoShu。//計(jì)算小數(shù)的值 SW=shuweifenpei(WenDu,XiaoShu,XiaoShu2)。 GE=yima(SW[3])。 }}
點(diǎn)擊復(fù)制文檔內(nèi)容
電大資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1