單片機(jī)實(shí)習(xí)報(bào)告_第1頁(yè)
單片機(jī)實(shí)習(xí)報(bào)告_第2頁(yè)
單片機(jī)實(shí)習(xí)報(bào)告_第3頁(yè)
單片機(jī)實(shí)習(xí)報(bào)告_第4頁(yè)
單片機(jī)實(shí)習(xí)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄摘要2Abstract31.實(shí)習(xí)任務(wù)與要求41.1實(shí)習(xí)目的41.2實(shí)習(xí)任務(wù)41.3實(shí)習(xí)要求52基本原理62.1數(shù)字時(shí)鐘基本原理62.2溫度計(jì)工作基本原理62.3頻率計(jì)工作基本原理63方案論證73.1鍵盤顯示接口部分73.2溫度計(jì)部分74硬件設(shè)計(jì)94.1最小系統(tǒng)設(shè)計(jì)9晶振振蕩器電路9復(fù)位電路94.2下載電路114.3鍵盤電路124.4顯示電路13數(shù)碼管結(jié)構(gòu)13顯示器工作原理144.5溫度傳感器電路設(shè)計(jì)16的工作原理16的測(cè)溫原理194.6總電路215軟件設(shè)計(jì)225.1主程序流程圖225.2定時(shí)器0中斷處理流程圖235.3時(shí)鐘子程序245.4溫度子程序255.5雙機(jī)通信265.6頻率計(jì)子程序2

2、85.7程序清單286仿真分析416.1數(shù)字時(shí)鐘仿真分析416.2溫度計(jì)仿真436.3頻率計(jì)仿真457.實(shí)物運(yùn)行照片488 小結(jié)51參考文獻(xiàn)52摘要本次單片機(jī)實(shí)習(xí)的主要目的是鞏固單片機(jī)的理論知識(shí)及鍛煉實(shí)際動(dòng)手能力。主要任務(wù)是在最小系統(tǒng)的基礎(chǔ)上設(shè)計(jì)鍵盤顯示電路,然后編程實(shí)現(xiàn)數(shù)字時(shí)鐘,數(shù)字溫度計(jì)和數(shù)字頻率計(jì)。其中數(shù)字時(shí)鐘要有調(diào)時(shí)調(diào)分調(diào)秒的功能;而溫度計(jì)能完成串行通信,將溫度顯示在另一個(gè)單片機(jī)上.最后要求整個(gè)系統(tǒng)能通過(guò)按鍵實(shí)現(xiàn)數(shù)字時(shí)鐘與溫度計(jì)和頻率計(jì)之間的相互切換。在實(shí)習(xí)過(guò)程要記錄每天的實(shí)習(xí)內(nèi)容包括方案的論證,硬件設(shè)計(jì),軟件設(shè)計(jì),仿真分析及實(shí)物制作等。關(guān)鍵詞:?jiǎn)纹瑱C(jī),數(shù)字時(shí)鐘,溫度計(jì),頻率計(jì)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.實(shí)習(xí)任務(wù)與要求1.1實(shí)習(xí)目的1、鞏固單片機(jī)原理與應(yīng)用理論課的理論知識(shí);2、熟悉單片機(jī)應(yīng)用系統(tǒng)的硬件設(shè)計(jì)及軟件設(shè)計(jì)的基本方法;3、將單片機(jī)原理與應(yīng)用理論課的理論知識(shí)應(yīng)用于實(shí)際的應(yīng)用系統(tǒng)中;4、訓(xùn)練單片機(jī)應(yīng)用技術(shù),鍛煉實(shí)際動(dòng)手能力。1.2實(shí)習(xí)任務(wù)(1)利用上述材料完成單片機(jī)最小系統(tǒng)的設(shè)計(jì)、焊接、調(diào)試;(2)完成ISP下載電路的設(shè)計(jì)、焊接;(3)完成應(yīng)用系統(tǒng)擴(kuò)展電路部分的設(shè)計(jì)

7、、焊接、調(diào)試,應(yīng)用系統(tǒng)擴(kuò)展電路的具體要求如下:1)鍵盤、顯示電路利用單片機(jī)最小系統(tǒng)、6個(gè)7段LED數(shù)碼管、12個(gè)按鍵,設(shè)計(jì)制作一個(gè)鍵盤、顯示電路??梢允褂?279鍵盤顯示接口電路,也可以使用單片機(jī)的并行接口作為鍵盤顯示接口。2) 數(shù)字時(shí)鐘在鍵盤、顯示電路的基礎(chǔ)上完成一個(gè)數(shù)字時(shí)鐘的設(shè)計(jì),完成以下功能:a. 要求以24小時(shí)計(jì)時(shí)方式顯示時(shí)、分、秒;b. 時(shí)、分、秒可以通過(guò)按鍵分別調(diào)整。3) 數(shù)字溫度計(jì)在上題的硬基礎(chǔ)上,制作一個(gè)數(shù)字溫度計(jì)。完成以下功能:a. 利用DS18B20可編程1-Wire數(shù)字溫度傳感器芯片,或利用AD590溫度傳感器芯片和A/D轉(zhuǎn)換器芯片采集溫度溫度信號(hào);b. 當(dāng)按下鍵盤上的溫

8、度顯示按鍵時(shí)將實(shí)時(shí)溫度信息顯示在LED顯示器上,當(dāng)按下鍵盤上的時(shí)鐘顯示按鍵時(shí),恢復(fù)時(shí)鐘的正常顯示;c. 通過(guò)串行通信的方式,將采集到的實(shí)時(shí)溫度信息送至第二個(gè)單片機(jī)系統(tǒng),并在二個(gè)單片機(jī)系統(tǒng)顯示實(shí)時(shí)溫度。4) 數(shù)字頻率計(jì)在上題的硬基礎(chǔ)上,制作一個(gè)數(shù)字頻率計(jì)。完成以下功能:a. 利用MCU設(shè)計(jì)一個(gè)數(shù)字頻率計(jì),用于檢測(cè)0500kHz周期信號(hào)的頻率,輸入信號(hào)幅度范圍:0.110V;b. 當(dāng)按下鍵盤上的頻率顯示按鍵時(shí)將測(cè)量的頻率信息顯示在LED顯示器上,當(dāng)按下鍵盤上的時(shí)鐘顯示按鍵時(shí),恢復(fù)時(shí)鐘的正常顯示;(4)利用仿真軟件完成系統(tǒng)仿真工作;(5)完成系統(tǒng)軟件的設(shè)計(jì),包括程序結(jié)構(gòu)設(shè)計(jì)、流程圖繪制、程序設(shè)計(jì)。1

9、.3實(shí)習(xí)要求1)利用PROTEL等軟件進(jìn)行硬件設(shè)計(jì);2)利用Keil uV2軟件完成應(yīng)用系統(tǒng)軟件設(shè)計(jì);3)利用PROTEUS軟件進(jìn)行仿真設(shè)計(jì);4)完成單片機(jī)最小系統(tǒng)和應(yīng)用系統(tǒng)電路板的焊接;5)對(duì)電路進(jìn)行調(diào)試;6)利用stc-isp軟件完成在系統(tǒng)編程、下載,并完成系統(tǒng)軟件調(diào)試;7)題目由指導(dǎo)教師提供;8)要求每個(gè)學(xué)生單獨(dú)完成硬件軟件設(shè)計(jì)、仿真、焊接、調(diào)試任務(wù);9)寫出實(shí)習(xí)報(bào)告,實(shí)習(xí)報(bào)告主要包括以下內(nèi)容:目錄、摘要、關(guān)鍵詞、基本原理、方案論證、硬件設(shè)計(jì)、軟件設(shè)計(jì)(帶流程圖、程序清單)、仿真結(jié)果、實(shí)物運(yùn)行結(jié)果照片、結(jié)論、參考文獻(xiàn)等;10)實(shí)習(xí)完成后通過(guò)答辯;11)答辯時(shí)交實(shí)習(xí)報(bào)告電子文檔,通過(guò)答辯后

10、根據(jù)修改意見(jiàn)修改并打印、裝訂成冊(cè)。2基本原理2.1數(shù)字時(shí)鐘基本原理數(shù)字時(shí)鐘是利用單片機(jī)的內(nèi)部的定時(shí)/計(jì)數(shù)器工作與定時(shí)方式,對(duì)機(jī)器周期計(jì)數(shù)形成基準(zhǔn)時(shí)間(如10ms),然后用另外一個(gè)計(jì)數(shù)器或軟件計(jì)數(shù)的形式對(duì)基準(zhǔn)時(shí)間里德計(jì)數(shù)形成秒(如對(duì)10ms計(jì)數(shù)100次),“秒”計(jì)數(shù)60次形式“分”,“分”計(jì)數(shù)60次形成“時(shí)”,然后通過(guò)軟件程序使它們的內(nèi)容在相應(yīng)的位置顯示出來(lái)。在具體設(shè)計(jì)時(shí)定時(shí)器采用中斷方式工作,對(duì)時(shí)鐘的形成在終中斷程序中實(shí)現(xiàn),在主程序中只是對(duì)定時(shí)/計(jì)數(shù)器的定義初始化,調(diào)用顯示程序。并在設(shè)計(jì)中加入了按鍵,可以通過(guò)按鍵對(duì)時(shí),分,秒進(jìn)行調(diào)整。2.2溫度計(jì)工作基本原理在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感

11、器,所以可以采用一個(gè)溫度傳感器,它會(huì)將溫度轉(zhuǎn)換成數(shù)字量后存貯在自身內(nèi)部,將其連在單片機(jī)的一個(gè)IO口,即一種單總線串行接口,然后通過(guò)軟件程序在數(shù)碼管或液晶屏上顯示出來(lái)就可以直接讀取被測(cè)溫度值。2.3頻率計(jì)工作基本原理頻率計(jì)的基本設(shè)計(jì)原理是直接用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率。所謂頻率,就是周期信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù)。若在一定時(shí)間間隔T內(nèi)測(cè)得這個(gè)周期信號(hào)的重復(fù)變化次數(shù)N,則其頻率可表示為f=N/T。即可利用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)對(duì)外部輸入脈沖進(jìn)行計(jì)數(shù),從而測(cè)得頻率。3方案論證3.1鍵盤顯示接口部分方案一:使用8279鍵盤顯示接口電路,即鍵盤和顯示器通過(guò)8279芯片然后再接到單片機(jī)上,8

12、279可以通過(guò)對(duì)鍵盤的自動(dòng)掃描,將鍵盤信號(hào)存入FIFO RAM里,再通過(guò)顯示子程序顯示按鍵的信息。具體來(lái)說(shuō),掃描輸出線,通過(guò)138譯碼后,作為列與回送線交叉成鍵,輸出數(shù)據(jù)分別用三位來(lái)體現(xiàn)掃描碼和回送碼,讀鍵時(shí)屏蔽高兩位,使鍵值正好等于輸出數(shù)據(jù)的查表值,從而在數(shù)碼管上顯示出來(lái)。方案二:使用單片機(jī)的并行接口作為鍵盤顯示接口,即鍵盤引腳直接接到單片機(jī)的IO口上。從以上兩種方案可以看出,方案一占用的單片機(jī)IO口少,精度高,穩(wěn)定性好,但導(dǎo)致整個(gè)電路所用芯片增加,成本提高。相比較而言方案二雖然占用單片機(jī)的IO口較多,但這個(gè)可以通過(guò)設(shè)計(jì)矩陣鍵盤來(lái)解決,并且也較方案一所用的芯片少,降低了成本。綜合考慮選擇方案

13、二。3.2溫度計(jì)部分方案一:采用熱電偶溫差電路測(cè)溫,溫度檢測(cè)部分可以使用低溫?zé)崤?,熱電偶由兩個(gè)焊接在一起的異金屬導(dǎo)線所組成,熱電偶產(chǎn)生的熱電勢(shì)由兩種金屬的接觸電勢(shì)和單一導(dǎo)體的溫差電勢(shì)組成。通過(guò)將參考結(jié)點(diǎn)保持在已知溫度并測(cè)量該電壓,便可推斷出檢測(cè)結(jié)點(diǎn)的溫度。數(shù)據(jù)采集部分則使用帶有A/D 通道的單片機(jī),在將隨被測(cè)溫度變化的電壓或電流采集過(guò)來(lái),進(jìn)行A/D 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來(lái)。熱電偶的優(yōu)點(diǎn)是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來(lái)自導(dǎo)線環(huán)路的噪聲影響以及漂移較高的缺點(diǎn),并且這種設(shè)計(jì)需要用到A/D 轉(zhuǎn)換電路,感溫電路比

14、較麻煩。系統(tǒng)主要包括對(duì)A/D0809 的數(shù)據(jù)采集,自動(dòng)手動(dòng)工作方式檢測(cè),溫度的顯示等,這幾項(xiàng)功能的信號(hào)通過(guò)輸入輸出電路經(jīng)單片機(jī)處理。此外還有復(fù)位電路,晶振電路,啟動(dòng)電路等。故現(xiàn)場(chǎng)輸入硬件有手動(dòng)復(fù)位鍵、A/D 轉(zhuǎn)換芯片,處理芯片為51 芯片,執(zhí)行機(jī)構(gòu)有4 位數(shù)碼管、報(bào)警器等。方案二:采用數(shù)字溫度芯片DS18B20 測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線形較好。在0100 攝氏度時(shí),最大線形偏差小于1 攝氏度。DS18B20 的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控

15、制器AT89S51構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過(guò)編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟?!?】該系統(tǒng)利用AT89S51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計(jì)中加入時(shí)鐘芯

16、片DS1302以獲取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并可以利用AT24C16芯片作為存儲(chǔ)器件,以此來(lái)對(duì)某些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲(chǔ),利用鍵盤來(lái)進(jìn)行調(diào)時(shí)和溫度查詢,獲得的數(shù)據(jù)可以通過(guò)MAX232芯片與計(jì)算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。從以上兩種方案,容易看出方案一的測(cè)溫裝置可測(cè)溫度范圍寬、體積小,但是線性誤差較大。方案二的測(cè)溫裝置電路簡(jiǎn)單、精確度較高、實(shí)現(xiàn)方便、軟件設(shè)計(jì)也比較簡(jiǎn)單,故本次設(shè)計(jì)采用了方案二。4硬件設(shè)計(jì)4.1最小系統(tǒng)設(shè)計(jì)晶振振蕩器電路單片機(jī)是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),其所有的工作都在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格的按時(shí)序進(jìn)行的。時(shí)

17、序就是單片機(jī)內(nèi)部以及內(nèi)部與外部互聯(lián)必須遵守的規(guī)律。單片機(jī)的時(shí)序可以通過(guò)兩種方式產(chǎn)生:內(nèi)部振蕩方式和外部振蕩方式。外部振蕩方式需要引入外部時(shí)鐘信號(hào)作為單片機(jī)的時(shí)鐘信號(hào),它可以使各單片機(jī)之間的時(shí)鐘信號(hào)同步,常用于多片單片機(jī)組成的系統(tǒng)中,而本次設(shè)計(jì)只需使用一片單片機(jī),所以本次系統(tǒng)設(shè)計(jì)采用了內(nèi)部振蕩方式。單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳X1和X2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋原件的片外石英晶體及電容一起構(gòu)成一個(gè)自激振蕩器。電容C1和C2通常取30pF,對(duì)振蕩器有微調(diào)的作用。晶振的實(shí)際頻率與標(biāo)稱頻率的關(guān)系為:x為實(shí)際頻率,0為標(biāo)稱頻率,0范圍是1.2MHz12

18、MHz。所以本設(shè)計(jì)晶振Y采用12HMz,電容C1和C2取30pF,則x為12MHZ。圖4-1振蕩電路4.1.2復(fù)位電路單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開(kāi)始工作。除了進(jìn)入系統(tǒng)的正常初始化之外,由于程序運(yùn)行出錯(cuò)或者操作出錯(cuò)而使單片機(jī)系統(tǒng)處于死鎖狀態(tài),為了擺脫死鎖狀態(tài),也需要使單片機(jī)重新啟動(dòng)。單片機(jī)的復(fù)位操作一般有上電自動(dòng)復(fù)位和按鍵電平復(fù)位兩種方式。本設(shè)計(jì)采用上電自動(dòng)復(fù)位和按鍵電平復(fù)位都有的復(fù)位電路。手動(dòng)按鍵復(fù)位需要人為在復(fù)位輸入端RESET上通過(guò)按鈕加入高電平,其復(fù)位過(guò)程是:當(dāng)按下按鍵S時(shí),RESET端直接與VCC相連,從按下按鍵到松開(kāi)按鍵的時(shí)間內(nèi),能使

19、RESET端維持一段時(shí)間的高電平,這段時(shí)間的高電平使單片機(jī)復(fù)位。當(dāng)按鍵被松開(kāi)后,RESET端回到低電平,單片機(jī)系統(tǒng)完成復(fù)位,恢復(fù)正常工作狀態(tài)。上電復(fù)位電路是在RESET復(fù)位輸入引腳上接一電容至VCC端,下接一個(gè)電阻到地。上電復(fù)位的工作過(guò)程是:在系統(tǒng)上電瞬間,電容相當(dāng)于短路,電源電壓通過(guò)電容加給RESET引腳以高電平信號(hào),此高電平信號(hào)隨著VCC對(duì)電容的充電過(guò)程而逐漸回落,在其高電平期間,系統(tǒng)復(fù)位;當(dāng)電容兩端電壓達(dá)到電源電壓時(shí),電容充電電流為零,電容相當(dāng)于開(kāi)路,RESET端為低電平,單片機(jī)復(fù)位完成,恢復(fù)正常工作狀態(tài)。這里要注意的是,要想實(shí)現(xiàn)復(fù)位,必須保證復(fù)位信號(hào)高電平持續(xù)時(shí)間大于兩個(gè)機(jī)器周期,而。

20、本設(shè)計(jì)的單片機(jī)機(jī)器周期為:。而,所以滿足要求。圖4-2復(fù)位電路圖4-3 最小系統(tǒng)電路4.2下載電路MAX232是電平轉(zhuǎn)換芯片。1970年,美國(guó)電氣學(xué)會(huì)規(guī)定“RS232”串口通信協(xié)議。規(guī)定邏輯“1”,-5-15V;邏輯“0”,+5+15.噪聲容限為2V.要實(shí)現(xiàn)利用串口與單片機(jī)進(jìn)行通信,就要進(jìn)行電平轉(zhuǎn)換,把標(biāo)準(zhǔn)轉(zhuǎn)化成單片機(jī)可以識(shí)別的。MAX220MAX249都是電平轉(zhuǎn)換芯片,在單片機(jī)最小系統(tǒng)中,使用MAX232.圖4-4下載電路4.3鍵盤電路鍵盤分編碼鍵盤和非編碼鍵盤,鍵盤上閉合鍵的識(shí)別由專用的硬件編碼器實(shí)現(xiàn),并產(chǎn)生按鍵編碼號(hào)或鍵值的稱為編碼鍵盤,如計(jì)算機(jī)鍵盤。而靠軟件編程來(lái)識(shí)別的稱為非編碼鍵盤,

21、在單片機(jī)組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤,也有用到編碼鍵盤的,我們這里用的就是非編碼鍵盤。在這種非編碼鍵盤的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行有無(wú)按鍵按下的程序段,當(dāng)確認(rèn)有按鍵按下后,下一步就要識(shí)別哪一個(gè)按鍵被按下,對(duì)鍵的識(shí)別常采用逐行(逐列)掃描的方法。單片機(jī)檢測(cè)按鍵是否被按下的依據(jù)是檢測(cè)與該鍵對(duì)應(yīng)的I/O口是否為低電平。判斷鍵盤哪一個(gè)鍵被按下。方法是:一次給行線送低電平,然后查所有列線狀態(tài),稱為行掃描,如果全為1,則所按下鍵不在此行,如果不全為1,則所按下鍵必在此行,而且是在與零電平列線相交的交點(diǎn)上的那個(gè)鍵。本設(shè)計(jì)中有2*4矩陣鍵盤和獨(dú)立鍵盤。矩陣鍵盤可以有效的減少鍵盤與單片機(jī)接口

22、時(shí)所占用的I/O接口。圖4-5鍵盤電路如圖所示,2*4矩陣鍵盤的行線和列線者接到了單片機(jī)的P3口。S1,S2,S3,S4為獨(dú)立鍵盤。4.4顯示電路4.4.1數(shù)碼管結(jié)構(gòu)數(shù)碼管內(nèi)部有8個(gè)發(fā)光二極管,公共端由8個(gè)發(fā)光二極管的陰極并接而成,正常顯示時(shí)公共端接低電平(GND),各發(fā)光二極管是否點(diǎn)亮取決于a-dp各引腳上是否是高電平。 LED數(shù)碼管的外形結(jié)構(gòu)如圖4-5,外部有10個(gè)引腳,其中3, 8腳為公共端也稱位選端,其余8個(gè)引腳稱為段選端,當(dāng)要使某一位數(shù)碼管顯示某一數(shù)字(0-9中的一個(gè))必須在這個(gè)數(shù)碼管的段選端加上與數(shù)字顯示數(shù)字對(duì)應(yīng)的8位段選碼(也稱字形碼),在位選端加上低電平即可。LED有共陰極和共

23、陽(yáng)極兩種。如圖4-5所示。二極管的陰極連接在一起,通常此公共陰極接地,而共陽(yáng)極則將發(fā)光二極管的陽(yáng)極連接在一起,接入+5V的電壓。一位顯示器由8個(gè)發(fā)光二極管組成,其中7個(gè)發(fā)光二極管構(gòu)成字型“8”的各個(gè)筆劃(段)ag,另一個(gè)小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時(shí),該段筆劃即亮;不加電壓則暗。符號(hào)和引腳 共陰極 共陽(yáng)極圖4-6LED結(jié)構(gòu)圖表4-1LED顯示段碼字型共陽(yáng)極段共陰極段字型共陽(yáng)極段共陰極段0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7D

24、HF84H71H7F8H07H空白FFH00H880H7FHP8CH73H4.4.2LED顯示器工作原理:(1)LED靜態(tài)顯示方式 LED顯示器工作于靜態(tài)顯示方式時(shí),各位的共陰極連接在一起并接地;每位的段碼分別與8位的鎖存器輸出相連。各個(gè)LED的顯示字符一經(jīng)確定,相應(yīng)鎖存的段碼輸出將維持不變,直到送入另一個(gè)字符為止,故靜態(tài)顯示器的亮度較高。(2)LED動(dòng)態(tài)顯示方式在多位LED顯示時(shí),為簡(jiǎn)化硬件電路,通常將所有的段碼線相應(yīng)段并聯(lián)在一起,由1個(gè)8位I/0口控制,形成段碼線的多路復(fù)用,而各位的共陰極分別由相應(yīng)的I/O線控制,形成各位的分時(shí)選通。設(shè)計(jì)中采用八個(gè)共陰LED管,其中段碼線采用CD4511譯

25、碼占用4位I/O口,而位選信號(hào)使用74LS138占用3個(gè)I/O口,則只要7個(gè)I/O口。由于各位的段碼線并聯(lián),4位I/O口輸出的段碼對(duì)各個(gè)顯示位來(lái)說(shuō)都是相同的。因此,在同一時(shí)刻,如果各位選線都處于選通狀態(tài)的話,8位LED將顯示相同的字符。若要各位LED能夠同時(shí)顯示出與本位相應(yīng)的顯示字符,就必須采用動(dòng)態(tài)顯示方式,即在某一時(shí)刻,只讓某一位的位選線處于選通狀態(tài),而其它各位的位選線處于關(guān)閉狀態(tài),同時(shí),段碼線上輸出相應(yīng)位要顯示的字符的段碼。這樣,在同一時(shí)刻,8位LED中只有選通的那1位顯示出字符,而其他7位則是熄滅的。同樣,在下一時(shí)刻,只讓下一位的位選線處于選通狀態(tài),而其他各位的位選線處于關(guān)閉狀態(tài),在段碼

26、線上輸出將要顯示字符的段碼,則同一時(shí)刻,只有選通位顯示出將要顯示的字符,而其他各位則是熄滅的。如此循環(huán)下去,就可以使各位顯示出將要顯示的字符。雖然這些字符是在不同時(shí)刻出現(xiàn)的,而在同一時(shí)刻,只有一位顯示,其他各位熄滅,但由于LED顯示器的余輝和人眼的視覺(jué)暫留作用,只要每位顯示間隔足夠短,則可以造成多位同時(shí)亮的假象,達(dá)到同時(shí)顯示的效果。發(fā)光二極管從導(dǎo)通到發(fā)光有一定的延時(shí),導(dǎo)通時(shí)間太短,則發(fā)光太弱,人眼無(wú)法看清;但也不能太長(zhǎng),因?yàn)橐芟抻谂R界閃爍頻率,而且此時(shí)間越長(zhǎng),占用CPU時(shí)間也越多。另外,顯示位數(shù)增多,也將占用大量的CPU時(shí)間,因此動(dòng)態(tài)顯示的實(shí)質(zhì)是以犧牲CPU時(shí)間來(lái)?yè)Q取器件的減少。本次設(shè)計(jì)中,

27、6位LED七段數(shù)碼管采用共陰極接法。圖4-7顯示電路如圖所示,單片機(jī)的P0口通過(guò)U2鎖存器(74HC573)與數(shù)碼管相連,來(lái)實(shí)現(xiàn)位選;通過(guò)U3與數(shù)碼管相連來(lái)實(shí)現(xiàn)段選。4.5溫度傳感器電路設(shè)計(jì)4.5.1DS18B20的工作原理根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:1. 每一次讀寫之前都必須要對(duì)DS18B20進(jìn)行復(fù)位;2. 復(fù)位成功后發(fā)送一條ROM指令;3. 最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待1560微秒左右后發(fā)出60240微秒的存在低脈沖,主CPU收

28、到此信號(hào)表示復(fù)位成功。其工作時(shí)序包括初始化時(shí)序、寫時(shí)序和讀時(shí)序,具體工作方法如圖4-8,4-9,4-10所示。(1) 初始化時(shí)序圖4-8初始化時(shí)序總線上的所有傳輸過(guò)程都是以初始化開(kāi)始的,主機(jī)響應(yīng)應(yīng)答脈沖。應(yīng)答脈沖使主機(jī)知道,總線上有從機(jī)設(shè)備,且準(zhǔn)備就緒。主機(jī)輸出低電平,保持低電平時(shí)間至少480us,以產(chǎn)生復(fù)位脈沖。接著主機(jī)釋放總線,4.7K上拉電阻將總線拉高,延時(shí)1560us,并進(jìn)入接受模式,以產(chǎn)生低電平應(yīng)答脈沖,若為低電平,再延時(shí)480us。(2) 寫時(shí)序圖4-9 寫時(shí)序 寫時(shí)序包括寫0時(shí)序和寫1時(shí)序。所有寫時(shí)序至少需要60us,且在2次獨(dú)立的寫時(shí)序之間至少需要1us的恢復(fù)時(shí)間,都是以總線拉

29、低開(kāi)始。寫1時(shí)序,主機(jī)輸出低電平,延時(shí)2us,然后釋放總線,延時(shí)60us。寫0時(shí)序,主機(jī)輸出低電平,延時(shí)60us,然后釋放總線,延時(shí)2us。(3) 讀時(shí)序圖4-10 讀時(shí)序總線器件僅在主機(jī)發(fā)出讀時(shí)序是,才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便從機(jī)能夠傳輸數(shù)據(jù)。所有讀時(shí)序至少需要60us,且在2次獨(dú)立的讀時(shí)序之間至少需要1us的恢復(fù)時(shí)間。每個(gè)讀時(shí)序都由主機(jī)發(fā)起,至少拉低總線1us。主機(jī)在讀時(shí)序期間必須釋放總線,并且在時(shí)序起始后的15us之內(nèi)采樣總線狀態(tài)。主機(jī)輸出低電平延時(shí)2us,然后主機(jī)轉(zhuǎn)入輸入模式延時(shí)12us,然后讀取總線當(dāng)前電平,然后延時(shí)50us。當(dāng)主機(jī)收到D

30、Sl8B20 的響應(yīng)信號(hào)后,便可以發(fā)出ROM 操作命令之一,這些命令如表4-2所示。RAM指令集如表4-3所示。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換過(guò)程是:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,即將數(shù)據(jù)總線下拉500us,然后釋放,DS18B20收到信號(hào)后等待16-60us左右,之后發(fā)出60-240us的存在低脈沖,主CPU收到此此信號(hào)表示復(fù)位成功;復(fù)位成功后發(fā)送一條ROM指令,然后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)訂的讀寫操作。表4-2 ROM操作命令指令約定代碼功能讀ROM33H讀DS18B20中的編碼符合ROM55H發(fā)出此命令后,接著發(fā)出64位ROM編碼,訪問(wèn)單線總線上與

31、該編輯相對(duì)應(yīng)的DS18B20使之做出響應(yīng),為下一步對(duì)該DS18B20的讀寫作準(zhǔn)備搜索ROM0F0H用于確定掛接在同一總線上的DS18B20個(gè)數(shù)和識(shí)別64位ROM地址,為操作各器件作準(zhǔn)備跳過(guò)ROM0CCH忽略64位ROM地址,直接向DS18B20發(fā)送溫度變換指令告警搜索命令0ECH執(zhí)行后,只有溫度跳過(guò)設(shè)定值上限或下限的片子才能做出反應(yīng)表4-3RAM指令集指令約定代碼功能溫度轉(zhuǎn)換44H啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換讀暫存器0BEH讀暫存器9個(gè)字節(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啟動(dòng)DS18B20發(fā)送電源供電方式的信號(hào)給主CPUDS18B20的測(cè)溫原理DS18B20的測(cè)溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個(gè)計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開(kāi)時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門的開(kāi)啟時(shí)間由高溫度系數(shù)振蕩器來(lái)決定,每次測(cè)量前,首先將最低溫所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在最低溫所對(duì)

33、應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值大致被測(cè)溫度值。減法計(jì)數(shù)器斜坡累加器減到0減法計(jì)數(shù)器預(yù) 置低溫度系數(shù)振 蕩 器高溫度系數(shù)振 蕩 器計(jì)數(shù)比較器預(yù) 置溫度寄存器減到0圖4-11測(cè)溫原理圖初始化DS18B20跳過(guò)ROM匹配溫度變換延時(shí)1S跳

34、過(guò)ROM匹配讀暫存器轉(zhuǎn)換成顯示碼數(shù)碼管顯示圖4.12測(cè)溫流程圖圖4-13溫度傳感電路4.6總電路 圖4-14總電路圖(1)當(dāng)給單片機(jī)上電后,其為時(shí)鐘模式,按一次S1實(shí)現(xiàn)對(duì)“秒”的調(diào)整,按兩次S1實(shí)現(xiàn)對(duì)“分”的調(diào)整,按三次S1實(shí)現(xiàn)對(duì)“時(shí)”調(diào)整;按S2 實(shí)現(xiàn)增1,按S3實(shí)現(xiàn)減1.(2)按S2實(shí)現(xiàn)時(shí)鐘到溫度計(jì)的切換,按S4恢復(fù)時(shí)鐘。(3)按S3實(shí)現(xiàn)時(shí)鐘到頻率計(jì)的切換,按S4恢復(fù)時(shí)鐘。5軟件設(shè)計(jì)5.1主程序流程圖開(kāi)始初始化調(diào)用顯示時(shí)鐘函數(shù)調(diào)用鍵盤掃描函數(shù)調(diào)用溫度顯示函數(shù)調(diào)用頻率計(jì)函數(shù)S2是否按下S4是否按下S3是否按下顯示時(shí)鐘YYYNN 5.2定時(shí)器0中斷處理流程圖5.2中斷程序流程圖重裝初值保護(hù)現(xiàn)場(chǎng)

35、計(jì)數(shù)單元加1到1秒?N秒加1N到60秒?秒清0,分加1N到60分?分清0,時(shí)加1N到24時(shí)?小時(shí)清0恢復(fù)現(xiàn)場(chǎng)中斷返回5.3時(shí)鐘子程序開(kāi)始調(diào)用鍵盤掃描函數(shù)S1是否按下調(diào)用延時(shí)函數(shù)S1按下1次S1按下2次S1按下3次S2是否按下S3是否按下調(diào)秒調(diào)分調(diào)時(shí)加1減1YY5.4溫度子程序設(shè)置堆棧指針將溫度轉(zhuǎn)換為BCD碼發(fā)讀存儲(chǔ)器命令讀溫度數(shù)據(jù)復(fù)位DS18B20發(fā)跳過(guò)ROM命令顯示緩沖區(qū)初始化更新數(shù)據(jù)緩沖區(qū)延時(shí)發(fā)溫度轉(zhuǎn)換命令復(fù)位DS18B20發(fā)跳過(guò)ROM命令開(kāi)始顯示溫度雙機(jī)通信5.5雙機(jī)通信(1)發(fā)送開(kāi)始T1初始化,啟動(dòng)T1工作設(shè)定串行工作方式置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器結(jié)束T1=1全部數(shù)據(jù)發(fā)送完清T1

36、修改地址指針和數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器發(fā)送數(shù)據(jù)NNYY(2)接收開(kāi)始T1初始化,啟動(dòng)T1工作設(shè)定串行工作方式并設(shè)定允許接收模式置發(fā)送數(shù)據(jù)塊首址數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器結(jié)束R1=1全部數(shù)據(jù)接收完清R1修改地址指針和數(shù)據(jù)塊長(zhǎng)度計(jì)數(shù)器接收數(shù)據(jù)NNYY5.6頻率計(jì)子程序開(kāi)始頻率測(cè)量計(jì)數(shù)器計(jì)數(shù)測(cè)量數(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ù)點(diǎn)的09編碼0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/不帶小數(shù)點(diǎn)的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是第幾個(gè)數(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+起延時(shí)作用ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return(dat);uchar tempread(void) /讀一個(gè)字節(jié)數(shù)據(jù)函數(shù)uchar i,j,dat;dat=0;for(

39、i=1;i=8;i+)j=tempreadbit();dat=(j1); /讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個(gè)字節(jié)在dat里return(dat);void tempwritebyte(uchar dat) /向DS18B20寫一個(gè)字節(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開(kāi)始獲取溫度并轉(zhuǎn)換dsreset();delayms(1);tem

40、pwritebyte(0xcc);/寫跳過(guò)讀ROM指令tempwritebyte(0x44);/寫溫度轉(zhuǎn)換指令uint get_temp() /讀取寄存器中存儲(chǔ)的溫度數(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論