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