




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄摘要2Abstract31.實習(xí)任務(wù)與要求41.1實習(xí)目的41.2實習(xí)任務(wù)41.3實習(xí)要求52基本原理62.1數(shù)字時鐘基本原理62.2溫度計工作基本原理62.3頻率計工作基本原理63方案論證73.1鍵盤顯示接口部分73.2溫度計部分74硬件設(shè)計94.1最小系統(tǒng)設(shè)計9晶振振蕩器電路9復(fù)位電路94.2下載電路114.3鍵盤電路124.4顯示電路13數(shù)碼管結(jié)構(gòu)13顯示器工作原理144.5溫度傳感器電路設(shè)計16的工作原理16的測溫原理194.6總電路215軟件設(shè)計225.1主程序流程圖225.2定時器0中斷處理流程圖235.3時鐘子程序245.4溫度子程序255.5雙機通信265.6頻率計子程序2
2、85.7程序清單286仿真分析416.1數(shù)字時鐘仿真分析416.2溫度計仿真436.3頻率計仿真457.實物運行照片488 小結(jié)51參考文獻52摘要本次單片機實習(xí)的主要目的是鞏固單片機的理論知識及鍛煉實際動手能力。主要任務(wù)是在最小系統(tǒng)的基礎(chǔ)上設(shè)計鍵盤顯示電路,然后編程實現(xiàn)數(shù)字時鐘,數(shù)字溫度計和數(shù)字頻率計。其中數(shù)字時鐘要有調(diào)時調(diào)分調(diào)秒的功能;而溫度計能完成串行通信,將溫度顯示在另一個單片機上.最后要求整個系統(tǒng)能通過按鍵實現(xiàn)數(shù)字時鐘與溫度計和頻率計之間的相互切換。在實習(xí)過程要記錄每天的實習(xí)內(nèi)容包括方案的論證,硬件設(shè)計,軟件設(shè)計,仿真分析及實物制作等。關(guān)鍵詞:單片機,數(shù)字時鐘,溫度計,頻率計Abst
3、ractThe main goal of the Single Chip Microcomputer practice is to renforce the speculative knowledge and train the ability of handwork.The main task is to design the keyboard display circuit on the base of DIY.Then we should programme to realize the digital clock,digtal thermometer and digital frequ
4、ency meter.whatmore,the digital clock is required to have the function of adjust the second,muinute and hour.The Digtal thermometer is required to accomplish the communication of two Single Chip Microcomputers,the temperature can be displayed on the second Single Chip Microcomputer.At last,the whole
5、 system is required to realize the mutual switch between the clock and the thermometer ,the clock and the frequency meter.In the practice course ,we should write down the practice contents everyday,including the choice of scheme ,hardware design,software design,simuation analysis,making material obj
6、ect and so on .Key words: Single Chip Microcomputer, digital clock, digtal thermometer , digital frequency meter1.實習(xí)任務(wù)與要求1.1實習(xí)目的1、鞏固單片機原理與應(yīng)用理論課的理論知識;2、熟悉單片機應(yīng)用系統(tǒng)的硬件設(shè)計及軟件設(shè)計的基本方法;3、將單片機原理與應(yīng)用理論課的理論知識應(yīng)用于實際的應(yīng)用系統(tǒng)中;4、訓(xùn)練單片機應(yīng)用技術(shù),鍛煉實際動手能力。1.2實習(xí)任務(wù)(1)利用上述材料完成單片機最小系統(tǒng)的設(shè)計、焊接、調(diào)試;(2)完成ISP下載電路的設(shè)計、焊接;(3)完成應(yīng)用系統(tǒng)擴展電路部分的設(shè)計
7、、焊接、調(diào)試,應(yīng)用系統(tǒng)擴展電路的具體要求如下:1)鍵盤、顯示電路利用單片機最小系統(tǒng)、6個7段LED數(shù)碼管、12個按鍵,設(shè)計制作一個鍵盤、顯示電路??梢允褂?279鍵盤顯示接口電路,也可以使用單片機的并行接口作為鍵盤顯示接口。2) 數(shù)字時鐘在鍵盤、顯示電路的基礎(chǔ)上完成一個數(shù)字時鐘的設(shè)計,完成以下功能:a. 要求以24小時計時方式顯示時、分、秒;b. 時、分、秒可以通過按鍵分別調(diào)整。3) 數(shù)字溫度計在上題的硬基礎(chǔ)上,制作一個數(shù)字溫度計。完成以下功能:a. 利用DS18B20可編程1-Wire數(shù)字溫度傳感器芯片,或利用AD590溫度傳感器芯片和A/D轉(zhuǎn)換器芯片采集溫度溫度信號;b. 當按下鍵盤上的溫
8、度顯示按鍵時將實時溫度信息顯示在LED顯示器上,當按下鍵盤上的時鐘顯示按鍵時,恢復(fù)時鐘的正常顯示;c. 通過串行通信的方式,將采集到的實時溫度信息送至第二個單片機系統(tǒng),并在二個單片機系統(tǒng)顯示實時溫度。4) 數(shù)字頻率計在上題的硬基礎(chǔ)上,制作一個數(shù)字頻率計。完成以下功能:a. 利用MCU設(shè)計一個數(shù)字頻率計,用于檢測0500kHz周期信號的頻率,輸入信號幅度范圍:0.110V;b. 當按下鍵盤上的頻率顯示按鍵時將測量的頻率信息顯示在LED顯示器上,當按下鍵盤上的時鐘顯示按鍵時,恢復(fù)時鐘的正常顯示;(4)利用仿真軟件完成系統(tǒng)仿真工作;(5)完成系統(tǒng)軟件的設(shè)計,包括程序結(jié)構(gòu)設(shè)計、流程圖繪制、程序設(shè)計。1
9、.3實習(xí)要求1)利用PROTEL等軟件進行硬件設(shè)計;2)利用Keil uV2軟件完成應(yīng)用系統(tǒng)軟件設(shè)計;3)利用PROTEUS軟件進行仿真設(shè)計;4)完成單片機最小系統(tǒng)和應(yīng)用系統(tǒng)電路板的焊接;5)對電路進行調(diào)試;6)利用stc-isp軟件完成在系統(tǒng)編程、下載,并完成系統(tǒng)軟件調(diào)試;7)題目由指導(dǎo)教師提供;8)要求每個學(xué)生單獨完成硬件軟件設(shè)計、仿真、焊接、調(diào)試任務(wù);9)寫出實習(xí)報告,實習(xí)報告主要包括以下內(nèi)容:目錄、摘要、關(guān)鍵詞、基本原理、方案論證、硬件設(shè)計、軟件設(shè)計(帶流程圖、程序清單)、仿真結(jié)果、實物運行結(jié)果照片、結(jié)論、參考文獻等;10)實習(xí)完成后通過答辯;11)答辯時交實習(xí)報告電子文檔,通過答辯后
10、根據(jù)修改意見修改并打印、裝訂成冊。2基本原理2.1數(shù)字時鐘基本原理數(shù)字時鐘是利用單片機的內(nèi)部的定時/計數(shù)器工作與定時方式,對機器周期計數(shù)形成基準時間(如10ms),然后用另外一個計數(shù)器或軟件計數(shù)的形式對基準時間里德計數(shù)形成秒(如對10ms計數(shù)100次),“秒”計數(shù)60次形式“分”,“分”計數(shù)60次形成“時”,然后通過軟件程序使它們的內(nèi)容在相應(yīng)的位置顯示出來。在具體設(shè)計時定時器采用中斷方式工作,對時鐘的形成在終中斷程序中實現(xiàn),在主程序中只是對定時/計數(shù)器的定義初始化,調(diào)用顯示程序。并在設(shè)計中加入了按鍵,可以通過按鍵對時,分,秒進行調(diào)整。2.2溫度計工作基本原理在單片機電路設(shè)計中,大多都是使用傳感
11、器,所以可以采用一個溫度傳感器,它會將溫度轉(zhuǎn)換成數(shù)字量后存貯在自身內(nèi)部,將其連在單片機的一個IO口,即一種單總線串行接口,然后通過軟件程序在數(shù)碼管或液晶屏上顯示出來就可以直接讀取被測溫度值。2.3頻率計工作基本原理頻率計的基本設(shè)計原理是直接用十進制數(shù)字顯示被測信號頻率。所謂頻率,就是周期信號在單位時間(1s)內(nèi)變化的次數(shù)。若在一定時間間隔T內(nèi)測得這個周期信號的重復(fù)變化次數(shù)N,則其頻率可表示為f=N/T。即可利用單片機內(nèi)部的定時/計數(shù)器來對外部輸入脈沖進行計數(shù),從而測得頻率。3方案論證3.1鍵盤顯示接口部分方案一:使用8279鍵盤顯示接口電路,即鍵盤和顯示器通過8279芯片然后再接到單片機上,8
12、279可以通過對鍵盤的自動掃描,將鍵盤信號存入FIFO RAM里,再通過顯示子程序顯示按鍵的信息。具體來說,掃描輸出線,通過138譯碼后,作為列與回送線交叉成鍵,輸出數(shù)據(jù)分別用三位來體現(xiàn)掃描碼和回送碼,讀鍵時屏蔽高兩位,使鍵值正好等于輸出數(shù)據(jù)的查表值,從而在數(shù)碼管上顯示出來。方案二:使用單片機的并行接口作為鍵盤顯示接口,即鍵盤引腳直接接到單片機的IO口上。從以上兩種方案可以看出,方案一占用的單片機IO口少,精度高,穩(wěn)定性好,但導(dǎo)致整個電路所用芯片增加,成本提高。相比較而言方案二雖然占用單片機的IO口較多,但這個可以通過設(shè)計矩陣鍵盤來解決,并且也較方案一所用的芯片少,降低了成本。綜合考慮選擇方案
13、二。3.2溫度計部分方案一:采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫熱偶,熱電偶由兩個焊接在一起的異金屬導(dǎo)線所組成,熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一導(dǎo)體的溫差電勢組成。通過將參考結(jié)點保持在已知溫度并測量該電壓,便可推斷出檢測結(jié)點的溫度。數(shù)據(jù)采集部分則使用帶有A/D 通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進行A/D 轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來。熱電偶的優(yōu)點是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導(dǎo)線環(huán)路的噪聲影響以及漂移較高的缺點,并且這種設(shè)計需要用到A/D 轉(zhuǎn)換電路,感溫電路比
14、較麻煩。系統(tǒng)主要包括對A/D0809 的數(shù)據(jù)采集,自動手動工作方式檢測,溫度的顯示等,這幾項功能的信號通過輸入輸出電路經(jīng)單片機處理。此外還有復(fù)位電路,晶振電路,啟動電路等。故現(xiàn)場輸入硬件有手動復(fù)位鍵、A/D 轉(zhuǎn)換芯片,處理芯片為51 芯片,執(zhí)行機構(gòu)有4 位數(shù)碼管、報警器等。方案二:采用數(shù)字溫度芯片DS18B20 測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時,最大線形偏差小于1 攝氏度。DS18B20 的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控
15、制器AT89S51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51 單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多DS18B20控制工作,還可以與PC 機通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟?!?】該系統(tǒng)利用AT89S51芯片控制溫度傳感器DS18B20進行實時溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報警溫度。該系統(tǒng)擴展性非常強,它可以在設(shè)計中加入時鐘芯
16、片DS1302以獲取時間數(shù)據(jù),在數(shù)據(jù)處理同時顯示時間,并可以利用AT24C16芯片作為存儲器件,以此來對某些時間點的溫度數(shù)據(jù)進行存儲,利用鍵盤來進行調(diào)時和溫度查詢,獲得的數(shù)據(jù)可以通過MAX232芯片與計算機的RS232接口進行串口通信,方便的采集和整理時間溫度數(shù)據(jù)。從以上兩種方案,容易看出方案一的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大。方案二的測溫裝置電路簡單、精確度較高、實現(xiàn)方便、軟件設(shè)計也比較簡單,故本次設(shè)計采用了方案二。4硬件設(shè)計4.1最小系統(tǒng)設(shè)計晶振振蕩器電路單片機是一個復(fù)雜的同步時序電路,為了保證同步工作方式的實現(xiàn),其所有的工作都在唯一的時鐘信號控制下嚴格的按時序進行的。時
17、序就是單片機內(nèi)部以及內(nèi)部與外部互聯(lián)必須遵守的規(guī)律。單片機的時序可以通過兩種方式產(chǎn)生:內(nèi)部振蕩方式和外部振蕩方式。外部振蕩方式需要引入外部時鐘信號作為單片機的時鐘信號,它可以使各單片機之間的時鐘信號同步,常用于多片單片機組成的系統(tǒng)中,而本次設(shè)計只需使用一片單片機,所以本次系統(tǒng)設(shè)計采用了內(nèi)部振蕩方式。單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳X1和X2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋原件的片外石英晶體及電容一起構(gòu)成一個自激振蕩器。電容C1和C2通常取30pF,對振蕩器有微調(diào)的作用。晶振的實際頻率與標稱頻率的關(guān)系為:x為實際頻率,0為標稱頻率,0范圍是1.2MHz12
18、MHz。所以本設(shè)計晶振Y采用12HMz,電容C1和C2取30pF,則x為12MHZ。圖4-1振蕩電路4.1.2復(fù)位電路單片機在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。除了進入系統(tǒng)的正常初始化之外,由于程序運行出錯或者操作出錯而使單片機系統(tǒng)處于死鎖狀態(tài),為了擺脫死鎖狀態(tài),也需要使單片機重新啟動。單片機的復(fù)位操作一般有上電自動復(fù)位和按鍵電平復(fù)位兩種方式。本設(shè)計采用上電自動復(fù)位和按鍵電平復(fù)位都有的復(fù)位電路。手動按鍵復(fù)位需要人為在復(fù)位輸入端RESET上通過按鈕加入高電平,其復(fù)位過程是:當按下按鍵S時,RESET端直接與VCC相連,從按下按鍵到松開按鍵的時間內(nèi),能使
19、RESET端維持一段時間的高電平,這段時間的高電平使單片機復(fù)位。當按鍵被松開后,RESET端回到低電平,單片機系統(tǒng)完成復(fù)位,恢復(fù)正常工作狀態(tài)。上電復(fù)位電路是在RESET復(fù)位輸入引腳上接一電容至VCC端,下接一個電阻到地。上電復(fù)位的工作過程是:在系統(tǒng)上電瞬間,電容相當于短路,電源電壓通過電容加給RESET引腳以高電平信號,此高電平信號隨著VCC對電容的充電過程而逐漸回落,在其高電平期間,系統(tǒng)復(fù)位;當電容兩端電壓達到電源電壓時,電容充電電流為零,電容相當于開路,RESET端為低電平,單片機復(fù)位完成,恢復(fù)正常工作狀態(tài)。這里要注意的是,要想實現(xiàn)復(fù)位,必須保證復(fù)位信號高電平持續(xù)時間大于兩個機器周期,而。
20、本設(shè)計的單片機機器周期為:。而,所以滿足要求。圖4-2復(fù)位電路圖4-3 最小系統(tǒng)電路4.2下載電路MAX232是電平轉(zhuǎn)換芯片。1970年,美國電氣學(xué)會規(guī)定“RS232”串口通信協(xié)議。規(guī)定邏輯“1”,-5-15V;邏輯“0”,+5+15.噪聲容限為2V.要實現(xiàn)利用串口與單片機進行通信,就要進行電平轉(zhuǎn)換,把標準轉(zhuǎn)化成單片機可以識別的。MAX220MAX249都是電平轉(zhuǎn)換芯片,在單片機最小系統(tǒng)中,使用MAX232.圖4-4下載電路4.3鍵盤電路鍵盤分編碼鍵盤和非編碼鍵盤,鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生按鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤。而靠軟件編程來識別的稱為非編碼鍵盤,
21、在單片機組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤,也有用到編碼鍵盤的,我們這里用的就是非編碼鍵盤。在這種非編碼鍵盤的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行有無按鍵按下的程序段,當確認有按鍵按下后,下一步就要識別哪一個按鍵被按下,對鍵的識別常采用逐行(逐列)掃描的方法。單片機檢測按鍵是否被按下的依據(jù)是檢測與該鍵對應(yīng)的I/O口是否為低電平。判斷鍵盤哪一個鍵被按下。方法是:一次給行線送低電平,然后查所有列線狀態(tài),稱為行掃描,如果全為1,則所按下鍵不在此行,如果不全為1,則所按下鍵必在此行,而且是在與零電平列線相交的交點上的那個鍵。本設(shè)計中有2*4矩陣鍵盤和獨立鍵盤。矩陣鍵盤可以有效的減少鍵盤與單片機接口
22、時所占用的I/O接口。圖4-5鍵盤電路如圖所示,2*4矩陣鍵盤的行線和列線者接到了單片機的P3口。S1,S2,S3,S4為獨立鍵盤。4.4顯示電路4.4.1數(shù)碼管結(jié)構(gòu)數(shù)碼管內(nèi)部有8個發(fā)光二極管,公共端由8個發(fā)光二極管的陰極并接而成,正常顯示時公共端接低電平(GND),各發(fā)光二極管是否點亮取決于a-dp各引腳上是否是高電平。 LED數(shù)碼管的外形結(jié)構(gòu)如圖4-5,外部有10個引腳,其中3, 8腳為公共端也稱位選端,其余8個引腳稱為段選端,當要使某一位數(shù)碼管顯示某一數(shù)字(0-9中的一個)必須在這個數(shù)碼管的段選端加上與數(shù)字顯示數(shù)字對應(yīng)的8位段選碼(也稱字形碼),在位選端加上低電平即可。LED有共陰極和共
23、陽極兩種。如圖4-5所示。二極管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接在一起,接入+5V的電壓。一位顯示器由8個發(fā)光二極管組成,其中7個發(fā)光二極管構(gòu)成字型“8”的各個筆劃(段)ag,另一個小數(shù)點為dp發(fā)光二極管。當在某段發(fā)光二極管施加一定的正向電壓時,該段筆劃即亮;不加電壓則暗。符號和引腳 共陰極 共陽極圖4-6LED結(jié)構(gòu)圖表4-1LED顯示段碼字型共陽極段共陰極段字型共陽極段共陰極段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7D
24、HF84H71H7F8H07H空白FFH00H880H7FHP8CH73H4.4.2LED顯示器工作原理:(1)LED靜態(tài)顯示方式 LED顯示器工作于靜態(tài)顯示方式時,各位的共陰極連接在一起并接地;每位的段碼分別與8位的鎖存器輸出相連。各個LED的顯示字符一經(jīng)確定,相應(yīng)鎖存的段碼輸出將維持不變,直到送入另一個字符為止,故靜態(tài)顯示器的亮度較高。(2)LED動態(tài)顯示方式在多位LED顯示時,為簡化硬件電路,通常將所有的段碼線相應(yīng)段并聯(lián)在一起,由1個8位I/0口控制,形成段碼線的多路復(fù)用,而各位的共陰極分別由相應(yīng)的I/O線控制,形成各位的分時選通。設(shè)計中采用八個共陰LED管,其中段碼線采用CD4511譯
25、碼占用4位I/O口,而位選信號使用74LS138占用3個I/O口,則只要7個I/O口。由于各位的段碼線并聯(lián),4位I/O口輸出的段碼對各個顯示位來說都是相同的。因此,在同一時刻,如果各位選線都處于選通狀態(tài)的話,8位LED將顯示相同的字符。若要各位LED能夠同時顯示出與本位相應(yīng)的顯示字符,就必須采用動態(tài)顯示方式,即在某一時刻,只讓某一位的位選線處于選通狀態(tài),而其它各位的位選線處于關(guān)閉狀態(tài),同時,段碼線上輸出相應(yīng)位要顯示的字符的段碼。這樣,在同一時刻,8位LED中只有選通的那1位顯示出字符,而其他7位則是熄滅的。同樣,在下一時刻,只讓下一位的位選線處于選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),在段碼
26、線上輸出將要顯示字符的段碼,則同一時刻,只有選通位顯示出將要顯示的字符,而其他各位則是熄滅的。如此循環(huán)下去,就可以使各位顯示出將要顯示的字符。雖然這些字符是在不同時刻出現(xiàn)的,而在同一時刻,只有一位顯示,其他各位熄滅,但由于LED顯示器的余輝和人眼的視覺暫留作用,只要每位顯示間隔足夠短,則可以造成多位同時亮的假象,達到同時顯示的效果。發(fā)光二極管從導(dǎo)通到發(fā)光有一定的延時,導(dǎo)通時間太短,則發(fā)光太弱,人眼無法看清;但也不能太長,因為要受限于臨界閃爍頻率,而且此時間越長,占用CPU時間也越多。另外,顯示位數(shù)增多,也將占用大量的CPU時間,因此動態(tài)顯示的實質(zhì)是以犧牲CPU時間來換取器件的減少。本次設(shè)計中,
27、6位LED七段數(shù)碼管采用共陰極接法。圖4-7顯示電路如圖所示,單片機的P0口通過U2鎖存器(74HC573)與數(shù)碼管相連,來實現(xiàn)位選;通過U3與數(shù)碼管相連來實現(xiàn)段選。4.5溫度傳感器電路設(shè)計4.5.1DS18B20的工作原理根據(jù)DS18B20的通訊協(xié)議,主機控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:1. 每一次讀寫之前都必須要對DS18B20進行復(fù)位;2. 復(fù)位成功后發(fā)送一條ROM指令;3. 最后發(fā)送RAM指令,這樣才能對DS18B20進行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待1560微秒左右后發(fā)出60240微秒的存在低脈沖,主CPU收
28、到此信號表示復(fù)位成功。其工作時序包括初始化時序、寫時序和讀時序,具體工作方法如圖4-8,4-9,4-10所示。(1) 初始化時序圖4-8初始化時序總線上的所有傳輸過程都是以初始化開始的,主機響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機知道,總線上有從機設(shè)備,且準備就緒。主機輸出低電平,保持低電平時間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機釋放總線,4.7K上拉電阻將總線拉高,延時1560us,并進入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時480us。(2) 寫時序圖4-9 寫時序 寫時序包括寫0時序和寫1時序。所有寫時序至少需要60us,且在2次獨立的寫時序之間至少需要1us的恢復(fù)時間,都是以總線拉
29、低開始。寫1時序,主機輸出低電平,延時2us,然后釋放總線,延時60us。寫0時序,主機輸出低電平,延時60us,然后釋放總線,延時2us。(3) 讀時序圖4-10 讀時序總線器件僅在主機發(fā)出讀時序是,才向主機傳輸數(shù)據(jù),所以,在主機發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便從機能夠傳輸數(shù)據(jù)。所有讀時序至少需要60us,且在2次獨立的讀時序之間至少需要1us的恢復(fù)時間。每個讀時序都由主機發(fā)起,至少拉低總線1us。主機在讀時序期間必須釋放總線,并且在時序起始后的15us之內(nèi)采樣總線狀態(tài)。主機輸出低電平延時2us,然后主機轉(zhuǎn)入輸入模式延時12us,然后讀取總線當前電平,然后延時50us。當主機收到D
30、Sl8B20 的響應(yīng)信號后,便可以發(fā)出ROM 操作命令之一,這些命令如表4-2所示。RAM指令集如表4-3所示。主機控制DS18B20完成溫度轉(zhuǎn)換過程是:每一次讀寫之前都要對DS18B20進行復(fù)位,即將數(shù)據(jù)總線下拉500us,然后釋放,DS18B20收到信號后等待16-60us左右,之后發(fā)出60-240us的存在低脈沖,主CPU收到此此信號表示復(fù)位成功;復(fù)位成功后發(fā)送一條ROM指令,然后發(fā)送RAM指令,這樣才能對DS18B20進行預(yù)訂的讀寫操作。表4-2 ROM操作命令指令約定代碼功能讀ROM33H讀DS18B20中的編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問單線總線上與
31、該編輯相對應(yīng)的DS18B20使之做出響應(yīng),為下一步對該DS18B20的讀寫作準備搜索ROM0F0H用于確定掛接在同一總線上的DS18B20個數(shù)和識別64位ROM地址,為操作各器件作準備跳過ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)送溫度變換指令告警搜索命令0ECH執(zhí)行后,只有溫度跳過設(shè)定值上限或下限的片子才能做出反應(yīng)表4-3RAM指令集指令約定代碼功能溫度轉(zhuǎn)換44H啟動DS18B20進行溫度轉(zhuǎn)換讀暫存器0BEH讀暫存器9個字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重調(diào)E2RAM0B8H把E2RAM中的TH、TL
32、字節(jié)寫到暫存器TH、TL字節(jié)讀供電方式0B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPUDS18B20的測溫原理DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將最低溫所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器1、溫度寄存器中,計數(shù)器1和溫度寄存器被預(yù)置在最低溫所對
33、應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計數(shù)器的預(yù)置值,只要計數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。減法計數(shù)器斜坡累加器減到0減法計數(shù)器預(yù) 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計數(shù)比較器預(yù) 置溫度寄存器減到0圖4-11測溫原理圖初始化DS18B20跳過ROM匹配溫度變換延時1S跳
34、過ROM匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖4.12測溫流程圖圖4-13溫度傳感電路4.6總電路 圖4-14總電路圖(1)當給單片機上電后,其為時鐘模式,按一次S1實現(xiàn)對“秒”的調(diào)整,按兩次S1實現(xiàn)對“分”的調(diào)整,按三次S1實現(xiàn)對“時”調(diào)整;按S2 實現(xiàn)增1,按S3實現(xiàn)減1.(2)按S2實現(xiàn)時鐘到溫度計的切換,按S4恢復(fù)時鐘。(3)按S3實現(xiàn)時鐘到頻率計的切換,按S4恢復(fù)時鐘。5軟件設(shè)計5.1主程序流程圖開始初始化調(diào)用顯示時鐘函數(shù)調(diào)用鍵盤掃描函數(shù)調(diào)用溫度顯示函數(shù)調(diào)用頻率計函數(shù)S2是否按下S4是否按下S3是否按下顯示時鐘YYYNN 5.2定時器0中斷處理流程圖5.2中斷程序流程圖重裝初值保護現(xiàn)場
35、計數(shù)單元加1到1秒?N秒加1N到60秒?秒清0,分加1N到60分?分清0,時加1N到24時?小時清0恢復(fù)現(xiàn)場中斷返回5.3時鐘子程序開始調(diào)用鍵盤掃描函數(shù)S1是否按下調(diào)用延時函數(shù)S1按下1次S1按下2次S1按下3次S2是否按下S3是否按下調(diào)秒調(diào)分調(diào)時加1減1YY5.4溫度子程序設(shè)置堆棧指針將溫度轉(zhuǎn)換為BCD碼發(fā)讀存儲器命令讀溫度數(shù)據(jù)復(fù)位DS18B20發(fā)跳過ROM命令顯示緩沖區(qū)初始化更新數(shù)據(jù)緩沖區(qū)延時發(fā)溫度轉(zhuǎn)換命令復(fù)位DS18B20發(fā)跳過ROM命令開始顯示溫度雙機通信5.5雙機通信(1)發(fā)送開始T1初始化,啟動T1工作設(shè)定串行工作方式置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長度計數(shù)器結(jié)束T1=1全部數(shù)據(jù)發(fā)送完清T1
36、修改地址指針和數(shù)據(jù)塊長度計數(shù)器發(fā)送數(shù)據(jù)NNYY(2)接收開始T1初始化,啟動T1工作設(shè)定串行工作方式并設(shè)定允許接收模式置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長度計數(shù)器結(jié)束R1=1全部數(shù)據(jù)接收完清R1修改地址指針和數(shù)據(jù)塊長度計數(shù)器接收數(shù)據(jù)NNYY5.6頻率計子程序開始頻率測量計數(shù)器計數(shù)測量數(shù)據(jù)顯示5.7程序清單:1.主程序#include#include#define uint unsigned int#define uchar unsigned charsbit dula=P26;sbit wela=P27;sbit key1=P34;sbit key2=P17;sbit key3=P36;sbit key4
37、=P37;sbit ds=P22;uint temp;float f_temp;uchar buf3;uchar i,num,hour,min,sec,num1,num2,num3,num4;unsigned long int fre;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, /帶小數(shù)點的09編碼0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/不帶小數(shù)點的09的編碼void delayms(uint xms)uint i,j;for(i=xms;i
38、0;i-)for(j=110;j0;j-);void display(uchar num1,uchar dat) /數(shù)據(jù)顯示程序 /num是第幾個數(shù)碼管,dat是要顯示的數(shù)字uchar i;i=0xff;i=i&(0x01)0)i-;ds=1;i=4;while(i0)i-;bit tempreadbit(void)/讀1位數(shù)據(jù)函數(shù)uint i;bit dat;ds=0;i+; /i+起延時作用ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return(dat);uchar tempread(void) /讀一個字節(jié)數(shù)據(jù)函數(shù)uchar i,j,dat;dat=0;for(
39、i=1;i=8;i+)j=tempreadbit();dat=(j1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在dat里return(dat);void tempwritebyte(uchar dat) /向DS18B20寫一個字節(jié)數(shù)據(jù)函數(shù)uint i;uchar j;bit testb;for(j=1;j1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0;i=8;while(i0)i-;ds=1;i+,i+;void tempchange(void) /DS18B20開始獲取溫度并轉(zhuǎn)換dsreset();delayms(1);tem
40、pwritebyte(0xcc);/寫跳過讀ROM指令tempwritebyte(0x44);/寫溫度轉(zhuǎn)換指令uint get_temp() /讀取寄存器中存儲的溫度數(shù)據(jù)uchar a,b;dsreset();delayms(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread(); /讀低8位b=tempread(); /讀高8位temp=b;temp0;i-) / dis_temp(get_temp(); / deal(); delayms(5); SBUF=bufi;if(key4=0)delayms(10);if(key4=0)ES
41、=0;num2=0;TR1=0;TMOD=0x51;ET1=1; if(key3=0)delayms(10);if(key3=0)TH1=(65536-1)/256;TL1=(65536-1)%256; fre=0;TR1=1; while(num2) while(TR1);dis_fre(fre);if(key3=0)delayms(10);if(key3=0)fre=0;TR1=1;if(key4=0)delayms(10);if(key4=0)num2=0; void timer0() interrupt 1 TH0=(65536-4597)/256;TL0=(65536-4597)%256;num+;if(TR1)num3+;if(num3=200)num3=0;TR1=0;if(num=200)num=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24)hour=0;void timer1() interrupt 3TH1=(65536-1)/256;TL1=(65536-1)%256;fre+;void zd(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物可降解材料的市場需求分析
- 全球金屬制品市場現(xiàn)狀
- 2019-2025年消防設(shè)施操作員之消防設(shè)備高級技能考前沖刺試卷A卷含答案
- 大氣污染防治設(shè)備項目實施方案(模板)
- 市場內(nèi)勤年終總結(jié)
- 電測儀表專業(yè)(理論)習(xí)題及答案
- 裝表接電工模擬練習(xí)題+答案
- 浙江平湖農(nóng)商銀行招聘真題2024
- 邢臺臨西縣事業(yè)單位真題2024
- 冷血文案勵志工作總結(jié)
- 基地種植合作合同范本
- 露天煤礦安全生產(chǎn)技術(shù)露天煤礦安全管理培訓(xùn)
- 2025年湖南大眾傳媒職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫學(xué)生專用
- YB-T 6121-2023 鋼的晶間氧化深度測定方法
- 2025年南京旅游職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 【2025年衛(wèi)生健康宣傳日】世界防治結(jié)核病日
- 物流倉儲的火災(zāi)防范
- 和田玉知識培訓(xùn)課件下載
- 新版《醫(yī)療器械經(jīng)營質(zhì)量管理規(guī)范》(2024)培訓(xùn)試題及答案
- 2025年人教版數(shù)學(xué)五年級下冊教學(xué)計劃(含進度表)
- 部編人教版二年級道德與法治下冊同步練習(xí)(全冊)
評論
0/150
提交評論