解壓圖.jpg (234.79 KB, 下載次數(shù): 168)
下載附件
2018-6-14 14:14 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
總電路圖.jpg (196.61 KB, 下載次數(shù): 125)
下載附件
2018-6-14 14:11 上傳
下面是設(shè)計文檔:
目錄
摘 要2 關(guān)鍵詞2 1 概述3 1.1設(shè)計意義 1.2系統(tǒng)主要功能 2 硬件電路設(shè)計方案及描述3 2.1 設(shè)計方案 2.2 主要元器件的介紹 2. 3控制電路模塊 2.4 元件清單
3數(shù)字式電流表的軟件設(shè)計16 3.1系統(tǒng)程序設(shè)計總方案
3.2系統(tǒng)子程序設(shè)計 4數(shù)字式電流表的調(diào)試 4.1軟件調(diào)試 4.2顯示結(jié)果及誤差分析 5總結(jié) 附錄1.電路原理圖及仿真圖 附錄2. 程序代碼 參考文獻(xiàn)
基于單片機(jī)的簡易數(shù)字電流表設(shè)計
摘要 數(shù)字電流表的誕生打破了傳統(tǒng)電子測量儀器的模式和格局。它顯示清晰直觀、讀數(shù)準(zhǔn)確,采用了先進(jìn)的數(shù)顯技術(shù),大大地減少了因人為因素所造成的測量誤差事件。數(shù)字電流表是建立在數(shù)字電壓表的基礎(chǔ)上,讓電壓表與電阻串聯(lián),其顯示的是電流,數(shù)字電壓表是把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式,并加以顯示的儀表。數(shù)字電流表把電子技術(shù)、計算技術(shù)、自動化技術(shù)的成果與精密電測量技術(shù)密切的結(jié)合在一起,成為儀器、儀表領(lǐng)域中獨立而完整的一個分支,數(shù)字電流表標(biāo)志著電子儀器領(lǐng)域的一場革命,也開創(chuàng)了現(xiàn)代電子測量技術(shù)的先河。本設(shè)計采用了以單片機(jī)為開發(fā)平臺,控制系采用AT89C52單片機(jī),A/D轉(zhuǎn)換采用ADC0809。系統(tǒng)除能確保實現(xiàn)要求的功能外,還可以方便進(jìn)行8路其它A/D轉(zhuǎn)換量的測量、遠(yuǎn)程測量結(jié)果傳送等擴(kuò)展功能。簡易數(shù)字電流測量電路由A/D轉(zhuǎn)換、數(shù)據(jù)處理、顯示控制等組成。 1 .概述 1.1設(shè)計意義 通過設(shè)計,掌握電子設(shè)計的一般步驟和方法,鍛煉分析問題解決問題的能力,學(xué)會如何查找所需資料,同時復(fù)習(xí)以前所學(xué)知識并加深記憶,為設(shè)計打好基礎(chǔ),也為以后工作作準(zhǔn)備。通過對選題的分析設(shè)計,學(xué)習(xí)數(shù)字電流表的工作原理、組成和特性;掌握數(shù)字電流表的校準(zhǔn)方法和使用方法; 1.2系統(tǒng)主要功能 A、利用AD轉(zhuǎn)換芯片和精密電阻測量0~20mA電流 B、系統(tǒng)工作符合一般數(shù)字電流表要求 2 硬件電路設(shè)計方案及描述 2.1 數(shù)字式電流表系統(tǒng)硬件設(shè)計
硬件電路設(shè)計主要包括:AT89S51單片機(jī)系統(tǒng),A/D轉(zhuǎn)換電路,顯示電路。測量最大電流為20ma,顯示最大值為20.00ma。本實驗采用AT89S51單片機(jī)芯片配合ADC0809模/數(shù)轉(zhuǎn)換芯片構(gòu)成一個簡易的數(shù)字電流表。硬件電路設(shè)計由6個部分組成; A/D轉(zhuǎn)換電路,AT89C51單片機(jī)系統(tǒng),LED顯示系統(tǒng)、時鐘電路、復(fù)位電路以及測量電流輸入電路。硬件電路設(shè)計框圖如圖2.1所示。 
2.1數(shù)字式電流表系統(tǒng)硬件設(shè)計框圖 2.2.2 ADC0809內(nèi)部邏輯結(jié)構(gòu)  ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖 圖中多路模擬開關(guān)可選通8路模擬通道,允許8路模擬量分時輸入,并共用一個A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。地址鎖存與譯碼電路完成對A、B、C三個地址位進(jìn)行鎖存與譯碼,如表所示。
ADC0809通道選擇表
2.2.3 ADC0809的引腳ADC0809芯片為28引腳雙列直插式芯片,其主要功能:(1)IN0~I(xiàn)N7:8路模擬量輸入通道。(2)A、B、C:模擬通道地址線。這3根地址線用于對8路模擬通道的選擇,其譯碼關(guān)系如表4.3所示。其中,A為低地址,C為高地址,引腳圖中為ADDA,ADDB和ADDC。 (3)ALE:地址鎖存允許信號。對應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。 (4)START:轉(zhuǎn)換啟動信號。START上升沿時,復(fù)位ADC0809;START下降沿時啟動芯片,開始進(jìn)行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。本信號有時簡寫為ST。 (5)D7~D0:數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。D0為最低位,D7為最高。 (6)OE:輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。 (7)CLK:時鐘信號。ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號由外界提供,因此有時鐘信號引腳。通常使用頻率為500KHz的時鐘信號。 (8)EOC:轉(zhuǎn)換結(jié)束信號。EOC=0,正在進(jìn)行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請求信號使用。 (9)Vcc: +5V電源,GND:地。 (10)Vref:參考電壓。參考電壓用來與輸入的模擬信號進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5V(Vref(+)=+5V, Vref(-)=0V)。 ADC0809的工作原理首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。 (注意:ALE信號常與START信號連在一起,這樣連接可以在信號的前沿寫入地址信號,在其后沿啟動A/D轉(zhuǎn)換,圖為ADC0809信號的時序配合圖)。

ADC0809信號的時序配合 2.2.3 4位一體7段LED數(shù)碼管本實驗的顯示模塊主要由一個4位一體的7段LED數(shù)碼管(SM410564)構(gòu)成,用于顯示測量到的電壓值。它是一個共陽極的數(shù)碼管,每一位數(shù)碼管的原理圖如圖4.5所示。每一位數(shù)碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收AT89C52的P1口產(chǎn)生的顯示段碼。C1,C2,C3,C4引腳端為其位選端,用于接收AT89C52的P3口產(chǎn)生的位選碼。 
圖4.5 一位數(shù)碼管的原理圖

4位一體7段LED數(shù)碼管圖
2.3控制電路模塊
2.3.1 總電路本課題實驗主要采用AT89S51芯片和ADC0809芯片來完成一個簡易的數(shù)字電壓表,能夠?qū)斎氲?~20ma 的模擬直流電流進(jìn)行測量,并通過一個4位一體的7段LED數(shù)碼管進(jìn)行顯示,測量誤差約為0.02 ma。該電流表的測量電路主要由三個模塊組成:A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示控制模塊。A/D轉(zhuǎn)換主要由芯片ADC0809來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量再傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89S51來完成,其負(fù)責(zé)把ADC0809傳送來的數(shù)字量經(jīng)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;另外它還控制著ADC0809芯片的工作。顯示模塊主要由7段數(shù)碼管及相應(yīng)的驅(qū)動組成,顯示測量到的電流值。數(shù)字式電流表的設(shè)計的總電路圖見附錄一。
2.3.2AT89S51的復(fù)位電路和時鐘電路AT89S51的復(fù)位電路如圖所示。當(dāng)單片機(jī)一上電,立即復(fù)位;另外,如果在運(yùn)行中,外界干擾等因素使單片機(jī)的程序陷入死循環(huán)狀態(tài)或“跑飛”,就可以通過按鍵使其復(fù)位。復(fù)位也是使單片機(jī)退出低功耗工作方式而進(jìn)入正常狀態(tài)的一種操作。 
復(fù)位電路和時鐘電路 電容C和電阻R1實現(xiàn)上電自動復(fù)位。增加按鍵開關(guān)S又可實現(xiàn)按鍵復(fù)位功能。一般取C=10uF,R1=1KΩ。 單片機(jī)中CPU每執(zhí)行一條指令,都必須在統(tǒng)一的時鐘脈沖的控制下嚴(yán)格按時間節(jié)拍進(jìn)行,而這個時鐘脈沖是單片機(jī)控制中的時序電路發(fā)出的。CPU執(zhí)行一條指令的各個微操作所對應(yīng)時間順序稱為單片機(jī)的時序。MCS-51單片機(jī)芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時鐘電路還需附加其他電路。 電路中的器件選擇可以通過計算和實驗確定,也可以參考一些典型電路的參數(shù),電路中,電容器C1和C2對震蕩頻率有微調(diào)作用,通常的取值范圍是30±10pF,在這個系統(tǒng)中選擇了33uF;石英晶振選擇范圍最高可選24MHz,它決定了單片機(jī)電路產(chǎn)生的時鐘信號震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時鐘信號的震蕩頻率為12MHz。 2.3.3A/D轉(zhuǎn)換電路 A/D轉(zhuǎn)換由ADC0809完成。ADC0809具有8路模擬輸入端口,地址線(23~25腳)可決定對哪一路模擬輸入作A/D轉(zhuǎn)換。22腳為地址控制,當(dāng)輸入為高電平時,對地址信號進(jìn)行鎖存。6腳為測試控制,當(dāng)輸入一個2μs寬高電平脈沖時,就開始A/D轉(zhuǎn)換。7腳為A/D轉(zhuǎn)換結(jié)束標(biāo)志,當(dāng)A/D轉(zhuǎn)換結(jié)束時,7腳輸出高電平。9腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制,當(dāng)OE腳為高電平時,A/D轉(zhuǎn)換數(shù)據(jù)從該端口輸出。10腳為ADC0809的時鐘輸入端,利用單片機(jī)AT89S51的30腳的六分頻晶振頻率再通過14024二分頻得到1MHz時鐘。AT89S51與ADC0809的連接電路原理圖如圖所示。 
AT89S51與ADC0809的連接電路原理圖
AT89S51與ADC0809的連接必須注意處理好3個問題: (1)在START端送一個100μs寬的啟動正脈沖; (2)獲取EOC端上的狀態(tài)信息,因為它是A/D轉(zhuǎn)換的結(jié)束標(biāo)志; - 給“三態(tài)輸出鎖存器”分配一個端口地址,也就是給OE端送一個地址譯碼器的輸出信號。
2.3.4顯示電路由于單片機(jī)的并行口不能直接驅(qū)動LED顯示器,所以,在一般情況下,必須采用專用的驅(qū)動電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作[7]。如果驅(qū)動電路能力差,即負(fù)載能力不夠時,顯示器亮度就低,而且驅(qū)動電路長期在超負(fù)荷下運(yùn)行容易損壞,因此,LED顯示器的驅(qū)動電路設(shè)計是一個非常重要的問題。 為了簡化數(shù)字式直流電流表的電路設(shè)計,在LED驅(qū)動電路的設(shè)計上,可以利用單片機(jī)P0口上外接的上拉電阻來實現(xiàn),即將LED的A-G段顯示引腳和DP小數(shù)點顯示引腳并聯(lián)到P0口與上拉電阻之間,這樣,就可以加大P0口作為輸出口德驅(qū)動能力,使得LED能按照正常的亮度顯示出數(shù)字。 系統(tǒng)采用動態(tài)顯示方式驅(qū)動4個數(shù)碼管工作,顯示電路與單片機(jī)的P1口相連來顯示采集到的電流值。 
顯示電路原理圖 2.4 元件清單 3數(shù)字式電流表的軟件設(shè)計3.1系統(tǒng)程序設(shè)計總方案 根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程序,這三個程序模塊構(gòu)成了整個系統(tǒng)軟件的主程序。 數(shù)字式直流電流表主程序框圖
3.2系統(tǒng)子程序設(shè)計3.2.2初始化程序所謂初始化,是對將要用到的c51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是設(shè)置定時器的工作模式,初值預(yù)置,開中斷和打開定時器等。 3.2.3A/D轉(zhuǎn)換子程序 A/D轉(zhuǎn)換子程序用來控制對輸入的模塊電流信號的采集測量,并將對應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,其轉(zhuǎn)換流程圖。   A/D轉(zhuǎn)換流程圖
3.2.4顯示子程序顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,當(dāng)掃描頻率在70HZ左右時,能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對LED進(jìn)行動態(tài)掃描一次,每一位LED的顯示時間為1ms。 在本設(shè)計中,為了簡化硬件設(shè)計,主要采用軟件定時的方式,即用定時器0溢出中斷功能實現(xiàn)11μs定時,通過軟件延時程序來實現(xiàn)5ms的延時。其轉(zhuǎn)換流程圖如圖5.3所示。 
顯示子程序流程圖 4數(shù)字式電流表的調(diào)試 4.1軟件調(diào)試 軟件調(diào)試的主要任務(wù)是排查錯誤,錯誤主要包括邏輯和功能錯誤,這些錯誤有些是顯性的,而有些是隱形的。Proteus軟件可以對基于微控制器的設(shè)計連同所有的周圍電子器件一起仿真,用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制、PCB設(shè)計,更為顯著點的特點是可以與u Visions3 IDE工具軟件結(jié)合進(jìn)行編程仿真調(diào)試。 本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是C語言。 4.2顯示結(jié)果及誤差分析1.1.1 顯示結(jié)果- 當(dāng)IN0口輸入電流為0ma時,顯示結(jié)果如圖所示,測量誤差為0ma。

2.當(dāng)IN0口輸入電流為10.50ma時,顯示結(jié)果如圖所示,測量誤差為0ma。
3. 當(dāng)IN0口輸入電流為5ma時,顯示結(jié)果如圖所示,測量誤差為0.01ma。 4. 當(dāng)IN0口輸入電壓流為15ma時,顯示結(jié)果如圖所示,測量誤差為0.02ma。 誤差分析通過以上仿真測量結(jié)果可得到簡易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對比測試表,如下表 簡易數(shù)字電流表與“標(biāo)準(zhǔn)”數(shù)字電流表對比測試表
從上表可以看出,簡易數(shù)字電流表測得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.02mA,這可以通過校正ADC0809的基準(zhǔn)電壓來解決。因為該電流表設(shè)計時直接用5A的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測量電流大于5V所對應(yīng)的電流時,可在輸入口使用分壓電阻,而程序中只要將計算程序的除數(shù)進(jìn)行調(diào)整就可以了。 5.總結(jié) 這次的單片機(jī)設(shè)計,是把硬件和軟件結(jié)合起來的設(shè)計,,其硬件電路是比復(fù)雜的,需要足夠的耐心加細(xì)心,同時也需要一定的硬件知識基礎(chǔ)。只有這樣才能保證電路的成功。而且在這次設(shè)計中硬件是基礎(chǔ),只有把基礎(chǔ)打好才會有更高的設(shè)計。硬件工作完成了就是解決程序設(shè)計的問題,程序設(shè)計是一個很靈活的東西,它反映了我們解決問題的邏輯思維和創(chuàng)新能力,它是一個設(shè)計的靈魂所在。 要設(shè)計一個成功的電路,必須要有耐心,要有堅持的毅力。在整個電路的設(shè)計過程中,花費時間最多的是各個單元電路的連接及電路的細(xì)節(jié)設(shè)計上,如在多種方案的選擇中,我們仔細(xì)比較分析其原理以及可行的原因。這就要求我們對硬件系統(tǒng)中各組件部分有充分透徹的理解和研究,并能對之靈活應(yīng)用。通過這次實訓(xùn),我在書本理論知識的基礎(chǔ)上又有了更深層次的理解。 此次設(shè)計,學(xué)到了很多課內(nèi)學(xué)不到的東西,比如獨立思考解決問題,出現(xiàn)差錯的隨機(jī)應(yīng)變,和與人合作共同提高,都受益非淺。 附錄1 總電路原理圖及仿真圖 電路原理圖 仿真圖
單片機(jī)源程序如下:
0.png (51.29 KB, 下載次數(shù): 98)
下載附件
2018-6-15 01:23 上傳
所有資料51hei提供下載,仿真是Proteus7.5版本的dsn文件:
單片機(jī)設(shè)計—簡易數(shù)字電流表.7z
(236.84 KB, 下載次數(shù): 507)
2021-9-29 02:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|