地磅銷售報(bào)價(jià)系統(tǒng)的改進(jìn)與實(shí)現(xiàn)
本文的設(shè)計(jì)系統(tǒng)以ATMEL89C52為核心,采用PS7219LED驅(qū)動(dòng)器實(shí)現(xiàn),不僅克服了目前煤礦地磅銷售系統(tǒng)的無法實(shí)時(shí)交易不足,而且還實(shí)現(xiàn)了交易數(shù)據(jù)的實(shí)時(shí)顯示以及語音提示功能。
1.引言
煤炭銷售是煤礦企業(yè)中的一個(gè)重要環(huán)節(jié),銷售 系統(tǒng)的自動(dòng)化程度將影響到整個(gè)煤礦的企業(yè)效率. 近幾年,各大煤礦的地銷煤系統(tǒng)中諸如煤的裝載、過 秤、付款等過程大都實(shí)現(xiàn)了自動(dòng)化。但在這些自動(dòng)化 系統(tǒng)中,整個(gè)流程對(duì)客戶來說都是不可見的,一切只 有等操作完成后,客戶才在發(fā)票上看到自己的數(shù)據(jù), 如果有差錯(cuò)或有其它修改,只能重打發(fā)票,這給銷售人員和客戶都帶來了一些不必要的麻煩。
本文計(jì)對(duì)這些情況開發(fā)的系統(tǒng)不僅把交易數(shù)據(jù) 傳送到前讓客戶能夠參與現(xiàn)場(chǎng)銷售,實(shí)時(shí)掌握 自己的交易情況,而且還可以實(shí)現(xiàn)語音提示。
2.系統(tǒng)硬件總體設(shè)計(jì)
本系統(tǒng)以ATMEL89C52為核心,采用 PS7219LED驅(qū)動(dòng)器實(shí)現(xiàn),系統(tǒng)原理如圖1所示,
2.1單片機(jī)選擇
系統(tǒng)中使用的單片機(jī)是ATMEL89C52。AT- MEL89系列單片機(jī)是由ATMEL公司生產(chǎn),以8051為內(nèi)核,內(nèi)含Flash程序存儲(chǔ)器的MCS51兼容系列,為8031/80C51的換代產(chǎn)品。89C52功能強(qiáng)、性價(jià)比 89C52功能強(qiáng)、性價(jià)比高,是ATMEL89系列單片機(jī)的標(biāo)準(zhǔn)型。
2.2顯示驅(qū)動(dòng)器選擇
顯示驅(qū)動(dòng)器選用PS7219,它是一個(gè)高性能,低 價(jià)格的多位LED顯示驅(qū)動(dòng)器。在性能上完全兼容 MAX7219,并增添了位閃等功能^其接口采用流行 的同步串行外設(shè)接口(SPI),可與任何一種單片機(jī)方 便聯(lián)接,可同時(shí)驅(qū)動(dòng)8位LED(或64只獨(dú)立LED). PS7219內(nèi)置一個(gè)可靠的pP監(jiān)控電路,可為外部提 供一個(gè)脈寬大于140ms,觸發(fā)門限典型值為4. 63V 的高電平復(fù)位信號(hào)。
PS7219內(nèi)部具有15X8RAM功能控制寄存器, 可方便尋址,對(duì)每位數(shù)字可單獨(dú)控制、刷新,不襦重 寫整個(gè)顯示器。顯示亮度可由數(shù)字控制,每位都具有 閃爍使能控制位。引腳CON置高電平,可禁止所有 顯示,達(dá)到降低功耗的效果,同時(shí)并不影響對(duì)控制寄 存器的修改。PS7219還有一個(gè)掉電模式,一個(gè)允許 用戶從1位數(shù)顯示到8位數(shù)顯示選擇的掃描界限寄 存器和一個(gè)強(qiáng)迫所有LED接通的測(cè)試模式。N個(gè) PS7219級(jí)聯(lián),可實(shí)現(xiàn)N*8位LED的顯示。
2.3硬件互連
系統(tǒng)共有六片PS7219驅(qū)動(dòng)器,它們分別驅(qū)動(dòng)一 個(gè)六位LED,用以顯示客戶的煤車重量、車重、煤重、 應(yīng)付款、實(shí)付款和找零,把客戶的購買信息實(shí)時(shí)反饋 給客戶。PS7219驅(qū)動(dòng)器采用級(jí)聯(lián)技術(shù),把所有驅(qū)動(dòng) 器的LOAD輸入連接在一起,并把DOUT連接到相 鄰PS7219的DIN上,從而使單片機(jī)和驅(qū)動(dòng)器之間的 連線大大減少的同時(shí),還使數(shù)據(jù)傳輸更加可靠。六位 LED中,針對(duì)現(xiàn)場(chǎng)實(shí)際情況,小數(shù)點(diǎn)使用了定點(diǎn)連 線,雖降低了編程量,卻不影響顯示效果。PC機(jī)通過 串口和單片機(jī)進(jìn)行通訊,它們的物理連接只須一個(gè) MAX232電平轉(zhuǎn)換電路。
3.系統(tǒng)軟件實(shí)現(xiàn)
3.1通訊協(xié)議的設(shè)計(jì)
PC機(jī)向單片機(jī)一次發(fā)送20個(gè)字節(jié)數(shù)據(jù)包,數(shù) 據(jù)包第1個(gè)字節(jié)是開始字節(jié)標(biāo)志,當(dāng)單片機(jī)收到數(shù) 據(jù)后,首先判斷是不是數(shù)據(jù)包的開始,然后才根據(jù)條 件做出是否接收的決定。從第2字節(jié)至19字節(jié)是數(shù) 據(jù)字節(jié)。最后一個(gè)字節(jié)是數(shù)據(jù)包的校驗(yàn)碼,它是前面 18個(gè)數(shù)據(jù)字節(jié)的總和,這個(gè)總和首先在PC機(jī)中算 好,然后填充到數(shù)據(jù)包最后一個(gè)字節(jié)中發(fā)送到單片 機(jī)。單片機(jī)收到數(shù)據(jù)后,也把18個(gè)數(shù)據(jù)字節(jié)相加,然 后與最后一個(gè)字節(jié)值比較,如果相等,則表明接收數(shù) 據(jù)有效,否則接收數(shù)據(jù)無效。無論是在PC機(jī)還是在 單片機(jī)中,數(shù)據(jù)相加時(shí),如果出現(xiàn)進(jìn)位溢出,都舍掉 進(jìn)位數(shù)據(jù)。這種方法有效地避免了數(shù)據(jù)傳輸時(shí)線路 的干擾問題,保證了整個(gè)系統(tǒng)的可靠性。
3.2單片機(jī)程序?qū)崿F(xiàn)
單片機(jī)程序設(shè)計(jì)由串口、定時(shí)器、7219初始化 模塊以及數(shù)據(jù)接收和發(fā)送模塊組成。流程圖如圖2所示。
3. 2.1接收數(shù)據(jù)
3.3 PC機(jī)程序設(shè)計(jì)
PC機(jī)程序用Delphi開發(fā),其核心為數(shù)據(jù)的打 包與發(fā)送模塊和語音提示模塊。數(shù)據(jù)包的發(fā)送功能 由串口通訊控件SPCOMM實(shí)現(xiàn)。語音提示功能則 借助于事先錄制并加載成工程資源的語音庫,通過 調(diào)用底層的Windows API函數(shù)實(shí)現(xiàn)具體的語音播 放。
3.3.1數(shù)據(jù)的打包與發(fā)送
根據(jù)數(shù)據(jù)通訊協(xié)議,數(shù)據(jù)發(fā)送前先對(duì)數(shù)據(jù)打包。 打包時(shí)用format函數(shù)把單個(gè)數(shù)據(jù)格式化成6位數(shù), 不足6位的前面補(bǔ)零,然后把所有數(shù)據(jù)組成一個(gè)字 符串。數(shù)據(jù)通訊使用免費(fèi)串口通訊控件SPCOMM, 該控件使用比較簡(jiǎn)單,并且它具有豐富的與串口通 信密切相關(guān)的屬性及事件,提供了對(duì)串口的各種操 作,而且還支持多線程。發(fā)送數(shù)據(jù)時(shí)先把打包后的數(shù)據(jù)以字節(jié)為單位送到SPCOMM的sbuf[i]里面,然 后調(diào)用senddata函數(shù)把數(shù)據(jù)一次全發(fā)送出去。
3.3.2語音程序設(shè)計(jì)
語音程序設(shè)計(jì)的關(guān)鍵是設(shè)計(jì)語音庫,把要在程 序中可能出現(xiàn)的語音字符分別錄制成單個(gè)文件,然 后自定義成工程資源,供程序運(yùn)行時(shí)調(diào)用。語音提示 時(shí)要把提示內(nèi)容先統(tǒng)一轉(zhuǎn)化成漢字字符串,再根據(jù) 判斷使用API函數(shù)PlaySound調(diào)用語音庫,從而實(shí) 現(xiàn)語音功能。
4.結(jié)束語
依據(jù)本文設(shè)計(jì)方案,以ATMEL89C52為核心, 采用PS7219LED驅(qū)動(dòng)器,實(shí)現(xiàn)了地磅銷售系統(tǒng)交易 數(shù)據(jù)的實(shí)時(shí)顯示以及語音提示功能,有效地克眼了 地磅銷售中用戶不能實(shí)時(shí)參與交易的不足,同時(shí)提 高了交易數(shù)據(jù)的實(shí)時(shí)透明度,具有很大的現(xiàn)場(chǎng)應(yīng)用 價(jià)值。