隨著電子技術(shù)的不斷發(fā)展,目前市場上使用的傳統(tǒng)的電子秤,已經(jīng)不能滿足人們的要 求。根據(jù)現(xiàn)有方案的不足,這里分析設(shè)計了一種多功能電子計價秤,能夠?qū)ξ锲返闹亓窟M(jìn)行稱 量,計算出物品的價格,還可以實現(xiàn)去皮稱量、累計總價,存儲常用物品單價,算出找錢數(shù)額 的功能。同時,還可實時檢測周圍環(huán)境的溫度。本設(shè)計以單片機(jī)MSP430F149為核心部件,外圍 單元電路有稱重模塊HX711AD、矩陣鍵盤、液晶屏LCD12864、溫度傳感器DS18B20、蜂鳴器以 及存儲芯片AT24C16。本系統(tǒng)功能豐富、操作簡便、有良好的人機(jī)交互界面。
0.引言
由于傳統(tǒng)的電子秤的功能簡單,只可稱量物品 的重量,輸入物品的單價,計算出物品的價格。因 此,為了豐富傳統(tǒng)電子計價秤的功能,本設(shè)計在傳統(tǒng) 的電子計價秤的基礎(chǔ)上,增添了去皮稱量功能、累計 功能、找錢功能、置零功能以及溫度檢測功能,極大 地滿足了人們的各類需求。
1.總體設(shè)計方案
多功能電子計價秤m由稱重模塊、按鍵模塊、 顯示模塊、溫度檢測模塊、主控模塊、存儲模塊和報 警模塊組成。系統(tǒng)的整體設(shè)計框圖如圖1所示。矩 陣鍵盤由數(shù)字鍵0到9,小數(shù)點和功能選擇鍵:清 除、累計、去皮、置零、找錢、儲存、輸入以及10個儲 存常用物品單價的按鍵M1, M2,…,M10構(gòu)成。稱 重模塊由電阻應(yīng)變式壓力傳感器、放大電路以及 AD轉(zhuǎn)換模塊組成。通過稱重模塊對物品的重量進(jìn) 行稱量,然后由單片機(jī)對稱重模塊的數(shù)據(jù)進(jìn)行采集和處理,并通過顯示模塊顯示出來。按鍵模塊用于 對物品單價的輸入以及對系統(tǒng)功能的切換。存儲模 塊用于對常用物品的單價進(jìn)行存儲。溫度檢測模塊 用于實時檢測環(huán)境溫度。報警模塊用于在物品重量 大于15千克或者稱重模塊工作不正常的時候及時 報警。
2.硬件設(shè)計
2.1單片機(jī)模塊
本設(shè)計采用單片機(jī)MSP430F149 12 , MSP430系 列的單片機(jī)是一個16位單片機(jī),采用了精簡指令集 (RISC)結(jié)構(gòu),具有豐富的尋址方式(7種源操作數(shù) 尋址、4種目的操作數(shù)尋址)、簡潔的27條內(nèi)核指令 以及大量的模擬指令;大量的寄存器以及片內(nèi)數(shù)據(jù) 存儲器都可參加多種運算;還有高效的查表處理指 令。這些特點保證了可編制出高效率的源程序。它 具有處理能力強(qiáng)、運算速度快、超低功耗等優(yōu)點,且 MSP430片內(nèi)資源豐富,它們分別是看門狗定時器、 定時器A、定時器B,具有捕獲/比較功能,大量的捕 獲/比較寄存器,可用于事件計數(shù)、時序發(fā)生、PWM 等。另外,MSP430系列單片機(jī)的中斷源較多,而且 可以任意嵌套,使用時靈活方便。圖2為單片機(jī)及 外圍電路的電路連接圖。
2.2稱重模塊
本設(shè)計的稱重模塊由電阻應(yīng)變式壓力傳感器和 HX711AD0模塊組成,HX711AD模塊是一款專為高 精度電子秤而設(shè)計的,集成了包括穩(wěn)壓電源、片內(nèi)時 鐘振蕩器、AD轉(zhuǎn)換電路等其它同類型芯片所需要的 外圍電路,具有集成度高、響應(yīng)速度快、抗干擾性強(qiáng)等 優(yōu)點。降低了電子秤的整機(jī)成本,提高了整機(jī)的性能 和可靠性。HX711AD模塊A通道帶有128倍信號增 益,可以將電壓放大128倍,然后采樣輸出24bit AD 轉(zhuǎn)換后的值,單片機(jī)通過指定時序?qū)?/span>24bh數(shù)據(jù)讀出。 稱重模塊的電路連接圖如圖3所示。在3. 3V的供電 電壓下20kg的傳感器最大輸出電壓是:
3.3V x2mV/V =6.6mV 經(jīng)過A通道將電壓放大128倍后,其最大電壓 變?yōu)?/span>,經(jīng)過AD轉(zhuǎn)換模塊后,輸出的24bit數(shù)字值, 最大為:
422. 4mV x 224/4. 3V = 1648069 在程序中,最大采樣值1648069存放為long型, 因此計算速率和存放空間占用資源太多,固將其除 以100,縮放為int型,因此最大采樣值變?yōu)?/span>16481。
假設(shè)重力為4kg,測量出來的AD的值為y,則由電 阻應(yīng)變式壓力傳感器輸出發(fā)送給AD模塊的電壓為:
A kg x 6. 6mV /20kg = 0. 33AmV 經(jīng)過A通道的128倍的放大后則變?yōu)椋?/span>
128 x0.334 =42.24AmV 轉(zhuǎn)換為24Wt的數(shù)字信號為:
42.24AmV x224/4.3V = 164807A 所以:
y =1648074/100 =1648.07A 因此得出:
A = y/1648. 07kg?y/2.15g 2.3存儲模塊
本系統(tǒng)選用芯片AT24C16 [4對數(shù)據(jù)進(jìn)行存儲。 它是一種電可擦除可編程只讀存儲器,即EEPROM (Electrically Erasable Programmable Read-Only Mem-ory) 。AT24C16低功耗,采用兩線串行接口,支持雙 向數(shù)據(jù)傳輸協(xié)議,可用電擦除,可編程自定時寫周 期。允許在一個寫周期內(nèi)同時對1個字節(jié)到一頁的 若干字節(jié)的變成寫入,1頁的大小取決于芯片內(nèi)頁 寄存器的大小,AT24C16b]具有16字節(jié)數(shù)據(jù)的頁面 寫能力。圖4為AT24C16的電路連接圖。
2.4溫度檢測模塊和報警模塊
本設(shè)計選用DS18B20 作為溫度檢測模塊,它提供9 ~12位攝氏溫度測量而且由一個有高低電平 出發(fā)的可編程、不因電源消失而改變的報警功能。 DS18B20通過一個單線接口發(fā)送或接受信息,因此 在中央處理器和DS18B20之間僅需要一條連接線。 它的在-10°C ~ +85°C的精度為±5°C。
DS18B20可以在沒有外部電源供電的情況下工 作。當(dāng)總線處于高電平狀態(tài),DQ與上拉電阻連接 通過單總線對器件供電。同時處于高電平狀態(tài)的總 線信號對內(nèi)部電容充電,在總線處于低電平狀態(tài)時, 該電容提供能量給器件。這種提供能量的形式被稱 為“寄生電源”。能即DS18B20除去了對外部電源 的需求。而且,DS18B20的高速暫存器提供了一個 直接的溫度報警值寄存器(TH,TL),和一個字節(jié)的 配置寄存器。TH,TL和配置寄存器是非易失性的 可擦除程序寄存器(EEPROM),因此存儲的數(shù)據(jù)在 器件掉電時不會消失。
本系統(tǒng)的報警模塊選用的是有源蜂鳴器,其內(nèi) 部有振湯、驅(qū)動電路。只需要加上直流電壓即可工 作,使用簡單、方便。
3.系統(tǒng)軟件設(shè)計
此部分使用單片機(jī)MSP430F149實現(xiàn)。用IAR 編程軟件及C語言編寫程序。根據(jù)該系統(tǒng)的功能 設(shè)計要求,系統(tǒng)的程序主要包括稱重模塊程序, 溫度檢測模塊程序,鍵盤掃描程序,液晶顯示程序, 掉電存儲程序,數(shù)據(jù)計算程序和報警模塊程序。此 處主要介紹存儲模塊程序、數(shù)據(jù)計算程序和按鍵模 塊程序。
3.1存儲模塊程序設(shè)計
AT24Cxx系列EEPROM是由美國Mcrochip公 司出品,1 -512K位的支持I2C總線數(shù)據(jù)傳送協(xié)議 的串行CMOS E2PROM。I2C總線是PHLIPS公司推 出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的包括 總線裁決和高低速器件同步功能的高性能串行總 線。AT24C16的寫操作流程圖如圖5所示, AT24C16的讀操作流程圖如圖6所示。
3.2數(shù)據(jù)處理程序設(shè)計 本設(shè)計在對金額進(jìn)行運算的時候,采用大數(shù)乘 法算法中的循環(huán)算法。將待相乘的大數(shù)存入字符串 中,即單價和重量,然后按位存入較大的數(shù)組,循環(huán) 按位相乘并累加。最后將進(jìn)位分離并加到相鄰高位 上。其具體程序如下:
void multiply (unsigned char* a,unsigned char* b,
unsigned char* c)
{
int i, j, ca,cb,* s;
ca = 5; cb =4 ;
s = ( int * ) malloc ( sizeof ( int ) * ( ca +
cb) ) ;
for (i =0;i
for (j =0; j < cbf j + + )
s [ + j + 1] + = (a [] - " O ") *
(b j] - W);
for (i = ca + cb - 1 ?;i > =0;i --)
if (s D > =10)
{
s i-1] + =s D /10;
s D % =10;
}
i = 0;
while ( s i] = = 0) i ++ ;
for ( j = 0; i < ca + cb; i + + , j + + ) c j] = s i] + '0'; c j] =^O ; free( s) ;
}
3.3按鍵模塊程序設(shè)計
按鍵模塊采用5* 6的矩陣鍵盤,并采用按鍵掃 描的方式。先將第一行置為低電平,其它各線置為 高電平,然后查看列線,若列線均為高電平,則說明 沒有按鍵被按下,若有某一列線為低電平,則說明有 按鍵被按下,且這個鍵位于第一行的該列;然后再將 第二行置為低電平,其它各線置為高電平,按照查找 第一行的方法依次查找下去。鍵盤的主要功能有: 對物品單價以及實付錢數(shù)進(jìn)行輸入,對常用物品的 單價進(jìn)行調(diào)用和存儲,切換輸入、累計、置零、去皮、 找錢、儲存等附加的功能。按鍵模塊的程序流程圖 如圖7所示。
按鍵模塊實現(xiàn)如下功能:
①數(shù)字按鍵和小數(shù)點:對單價以及實付金額進(jìn) 行輸入。
②輸入鍵:按下輸入鍵,在液晶顯示屏第三行 “單價:”后,顯示‘“>”,表示正在輸入,當(dāng)輸入完畢后,再 次按下輸入鍵‘P”消失,表示物品單價輸入成功。
③去皮鍵:測量物品的凈重,即先放上盛物品的 器皿,然后再放上物品,測量值僅為物品的重量。
④累計鍵:累加不同單價物品的金額,計算出需 要付的總金額。
⑤置零鍵:在累計模式下按下置零鍵后,液晶顯 示屏上的金額和單價均清空為0,之前的累計金額 也清空為0。當(dāng)在輸入模式下按下置零鍵時,單價 清零,此時可重新輸入單價,起到清除的作用。
⑥儲存鍵以及M0 ~ M10鍵:用于存儲10中常 用物品的單價,掉電后仍可保存,方便隨時調(diào)用。
4.實驗結(jié)果
圖8展示了整個系統(tǒng)裝置,多功能電子計價秤0由稱重模塊HX711AD、按鍵模塊、溫度檢測模 塊DS18B20、顯示模塊LCD12864、主控模塊 MSP430F149、存儲模塊AT24C16和報警模塊組成。
5.結(jié)束語
本設(shè)計介紹了一種基于單片機(jī)的多功能電子計 價秤。本文以溫度檢測模塊、主控模塊和測重模塊 為基礎(chǔ)的前提下,結(jié)合顯示、按鍵模塊、存儲模塊、報 警模塊等功能,合理有效地豐富了傳統(tǒng)計價器的功 能。DS18B20連接簡單,響應(yīng)速度快、抗干擾能力 強(qiáng)、性價比高。而且,通過按鍵對系統(tǒng)功能進(jìn)行切換 并由LCD12864顯示出來,更加人性化,提供了良好 的人機(jī)交互界面。