陸柳延,黃曉龍,陶吳宏
(江蘇商貿職業學院,江蘇南通,226011)
當前市場每年都要銷售大量塑料包裝的飲料產品,飲料銷量劇增,帶來的問題是廢舊塑料瓶垃圾的大量出現。據相關數據統計,2016 年全球塑料瓶的消費量達到 4800 億個,但得到回收的不到一半,其中僅僅只有7%被重復利用。而大多數瓶子的下場都是混在垃圾中被填埋或流入海洋。因此,急需一種能夠自動回收塑料瓶,同時對消費者有吸引力的集中投放和回收渠道。
本項目設計的環保智能售賣機具有回收加售賣的特點,由自動售賣系統、回收識別系統、數據平臺系統組成。當消費者在自動售賣機上購買產品時,如購買某飲料需5 元,此時將塑料瓶投放進回收窗口,每投放一個,商品的價格會相應的減少0.1 元,以此類推,以最終優惠價格進行掃碼或投幣結算。塑料瓶投入到機器內會進行壓縮儲存,當儲存箱滿時,數據系統會提醒工作人員前往處理,直接送往回收利用站點。此產品既能增加客戶粘度、擴大銷量、實現盈利,又能夠保護環境、減少污染,實現回收利用,具有盈利性和公益性相統一、生產消費與環境保護相統一的優點。
本設計主要闡述基于AT89C51 單片機設計的新型環保售賣系統,設計主要由主控模塊、回收檢測模塊、選擇模塊、顯示模塊組成。為達到設計所需的任務要求,選用兩片AT89C51 單片機為控制核心,分別實現回收系統及售賣系統,并通過雙機串行通信來實現雙系統的交互通信,結構總框圖如圖1 所示。回收系統在最小系統的基礎上,添加傳感模塊及顯示模塊,主要完成塑料瓶的回收監測。售賣系統在最小系統的基礎上,通過按鍵與單片機進行人機交互,實現飲料選購,同時添加顯示模塊,呈現支付價格。

圖1 系統總設計框圖
本設計的主體電路部分由兩片單片機最小系統構成,如圖2 所示。其中U1 為售賣系統核心控制器,U2 為回收系統核心控制器。為實現回收系統與售賣系統之間的連接,將這兩個單片機的RXD 引腳與TXD 引腳交叉連接,設置兩個單片機串行口的工作方式一致,并允許接收數據,這樣就達到單片機雙機通信的作用。

圖2 系統主電路設計圖
在研究初期階段,選用光纖傳感器來完成塑料瓶的檢測。當回收口傳感器檢測到一個電平信號,即送至單片機存儲,在后續購買階段,即可將存儲信息讀出并送至購買系統,重置購買金額。光纖傳感器的輸出線為3 線,連接時棕色線與單片機直流電源正極相連,藍色線與單片機直流電源負極相連,黑色線與單片機U2 的P0.0 端口相連。在仿真調試階段,采用按鍵信號模擬傳感器檢測信號。通過獨立按鍵連接回收系統U2 單片機的 P0.0 引腳,使用了低電平觸發,按鍵的操作代表為回收塑料瓶所獲得的優惠。
顯示電路部分的設計采用了二位數碼管以及四位數碼管組成,其中二位數碼管顯示的是回收塑料瓶的總價格,四位數碼管則顯示購買物品的應付價格。
由圖3 所示,這兩個數碼管的段選(A,B,C,D,E,F,G 以及 DP)依次與兩個單片機的 P2 口各個引腳相連接,位選則經過三極管與兩個單片機的P1 口相連,即R16~R19 與售賣系統主控模塊U1 的單片機的 P1.0~P1.3 依次連接,R14、R15 與回收系統主控模塊U2 單片機的 P1.0、P1.1 連接。設計中使用的數碼管均為共陽極數碼管,并在顯示電路設計中加入了PNP 三極管起開關作用,當單片機的 I/O 口輸出高電平時,Ube 無電壓差,Ib=0A,這時三極管處于截止狀態,此 I/O 口所對應的位選數碼管不顯示數字,當單片機的 I/O 口輸出低電平時,三極管就處于導通狀態,此 I/O 口所對應的位選數碼管就會按照單片機P2 口輸出的段選顯示相應的數字。顯示電路部分通過這樣的連接使單片機信號可以控制數碼管來顯示價格數字。

圖3 系統顯示電路設計圖
在本項目設計中設置可購買3 種飲料,因此添加3 個購買按鍵,分別是二元物品選擇鍵,三點五元物品選擇鍵,四元物品選擇鍵。這些獨立按鍵與售賣系統主控模塊U1 的單片機連接,被按下時產生的信號被單片機采集,在依照軟件程序計算后將結果發送給回收系統主控模塊U2 單片機,并能在主控模塊U1 的四位數碼管顯示相應的價格結果。此外添加環保售賣機的支付完成鍵,實現顧客購買物品并完成支付之后的找零操作。
按鍵電路部分的設計使用了幾個獨立按鍵和上拉電阻,原理簡單,容易操作。電路結構如圖4 所示,單片機的 I/O 口上拉電阻之后與+5V 電源連接,按鍵一端接地,另一端與單片機 I/O 口相連接,按鍵按下時會給單片機傳遞低電平信號。S1、S3、S5 和 S6 這 4 個獨立按鍵分別接U1 單片機的 P0.0、P0.1、P0.2、P0.7 引腳,使用低電平觸發。其中,S1 按鍵是物品價格為二元的按鍵,S3 按鍵是物品價格為三點五元的按鍵,S5 按鍵是物品價格為四元的按鍵,S6 按鍵則是顧客購買物品并完成支付之后的找零操作。

圖4 系統購買電路設計圖
設計主要通過AT89C51 單片機的控制來工作,所以其編寫的程序有初始化,還有主體循環部分,其程序的主要流程如圖5所示。

圖5 程序主流程圖
系統上電,首先系統初始化以及單片機的初始化。初始化完成后進入主體循環,兩個AT89C51 單片機開始采集來自外部的按鍵及傳感器信號,并按編寫的程序流程對這些數據進行處理。再控制數碼管將處理過的數值顯示出來以實現環保售賣機的功能。
2.2.1 進行初始化設置
環保售賣機系統設計時,兩個單片機均定義串行口的工作方式為方式1,并允許接收數據。同時定時器T1 工作于方式二下。然后初值設置波特率為9600bps。還有串行口中斷開啟以及總中斷允許位開啟。
SCON=0X50; //工作方式的設定
PCON=0x00;TMOD=0X20; //定時器T1 工作方式的設定
TH1=0XFD;TL1=0XFD; //根據波特率賦初值
TR1=1; //啟動定時器T1 工作
EA=1; //開啟總中斷
ES=1; //開啟通信中斷
2.2.2 發送數據設置
發送數據部分,將所需發送的數據送入SBUF,就可以啟動發送。單片機將自動把SBUF 中的數據組裝為發送的格式,并在波特率發生器的控制下將處理過的數據發送至第11 引腳。發送完數據后,單片機內部自動置中斷標志TI 為1,這中斷標志位TI 需要由軟件清零。
void send(unsigned char dat)
{ SBUF=dat;
while(TI==0); // 查詢等待發送是否完成
TI=0;
}
2.2.3 接收數據設置
兩個單片機通信的接收方式采用了中斷方式來接收數據,判斷RI 是否為1,若是1 則表示接收完成,數據接收完畢在依程序來進行下一步的操作。
如圖6 所示,當售賣系統U1 單片機接收到回收系統U2 單片機發送過來的數據時將變量count 減1,這表示外部投入了一個塑料瓶,U2 單片機采集到信號,并發送給U1單片機,使需要支付的總價減少。

圖6 售賣系統U1 程序流程圖
如圖7 所示,當回收系統U2 單片機接收到了售賣系統U1 單片機發送過來的數據時將變量count 清零,同時再把P2 口各引腳至高電平,這表明外部一次循環結束(按鍵 S6 被按下)U1 單片機采集到信號,同時也發送給U2 單片機,將回收塑料瓶的金額清零。

圖7 回收系統U2 程序流程圖
數碼管顯示部分采用的四位數碼管及二位數碼管均為共陽極數碼管,所以在段選上需要區分,在數值的累加以及先投塑料瓶時四位數碼管上顯示的負數也需要注意。如表1所示為本設計中需要用到的數碼管字形編碼。

表1 數碼管字形編碼
環保售賣機計價系統的電路元器件繁多,仿真電路圖繪制完成后可先進行仿真演示,對項目進行功能調試。
例如按下 S1 按鍵(S3,S5 按鍵也可),四位數碼管顯示2.0,如圖8 所示,表示購買S1 物品需要支付2 元。如再按下 S3 按鍵,四位數碼管的數字會累加,顯示5.5,如圖9 所示,表示購買S1 和S3 物品一共需要支付 5.5 元。

圖8 購買S1 物品界面

圖9 購買S1、S3 物品界面
之后按十下 S4 按鍵(代替傳感器檢測信號)則表示回收了十個塑料瓶,二位數碼管就會顯示1.0,如圖10 所示,表示每個塑料瓶以一分的價格回收并用做優惠,此次演示則優惠一元。相應的四位數碼管也會在支付總價上減去回收塑料瓶的總價格如圖11 所示。最后按下S6,如圖11 所示,兩個數碼管數值歸零,表示支付完成。

圖10 回收十個塑料瓶的界面

圖11 支付完成界面
本文研究與設計了一款新型環保售賣機,在系統中使用了兩個AT89C51 單片機,利用了51 單片機的串行通信功能,實現一款可以回收塑料瓶并進行價格抵扣的新型售賣裝置,并通過模擬仿真軟件,確認系統可以合理的運作。
同時本設計也存在著不足之處,后期可以在現有的功能基礎上進行進一步的擴展,可以將售賣機連入互聯網中開設平臺,人們在平臺上可以注冊賬號,可以存儲回收塑料瓶獲取的貨幣,并在下次購物時用作優惠等等。