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