本文基于單片機(jī)和AD574設(shè)計了一款簡易電子秤。電子秤是根據(jù)重力作用測量物體質(zhì)量的裝置,本文在分析測量原理的基礎(chǔ)上,選擇了比較簡單的51系列單片機(jī)作為主控制系統(tǒng),根據(jù)測量要求設(shè)計了傳感器電路、AD轉(zhuǎn)換電路、超量程報警電路、顯示電路、按鍵電路等,根據(jù)硬件電路,完成了相應(yīng)的軟件設(shè)計。經(jīng)過測試,該簡易電子秤應(yīng)用簡單,方便快捷,具有良好的應(yīng)用前景。
電子秤是一種根據(jù)重力作用測量物體質(zhì)量的檢測裝置,隨著電子技術(shù)的發(fā)展,在國民經(jīng)濟(jì)的各個領(lǐng)域,電子秤的應(yīng)用越來越廣泛,對電子秤的要求也越來越高,本文根據(jù)當(dāng)前電子秤的應(yīng)用情況,分析采用單片機(jī)和AD574設(shè)計一款簡易電子秤裝置,在分析測量原理的基礎(chǔ)上,選擇了比較簡單的51系列單片機(jī)作為主控制系統(tǒng),根據(jù)測量要求設(shè)計了傳感器電路、AD轉(zhuǎn)換電路、超量程報警電路、顯示電路、按鍵電路等,根據(jù)硬件電路,完成了相應(yīng)的軟件設(shè)計。
1.測量原理
電子秤一般由三部分組成,稱重傳感器、承重系統(tǒng)、傳力復(fù)位系統(tǒng)。在這個基礎(chǔ)上,分成了其他的硬件電路子單元,如單片機(jī)最小系統(tǒng)電路、傳感器電路、AD轉(zhuǎn)換電路、超量程報警電路、顯示電路、按鍵電路、存儲電路等。其測量原理是:將物體放置在承重系統(tǒng)的秤臺上時,其重量參數(shù)會通過傳感器,產(chǎn)生壓力-電效應(yīng),轉(zhuǎn)換為與其重量相對應(yīng)的電信號,然后通過放大電路將電信號放大并經(jīng)過AD處理,最后將信號輸入給單片機(jī)處理,經(jīng)單片機(jī)處理后,將輸入信息顯示在LCD上。測量的精度一般由稱重傳感器決定。
2.硬件電路設(shè)計
2.1 總體設(shè)計框圖
根據(jù)其測量原理,設(shè)計整體硬件框圖如圖1所示。主要包含壓力傳感器電路模塊、放大電路模塊、AD轉(zhuǎn)換模塊、LCD顯示器模塊、閾值報警模塊、單片機(jī)控制系統(tǒng)模塊。
2.2 傳感器電路設(shè)計
設(shè)計采用SP20C-G501電阻應(yīng)變式傳感器,稱重傳感器由組合式S型梁結(jié)構(gòu)及金屬箔式應(yīng)變計構(gòu)成,具有過載保護(hù)裝置。過程設(shè)計中采用惠斯登電橋進(jìn)行電壓采集轉(zhuǎn)換,它能抑制溫度變化的影響,抑制干擾能力強(qiáng),補(bǔ)償方便簡單,因此選用的傳感器精度高、零漂小、工作穩(wěn)定等。傳感器原理圖如圖2所示:
其工作原理:用應(yīng)變片測量時,將其粘貼在彈性體上。當(dāng)彈性體受力變形時,應(yīng)變片的敏感柵也隨之變形,其阻值發(fā)生相應(yīng)的變化,通過轉(zhuǎn)換電路轉(zhuǎn)換為電壓或電流的變化。由于內(nèi)部線路采用惠更斯電橋,當(dāng)彈性體承受載荷產(chǎn)生變形時,輸出信號電壓可由下式(1)給出: [Eout=R2×R4(R2+R4)×△R1R1+△R2R2+△R3R3+△R4R4×Ein] (1)
2.3 AD轉(zhuǎn)換電路設(shè)計
AD574是美國Analog Device公司生產(chǎn)的12位單片A/D轉(zhuǎn)換器。它采用逐次逼近型的A/D轉(zhuǎn)換器,最大轉(zhuǎn)換時間為25us,轉(zhuǎn)換精度為0.05%,所以適合于高精度的快速轉(zhuǎn)換采樣系統(tǒng)。芯片內(nèi)部包含微處理器借口邏輯(有三態(tài)輸出緩沖器),故可直接與各種類型的8位或者16位的微處理器連接,而無需附加邏輯接口電路,切能與CMOS及TTL電路兼容。AD574采用28腳雙列直插標(biāo)準(zhǔn)封裝。
2.4 LCD顯示電路設(shè)計
顯示電路采用LCD顯示。其驅(qū)動方式包括靜態(tài)驅(qū)動、動態(tài)驅(qū)動。本設(shè)計采用動態(tài)驅(qū)動的方式,電路原理圖如圖4所示。
2.5 報警電路設(shè)計
報警電路采用有源蜂鳴器設(shè)計,只要通電流即可發(fā)聲進(jìn)行報警,在其兩端并聯(lián)一個反向的二極管,防止誤報警。
3.程序設(shè)計
根據(jù)硬件原理分析和設(shè)計,軟件同樣分為幾個部分:傳感器信號采集部分、AD轉(zhuǎn)換部分、顯示部分和報警部分,其中數(shù)據(jù)處理部分最為重要,處理過程同樣比較復(fù)雜。必須利用單片機(jī)的中斷系統(tǒng)結(jié)構(gòu),如圖6所示。
其主要部分程序代碼如下:
#include
sbit CSPIN = P2^7; //93c46:CS sbit SCKPIN = P2^6; //93c46:CLK sbit SDOPIN = P2^4; //93c46:DATA OUT sbit SDIPIN = P2^5; //93c46:DATA IN void EEPROMByteWrite(UINT8 addr,UINT8 value); //寫值為value到地址addr中 void WriteRom(UINT8 addr,UINT8 value); //寫值為value到地址addr中,但不包括寫允許和寫禁止 UINT8 EEPROMByteRead(UINT8 addr); //從93C46中讀出地址為addr的值 UINT8 ReceiveByte(void); //接收8位數(shù)據(jù) void Sendsck(UINT8 c,UINT8 c1); void EEPROMByteWrite(UINT8 addr,UINT8 value) {Sendsck(0x80,0x60);//write enable CSPIN=0; _nop_(); _nop_(); WriteRom(addr,value);Sendsck(0x80,0x00);//write disable CSPIN=0; _nop_(); _nop_(); SCKPIN=0; Delay1ms(10);} UINT8 EEPROMByteRead(UINT8 addr) {UINT8 value; Sendsck(0xc0,addr); Delay1ms(1); value=ReceiveByte(); SCKPIN=0; CSPIN=0; Delay1ms(20); return(value);} void Writelong(UINT8 addr,UINT32 d)//寫入一個LONG類型 {EEPROMByteWrite(addr,d>>24); EEPROMByteWrite(addr+1,d>>16); EEPROMByteWrite(addr+2,d>>8); EEPROMByteWrite(addr+3,d&0xff);} UINT32 Readlong(UINT8 addr)//讀一個LONG類型 {UINT8 d8; UINT32 d32=0; d8=EEPROMByteRead(addr); d32|=d8; d8=EEPROMByteRead(addr+1); d32<<=8; d32|=d8; d8=EEPROMByteRead(addr+2); d32<<=8; d32|=d8; d8=EEPROMByteRead(addr+3); d32<<=8; d32|=d8; return(d32);}
4.結(jié)論
本論文通過對電子秤的稱重原理進(jìn)行分析,在此基礎(chǔ)上介紹了硬件設(shè)計和軟件設(shè)計,最后完成了本簡易電子秤裝置的設(shè)計,采用高精度AD轉(zhuǎn)換芯片AD574和實時處理的MCU-AT89C52單片機(jī)進(jìn)行處理,精度高,操作簡單,可推廣性強(qiáng)。