本文基于單片機(jī)和AD574設(shè)計(jì)了一款簡(jiǎn)易電子秤。電子秤是根據(jù)重力作用測(cè)量物體質(zhì)量的裝置,本文在分析測(cè)量原理的基礎(chǔ)上,選擇了比較簡(jiǎn)單的51系列單片機(jī)作為主控制系統(tǒng),根據(jù)測(cè)量要求設(shè)計(jì)了傳感器電路、AD轉(zhuǎn)換電路、超量程報(bào)警電路、顯示電路、按鍵電路等,根據(jù)硬件電路,完成了相應(yīng)的軟件設(shè)計(jì)。經(jīng)過測(cè)試,該簡(jiǎn)易電子秤應(yīng)用簡(jiǎn)單,方便快捷,具有良好的應(yīng)用前景。
電子秤是一種根據(jù)重力作用測(cè)量物體質(zhì)量的檢測(cè)裝置,隨著電子技術(shù)的發(fā)展,在國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域,電子秤的應(yīng)用越來越廣泛,對(duì)電子秤的要求也越來越高,本文根據(jù)當(dāng)前電子秤的應(yīng)用情況,分析采用單片機(jī)和AD574設(shè)計(jì)一款簡(jiǎn)易電子秤裝置,在分析測(cè)量原理的基礎(chǔ)上,選擇了比較簡(jiǎn)單的51系列單片機(jī)作為主控制系統(tǒng),根據(jù)測(cè)量要求設(shè)計(jì)了傳感器電路、AD轉(zhuǎn)換電路、超量程報(bào)警電路、顯示電路、按鍵電路等,根據(jù)硬件電路,完成了相應(yīng)的軟件設(shè)計(jì)。
1.測(cè)量原理
電子秤一般由三部分組成,稱重傳感器、承重系統(tǒng)、傳力復(fù)位系統(tǒng)。在這個(gè)基礎(chǔ)上,分成了其他的硬件電路子單元,如單片機(jī)最小系統(tǒng)電路、傳感器電路、AD轉(zhuǎn)換電路、超量程報(bào)警電路、顯示電路、按鍵電路、存儲(chǔ)電路等。其測(cè)量原理是:將物體放置在承重系統(tǒng)的秤臺(tái)上時(shí),其重量參數(shù)會(huì)通過傳感器,產(chǎn)生壓力-電效應(yīng),轉(zhuǎn)換為與其重量相對(duì)應(yīng)的電信號(hào),然后通過放大電路將電信號(hào)放大并經(jīng)過AD處理,最后將信號(hào)輸入給單片機(jī)處理,經(jīng)單片機(jī)處理后,將輸入信息顯示在LCD上。測(cè)量的精度一般由稱重傳感器決定。
2.硬件電路設(shè)計(jì)
2.1 總體設(shè)計(jì)框圖
根據(jù)其測(cè)量原理,設(shè)計(jì)整體硬件框圖如圖1所示。主要包含壓力傳感器電路模塊、放大電路模塊、AD轉(zhuǎn)換模塊、LCD顯示器模塊、閾值報(bào)警模塊、單片機(jī)控制系統(tǒng)模塊。
2.2 傳感器電路設(shè)計(jì)
設(shè)計(jì)采用SP20C-G501電阻應(yīng)變式傳感器,稱重傳感器由組合式S型梁結(jié)構(gòu)及金屬箔式應(yīng)變計(jì)構(gòu)成,具有過載保護(hù)裝置。過程設(shè)計(jì)中采用惠斯登電橋進(jìn)行電壓采集轉(zhuǎn)換,它能抑制溫度變化的影響,抑制干擾能力強(qiáng),補(bǔ)償方便簡(jiǎn)單,因此選用的傳感器精度高、零漂小、工作穩(wěn)定等。傳感器原理圖如圖2所示:
其工作原理:用應(yīng)變片測(cè)量時(shí),將其粘貼在彈性體上。當(dāng)彈性體受力變形時(shí),應(yīng)變片的敏感柵也隨之變形,其阻值發(fā)生相應(yīng)的變化,通過轉(zhuǎn)換電路轉(zhuǎn)換為電壓或電流的變化。由于內(nèi)部線路采用惠更斯電橋,當(dāng)彈性體承受載荷產(chǎn)生變形時(shí),輸出信號(hào)電壓可由下式(1)給出: [Eout=R2×R4(R2+R4)×△R1R1+△R2R2+△R3R3+△R4R4×Ein] (1)
2.3 AD轉(zhuǎn)換電路設(shè)計(jì)
AD574是美國(guó)Analog Device公司生產(chǎn)的12位單片A/D轉(zhuǎn)換器。它采用逐次逼近型的A/D轉(zhuǎn)換器,最大轉(zhuǎn)換時(shí)間為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è)計(jì)
顯示電路采用LCD顯示。其驅(qū)動(dòng)方式包括靜態(tài)驅(qū)動(dòng)、動(dòng)態(tài)驅(qū)動(dòng)。本設(shè)計(jì)采用動(dòng)態(tài)驅(qū)動(dòng)的方式,電路原理圖如圖4所示。
2.5 報(bào)警電路設(shè)計(jì)
報(bào)警電路采用有源蜂鳴器設(shè)計(jì),只要通電流即可發(fā)聲進(jìn)行報(bào)警,在其兩端并聯(lián)一個(gè)反向的二極管,防止誤報(bào)警。
3.程序設(shè)計(jì)
根據(jù)硬件原理分析和設(shè)計(jì),軟件同樣分為幾個(gè)部分:傳感器信號(hào)采集部分、AD轉(zhuǎn)換部分、顯示部分和報(bào)警部分,其中數(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)//寫入一個(gè)LONG類型 {EEPROMByteWrite(addr,d>>24); EEPROMByteWrite(addr+1,d>>16); EEPROMByteWrite(addr+2,d>>8); EEPROMByteWrite(addr+3,d&0xff);} UINT32 Readlong(UINT8 addr)//讀一個(gè)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é)論
本論文通過對(duì)電子秤的稱重原理進(jìn)行分析,在此基礎(chǔ)上介紹了硬件設(shè)計(jì)和軟件設(shè)計(jì),最后完成了本簡(jiǎn)易電子秤裝置的設(shè)計(jì),采用高精度AD轉(zhuǎn)換芯片AD574和實(shí)時(shí)處理的MCU-AT89C52單片機(jī)進(jìn)行處理,精度高,操作簡(jiǎn)單,可推廣性強(qiáng)。