【正文】
基于單片機(jī)的自動(dòng)售貨機(jī)系統(tǒng)設(shè)計(jì)目錄摘要………………………………………………………………………………………………2Aastract………………………………………………………………………………………… 3一、自動(dòng)售貨機(jī)的系統(tǒng)結(jié)構(gòu)……………………………………………………………………4……………………………………………………………… 4………………………………………………………… 5二、自動(dòng)售貨機(jī)的功能介紹……………………………………………………………………6……………………………………………………… 6……………………………………………………… 7三、硬件接口電路………………………………………………………………………………7………………………………………………………………………… 8………………………………………………………… 9 投幣系統(tǒng)………………………………………………………………………………… 9……………………………………………………………………………10 LCD顯示………………………………………………………………………………… 10……………………………………………………………………………… 14 ……………………………………………………………………14…………………………………………………………………………………14………………………………………………………………14…………………………………………………………………………………… 24 出貨功能的描敘………………………………………………………………………… 24 出貨程序流程圖………………………………………………………………………… 24 找錢(qián)系統(tǒng)……………………………………………………………………………………25……………………………………………………………………………25…………………………………………………………………………………25 四、設(shè)計(jì)仿真……………………………………………………………………………………26 Proteus簡(jiǎn)介………………………………………………………………………………… 26 仿真電路…………………………………………………………………………………… 26附錄………………………………………………………………………………………………33參考文獻(xiàn)…………………………………………………………………………………………48致謝………………………………………………………………………………………………49摘要本文詳細(xì)介紹了自動(dòng)售貨機(jī)系統(tǒng)的方案設(shè)計(jì)、硬件選擇、軟件規(guī)劃和編寫(xiě),并重點(diǎn)描述了自動(dòng)售貨機(jī)系統(tǒng)的工作原理、系統(tǒng)設(shè)計(jì)、軟件編程的原則和技巧。該系統(tǒng)以單片機(jī)AT89C51芯片為核心,采用集中控制方式實(shí)現(xiàn)了對(duì)自動(dòng)售貨機(jī)全過(guò)程的自動(dòng)控制。本系統(tǒng)選擇獨(dú)立式鍵盤(pán)按鍵作為貨物選擇端,實(shí)現(xiàn)了投幣總數(shù)的顯示功能。此外,系統(tǒng)程序采用keil軟件進(jìn)行程序的編寫(xiě)和編譯,該軟件具有編程簡(jiǎn)單、查錯(cuò)方便、閱讀容易等特點(diǎn)。匯編語(yǔ)言是程序的基本語(yǔ)言,具有容易理解,便于記憶和使用等特點(diǎn)。關(guān)鍵詞:自動(dòng)售貨機(jī),AT89C51,LCD顯示The Vending Machine Design Based On MCUAbstrctThis paper describes a vending machine system design, hardware selection, software planning and preparation, and describes the focus of the work vending machine system theory, system design, software programming principles and techniques. AT89C51 in the system as the core chip, the realization of a centralized control of the vending machine39。s automatic control the entire process. Choice of the system as a standalone keyboard keys to choose the goods side, the realization of the coin shows the total number of features. In addition, the system program using keil software to prepare and pile procedures, the software programming is simple, convenient error checking, easy to read and so on. Assembly language is the basic language program with easy to understand, easy to remember and use and so on.Key words:Vending Machines,AT89C51,LCD Display一、自動(dòng)售貨機(jī)的系統(tǒng)結(jié)構(gòu) 自動(dòng)售貨機(jī)是集光、機(jī)、電一體化的獨(dú)立機(jī)構(gòu),它只需要顧客投幣和按購(gòu)物鍵選擇即可自動(dòng)售貨及退找零錢(qián), 售貨機(jī)的工作原理是:(1) 從投幣口送入貨幣,然后通過(guò)傳感器采集數(shù)據(jù)、識(shí)別器判斷貨幣的真?zhèn)尾⑴袆e面值。(2)識(shí)別器把信息數(shù)據(jù)傳給通信模塊。(3)通信模塊與售貨機(jī)的主控系統(tǒng)通信,主控系統(tǒng)顯示面值,啟動(dòng)售貨機(jī)的面板鍵,顯示出哪個(gè)貨道有貨,哪個(gè)貨道已經(jīng)售完,并等待顧客按鍵選擇商品。(4)顧客選擇商品后,售貨機(jī)自動(dòng)把商品送出,等待顧客取走。(5)顯示余額,如果金額足夠多,顧客可以選擇找?guī)呕蛘呃^續(xù)買(mǎi)商品;如果款額不夠,售貨機(jī)經(jīng)過(guò)延時(shí)予以退幣。退幣分為兩種情況:一種是由貨幣識(shí)別器完成退紙幣,另一種是由硬幣的通信模塊完成退硬幣。(6)系統(tǒng)復(fù)零,完成售貨。綜合所述,售貨機(jī)系統(tǒng)可以分為三部分組成,即自動(dòng)售貨機(jī)的控制子系統(tǒng)、通訊子系統(tǒng)、硬幣器子系統(tǒng)以及紙幣器子系統(tǒng)。其中控制子系統(tǒng)是本設(shè)計(jì)研究重點(diǎn)。 自動(dòng)售貨過(guò)程的控制子系統(tǒng)簡(jiǎn)述 控制子系統(tǒng)由以下四個(gè)部分組成,分別是預(yù)設(shè)自動(dòng)售貨機(jī)系統(tǒng)、金額累計(jì)、可售指示和退幣系統(tǒng)、售完檢測(cè)系統(tǒng)、售出累計(jì)及自測(cè)功能系統(tǒng)。 預(yù)設(shè)自動(dòng)售貨機(jī)系統(tǒng)。自動(dòng)售貨機(jī)售出的同類(lèi)商品可分為若干品種,其售前設(shè)定價(jià)格須預(yù)先寄存在控制系統(tǒng)內(nèi)。售貨機(jī)的價(jià)格設(shè)置由按鍵和存儲(chǔ)器組成。通過(guò)按鍵選擇被設(shè)價(jià)商品的種類(lèi)及價(jià)格,并將價(jià)格寫(xiě)入存儲(chǔ)器中,該存儲(chǔ)器本身具有掉電保護(hù)功能,屬于軟件設(shè)置方式。此外,在簡(jiǎn)易售貨機(jī)中,由于出售商品的種類(lèi)少,價(jià)格變化下,使用幣種單一,也可以用硬件設(shè)置價(jià)格,才用撥碼開(kāi)關(guān)對(duì)應(yīng)方式,結(jié)構(gòu)簡(jiǎn)單,操作方便。 金額累計(jì)、可售指示和退幣系統(tǒng)??刂葡到y(tǒng)的核心CPU對(duì)識(shí)幣、退幣、無(wú)貨檢驗(yàn)及購(gòu)貨信號(hào)進(jìn)行循環(huán)檢查,當(dāng)有識(shí)幣信號(hào)后,將金額數(shù)值送入金額累計(jì)存儲(chǔ)器中進(jìn)行累計(jì),并通過(guò)串行接口使可售指示燈亮,提示購(gòu)貨。此時(shí)可以按下購(gòu)貨按鈕,由于 CPU檢測(cè)到有購(gòu)貨信號(hào)后,如金額累計(jì)器中的數(shù)值與預(yù)設(shè)價(jià)格相等,則通過(guò)并行擴(kuò)展接口驅(qū)動(dòng)電磁閥或者微電機(jī)驅(qū)動(dòng)出商品,并將金額累計(jì)存儲(chǔ)器清零,完成一次售貨過(guò)程,如累計(jì)金額大于預(yù)設(shè)價(jià)格時(shí),驅(qū)動(dòng)商品后,相減差額由信號(hào)驅(qū)動(dòng)退幣,實(shí)現(xiàn)退幣和找錢(qián)功能。 售完檢測(cè)系統(tǒng)。在自動(dòng)售貨機(jī)商品存儲(chǔ)存道下方按照有接觸行程開(kāi)關(guān),當(dāng)存儲(chǔ)存道有商品時(shí),壓下行程開(kāi)關(guān),自動(dòng)售貨機(jī)正常工作;當(dāng)商品出售完畢時(shí),行程開(kāi)關(guān)被釋放,向CPU發(fā)出無(wú)貨信號(hào),經(jīng)過(guò)檢測(cè)通過(guò)串行擴(kuò)展接口向相應(yīng)的售完指示燈發(fā)出信號(hào),使機(jī)身“售完”指示燈亮,此種商品自動(dòng)停售,即使投幣金額達(dá)到該道商品預(yù)設(shè)價(jià)格數(shù)值,可售按鈕仍然無(wú)法啟動(dòng)信號(hào),金額累計(jì)存儲(chǔ)器也不清零。 自動(dòng)售貨機(jī)售出累計(jì)及自測(cè)功能系統(tǒng)。該機(jī)CPU在每次售出商品后,向售出累計(jì)存儲(chǔ)器中累計(jì)售出數(shù)據(jù),通過(guò)自動(dòng)售貨機(jī)內(nèi)部的按鍵可在金額顯示窗口中讀到累計(jì)結(jié)果。此外,在按下自測(cè)功能鍵后,出現(xiàn)自測(cè)功能信號(hào),由外部按鍵操作,可檢測(cè)各商品存儲(chǔ)道的驅(qū)動(dòng)商品功能。二、自動(dòng)售貨機(jī)的功能介紹 此次設(shè)計(jì)的自動(dòng)售貨機(jī)的功能簡(jiǎn)介基本原理:貨幣識(shí)別器對(duì)所投貨幣進(jìn)行識(shí)別,根據(jù)金額將商品選擇權(quán)提供用戶,用戶選擇后,控制芯片發(fā)出指令將所選擇商品從儲(chǔ)備料道中送達(dá)取物口。其功能描述:貨物種類(lèi)一共設(shè)有3種,這3種物品分別對(duì)應(yīng)著3個(gè)不同的按鍵選擇,其中2元,3元,4元價(jià)格不等的物品各1種;自動(dòng)售貨機(jī)能夠投幣總數(shù)LCD顯示功能。如果累計(jì)投入的貨幣數(shù)目超過(guò)物品的預(yù)設(shè)價(jià)格,機(jī)器能夠?qū)崿F(xiàn)找錢(qián)功能;如果投入的貨幣沒(méi)有達(dá)到所選擇物品的預(yù)設(shè)價(jià)格時(shí),投入的錢(qián)將全部退還;在投入一次累加貨幣后選擇物品,如果投入的累加貨幣數(shù)目大大超過(guò)所選擇物品的預(yù)設(shè)單個(gè)價(jià)格時(shí),那么能夠?qū)崿F(xiàn)選擇同一個(gè)物品購(gòu)買(mǎi)多個(gè),在本設(shè)計(jì)中設(shè)為可以同時(shí)購(gòu)買(mǎi)2個(gè)或3個(gè)物品。本設(shè)計(jì)中有一共有7個(gè)按鍵選擇,其中3個(gè)是貨物選擇鍵,有2個(gè)是多選鍵(一次購(gòu)買(mǎi)2個(gè)或3個(gè)貨物),還有1個(gè)確定鍵和1個(gè)取消鍵。如果沒(méi)有按照預(yù)先設(shè)計(jì)的流程順序進(jìn)行按鍵選擇,自動(dòng)售貨機(jī)將會(huì)自動(dòng)返回操作前的狀態(tài),等待再次正確的按鍵選擇。 實(shí)現(xiàn)自動(dòng)售貨機(jī)的功能的設(shè)計(jì)思路采用單片機(jī)89C51作為中央控制元件;(XO)口作為識(shí)別貨幣輸入端;P1口作為貨物選擇選擇端(采用獨(dú)立式鍵盤(pán)做為選擇貨物端);采用P0口實(shí)現(xiàn)掉出貨物功能、找零功能;三、硬件接口電路 硬件接口電路,本次設(shè)計(jì)的自動(dòng)售貨機(jī)系統(tǒng)包括以下幾個(gè)部分: 中央控制元件89C5投幣及投幣總數(shù)LCD顯示系統(tǒng)、貨物選擇系統(tǒng)、出貨系統(tǒng)、找錢(qián)系統(tǒng)。在本次設(shè)計(jì)中,中央控制元件采用MCS51系列單片機(jī)中的89C51。. 89C51引腳圖 1.主要特性:與MCS51 兼容;4K字節(jié)可編程閃爍存儲(chǔ)器;壽命:1000寫(xiě)/擦循環(huán);數(shù)據(jù)保留時(shí)間:10年;全靜態(tài)工作:0Hz24Hz;三級(jí)程序存儲(chǔ)器鎖定;128*8位內(nèi)部RAM ;32可編程I/O線;兩個(gè)16位定時(shí)器/計(jì)數(shù)器 ;5個(gè)中斷源 ;可編程串行通道;低功耗的閑置和掉電模式 片內(nèi)振蕩器和時(shí)鐘電路 2.管腳說(shuō)明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。當(dāng)P1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流,當(dāng)P2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。當(dāng)P3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如下表所示: 口管腳 備選功能 RXD(串行輸入口) TXD(串行輸出口) /INT0(外部中斷0) /INT1(外部中斷1) T0(記時(shí)器0外部輸入) T1(記時(shí)器1外部輸入) /WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)