【文章內(nèi)容簡介】
生固定頻率的脈沖信號送給減法計數(shù)器1;高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入。圖中還隱含著計數(shù)門,當計數(shù)門打開時DS18B20就對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)晶振來決定,每次測量前,首先將55176。C所對應(yīng)的一個基數(shù)分別置入減法計數(shù)器溫度寄存器中。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,減法計數(shù)器1的預(yù)置值將重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),如此循環(huán),直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存其中的數(shù)值就是所測溫度值。減到0溫度寄存器減到0高溫度系數(shù)振蕩器減法計數(shù)器2預(yù)置低溫度系數(shù)振蕩器減法計數(shù)器1斜率累加器計數(shù)比較器預(yù)置 增加 停止 DS18B20測溫原理圖 AT89C2051芯片在本設(shè)計中,采用了單片機AT89C2051作為核心電路的設(shè)計。AT89C2051是一個帶有2K字節(jié)閃速可編程可擦除只讀存儲器(EEPROM)的低電壓,高性能8位CMOS微處理器。它采用ATMEL的高密非易失存儲技術(shù)制造并和工業(yè)標準MCS51指令集和引腳結(jié)構(gòu)兼容。通過在單塊芯片上組合通用的CPLI和閃速存儲器,ATMEL的AT89C2051是一強勁的微型處理器,它對許多嵌入式控制應(yīng)用提供一定高度靈活和成本低的解決辦法。AT89C2051提供以下標準功能:2K字節(jié)閃速存儲器,128字節(jié)RAM,15根I/O口,兩個16位定時器,一個五向量兩級中斷結(jié)構(gòu),一個全雙工串行口,一個精密模擬比較器以及兩種可選 的軟件節(jié)電工作方式??臻e方停止CPU工作但允許RAM、定時器/計數(shù)器、串行工作口和中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM內(nèi)容但振蕩器停止工作并禁止有其它部件的工作到下一個硬件復(fù)位。單片機AT89C2051具有低電壓供電和小體積等特點,兩個端口剛好滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用,系統(tǒng)可以用兩節(jié)電池供電。 復(fù)位電路單片機在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位。本設(shè)計中AT89C2051是采用上電自動復(fù)位。RC構(gòu)成微分電路,在上電瞬間,產(chǎn)生一個微分脈沖,其寬度若大于2個機器周期,將復(fù)位。為保證微分脈沖寬度足夠大,RC時間常數(shù)應(yīng)大于兩個機器周期。 復(fù)位電路 晶振電路 晶振電路AT89C2051單片機內(nèi)部的振蕩電路是一個高增益反向放大器,引線XTAL1和XTAL2分別是放大器的輸入端和輸出端。單片機內(nèi)部雖然有振蕩電路,但要形成時鐘,外部還需附加電路。AT89C2051的時鐘產(chǎn)生方式有兩種:內(nèi)部時鐘電方式和外部時鐘方式。由于外部時鐘方式用于多片單片機組成的系統(tǒng)中,所以此處選用內(nèi)部時鐘方式。即利用其內(nèi)部的振蕩電路在XTAL1和XTAL2引線上外接定時元件,內(nèi)部振蕩電路產(chǎn)生自激振蕩。最常用的是在XTAL1和XTAL2之間接晶體振蕩器與電路構(gòu)成穩(wěn)定的自激振蕩器,如圖25電路所示為單片機最常用的時鐘振蕩電路的接法,其中晶振可選用振蕩頻率為6MHz的石英晶體,電容器一般選擇30PF左右。 顯示電路顯示電路采用4位共陽極LED數(shù)碼管。 LED顯示器LED顯示器工作在靜態(tài)顯示時,其公共陽極(或陰極)接VCC(或GND),一直處于顯示有效狀態(tài),所以每一位的顯示內(nèi)容必須由鎖存器加以鎖存,顯示各位相互獨立。靜態(tài)顯示時,LED的亮度高,控制容易,但功耗大,所需口線多。若顯示位數(shù)增多,則靜態(tài)顯示方式很難適應(yīng)。一般需要采用動態(tài)顯示方式。 軟件設(shè)計 系統(tǒng)程序設(shè)計系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換命令子程序、計算溫度子程序和顯示數(shù)據(jù)刷新子程序。1)主程序的主要功能是負責(zé)溫度的實時顯示、讀出并處理DS18B20的測量溫度值,溫度測量每一秒進行一次。2) 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。3) 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令。當采用12位分辨率時,轉(zhuǎn)換時間約為750ms。在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換完成。 初始化調(diào)用顯示子程序1s到?初次上電讀出溫度值溫度計算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令 發(fā)DS18B20復(fù)位命令 發(fā)跳過ROM命令 發(fā)讀取溫度命令 讀取操作,CRC校驗9字節(jié)完?CRC校驗正確? 移入溫度暫存器 結(jié)束 N Y Y Y Y N Y 主程序流程圖 讀出溫度子程序流程圖4)計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負的判定。5)顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為0時,將符號顯示位移入下一位。 開始溫度0?溫度值取補碼置“”標志計算小數(shù)位溫度BCD值計算整數(shù)位溫度BCD值 結(jié)束置“+”標志溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0? 結(jié)束十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) N Y 計算溫度子程序流程圖 N Y N Y 顯示數(shù)據(jù)刷新子程序流程圖 源程序(見附錄B)3系統(tǒng)仿真 仿真軟件簡介本設(shè)計采用Proteus軟件進行仿真。proteus軟件是英國Labcenterelectronics公司出版的EDA工具軟件,它不僅有其他EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的軟件。Proteus從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持805HC1PIC10/12/16/18/24/30/DsPIC3AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。PROTEUS不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達到的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應(yīng)。這在相當程度上替代了傳統(tǒng)的單片機實驗教學(xué)的功能,由于PROTEUS提供了實驗室無法相比的大量的元器件庫,提供了修改電路設(shè)計的靈活性、提供了實驗室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表。它具有設(shè)計靈活,結(jié)果、過程的統(tǒng)一的特點。可使設(shè)計時間大為縮短、耗資大為減少,也可降低工程制造的風(fēng)險。相信在單片機開發(fā)應(yīng)用中PROTEUS也能茯得愈來愈廣泛的應(yīng)用。在使用 Proteus 進行系統(tǒng)仿真開發(fā)成功之后再進行實際制作,能極大提高單片機系統(tǒng)設(shè)計效率。因此,Proteus 有較高的推廣利用價值。 仿真過程1)在ISIS編輯區(qū)中進行設(shè)計。首先從PROTEUS庫中選取元器件和工具AT89C2051:單片機::LED數(shù)碼