摘 要:自動售報(bào)機(jī)的功能是通過按鍵和顯示等人機(jī)對話接口完成自動售報(bào)。以STC89C52單片機(jī)為自動售報(bào)機(jī)的核心控制芯片,以STC89C52作為CPU處理單元連接各個(gè)功能模塊;以4*4矩陣鍵盤作為輸入控制模塊對報(bào)刊的種類和數(shù)量的選擇以及模擬貨幣的投入功能;以LCD1602液晶顯示作為顯示模塊來顯示購物狀態(tài)以及貨幣狀態(tài);以LED的顯示當(dāng)前選擇報(bào)刊以及出貨的狀態(tài)。
關(guān)鍵詞:單片機(jī);自動售機(jī);液晶顯示
一 緒論
全世界范圍內(nèi)的自動售報(bào)機(jī)多種多樣,使用的方式非常靈活,例如采用聯(lián)機(jī)方式的自動售報(bào)機(jī),可以通過網(wǎng)絡(luò)通訊的方式將機(jī)內(nèi)的庫存信息傳送各營業(yè)廳的中心計(jì)算機(jī),可以保證自動售報(bào)機(jī)中的報(bào)紙庫存,保持在合理的空間范圍內(nèi)。
二 系統(tǒng)總體設(shè)計(jì)方案
自動售報(bào)機(jī)的工作原理是:系統(tǒng)上電后首先進(jìn)入初始的界面,提示顧客通過按鍵選擇購買的報(bào)刊的種類和數(shù)量顧客投入錢幣個(gè)數(shù),當(dāng)顧客操作完成后,按下確定等待售報(bào)機(jī)計(jì)算所購商品的總價(jià),提示顧客投幣。所投的貨幣通過傳感器檢測真假后,進(jìn)行累加計(jì)數(shù)。如果顧客確認(rèn)購買系統(tǒng)則跳轉(zhuǎn)到下一界面,如果客戶按下取消按鍵即退出貨幣返回到主界面,等待顧客繼續(xù)操作。自動售報(bào)機(jī)通過計(jì)算商品的總價(jià)與收到錢的的總價(jià)進(jìn)行對比完成找零。
1.主要器件選型
1、選用51系列單片機(jī)的STC89C52作為本設(shè)計(jì)的主控器可。
2、LCD1602液晶可以顯示英文、漢字等信息,可以讓用戶對正在交易的流程有一個(gè)清晰的認(rèn)識。
3、L298n電機(jī)驅(qū)動芯片具有4個(gè)輸出端口,售報(bào)機(jī)的電機(jī)不需要正反轉(zhuǎn),所以L298n可以同時(shí)驅(qū)動4個(gè)電機(jī)。在總電路的負(fù)載之下,可以分配IO端口數(shù)據(jù),給報(bào)紙的選擇增添多樣性。
2.設(shè)計(jì)方案確定
自動售報(bào)機(jī)控制系統(tǒng)是以單片微型計(jì)算機(jī)為核心的。本設(shè)計(jì)由單片機(jī)最小系統(tǒng)、液晶顯示模塊、按鍵采集模塊、錢幣采集模塊、電機(jī)控制模塊、電源模塊等六部分組成。
三 系統(tǒng)硬件電路
設(shè)定方案決定后開始設(shè)定自動售報(bào)機(jī)的硬件。根據(jù)設(shè)定方案,可將自動售報(bào)機(jī)中的硬件電路分為電源電路、液晶顯示電路、按鍵采集電路、電機(jī)控制電路、報(bào)警燈電路、貨幣檢測電路。
1.電源電路
1、元器件選型。自動售報(bào)機(jī)的硬件由五個(gè)部分需要電源電路提供電源。本設(shè)計(jì)中采用的是AC220V的交流輸入,通過開關(guān)電源轉(zhuǎn)成24V的直流輸出,通過電源芯片轉(zhuǎn)成對應(yīng)的5V為系統(tǒng)各個(gè)部分模塊供電。
2、電源電路。電源供電路,由電源芯片、防反接二管、輸入輸出濾波電容和續(xù)流二極管組成。
2.按鍵采集電路
鍵盤是最常用的單片機(jī)系統(tǒng)的人機(jī)界面,陣列式是通過橫向和縱向交叉檢測,可以將IO口的使用數(shù)量呈指數(shù)減少,并且大增加了按鍵的數(shù)量。本系統(tǒng)需要一個(gè)確認(rèn)按鍵、一個(gè)取消按鍵、一個(gè)功能按鍵和十三個(gè)不同種類報(bào)刊選擇按鍵。
3.液晶顯示電路
單片機(jī)可以通過并行方式的接口單片機(jī)通過,其中P25,P26,P27分別是RS,R/W和E三個(gè)控制位,P0.0-P0.7是8位數(shù)據(jù)線。三個(gè)控制位中,RS=0表示寫或讀指令,RS=1表示寫數(shù)據(jù)。R/W是讀寫指令,R/W=1是讀,R/W=0是寫。E是使能信號,當(dāng)E端由高電平跳變成低電平時(shí),單片機(jī)可以執(zhí)行對液晶模塊的讀寫操作。
4.電機(jī)控制電路
售報(bào)機(jī)采用3塊L298n電機(jī)驅(qū)動芯片來驅(qū)動使報(bào)紙掉落的電機(jī),當(dāng)系統(tǒng)啟動后,單片機(jī)的I/O口輸出控制脈沖,由L298n電機(jī)驅(qū)動芯片對脈沖信號進(jìn)行處理,然后輸出可以讓電機(jī)運(yùn)作的信號。在正常運(yùn)行的基礎(chǔ)上,對單片機(jī)上的I/O資源進(jìn)行劃分,在系統(tǒng)的負(fù)載能力的允許范圍之內(nèi),并增加L298n電機(jī)驅(qū)動芯片的數(shù)量,就可以達(dá)到控制多臺電機(jī)運(yùn)作、停止控制。
5.報(bào)警燈電路
報(bào)警燈輸出采用24v的報(bào)警燈,系統(tǒng)設(shè)計(jì)通過單片機(jī)P3.0口驅(qū)動三極管的通斷控制繼電器的線圈的通電和斷電完成對繼電器觸點(diǎn)的常開和常閉的切換,完成直流電機(jī)的輸出控制。
6.貨幣識別電路
由于傳感器輸出是模擬量無法被單片機(jī)直接識別,因此這里需要通過一個(gè)AD轉(zhuǎn)換器進(jìn)行數(shù)據(jù)轉(zhuǎn)換,考慮到轉(zhuǎn)換器轉(zhuǎn)換位數(shù)和數(shù)據(jù)轉(zhuǎn)化的速率會影響到貨幣識別電路的準(zhǔn)確度。考慮以上幾點(diǎn)采用ADS7825轉(zhuǎn)換器。
四 系統(tǒng)軟件設(shè)計(jì)
1.主程序設(shè)計(jì)
主程序設(shè)計(jì)首先是對各個(gè)功能器件進(jìn)行初始化操作,初始化包括和鍵盤連接的IO口、液晶顯示屏、電機(jī)的初始狀態(tài)進(jìn)行設(shè)置,這樣可以保證系統(tǒng)的正常運(yùn)行。在循環(huán)中,首先檢測顧客是否投幣,然后顯示投幣的金額。交易結(jié)束重新回到檢測顧客是否投幣操作,檢測到客戶投幣后,程序檢測客戶選擇報(bào)刊的類別,并對價(jià)格進(jìn)行計(jì)算如果客戶投入的金額超過報(bào)刊的價(jià)格,自動售報(bào)機(jī)進(jìn)行出貨操作,同時(shí)計(jì)算是否需要找零操作。如果需要找零操作,通過控制電機(jī)的動作將需要找出的零錢推出,結(jié)束此次交易。
2. 鍵盤程序設(shè)計(jì)
鍵盤程序是要檢測客戶輸入的按鍵信息,來判斷顧客需的報(bào)刊種類。按鍵是4*4矩陣形式,其中前13個(gè)按鍵是選擇報(bào)刊選擇鍵,一個(gè)鍵是確認(rèn)按鍵、第一個(gè)是確認(rèn)按鍵、一個(gè)是取消按鍵,一個(gè)是功能按鍵。
3.顯示模塊程序設(shè)計(jì)
需要顯示客戶輸入的報(bào)刊類別、投入的金額和系統(tǒng)的運(yùn)行狀態(tài)信息,采用LCD1602液晶實(shí)現(xiàn)系統(tǒng)的顯示任務(wù),當(dāng)調(diào)用到顯示子程序時(shí),將顯示數(shù)據(jù)先送入顯示緩沖區(qū),隨后取出要顯示的信息個(gè)數(shù),單片機(jī)的IO口通過數(shù)據(jù)線將要顯示的信息發(fā)送到液晶顯示屏上。顯示一次顯示的信息個(gè)數(shù)減1,直到顯示個(gè)數(shù)減少到0返回到調(diào)用子程序處,繼續(xù)向下執(zhí)行。
4.提示模塊程序設(shè)計(jì)
本系統(tǒng)的提示模塊將實(shí)現(xiàn)的功能是:客戶按下選貨按鍵后,如果金額足夠,LED燈不工作;如果金額不足,LED將工作兩秒,以提示余額不足,之后再停止工作。
參考文獻(xiàn):
[1] 張毅剛等.新編MCS-51單片機(jī)應(yīng)用設(shè)計(jì).哈爾濱工業(yè)大學(xué)出版社,2008
[2] 張志良.單片機(jī)原理與控制技術(shù).機(jī)械工業(yè)出版社,2011
[3] 陳濤等.貨幣識別器的原理與設(shè)計(jì).貴州大學(xué)電氣工程學(xué)院,2006年(第35卷)第6期
[4] 王瓊.單片機(jī)原理及應(yīng)用.合肥工業(yè)大學(xué)出版社,2008
[5] 彭?;?Keil C51入門教程.西安交通大學(xué),2005
作者簡介:馮浩(1996―),男,漢族,籍貫:山西太原,單位:太原理工大學(xué),研究方向:自動化。