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