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

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

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