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