基於微控制器的雙路訊號檢測系統綜合設計

2023-02-08 23:21:02 字數 4642 閱讀 8802

一.設計任務:

設計乙個能同時對環境溫度和0v~2.5v直流電壓進行檢測的系統,電壓的檢測採用tlc549序列adc器件;對溫度的檢測採用lm75a數字溫度感測器;檢測結果以動態掃瞄方式顯示在乙個8位led數碼顯示器上(可以同時顯示,也可以輪流顯示)。;程式的除錯在實驗箱上完成。

完成設計報告的撰寫,設計報告應包括系統原理圖、設計原理、設計過程以及程式除錯情況等內容。

擴充套件要求:

加入鍵盤的應用:程式執行後,led顯示器顯示「p」,表示處於「待命」狀態,按下「1」鍵——進行電壓測量並顯示;按下「2」鍵——進行溫度測量並顯示;按下「3」鍵——電壓與溫度交替測量並顯示;按下「8」鍵——返回「待命」狀態。

二.硬體電路設計

1.系統組成框圖

2.單元電路

(1) 微控制器at89c51

組成:at89c51控制晶元,晶振電路,按鍵復位電路

作用:裝載程式,為外界電路提供i/o介面,對外界送來的資料進行處理,提供控制訊號,時鐘訊號,對電路進行復位等。

工作原理:at89c51主要由**處理器(cpu),內部ram,內部rom,4個8位的並行雙向i/o埠,2個定時/計數器,乙個序列介面電路,內部時鐘產生電路等構成。以上各部分通過內部資料匯流排相連線。

與外設相連時為三匯流排方式:資料匯流排、位址匯流排、控制匯流排。其中cpu在微控制器內部協調各功能部件之間的資料傳送,資料運算等操作,並對微控制器外發出若干控制資訊;ram用於儲存程式執行中產生的資料;rom用於儲存程式;p1口只能用做i/o口,p0口可用做i/o口或在訪問外部儲存器時分時用做低8位位址線和8為資料線,p0口可用做i/o口或在訪問外部儲存器時輸出高8位位址,在程式設計和檢驗時用做高位位址和控制訊號。

將程式拷入微控制器的內部rom之後,根據程式對微控制器的管腳進行分配,利用**處理器發出控制訊號控制資料的輸入輸出,並對輸入的資料進行處理,且將處理後的資料傳送到相應的外部電路中。

電原理圖:見圖1。

圖1. at89c51控制電路原理圖

(2) 溫度測量電路(lm75a)

組成:lm75a晶元。

作用:測量環境溫度並將測量值通過微控制器送到數碼管顯示。

工作原理:lm75a 是乙個使用了內建帶隙溫度感測器和σ-△模數轉換技術的溫度-數字轉換器。lm75a 利用內建的解析度為0.

125℃的帶隙感測器來測量器件的溫度,並將模數轉換得到的11 位的二進位制數的補碼資料存放到器件temp 暫存器中。temp 暫存器的資料可隨時被i2c 匯流排上的控制器讀出。lm75a 可配置成不同的工作條件,它可設定成在正常工作模式下周期性地對環境溫度進行監控或進入關斷模式來將器件功耗降至最低。

本實驗中只需設定成正常模式即可。在正常工作模式中,每隔100ms 執行一次溫度-數字的轉換,temp 暫存器的內容在每次轉換後更新。溫度暫存器通常存放著乙個 11 位的二進位制數的補碼,用來實現0.

125℃的精度。

在微控制器的控制下,利用兩個埠 scl和sda,lm75a 可以作為從器件連線到相容2 線序列介面的i2c 匯流排上,在本實驗中,scl連線微控制器p3.3介面,sda連線p3.4介面。

微控制器提供scl 時鐘訊號,並通過sda 端讀出器件的資料。

電原理圖:見圖2。

圖2. 溫度測量電路原理圖

(3) 數字電壓表電路(tlc549)

組成:模擬訊號產生電路,tlc549晶元。

作用:tlc549將輸入的模擬訊號轉換成8位數碼訊號,然後將轉換後的資料通過微控制器送入數碼管顯示。

工作原理:模擬訊號產生電路通過滑動變阻器來產生0~2.5v的電壓,送入tlc549的模擬訊號入口。

tlc549具有4mhz片內系統時鐘和軟、硬體控制電路,轉換時間最長17μs,總失調誤差最大為±0.5lsb,典型功耗值為6mw。採用差分參考電壓高阻輸入,抗干擾,可按比例量程校準轉換範圍。

當cs為高時,資料輸出(data out)端處於高阻狀態,此時i/o clock不起作用。將cs置低,內部電路在測得cs下降沿后,再等待兩個內部時鐘上公升沿和乙個下降沿后,確認這一變化,最後自動將前一次轉換結果的最高位(d7)位輸出到data out端上,前四個i/o clock週期的下降沿依次移出d6、d5、d4、d3,取樣保持電路在第4個i/o clock下降沿開始取樣下乙個模擬輸入,接下來的3個i/o clock週期的下降沿移出第d2、d1、d0,最後,取樣保持電路在第8個i/o clock週期的下降沿起作用,保持功能將持續4個內部時鐘週期,然後開始進行32個內部時鐘週期的a/d轉換。第8個i/o clock後,cs必須為高,或i/o clock保持低電平,這種狀態需要維持36個內部系統時鐘週期以等待保持和轉換工作的完成。

電原理圖:見圖3。

圖3. 數字電壓表電路原理圖

(4) 鍵盤

組成:按鍵(只需4個:key1,key2,key3,key8)。

作用:產生顯示部分的選擇訊號。

工作原理:當按鍵未按下時,按鍵輸出為高電平,當按鍵按下時,按鍵輸出為低電平。微控制器對按鍵進行掃瞄,當掃瞄到某個按鍵按下(即為低電平)時,判斷該訊號有效,則該按鍵對應的資料顯示在數碼管上。

在本實驗中,key1對應電壓顯示,key2對應溫度顯示,key3對應電壓溫度交替顯示,key8對應待命,顯示「p」。

電原理圖:見圖4。

圖4. 按鍵電路原理圖

(5) 數碼管掃瞄顯示電路

組成:8個七段數碼管,鎖存器74hc573。

作用:將微控制器送來的資料通過數碼管顯示出來,74hc573用於鎖存要顯示的資料。

工作原理:數碼管的連線方式分為共陰極和共陽極數碼管。共陽極接法,把數碼管的陽極連在一起,使用時公共陽極接+5v,這時陰極接低電平的段數碼管就導通點亮,而接高電平的則不點亮。

共陰極接法,把數碼管的陰極接在一起,使用時公共陰極接地,這時陽極接高電平的段數碼管就導通點亮,而接低電平的則不亮。

數碼管動態顯示方式採用掃瞄**流點亮各個led數碼管:某時刻段選控制埠輸出乙個字元的顯示碼,同時位選控制埠選中其中的乙個數碼管進行顯示,這樣周而復始,將各顯示碼依次送到被選中的數碼管,當顯示頻率達到幾百赫茲時,由於人眼的視覺暫留原理,就好像數碼管將需要顯示的資料「同時」顯示了出來。在本實驗中,p1埠用做位選,p0埠用做段選。

電原理圖:見圖5。

圖5. 數碼管掃瞄電路原理圖

2.系統完整的原理圖

見圖6。

三.程式設計

1.模組化程式設計

模組化程式設計方法的基本思路是:把乙個複雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的範圍。具體說,可採取以下方法來保證得到結構化的程式:

自頂向下;逐步細化;模組化設計;結構化編碼。利用模組化的設計方法,考慮周全,結構清晰,層次分明,作者容易寫,讀者容易看。

2.總的程式流程框圖

3.各部分程式設計

(1) 電壓讀取與輸出顯示部分

該模組的主要功能是讀取a/d轉換後的電壓值,並將電壓值通過顯示程式送到數碼管顯示出來。主要包含的函式有:readadc(),delay(),dispvol(),adcinit()。

各函式功能如下所示:

readadc():讀取a/d轉換結果並返回8位adc**;

delay():電壓顯示部分的延時函式;

dispvol():將adc值轉換成電壓值,並顯示出來;

adcinit():初始化adc介面。

(2)8位a/d轉換結果對應的電壓資料表,可直接用於顯示。

(3) 溫度讀取與輸出顯示部分

該模組的主要功能是讀取lm75a溫度暫存器中的溫度值,並將溫度值通過顯示程式送到數碼管顯示出來。主要包含的函式有:lm75a_gettemp(),delay75(),bytetostr(),disptemp()。

各函式功能如下所示:

lm75a_gettemp():讀出lm75a的溫度值並返回lm75a溫度暫存器的數值;

delay75():溫度顯示部分的延時函式;

disptemp():在數碼管上顯示出溫度值;

bytetostr():將位元組型變數c轉換為十進位制字串。

(4)顯示模組

該模組的主要功能是為各種需要在數碼管上顯示資料的程式提供顯示功能。主要包含的函式有:t1intsvc(),dispclear(),dispchar(),dispstr(),dispdoton(),dispinit()。

各函式功能如下所示:

t1intsvc():定時器t1的中斷服務函式;

dispclear():清除數碼管的所有顯示;

dispchar():在數碼管上顯示字元;

dispstr():在數碼管上顯示字串;

dispdoton():顯示指定位的小數點;

dispinit():數碼管掃瞄顯示初始化。

(5)模擬i2c匯流排模組

該模組是標準80c51微控制器模擬i2c匯流排的主機程式。主要包含的函式有:i2c_delay(),i2c_init(),i2c_start(),i2c_write(),i2c_read(),i2c_getack(),i2c_putack(),i2c_stop(),i2c_puts(),i2c_put(),i2c_gets(),i2c_get()。

各函式功能如下所示:

i2c_delay():延時,模擬i2c匯流排專用;

i2c_init():i2c匯流排初始化,使匯流排處於空閒狀態;

i2c_start():產生i2c匯流排的起始狀態;

i2c_write():向i2c匯流排寫1個位元組的資料;

i2c_read():從從機讀取1個位元組的資料;

i2c_getack():讀取從機應答位。返回0從機應答,返回1從機非應答;

基於微控制器溫測系統

1 wire 網路具有嚴謹的控制結構,其結構如圖2.8所示,一般通過雙絞線與 1 wire 元件進行資料通訊,它們通常被定義為漏極開路端點,主 從式多點結構,而且一般都在主機端接上乙個上拉電阻 5v 電源。通常為了給 1 wire 裝置提供足夠的電源,需要乙個 mosfet 管將 1 wire 匯流...

基於微控制器的水位控制系統設計

萍鄉高等專科學校 微控制器課程設計報告 姓名 學號 1 專業 應用電子 系別 機械電子工程系 目錄1 概述 3 2 設計的基本任務和要求 4 2.1 基本功能 4 2.2塔水位控制原理 4 2.3 系統硬體總體方案 5 3 控制系統方案設計 5 3.1系統硬體方案 5 3.2 核心晶元at89c51...

基於微控制器的倉庫防火報警系統設計

2015屆本科畢業設計 基於微控制器的倉庫火災報警系統設計 劉艷豔物理與電子資訊學院電子資訊科學與技術專業學號 110524068 指導老師 馬海燕 摘要 早期的火災報警系統是通過人的觀察,例如巡邏,當有人發現了火災時,就通過喊話或鳴銅鑼通知其他的人來滅火。隨著社會的進步,經濟的快速發展,倉庫的物資...