目錄
1. 設計任務
2. 整體方案設計
3. 系統(tǒng)硬件電路設計
3.1 時鐘電路
3.2 復位電路
3.3 模數(shù)轉(zhuǎn)換電路
3.4 壓力傳感器與ADC之間運算放大電路
3.5 ……
4. 系統(tǒng)程序設計
4.1 主程序流程圖
4.2 PID調(diào)節(jié)子程序流程圖
4.3 控制子程序流程圖
4.4 ……
5. 系統(tǒng)調(diào)試
5.1 Proteus軟件仿真調(diào)試
5.2 硬件調(diào)試
6. 程序清單
7.小結(jié)
小動物動態(tài)電子秤設計
在電子稱重領(lǐng)域,微電子學和計算機等現(xiàn)代電子技術(shù)的成就給傳統(tǒng)電子測量與測量儀器帶來了巨大的沖擊和革命性的影響。常規(guī)的測試儀器儀表和控制裝置被更先進的智能儀器所取代,使得傳統(tǒng)的電子測量儀器在運作、功能、精度及自動化水平等方面發(fā)生了巨大變化,并相應的出現(xiàn)了各種各樣的智能儀器控制系統(tǒng),使得科學實驗和應用工程的自動化程度得以顯著提高。
隨著社會的不斷進步,電子秤在各個領(lǐng)域都有所作用,因此如何能設計出既符合課題,又經(jīng)濟實用的動態(tài)電子秤就很適應社會的需求。
1. 設計任務
本次設計的小動物動態(tài)電子秤主要是以89C52單片機為處理核心,可實現(xiàn)靜態(tài)測量和動態(tài)測量,并且通過LED顯示測量的質(zhì)量,測量結(jié)果應符合以下標準:
(1) 質(zhì)量測量范圍在1~3000g之間。
(2) 測量的精度:靜態(tài)是-1g~+1g之間;動態(tài)是-3g~+3g之間。
(3) 時測量和LED數(shù)碼顯示被測量的質(zhì)量。
主要硬件設備:AT89C51單片機、ADC0809模數(shù)轉(zhuǎn)換芯片、CYG115型高壓力傳感器、 ……
2. 整體方案設計
小動物動態(tài)電子秤的整個設計中最重要的部分是對動態(tài)質(zhì)量的處理,雖然家禽動態(tài)秤很早就開始研究應用,但對其快速和高準確度測量的實現(xiàn)至今仍是生產(chǎn)和科研的課題。隨著科學技術(shù)的發(fā)展和生物醫(yī)學工程技術(shù)的應用及家禽育種的需要,如今家禽等小動物的動態(tài)質(zhì)量檢測已進人數(shù)字化,智能化時代。家禽動態(tài)數(shù)字化測量關(guān)鍵是必須考慮和解決在檢測過程中,家禽的活動引起的加速度對家禽本身質(zhì)量測量的影響。它將檢測傳感器輸出信號上又疊加了一個交變脈沖分量,從而引起檢測值的誤差及讀數(shù)跳字不穩(wěn)定。為了解決上述問題,在所研制小動物電子秤中采用軟硬件結(jié)合的方式,使研制成的家禽小動物動態(tài)電子秤具有很好的穩(wěn)定性及抗干擾性,且能保持較高的精確度,很符合需要。
電子秤的最根本思想就是將物體重量通過一系列轉(zhuǎn)換顯示出來,要達到這一目的,就必須考慮到將重量這個非電量轉(zhuǎn)換成電量。由于電阻絲在外力作用下發(fā)生機械變形時,其電阻值發(fā)生變化,從而引起電壓發(fā)生變化,即電橋的輸出電壓反映了相應的受力狀態(tài)。但電阻應變式全橋傳感器的輸出是毫伏級的,必須通過一定倍數(shù)的放大,才能得到0-5V的電壓,之后通過ADC0809采集數(shù)據(jù)送入單片機進行處理。因此,硬件電路中必須包括傳感器(實現(xiàn)對非電量的數(shù)據(jù)采集)、電壓放大電路、模數(shù)轉(zhuǎn)換電路,通過單片機運行軟件程序進行計算,最后送交LED顯示器顯示。以下部分將對所選擇的硬件進行詳細介紹,其硬件總體方案設計框圖如圖2.1所示:

圖2.1 電子秤的結(jié)構(gòu)框圖
1. 傳感器
傳感器是信號發(fā)生部分的主要構(gòu)成,整個傳感器和實驗臺實現(xiàn)從非電量(質(zhì)量)到電量(電壓)的轉(zhuǎn)換。在選擇傳感器的型號時,需考慮到其性能,測量時輸入輸出關(guān)系等。根據(jù)設計的要求,此處選擇電阻應變式全橋傳感器。
2. 電壓放大電路
全橋傳感器的輸出電壓比較小,只有幾個毫伏,而A/D轉(zhuǎn)換器要求的電壓在0-5V之間。因此,要將該信號輸入單片機中處理,需要有一個放大電路將此電信號放大到所需范圍之內(nèi)。由于放大電路的增益是可調(diào)的,故運用運算放大電路能將電壓信號放大到所要求的范圍。
3. 模數(shù)轉(zhuǎn)換電路
計算機所能處理的是二進制的數(shù)字量,而傳感器經(jīng)過放大器出來的信號是模擬量,計算機不能處理。且由于單片機接收信號范圍的限制,必須將由傳感器中傳出的模擬量轉(zhuǎn)換成數(shù)字量,所以,需用一個模數(shù)轉(zhuǎn)換電路來實現(xiàn)。模數(shù)轉(zhuǎn)換電路的設計可采用8路8位逐次逼近式的A/D轉(zhuǎn)換芯片ADC0809進行轉(zhuǎn)換,完成從模擬量到數(shù)字量的轉(zhuǎn)換。
4. 單片機
單片機作為一個接收、處理、輸出信號的儀器裝置,將傳感器與LED顯示連接成一個有機的整體。其主要是完成數(shù)據(jù)處理,并通過與之有關(guān)的軟件來實現(xiàn)軟件的編程使顯示值與稱重值對應。因此,此部分是整個設計最重要的組成部分
5. LED顯示電路
根據(jù)本次設計的要求,需要使設計的電子秤能夠?qū)崟r顯示測量的數(shù)據(jù)。如果物體質(zhì)量在設定范圍內(nèi)(上限3000g),則通過4位LED來進行顯示。
6. 復位電路
89C52的復位輸入引腳RST(即RESET)為89C52提供了初始化的手段。有了它可以使程序從指定處開始執(zhí)行,即從程序存儲器中的0000H地址單元開始執(zhí)行程序。在89C52工作后,只要在RST引腳上出現(xiàn)兩個機器周期以上的高電平時,單片機內(nèi)部則初始復位。只要RST保持高電平,則89C52循環(huán)復位。只有當RST由高電平變成低電平以后,89C52才從0000H地址開始執(zhí)行程序。
3. 系統(tǒng)硬件電路設計
3.1應變式傳感器的測量原理及分類
應變式傳感器與其他類型的傳感器相比,具有測試范圍寬、輸出特性線性好、精度高、性能穩(wěn)定、工作可靠并能在惡劣環(huán)境下工作的特點。它由彈性原件、電阻應變片及外殼等組裝而成的裝置,因此稱為應變式傳感器。電阻應變式傳感器的工作原理就是電阻的應變效應,即當導體或半導體受到外力作用時,會產(chǎn)生機械變形,電阻率及幾何尺寸的變化就會引起電阻的變化,因此導體與半導體的電阻與電阻率及其幾何尺寸有關(guān)。通過測量電阻值的大小,就可以反映外界力的大小,它的工作原理即導體隨著機械變形而發(fā)生變化的現(xiàn)象。描述電阻應變效應的關(guān)系式為:
式中 為電阻絲電阻相對比值,K為應變靈敏系數(shù), 為電阻絲長度相對變化,金屬箔式應變片就是通過光刻、腐蝕等工藝制成的應變敏感元件,通過它轉(zhuǎn)換被測部位受力狀態(tài)變化、電橋的作用完成電阻到電壓的比例變化,電橋的輸出電壓反映了相應的受力狀態(tài)。對單臂電橋輸出電壓 、半橋輸出電壓 、全橋輸出電壓 。
電阻應變式傳感器的測量電路可采用橋式測量電路,橋式測量電路有四個電阻,其中任何一個電阻均可以是應變片,電路圖如圖3.1所示:

圖3.1 橋式測量電路圖
圖3.1 橋式測量電路圖
如能恰當選擇各橋臂的電阻,可消除電橋的恒定輸出,使輸出電壓只與應變片的電阻有關(guān)。
每當橋的變化遠小于本身阻值,即 時,可得輸出電壓為:
上述原理適用于所有的電阻應變式傳感器,若按其測量電路(橋式)可詳細的分為單臂式、半橋式、全橋式三種。所謂半橋,即將電橋的四臂接入四應變片。其中:一片受拉,一片受壓,另外兩應變片不受力。全橋是兩片受拉,兩片受壓,故靈敏度比半橋式的大一倍。根據(jù)本次設計的具體情況考慮,決定采用電阻應變式全橋傳感器。
3.2 放大電路的設計
由于從傳感器中傳出的信號是毫伏級的,而A/D轉(zhuǎn)換器所能處理的電壓是0-5V,所以必須在A/D轉(zhuǎn)換器前加入一個前置差動放大電路以實現(xiàn)電壓的放大,放大倍數(shù)為100-200倍,使輸出電壓為0-5V。處理后的電壓才能在單片機接收信號的范圍內(nèi),且僅放大兩個輸入信號的差值。因此,可采用一個運算放大器構(gòu)成,但為了提高輸入阻抗,使用差動放大電路圖,硬件圖如圖3.2所示,在電路中,所有電阻均采用的是1%以下的電阻,當
、
、
時,輸出式(3.3): 圖3.2 放大電路硬件原理圖
由于單運放在應用中要求外圍電路匹配精度高、增益調(diào)整不便、差動輸入阻抗低,故采用三運放結(jié)構(gòu)。
三運放結(jié)構(gòu)具有差動輸入阻抗高、共膜抑制比高、偏置電流低等優(yōu)點,且有良好的溫度穩(wěn)定性,低噪單端輸出和和增益調(diào)整方便,適于在傳感器電路中應用。
利用理想運放條件可列寫方程:
設流過
的電流
為: 再由
、
的虛短可知: 所以:
又:
故:
因此:
3.3 數(shù)據(jù)采集電路的設計
數(shù)據(jù)采集的核心是計算機,它對整個系統(tǒng)進行控制和數(shù)據(jù)處理,其由采樣保持器、放大器、A/D轉(zhuǎn)換器、計算機等組成。
進行模數(shù)變換時,從啟動變換到變換結(jié)束的數(shù)字量輸出,需要一定的時間,即A/D轉(zhuǎn)換的孔徑時間。當輸入信號頻率較高,由于孔徑時間的存在,會造成較大的轉(zhuǎn)換誤差;為了防止誤差需在中間加一個功能器件采樣保持器,進行有效、正確的數(shù)據(jù)采集。
采樣保持器通常由保持電容器、模擬開關(guān)和運算放大器組成。其中對于低速場合可以采用繼電器作為開關(guān)以減小開關(guān)漏電流的影響,在高速場合也可以用晶體管、場效應管作為開關(guān)。
采樣保持器的原理:如圖3.4,當開關(guān)閉合時,
通過限電流電阻向電容C充電,在電容值合理的情況下,
變化;當K斷開時,由于電容C有一定的容量,此時
輸出在斷開瞬間的電平值。 在模擬信號輸入通道中,是否需要加采樣保持器,取決于模擬信號的變化頻率和A/D轉(zhuǎn)換器的孔徑時間;對快速過程信號,當最大孔徑誤差超過允許值時,必須在A/D轉(zhuǎn)換器前加采樣保持器。但如果輸入模擬量是直流量或者被測信號模擬量隨時間變化非常緩慢,采樣保持(SH)電路可以省去。
數(shù)據(jù)采集系統(tǒng)一般直接用A/D模數(shù)接口電路進行數(shù)據(jù)的采集,A/D模數(shù)接口電路是由A/D轉(zhuǎn)換器承擔此任務。設計中A/D轉(zhuǎn)換器用的是ADC0809轉(zhuǎn)換器,它是8路8位逐次逼近式轉(zhuǎn)換器,能分時地對8路模擬量信號進行A/D轉(zhuǎn)換,結(jié)果為8位二進制數(shù)據(jù),轉(zhuǎn)換時間短,滿足題目要求的“實時采樣”,并且它的轉(zhuǎn)換精度在0.1%上下,比較適中,適用于一般場合。
ADC0809由三部分組成:8路輸入模擬量選擇電路、逐次比較式A/D轉(zhuǎn)換器、三態(tài)輸出緩沖器。ADC0809完成一次轉(zhuǎn)換需要的100μs左右,輸出具有TTL三態(tài)鎖存緩沖器,因而可以不加I/O接口芯片,直接接到微型計算機系統(tǒng)總線上。ADC0809與單片機的硬件接口圖如圖3.5所示,由圖可見,單片機通過讀控制線RD和ADC0809片選線控制啟動A/D轉(zhuǎn)換及輸入通道地址鎖存,寫控制線WR與ADC0809片選線控制輸出允許。由于ADC0809具有通道地址鎖存功能,通道選擇ADD.A、ADD.B、ADD.C直接與單片機的數(shù)據(jù)口相連。模擬電壓由IN0通道輸入,A/D采樣電壓在0-5V之間變化,模擬通道IN0地址口為0AOOOH。
3.4 單片機的選擇
單片機自從問世以來就一直是工業(yè)檢測、控制應用的主角。市場上常用的單片機有Intel公司的MCS-51系列,日本松下公司的MN6800系列等。其中,MCS-51由于單片機應用系統(tǒng)具有體積小,可靠性高,功能強,價格低等特點,很容易作為產(chǎn)品進行生產(chǎn)而更受青睞。
然而作為本系統(tǒng)的核心元件,選擇哪一型號的MCS-51系列單片機顯得尤為關(guān)鍵,下面就逐個進行比較:
8031單片機片內(nèi)不帶程序存儲器ROM,使用時需外接程序存儲器和一片邏輯電路74LS373,外接的程序存儲器多為EPROM的2764系列。用戶若想對寫入到EPROM中的程序進行修改,必須先用一種特殊的紫外線燈將其照射擦除,之后再可寫入。寫入到外接程序存儲器的程序代碼沒什么保密性可言。
8051單片機片內(nèi)有4K ROM,無須外接存儲器和74LS373,更能體現(xiàn)“單片”的簡練。但是編的程序無法燒寫到其ROM中,只有將程序交芯片廠代為燒寫,并是一次性的,今后都不能改寫其內(nèi)容。
8751單片機與8051單片機基本一樣,但8751單片機片內(nèi)有4K的EPROM,用戶可以將自己編寫的程序?qū)懭雴纹瑱C的EPROM中進行現(xiàn)場實驗與應用,EPROM的改寫同樣需要用紫外線照射一定時間擦除后再燒寫。
89C51單片機為EPROM型,在實際電路中可以直接互換8051單片機或8751單片機,不但和8051單片機指令,管腳完全兼容,而且其片內(nèi)的4K程序存儲器是FLASH工藝的。
89C52是一種低功耗高性能的具有8K字節(jié)可電氣燒錄及可擦除的程序ROM的八位CMOS單片機。該器件是用高密度、非易丟失存儲技術(shù)制造并且與國際工業(yè)標準89C51單片機指令系統(tǒng)和引腳完全兼容。
綜上所述,從使用方便與簡化電路以及其性價比等角度來考慮,89C52比較合適的。本系統(tǒng)采用CPU為89C52的單片微機,89C52本身帶有8K的內(nèi)存儲器,可以在編程器上實現(xiàn)閃爍式的電擦寫達幾萬次以上,比以往慣用的8031CPU外加EPROM為核心的單片機系統(tǒng)在硬件上具有更加簡單、方便等優(yōu)點,而且完全兼容MCS-51系列單片機的所有功能。89C52管腳圖如圖3.6所示,下面介紹89C52的主要管腳功能如下:
VCC(40):電源+5V;VSS(20):接地;P0口(32-39):雙向I/O口,既可作低8位地址和8位數(shù)據(jù)總線使用,也可作普通I/O口;P3口(10-17):多用途端口,既可作普通I/O口,也可按每位定義的第二功能操作;P2口(21-28):既可作高8位地址總線,也可作普通I/O口;P1口(1-8): 準雙向通用I/O口;RST(9):復位信號輸入端;ALE/PROG:地址鎖存信號輸出端;PSEN:內(nèi)外程序存儲器選擇線;XTAL1(19)和XTAL2(18):外接石英晶體振蕩器。
MCS-51的CPU可包括運算部件,控制器,程序狀態(tài)字,B寄存器,累加器Acc(或A),位處理器等。
圖3.6 89C52管腳圖
3.5顯示電路的設計
LED液晶顯示器是一種功耗極低的顯示器,它可以將處理得出的數(shù)據(jù)在顯示器上進行顯示,讓人們直觀的看到被測體的質(zhì)量,一般采用的七段LED顯示器如圖3.7所示:
它由4個LED組成一個陣列,并封裝于一個標準的外殼中。為使用于不同的驅(qū)動電路,有共陽極和共陰極兩種結(jié)構(gòu)。根據(jù)本次設計任務書的要求和實際情況,此處采用的是共陰極結(jié)構(gòu),其結(jié)構(gòu)如圖3.8所示:
本系統(tǒng)的復位電路是采用按鍵復位的電路,如圖3.9所示,是常用復位電路之一。當89C52的ALE及PSEN兩引腳輸出高電平,RST引腳高電平到時,單片機復位。通過按動按鈕產(chǎn)生高電平復位稱手動復位,若運行過程中需要程序從頭執(zhí)行時,只需按動按鈕即可,當按下按鈕后是直接把+5V加到了RST/VPD端從而復位。復位后,P0到P3并行I/O口全為高電平,其它寄存器全部清零,只有SBUF寄存器狀態(tài)不確定。
4. 系統(tǒng)程序設計
整個設計既要滿足設定要求來完成如計算等功能的任務功能程序,也要有可以監(jiān)控儀器儀表正工作,保證其可靠性方面的監(jiān)控程序。整個儀器的測量都是自動完成的,所以設計一套功能完備的監(jiān)控程序是必須的也是必要的。
監(jiān)控程序的主要作用是實時的響應來自系統(tǒng)的各種信息,按信息的類別進行處理;當系統(tǒng)出現(xiàn)故障時,能自動的采取有效的措施,消除故障,保證系統(tǒng)能夠繼續(xù)進行正常工作。
數(shù)據(jù)采集用ADC0809芯片來完成,主要分為啟動、讀取數(shù)據(jù)、延時等待轉(zhuǎn)換結(jié)束、讀出轉(zhuǎn)換結(jié)果、存入指定內(nèi)存單元、繼續(xù)轉(zhuǎn)換(退出)幾個步驟。ADC0809初始化后,就具有了將某一通道輸入的0-5V模擬信號轉(zhuǎn)換成對應的數(shù)字量00H-FFH,然后再存入89C52內(nèi)部RAM的指定單元中。在控制方面有所區(qū)別,可以采用程序查詢方式,延時等待方式和中斷方式。數(shù)據(jù)采集轉(zhuǎn)換子程序原理框圖如圖4.1所示:
- 數(shù)據(jù)采集轉(zhuǎn)換子程序原理框圖
- 數(shù)據(jù)處理子程序設計
由于IN0通道允許輸入的模擬電壓值范圍為0-5V,又由于A/D的采樣結(jié)果為十六進制數(shù),但由傳感器中傳出的數(shù)據(jù)不符合要求。因此數(shù)據(jù)處理主要完成對輸入值系數(shù)調(diào)整,使輸出滿足要求,數(shù)據(jù)處理子程序可以成為整個程序的核心。
根據(jù)試驗測得的數(shù)據(jù)和對數(shù)據(jù)的精確計算得出了A/D轉(zhuǎn)換器輸入最大(5V)時對應的輸出為:5/FFH*K=196,最大十進制結(jié)果為5位。R0-R7分別為8位存儲,BCD碼是兩位十進制數(shù),所以需要三個寄存器來保存轉(zhuǎn)換結(jié)果。
數(shù)據(jù)處理子程序是整個程序的核心。主要用來調(diào)整輸入值系數(shù),使輸出滿足量程要求外還須使得A/D的采樣結(jié)果從十六進制數(shù)向十進制數(shù)形式轉(zhuǎn)化。
在IN0輸入的數(shù)最大為5V,要求的質(zhì)量3000g對應的是5V,為十六進制向十進制轉(zhuǎn)換方便,將系數(shù)放大100倍。并用小數(shù)點位置的變化體現(xiàn)這一過程。3000/256=11.8,76H=118,因而能夠確定76H即為所需要的系數(shù)。
數(shù)制之間的轉(zhuǎn)換:在二進制數(shù)制中,每向左移一位表示數(shù)乘二倍。以每四位作為一組對數(shù)分組,當?shù)谒奈幌虻谖逦贿M位時,數(shù)由8變到16,若按十進制數(shù)制規(guī)則讀數(shù),則丟失6,所以應進行加六調(diào)整,DA指令可完成這一調(diào)整。可見數(shù)制之間的轉(zhuǎn)換可以通過移位的方法實現(xiàn),其中,移出數(shù)據(jù)的保存可以通過自乘再加進位的方法實現(xiàn),因為乘二表示左移一位,左移后,低位進一,則需加一,否則加零。而通過移位已將要移入的尾數(shù)保存在了進位位中,所以能實現(xiàn)。
在工業(yè)控制等應用場合中,經(jīng)常會遇到尖脈沖干擾的現(xiàn)象。干擾通常只會影響個別采樣點的數(shù)據(jù),此數(shù)據(jù)與其他采樣點的數(shù)據(jù)相差比較大。如果采用一般的平均值法,則干擾將“平均”到計算結(jié)果上去,故平均值法不易消除由于脈沖干擾而引起的采樣值的偏差。為此,可采取先對N個數(shù)據(jù)進行比較,去掉其中最大值和最小值,然后計算余下的N-2個數(shù)據(jù)的算術(shù)平均值。這個方法既可以濾去脈沖干擾又可濾去小的隨機干擾。
在實際應用中,N可取任何值,但為了加快測量計算速度,一般N不能太大,一般取值為4,進行4次采樣,即為四取二再取平均值。它具有計算方便速度快,存儲量小等特點,故得到了廣泛的應用。整個程序的框圖如圖4.2所示:
顯示子程序是字符顯示,調(diào)用8155初始化命令,然后輸出寫顯示命令。在顯示過程中一定要調(diào)用延時子程序,其任務是將測量結(jié)果送顯示器顯示。通過對LED顯示子程序的編寫、鏈接、調(diào)試等操作實現(xiàn)對測得的物品質(zhì)量進行4位LED實數(shù)顯示,上限是3000g。
8段LED共陰極常用字型碼及其對應的顯示字符見下表4.1所示:
[td]
| 段碼 | 顯示字符 | |
| 3FH | 9 | |
| 06H | A | |
| 5BH | b | |
| 4FH | c | |
| 66H | d | |
| 6DH | E | |
| 7DH | F | |
| 07H | P | |
| 7FH | ----- | |
5. 系統(tǒng)調(diào)試
這一部分分為Proteus軟件仿真調(diào)試和硬件調(diào)試兩部分,分別給出調(diào)試過程、調(diào)試時應注意的問題,分析遇到的問題及問題的解決方法,Proteus調(diào)試可截屏運行結(jié)果圖形并加以分析。
5.1 Proteus軟件仿真調(diào)試
……
5.2 硬件調(diào)試