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

正文內(nèi)容

基于單片機(jī)的數(shù)字溫度計(jì)-畢業(yè)設(shè)計(jì)(編輯修改稿)

2025-07-17 12:38 本頁面
 

【文章內(nèi)容簡介】 工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。使用外部電源供電方式,畢竟比寄生電源方式只多接一根VCC引線。在外接電源方式下,可以充分發(fā)揮DS18B20寬電源電壓范圍的優(yōu)點(diǎn),即使電源電壓VCC 降到3V 時(shí),依然能夠保證溫度量精度。由于DS18B20 只有一根數(shù)據(jù)線,因此它和主機(jī)(單片機(jī))通信是需要串行通信,而AT89S51 有兩個(gè)串行端口,所以可以不用軟件來模擬實(shí)現(xiàn)。經(jīng)過單線接口訪問DC18B20 必須遵循如下協(xié)議:初始化、ROM 操作命令、存儲(chǔ)器操作命令和控制操作。要使傳感器工作,一切處理均嚴(yán)格按照時(shí)序。主機(jī)發(fā)送(Tx)復(fù)位脈沖(最短為480μs 的低電平信號(hào))。接著主機(jī)便釋放此線并進(jìn)入接收方式(Rx)。在檢測到I/O 引腳上的上升沿之后,DS18B20 等待15~60μs,并且接著發(fā)送脈沖(60~240μs 的低電平信號(hào))。然后以存在復(fù)位脈沖表示DS18B20 已經(jīng)準(zhǔn)備好發(fā)送或接收,然后給出正確的ROM 命令和存儲(chǔ)操作命令的數(shù)據(jù)。DS18B20 通過使用時(shí)間片來讀出和寫入數(shù)據(jù),時(shí)間片用于處理數(shù)據(jù)位和進(jìn)行何種指定操作的命令。它有寫時(shí)間片和讀時(shí)間片兩種:l 寫時(shí)間片:當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時(shí),產(chǎn)生寫時(shí)間片。有兩種類型的寫時(shí)間片:寫1 時(shí)間片和寫0 時(shí)間片。所有時(shí)間片必須有60 微秒的持續(xù)期,在各寫周期之間必須有最短為1微秒的恢復(fù)時(shí)間.l 讀時(shí)間片:從DS18B20 讀數(shù)據(jù)時(shí),使用讀時(shí)間片。當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉至邏輯低電平時(shí)產(chǎn)生讀時(shí)間片。數(shù)據(jù)線在邏輯低電平必須保持至少1 微秒;來自DS18B20 的輸出數(shù)據(jù)在時(shí)間下降沿之后的15 微秒內(nèi)有效。為了讀出從讀時(shí)間片開始算起15微秒的狀態(tài),主機(jī)必須停止把引腳驅(qū)動(dòng)拉至低電平。在時(shí)間片結(jié)束時(shí),I/O 引腳經(jīng)過外部的上拉電阻拉回高電平,所有讀時(shí)間片的最短持續(xù)期為60 微秒,包括兩個(gè)讀周期間至少1μs 的恢復(fù)時(shí)間。一旦主機(jī)檢測到DS18B20 的存在,它便可以發(fā)送一個(gè)器件ROM 操作命令。所有ROM 操作命令均為8位長。所有的串行通訊,讀寫每一個(gè)bit 位數(shù)據(jù)都必須嚴(yán)格遵守器件的時(shí)序邏輯來編程,同時(shí)還必須遵守總線命令序列,對單總線的DS18B20 芯片來說,訪問每個(gè)器件都要遵守下列命令序列:首先是初始化;其次執(zhí)行ROM 命令;最后就是執(zhí)行功能命令(ROM 命令和功能命令后面以表格形式給出)。如果出現(xiàn)序列混亂,則單總線器件不會(huì)響應(yīng)主機(jī)。當(dāng)然,搜索ROM命令和報(bào)警搜索命令,在執(zhí)行兩者中任何一條命令之后,要返回初始化?;趩慰偩€上的所有傳輸過程都是以初始化開始的,初始化過程由主機(jī)發(fā)出的復(fù)位脈沖和從機(jī)響應(yīng)的應(yīng)答脈沖組成。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī),且準(zhǔn)備就緒。在主機(jī)檢測到應(yīng)答脈沖后,就可以發(fā)出ROM 命令。這些命令與各個(gè)從機(jī)設(shè)備的唯一64 位ROM 代碼相關(guān)。在主機(jī)發(fā)出ROM命令,以訪問某個(gè)指定的DS18B20,接著就可以發(fā)出DS18B20支持的某個(gè)功能命令。這些命令允許主機(jī)寫入或讀出DS18B20便箋式RAM、啟動(dòng)溫度轉(zhuǎn)換。軟件實(shí)現(xiàn)DS18B20的工作嚴(yán)格遵守單總線協(xié)議:(1)主機(jī)首先發(fā)出一個(gè)復(fù)位脈沖,信號(hào)線上的DS18B20 器件被復(fù)位。(2)接著主機(jī)發(fā)送ROM命令,程序開始讀取單個(gè)在線的芯片ROM編碼并保存在單片機(jī)數(shù)據(jù)存儲(chǔ)器中,把用到的DS18B20 的ROM 編碼離線讀出,最后用一個(gè)二維數(shù)組保存ROM 編碼,數(shù)據(jù)保存在X25043中。(3)系統(tǒng)工作時(shí),把讀取了編碼的DS18B20 掛在總線上。發(fā)溫度轉(zhuǎn)換命令,再總線復(fù)位。(4)然后就可以從剛才的二維數(shù)組匹配在線的溫度傳感器,隨后發(fā)溫度讀取命令就可以獲得對應(yīng)的度值了。在主機(jī)初始化過程,主機(jī)通過拉低單總線至少480us,來產(chǎn)生復(fù)位脈沖。接著,主機(jī)釋放總線,并進(jìn)入接收模式。當(dāng)總線被釋放后,上拉電阻將單總線拉高。在單總線器件檢測到上升沿后,延時(shí)15~60us,接著通過拉低總線60~240us,以產(chǎn)生應(yīng)答脈沖。寫時(shí)序均起始于主機(jī)拉低總線,產(chǎn)生寫1 時(shí)序的方式:主機(jī)在拉低總線后,接著必須在15us之內(nèi)釋放總線。產(chǎn)生寫0 時(shí)序的方式:在主機(jī)拉低總線后,只需在整個(gè)時(shí)序期間保持低電平即可(至少60us)。在寫字節(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)過程。寫時(shí)間時(shí)序:當(dāng)主機(jī)把數(shù)據(jù)從邏輯高電平拉到邏輯低電平的時(shí)候,寫時(shí)間隙開始。有兩種寫時(shí)間隙,寫1 時(shí)間隙和寫0 時(shí)間隙。所有寫時(shí)間隙必須最少持續(xù)60μs,包括兩個(gè)寫周期至少1μs 的恢復(fù)時(shí)間。I/O線電平變低后,DS18B20 在一個(gè)15μs 到60μs 的窗口內(nèi)對I/O 線采樣。如果線上事高電平,就是寫1,如果是低電平,就是寫0。主機(jī)要生成一個(gè)寫時(shí)間隙,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時(shí)間隙開始后的15μs 內(nèi)允許數(shù)據(jù)線拉到高電平。主機(jī)要生成一個(gè)寫0 時(shí)間隙,必須把數(shù)據(jù)線拉到低電平并保存60μs。每個(gè)讀時(shí)隙都由主機(jī)發(fā)起,至少拉低總線1us,在主機(jī)發(fā)起讀時(shí)序之后,單總線器件才開始在總線上發(fā)送0 或1。所有讀時(shí)序至少需要60us。本此設(shè)計(jì)可以采用發(fā)光二級管報(bào)警電路,如過需要報(bào)警,則只需將相應(yīng)位置1,當(dāng)參數(shù)判斷完畢后,再看報(bào)警模型單元ALARM 的內(nèi)容是否與預(yù)設(shè)一樣,如不一樣,則發(fā)光報(bào)警。但本次設(shè)計(jì)采軟件處理報(bào)警,利用有源蜂鳴器進(jìn)行報(bào)警輸出,采用直流供電。當(dāng)所測溫度超過獲低于所預(yù)設(shè)的溫度時(shí),數(shù)據(jù)口相應(yīng)拉高電平,報(bào)警輸出。報(bào)警電路硬件連接見圖 。圖 5 軟件設(shè)計(jì) 概述整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。主程序需要調(diào)用4 個(gè)子程序,分別為數(shù)碼管顯示程序,溫度測試及處理子程序,報(bào)警子程序,中斷設(shè)定子程序。各模塊程序功能如下:●數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。●溫度測試及處理程序:對溫度芯片送過來的數(shù)據(jù)進(jìn)行處理,進(jìn)行判斷和顯示?!駡?bào)警子程序:進(jìn)行溫度上下限判斷及報(bào)警輸出?!裰袛嘣O(shè)定程序:實(shí)現(xiàn)設(shè)定上下限報(bào)警功能。圖 圖 DS18B20初始化流程圖 下面對主要子程序的流程圖做介紹 溫度檢測流程DS18B20在單片機(jī)控制下分三個(gè)階段:●18B20 初始化:初始化流程圖見●讀18B20時(shí)序:讀DS18B20流程見圖 :●寫18B20時(shí)序:寫18B20 圖 圖 中斷設(shè)定流程中斷模塊采用了外中斷和內(nèi)中斷套用方法。當(dāng)設(shè)計(jì)需要實(shí)現(xiàn)上下限報(bào)警時(shí),利用INT0口進(jìn)行中斷,set 鍵進(jìn)行上下限報(bào)警溫度設(shè)定,進(jìn)入溫度設(shè)定狀態(tài)后(按一下溫度設(shè)定鍵),首先會(huì)提示顯示“UP”字母,表示要用戶設(shè)定高溫報(bào)警溫度,按S3 鍵 ,表示本位數(shù)字+1,按S4 表示移向下一位,如果4 位高溫設(shè)定完畢,則顯示“DO”,表示要用戶設(shè)定低溫報(bào)警溫度。4位低溫設(shè)定完畢,如果用戶設(shè)置的高溫比設(shè)定的低溫高的話則顯示“ERRO”表示錯(cuò)誤提示,同時(shí)會(huì)有蜂鳴器及時(shí)報(bào)警提示,然后自動(dòng)顯示“UP”,讓用戶重新進(jìn)行溫度設(shè)定。中斷設(shè)定子程序流程圖見下圖 中斷設(shè)定子程序流程圖源程序TIMEL EQU 0E0HTIMEH EQU 0B1HTEMPHEAD EQU 36H。BITST DATA 20HTIME1SOK BIT TEMPONEOK BIT TEMPL DATA 26HTEMPH DATA 27HTEMPHC DATA 28HTEMPLC DATA 29H。TEMPDIN BIT 。 ORG 0000H LJMP START ORG 00BH LJMP T0IT。 ORG 100HSTART: MOV SP,60HCLSMEM: MOV R0,20H MOV R1,60HCLSMEM1: MOV @R0,00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD,00100001B MOV TH0,TIMEL MOV TL0,TIMEH SJMP INITERROR: NOP LJMP START NOPINIT: NOP SETB ET0 SETB TR0 SETB EA MOV PSW,00H CLR TEMPONEOK LJMP
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1