陸柳延,黃曉龍,陶吳宏
(江蘇商貿(mào)職業(yè)學(xué)院,江蘇南通,226011)
當(dāng)前市場每年都要銷售大量塑料包裝的飲料產(chǎn)品,飲料銷量劇增,帶來的問題是廢舊塑料瓶垃圾的大量出現(xiàn)。據(jù)相關(guān)數(shù)據(jù)統(tǒng)計,2016 年全球塑料瓶的消費量達(dá)到 4800 億個,但得到回收的不到一半,其中僅僅只有7%被重復(fù)利用。而大多數(shù)瓶子的下場都是混在垃圾中被填埋或流入海洋。因此,急需一種能夠自動回收塑料瓶,同時對消費者有吸引力的集中投放和回收渠道。
本項目設(shè)計的環(huán)保智能售賣機(jī)具有回收加售賣的特點,由自動售賣系統(tǒng)、回收識別系統(tǒng)、數(shù)據(jù)平臺系統(tǒng)組成。當(dāng)消費者在自動售賣機(jī)上購買產(chǎn)品時,如購買某飲料需5 元,此時將塑料瓶投放進(jìn)回收窗口,每投放一個,商品的價格會相應(yīng)的減少0.1 元,以此類推,以最終優(yōu)惠價格進(jìn)行掃碼或投幣結(jié)算。塑料瓶投入到機(jī)器內(nèi)會進(jìn)行壓縮儲存,當(dāng)儲存箱滿時,數(shù)據(jù)系統(tǒng)會提醒工作人員前往處理,直接送往回收利用站點。此產(chǎn)品既能增加客戶粘度、擴(kuò)大銷量、實現(xiàn)盈利,又能夠保護(hù)環(huán)境、減少污染,實現(xiàn)回收利用,具有盈利性和公益性相統(tǒng)一、生產(chǎn)消費與環(huán)境保護(hù)相統(tǒng)一的優(yōu)點。
本設(shè)計主要闡述基于AT89C51 單片機(jī)設(shè)計的新型環(huán)保售賣系統(tǒng),設(shè)計主要由主控模塊、回收檢測模塊、選擇模塊、顯示模塊組成。為達(dá)到設(shè)計所需的任務(wù)要求,選用兩片AT89C51 單片機(jī)為控制核心,分別實現(xiàn)回收系統(tǒng)及售賣系統(tǒng),并通過雙機(jī)串行通信來實現(xiàn)雙系統(tǒng)的交互通信,結(jié)構(gòu)總框圖如圖1 所示。回收系統(tǒng)在最小系統(tǒng)的基礎(chǔ)上,添加傳感模塊及顯示模塊,主要完成塑料瓶的回收監(jiān)測。售賣系統(tǒng)在最小系統(tǒng)的基礎(chǔ)上,通過按鍵與單片機(jī)進(jìn)行人機(jī)交互,實現(xiàn)飲料選購,同時添加顯示模塊,呈現(xiàn)支付價格。
圖1 系統(tǒng)總設(shè)計框圖
本設(shè)計的主體電路部分由兩片單片機(jī)最小系統(tǒng)構(gòu)成,如圖2 所示。其中U1 為售賣系統(tǒng)核心控制器,U2 為回收系統(tǒng)核心控制器。為實現(xiàn)回收系統(tǒng)與售賣系統(tǒng)之間的連接,將這兩個單片機(jī)的RXD 引腳與TXD 引腳交叉連接,設(shè)置兩個單片機(jī)串行口的工作方式一致,并允許接收數(shù)據(jù),這樣就達(dá)到單片機(jī)雙機(jī)通信的作用。
圖2 系統(tǒng)主電路設(shè)計圖
在研究初期階段,選用光纖傳感器來完成塑料瓶的檢測。當(dāng)回收口傳感器檢測到一個電平信號,即送至單片機(jī)存儲,在后續(xù)購買階段,即可將存儲信息讀出并送至購買系統(tǒng),重置購買金額。光纖傳感器的輸出線為3 線,連接時棕色線與單片機(jī)直流電源正極相連,藍(lán)色線與單片機(jī)直流電源負(fù)極相連,黑色線與單片機(jī)U2 的P0.0 端口相連。在仿真調(diào)試階段,采用按鍵信號模擬傳感器檢測信號。通過獨立按鍵連接回收系統(tǒng)U2 單片機(jī)的 P0.0 引腳,使用了低電平觸發(fā),按鍵的操作代表為回收塑料瓶所獲得的優(yōu)惠。
顯示電路部分的設(shè)計采用了二位數(shù)碼管以及四位數(shù)碼管組成,其中二位數(shù)碼管顯示的是回收塑料瓶的總價格,四位數(shù)碼管則顯示購買物品的應(yīng)付價格。
由圖3 所示,這兩個數(shù)碼管的段選(A,B,C,D,E,F,G 以及 DP)依次與兩個單片機(jī)的 P2 口各個引腳相連接,位選則經(jīng)過三極管與兩個單片機(jī)的P1 口相連,即R16~R19 與售賣系統(tǒng)主控模塊U1 的單片機(jī)的 P1.0~P1.3 依次連接,R14、R15 與回收系統(tǒng)主控模塊U2 單片機(jī)的 P1.0、P1.1 連接。設(shè)計中使用的數(shù)碼管均為共陽極數(shù)碼管,并在顯示電路設(shè)計中加入了PNP 三極管起開關(guān)作用,當(dāng)單片機(jī)的 I/O 口輸出高電平時,Ube 無電壓差,Ib=0A,這時三極管處于截止?fàn)顟B(tài),此 I/O 口所對應(yīng)的位選數(shù)碼管不顯示數(shù)字,當(dāng)單片機(jī)的 I/O 口輸出低電平時,三極管就處于導(dǎo)通狀態(tài),此 I/O 口所對應(yīng)的位選數(shù)碼管就會按照單片機(jī)P2 口輸出的段選顯示相應(yīng)的數(shù)字。顯示電路部分通過這樣的連接使單片機(jī)信號可以控制數(shù)碼管來顯示價格數(shù)字。
圖3 系統(tǒng)顯示電路設(shè)計圖
在本項目設(shè)計中設(shè)置可購買3 種飲料,因此添加3 個購買按鍵,分別是二元物品選擇鍵,三點五元物品選擇鍵,四元物品選擇鍵。這些獨立按鍵與售賣系統(tǒng)主控模塊U1 的單片機(jī)連接,被按下時產(chǎn)生的信號被單片機(jī)采集,在依照軟件程序計算后將結(jié)果發(fā)送給回收系統(tǒng)主控模塊U2 單片機(jī),并能在主控模塊U1 的四位數(shù)碼管顯示相應(yīng)的價格結(jié)果。此外添加環(huán)保售賣機(jī)的支付完成鍵,實現(xiàn)顧客購買物品并完成支付之后的找零操作。
按鍵電路部分的設(shè)計使用了幾個獨立按鍵和上拉電阻,原理簡單,容易操作。電路結(jié)構(gòu)如圖4 所示,單片機(jī)的 I/O 口上拉電阻之后與+5V 電源連接,按鍵一端接地,另一端與單片機(jī) I/O 口相連接,按鍵按下時會給單片機(jī)傳遞低電平信號。S1、S3、S5 和 S6 這 4 個獨立按鍵分別接U1 單片機(jī)的 P0.0、P0.1、P0.2、P0.7 引腳,使用低電平觸發(fā)。其中,S1 按鍵是物品價格為二元的按鍵,S3 按鍵是物品價格為三點五元的按鍵,S5 按鍵是物品價格為四元的按鍵,S6 按鍵則是顧客購買物品并完成支付之后的找零操作。
圖4 系統(tǒng)購買電路設(shè)計圖
設(shè)計主要通過AT89C51 單片機(jī)的控制來工作,所以其編寫的程序有初始化,還有主體循環(huán)部分,其程序的主要流程如圖5所示。
圖5 程序主流程圖
系統(tǒng)上電,首先系統(tǒng)初始化以及單片機(jī)的初始化。初始化完成后進(jìn)入主體循環(huán),兩個AT89C51 單片機(jī)開始采集來自外部的按鍵及傳感器信號,并按編寫的程序流程對這些數(shù)據(jù)進(jìn)行處理。再控制數(shù)碼管將處理過的數(shù)值顯示出來以實現(xiàn)環(huán)保售賣機(jī)的功能。
2.2.1 進(jìn)行初始化設(shè)置
環(huán)保售賣機(jī)系統(tǒng)設(shè)計時,兩個單片機(jī)均定義串行口的工作方式為方式1,并允許接收數(shù)據(jù)。同時定時器T1 工作于方式二下。然后初值設(shè)置波特率為9600bps。還有串行口中斷開啟以及總中斷允許位開啟。
SCON=0X50; //工作方式的設(shè)定
PCON=0x00;TMOD=0X20; //定時器T1 工作方式的設(shè)定
TH1=0XFD;TL1=0XFD; //根據(jù)波特率賦初值
TR1=1; //啟動定時器T1 工作
EA=1; //開啟總中斷
ES=1; //開啟通信中斷
2.2.2 發(fā)送數(shù)據(jù)設(shè)置
發(fā)送數(shù)據(jù)部分,將所需發(fā)送的數(shù)據(jù)送入SBUF,就可以啟動發(fā)送。單片機(jī)將自動把SBUF 中的數(shù)據(jù)組裝為發(fā)送的格式,并在波特率發(fā)生器的控制下將處理過的數(shù)據(jù)發(fā)送至第11 引腳。發(fā)送完數(shù)據(jù)后,單片機(jī)內(nèi)部自動置中斷標(biāo)志TI 為1,這中斷標(biāo)志位TI 需要由軟件清零。
void send(unsigned char dat)
{ SBUF=dat;
while(TI==0); // 查詢等待發(fā)送是否完成
TI=0;
}
2.2.3 接收數(shù)據(jù)設(shè)置
兩個單片機(jī)通信的接收方式采用了中斷方式來接收數(shù)據(jù),判斷RI 是否為1,若是1 則表示接收完成,數(shù)據(jù)接收完畢在依程序來進(jìn)行下一步的操作。
如圖6 所示,當(dāng)售賣系統(tǒng)U1 單片機(jī)接收到回收系統(tǒng)U2 單片機(jī)發(fā)送過來的數(shù)據(jù)時將變量count 減1,這表示外部投入了一個塑料瓶,U2 單片機(jī)采集到信號,并發(fā)送給U1單片機(jī),使需要支付的總價減少。
圖6 售賣系統(tǒng)U1 程序流程圖
如圖7 所示,當(dāng)回收系統(tǒng)U2 單片機(jī)接收到了售賣系統(tǒng)U1 單片機(jī)發(fā)送過來的數(shù)據(jù)時將變量count 清零,同時再把P2 口各引腳至高電平,這表明外部一次循環(huán)結(jié)束(按鍵 S6 被按下)U1 單片機(jī)采集到信號,同時也發(fā)送給U2 單片機(jī),將回收塑料瓶的金額清零。
圖7 回收系統(tǒng)U2 程序流程圖
數(shù)碼管顯示部分采用的四位數(shù)碼管及二位數(shù)碼管均為共陽極數(shù)碼管,所以在段選上需要區(qū)分,在數(shù)值的累加以及先投塑料瓶時四位數(shù)碼管上顯示的負(fù)數(shù)也需要注意。如表1所示為本設(shè)計中需要用到的數(shù)碼管字形編碼。
表1 數(shù)碼管字形編碼
環(huán)保售賣機(jī)計價系統(tǒng)的電路元器件繁多,仿真電路圖繪制完成后可先進(jìn)行仿真演示,對項目進(jìn)行功能調(diào)試。
例如按下 S1 按鍵(S3,S5 按鍵也可),四位數(shù)碼管顯示2.0,如圖8 所示,表示購買S1 物品需要支付2 元。如再按下 S3 按鍵,四位數(shù)碼管的數(shù)字會累加,顯示5.5,如圖9 所示,表示購買S1 和S3 物品一共需要支付 5.5 元。
圖8 購買S1 物品界面
圖9 購買S1、S3 物品界面
之后按十下 S4 按鍵(代替?zhèn)鞲衅鳈z測信號)則表示回收了十個塑料瓶,二位數(shù)碼管就會顯示1.0,如圖10 所示,表示每個塑料瓶以一分的價格回收并用做優(yōu)惠,此次演示則優(yōu)惠一元。相應(yīng)的四位數(shù)碼管也會在支付總價上減去回收塑料瓶的總價格如圖11 所示。最后按下S6,如圖11 所示,兩個數(shù)碼管數(shù)值歸零,表示支付完成。
圖10 回收十個塑料瓶的界面
圖11 支付完成界面
本文研究與設(shè)計了一款新型環(huán)保售賣機(jī),在系統(tǒng)中使用了兩個AT89C51 單片機(jī),利用了51 單片機(jī)的串行通信功能,實現(xiàn)一款可以回收塑料瓶并進(jìn)行價格抵扣的新型售賣裝置,并通過模擬仿真軟件,確認(rèn)系統(tǒng)可以合理的運作。
同時本設(shè)計也存在著不足之處,后期可以在現(xiàn)有的功能基礎(chǔ)上進(jìn)行進(jìn)一步的擴(kuò)展,可以將售賣機(jī)連入互聯(lián)網(wǎng)中開設(shè)平臺,人們在平臺上可以注冊賬號,可以存儲回收塑料瓶獲取的貨幣,并在下次購物時用作優(yōu)惠等等。