版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)摘要PAGE42基于單片機(jī)的自動售貨機(jī)摘要自動售貨機(jī)是自動化技術(shù)在人們生活中的重要應(yīng)用。隨著人們生活質(zhì)量的不斷提高,對自動售貨機(jī)的性能要求越來越高。自動售貨機(jī)的主要功能是通過人機(jī)對話的形式完成自動售貨這一過程。本文設(shè)計了一款以INTEL公司出品的80C51單片機(jī)為核心的自動售貨機(jī),并且著重詳細(xì)地介紹了自動售貨機(jī)的整體系統(tǒng)設(shè)計方案、硬件選擇基礎(chǔ)、軟件使用方法及技巧。以80C51作為CPU處理單元連接各個功能模塊;以4*4矩陣鍵盤作為輸入控制模塊對貨物進(jìn)行種類和數(shù)量的選擇以及模擬貨幣的投入功能;以LCD1602液晶作為顯示模塊來顯示當(dāng)前的購物狀態(tài)以及貨幣狀態(tài);以LED的顯示來表示當(dāng)前選擇貨物以及出貨的狀態(tài)。通過Protues7.5單片機(jī)電路原理圖進(jìn)行連接布線連接各個模塊;再用KeiluVision3專業(yè)編譯軟件完成源程序編譯和調(diào)試,最終進(jìn)行自動售貨機(jī)的實驗電路仿真來模擬自動售貨。結(jié)合工作原理、系統(tǒng)設(shè)計、軟件編譯和實驗仿真來實現(xiàn)自動售貨這一相關(guān)功能。關(guān)鍵詞自動售貨機(jī),80C51單片機(jī),編譯仿真攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)ABSTRACTABSTRACTTheautomaticallyvendingmachineisprovidedthethetheimportantapplicationsoftheautomationtechnologyinpeople'slives.Withthecontinuousimprovementofpeople'squalityoflife,theincreasinglyhighperformancerequirementsofvendingmachines.VendingmachinesThemainfunctionoftheformofman-machinedialoguevendingthisprocess.ThedesignedaproducedbyIntel80C51microcontrollerasthecorevendingmachines,andemphasizesthedetaileddescriptionoftheoverallsystemdesignofthevendingmachines,hardwareoptions,softwareandtheuseofmethodsandtechniques.As80C51CPUprocessingunitconnectedtothevariousfunctionalmodules;4*4matrixkeyboardasaninputcontrolmoduleofgoods,thechoiceofthetypeandnumberofinputandanalogcurrency;LCD1602LCDasthedisplaymoduletodisplaythecurrentstateofshoppingaswellascurrencystate;LEDdisplayindicatesthecurrentselectionofgoodsandshipmentstatus.BytheProtues7.5microcontrollercircuitdiagramconnectingwiringeachmodule;completesourcecodetocompileanddebugthentheKeiluVision3professionalcompilersoftware,eventuallyvendingmachineexperimentcircuitsimulationtosimulatetheautomaticvending.Combinedwiththeworkingprinciple,systemdesign,softwarecompilerandexperimentalsimulationtoachieveautomaticvendingrelatedfunctions.Keywordsautomaticvendingmachine,80C51MCU,compiledsimulation攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)目錄目錄TOC\o"1-3"\h\u8792摘要 I29942ABSTRACT II317751緒論 152321.1課題的研究背景及意義 1144181.2國內(nèi)外現(xiàn)狀及發(fā)展趨勢 1113611.3本課題研究的主要內(nèi)容 2323892自動售貨機(jī)的系統(tǒng)結(jié)構(gòu) 4217132.1自動售貨機(jī)的系統(tǒng)概述 493932.1.1自動售貨機(jī)的系統(tǒng)結(jié)構(gòu) 4209832.1.2自動售貨機(jī)的控制子系統(tǒng)概述 4296702.2自動售貨機(jī)的功能簡介 5203612.2.1自動售貨機(jī)的功能概述 5318052.2.2自動售貨機(jī)的設(shè)計思路 6275083自動售貨機(jī)的硬件設(shè)計 8249043.180C51的簡介 828323.1.180C51的基本概述 8109753.1.280C51的引腳功能介紹 8305103.2LCD1602字符型液晶簡介 10177923.2.1LCD1602的概述 10239313.2.2LCD1602的硬件結(jié)構(gòu) 10303733.2.3LCD1602的指令說明 1125673.2.4LCD1602的基本時序操作 13278243.34*4矩陣鍵盤簡介 154983.3.14*4矩陣鍵盤的概述 1539433.3.24×4矩陣鍵盤的硬件結(jié)構(gòu) 15124263.4貨幣識別系統(tǒng) 1674393.4.1對硬幣的識別 1688043.4.2對紙幣的識別 17168103.5貨物選擇系統(tǒng) 18261673.6出貨及找零系統(tǒng) 192324系統(tǒng)的軟件流程圖設(shè)計 21106174.1自動售貨機(jī)貨物選擇流程圖 21206764.2自動售貨機(jī)投幣系統(tǒng)流程圖 2259144.3自動售貨機(jī)出貨找零系統(tǒng)流程圖 23291585系統(tǒng)軟件仿真 24288735.1PROTEUS的簡介 24154255.2仿真結(jié)果 25244836結(jié)論 282446參考文獻(xiàn) 298011附錄A:C源程序 3029830附錄B:系統(tǒng)總圖 4232433致謝 43攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)1緒論攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)1緒論1緒論1.1課題的研究背景及意義如今,在全世界范圍內(nèi)自動售貨機(jī)方式多樣靈活,例如實行聯(lián)機(jī)方式,通過電話網(wǎng)絡(luò)線路將自動售貨機(jī)內(nèi)的庫存信息及時地傳送各營業(yè)點的電腦中,目的就是為了保證自動售貨機(jī)中的商品推送、商品選的定補充能夠更加精確地進(jìn)行。此外,自動售貨機(jī)的開發(fā)從能源的節(jié)省的角度出發(fā),生產(chǎn)制造了更加合理化的節(jié)能型飲料自動售貨機(jī)。例如在夏季電力消費高峰期,這種機(jī)型的自動售貨機(jī)能自動保持低溫而不是靠打開冷卻器來維持,與以往的老式自動售貨機(jī)相比更加凸顯了它的特點,它能夠在達(dá)到相同的效果下節(jié)約更多的電力。這些充分說明了該行業(yè)為了自動售貨機(jī)走向信息化并進(jìn)一步實現(xiàn)合理化所作出的不懈努力。進(jìn)入21世紀(jì)后,自動售貨機(jī)也將進(jìn)一步向節(jié)省資源和能源以及高功能化的方向發(fā)展。面對當(dāng)前快速商品社會的環(huán)境,人們的時間觀念越來越重,如何才能更快地購買到顧客自己所需的商品,這都是顧客和商家共同面臨的問題。隨著科技的發(fā)展及人們生活水平的顯著提高,自動售貨機(jī)市場的發(fā)展越來越呈現(xiàn)出多元化及個性化的需求。通過自動售貨機(jī)進(jìn)行自助購物正逐漸成為市民的一種新的消費時尚。同時,這種快捷方便的購物方式也滿足了人們在當(dāng)今科技高速發(fā)展的現(xiàn)代社會追求高品質(zhì)生活的需要。自動售貨機(jī)在人群幾種的區(qū)域如城市商業(yè)區(qū)、風(fēng)景區(qū)、寫字樓大廳、車站、碼頭、繁華街道等公共場所的布設(shè)能夠美化亮化城市環(huán)境,方便群眾生活,已經(jīng)成為城市各角落的一道亮麗風(fēng)景線。自動售貨機(jī)已在國內(nèi)普及,并成為城市現(xiàn)代文明程度的一種象征性標(biāo)志。自動售貨機(jī)作為自動化商業(yè)機(jī)械的代表被廣泛應(yīng)用于公共場所,它是我國生產(chǎn)技術(shù)機(jī)械化、智能化和自動化的體現(xiàn)。從廣義來講是投入硬幣、紙幣、信用卡等后便可以銷售商品的機(jī)械,從狹義來講就是自動銷售商品的機(jī)械。從供給的條件看,自動售貨機(jī)可以充分補充人力資源的不足,適應(yīng)消費環(huán)境和消費模式的變化,24小時無人售貨的系統(tǒng)可以更省力,運營時需要的資本少、面積小,有吸引人們購買好奇心的自身性能,可以很好地解決人工費用上升的問題等各項優(yōu)點。自動售貨機(jī)的誕生完善了市政的建設(shè),符合現(xiàn)代化建設(shè)的需要,提高了經(jīng)濟(jì)活動效率,節(jié)約勞動力,把有限的人力物力集中到其他資源上。1.2國內(nèi)外現(xiàn)狀及發(fā)展趨勢在我國國內(nèi),自動售貨機(jī)在所謂的掀起了“第三次零售業(yè)革命”后已經(jīng)成為了一個躋身于超市和百貨商店之上的具有非常廣闊的前景的新興行業(yè)。從形式上的更新到內(nèi)容上的豐富都帶來了很大突破。因為受地域影響小,自動售貨機(jī)售賣的商品種類可以根據(jù)不同的地區(qū)來具體供應(yīng),包括各種飲料、零食、電子產(chǎn)品、計生用品等都可以作為其銷售的對象。并且,從這種智能自動銷售系統(tǒng)中,我們可以很精確的讀取貨物庫存、商品銷量、物流詳情等信息。讓管理、銷售人員更輕松地開展具體工作。此外,與老式的人為銷售相比,自動售貨機(jī)可以支持多種電子支付模式,比如用信用卡支付就能更方便地進(jìn)行較大金額的交易支付、結(jié)算。在20世紀(jì)初,通過手機(jī)、英特網(wǎng)購物的消費方式在國內(nèi)開始相繼出現(xiàn),因為這種需求的誕生,國內(nèi)的相關(guān)公司已著手研制出此種類型的自動售貨機(jī)。這樣的新興自動售貨機(jī)在方便顧客消費購物的同時也充當(dāng)著廣告?zhèn)鞑サ男滦兔浇?。相較于中國,國外的自動售貨機(jī)行業(yè)發(fā)展比較成熟和發(fā)達(dá)。例如從自動售貨機(jī)的機(jī)型上來說,在日本國內(nèi)就已經(jīng)達(dá)到了2000多種。而且所售的商品種類已經(jīng)高達(dá)6000多種。更是在由于無所不在的自動售貨機(jī)為人們提供了24小時的服務(wù)而特別受歡迎。而在比較發(fā)達(dá)的美國,光是提供自動售貨機(jī)服務(wù)的運營商就多達(dá)10800家,并且在與各大飲料、食品公司的合作基礎(chǔ)上積累了想當(dāng)多的經(jīng)驗。在英國,為了更具針對性解決投幣的麻煩,一些信用機(jī)構(gòu)和某些銀行還量身制定了一種自動售貨機(jī)卡,在購貨的時候,用刷卡代替?zhèn)鹘y(tǒng)的投幣從而能更方便快捷地進(jìn)行購物。到2002年,占全國人口的20%以上的英國人都開通了這種自動售貨機(jī)卡。自動售貨機(jī)在國內(nèi)外的受歡迎程度已經(jīng)達(dá)到一個高度。自動售貨機(jī)在城市商業(yè)區(qū)、寫字樓大廳、風(fēng)景區(qū)、車站、碼頭、繁華街道等公共場所的布設(shè)能夠美化亮化城市環(huán)境,方便群眾生活,已經(jīng)成為城市各角落的一道亮麗風(fēng)景線。自動售貨機(jī)已在國內(nèi)普及,并成為城市現(xiàn)代文明程度的一種象征性標(biāo)志。隨著經(jīng)濟(jì)發(fā)展,傳統(tǒng)的固定地點人員售貨方式暴露出許多弊端:人力資源需求大;受所需服務(wù)地點,地理條件的限制;而且在服務(wù)時間上不能最大限度的服務(wù)于消費者。相信隨著社會的發(fā)展,人們對于生活高效性的重實也會逐漸提高,自動售貨機(jī)也會受到更多人的關(guān)注和喜愛?,F(xiàn)在,自動售貨機(jī)產(chǎn)業(yè)正走向信息化并進(jìn)一步實現(xiàn)合理化。自動售貨機(jī)的出現(xiàn)解決了這些難題,自動售貨機(jī)必然朝著操作簡單化、監(jiān)控管理智能化、功耗節(jié)能化和性能多樣化方面發(fā)展。1.3本課題研究的主要內(nèi)容本課題研究的是通過核心單片機(jī)80C51控制的自動售貨機(jī)。涉及到用keilUvision3來進(jìn)行C語言程序的編譯調(diào)試,通過protues7.5電路連接來設(shè)計系統(tǒng)電路。通過80C51與輸入模塊、輸出顯示模塊、找零模塊、顯示模塊的連接來系統(tǒng)模擬自動售貨這一功能。設(shè)計從能根據(jù)投入的錢幣自動售貨的機(jī)器。用4*4矩陣鍵盤來模擬貨物種類以及數(shù)量的選擇,再通過鍵盤其他按鍵來模擬投幣功能。用LCD1602作為輸出顯示模塊,通過液晶顯示來明確按鍵的功能以及自動售貨機(jī)的購貨狀態(tài)等。用LED燈來表示貨物的種類。因為貨幣識別功能是在自動售貨機(jī)的外部硬件電路方面來加以具體實施的,而本設(shè)計是模擬自動售貨機(jī)的功能,所以不考慮貨幣識別的模塊設(shè)計,在這里只作原理介紹。攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)2自動售貨機(jī)的系統(tǒng)結(jié)構(gòu)
2自動售貨機(jī)的系統(tǒng)結(jié)構(gòu)2.1自動售貨機(jī)的系統(tǒng)概述2.1.1自動售貨機(jī)的系統(tǒng)結(jié)構(gòu)自動售貨機(jī)是集光、機(jī)、電一體化的自動售貨裝置,能夠獨立完成自動售貨這一功能。自動售貨機(jī)的工作原理是:在初始化的界面等待顧客按鍵選擇貨物的種類和數(shù)量顧客投入貨幣,按下確定購買鍵后等待售貨機(jī)自動計算所購商品的總價,然后提示顧客投入貨幣。所投的貨幣經(jīng)過外部硬件檢測傳感器檢測真假后累加計數(shù)。若顧客確認(rèn)購買系統(tǒng)則跳轉(zhuǎn)到下一步驟,反之取消購買即退出貨幣返回到主界面,等待顧客下一步操作。自動售貨機(jī)通過貨幣的總價與和所購商品的總價的差值來進(jìn)行出貨找零。總體工作原理如圖2.1:圖2.1自動售貨機(jī)的總體工作原理圖2.1.2自動售貨機(jī)的控制子系統(tǒng)概述自動售貨機(jī)的控制子系統(tǒng)由以下幾個部分組成,分別是預(yù)設(shè)自動售貨系統(tǒng)、金額累加和找零系統(tǒng)、售完檢測系統(tǒng)、售出累計及反饋功能系統(tǒng)。預(yù)設(shè)自動售貨機(jī)系統(tǒng):自動售貨機(jī)出售的商品可分為若干個品種,在其售前設(shè)定價格時必須預(yù)先寄存在控制系統(tǒng)內(nèi)。設(shè)定的方式原理:商品的價格設(shè)置由按鍵和存儲器組成,通過按鍵選擇被設(shè)價商品的種類及價格,并將設(shè)定的價格寫入存儲器中,存儲器本身需具有斷電保護(hù)記憶功能,此為采用軟件。此外,如果在自動售貨機(jī)中,在出售商品的種類少,價格變化小,使用幣種單一的情況下,也可以用比較簡單的價格設(shè)定方法硬件設(shè)置,即采用撥碼開關(guān)對應(yīng)的方式設(shè)置。金額累加和找零系統(tǒng):控制系統(tǒng)的核心CPU對識幣、退幣、無貨檢驗及購貨信號進(jìn)行循環(huán)檢查。如果顧客投入貨幣,識幣器檢測到貨幣信號后,通過通信系統(tǒng)把識別的貨幣數(shù)值信號送入累計存儲器器中進(jìn)行累加計數(shù)。要是貨幣數(shù)值滿足購貨需求則通過串行接口提示購貨,售貨機(jī)則通過并行擴(kuò)展接口驅(qū)動電磁閥或者微電機(jī)驅(qū)動送出貨物,同時存儲器計數(shù)清零跳入到找零系統(tǒng),自動售貨完成。如果貨幣數(shù)值不滿足購貨需求則提示顧客繼續(xù)投幣或者取消購貨,取消購貨后由售貨機(jī)退出投入的貨幣返回初始化界面。貨物檢測系統(tǒng):為了貨物供應(yīng)充足,把接觸開關(guān)和行程開關(guān)安裝在自動售貨機(jī)貨物存儲存道的下方,當(dāng)存儲存道尚有貨物時,行程開關(guān)保持閉合,CPU控制自動售貨機(jī)正常售貨。貨物供應(yīng)不足的時候,行程開關(guān)自動斷開,向CPU發(fā)出缺貨信號,經(jīng)過檢測后發(fā)送到外部電機(jī)或者電磁閥來推動外部貨物進(jìn)入存儲道達(dá)到自動添加貨物的目的,以保持貨源充足。售出累計及反饋功能系統(tǒng):自動售貨機(jī)的CPU在每次售出一種貨物后,由通信系統(tǒng)向出貨存儲器中累計已經(jīng)售出的數(shù)據(jù),通過自動售貨機(jī)內(nèi)部控制的按鍵可以顯示出累計數(shù)據(jù)以掌握銷售情況。此外,由外部按鍵操作在按下自測功能鍵后,出現(xiàn)自測功能信號,可以通過檢測結(jié)果查看各個模塊的功能情況,也可以檢測自動售貨機(jī)的貨物存儲道驅(qū)動功能。2.2自動售貨機(jī)的功能簡介2.2.1自動售貨機(jī)的功能概述基本原理:通過矩陣鍵盤來選擇貨物的種類與數(shù)量過后自動售貨機(jī)提示投幣。自動售貨機(jī)的貨幣識別器對所投貨幣進(jìn)行識別,根據(jù)金額大小然后將商品選擇權(quán)通過LCD液晶顯示給客戶,客戶按鍵選擇后,CPU控制芯片發(fā)出指令將所選擇商品從儲備料道中送達(dá)取物口。功能描述:貨物種類一共設(shè)有8種,這8種商品通過選擇按鍵進(jìn)行選擇確認(rèn),通過數(shù)量選擇按鍵確定購買數(shù)量,價格規(guī)定為1-8元不等;貨幣識別器能夠識別1元硬幣、1元紙幣、5元紙幣、10元紙幣、20元紙幣50元紙幣以及100元紙幣。在規(guī)定的時間內(nèi),投了幾次貨幣后,貨幣能夠?qū)崿F(xiàn)自動累加功能,這樣設(shè)計會把投入的所有貨幣總額數(shù)目數(shù)據(jù)傳遞到中央控制元器件進(jìn)行處理;在超過規(guī)定時間后投幣口自動關(guān)閉,數(shù)據(jù)處理單元按照投幣總數(shù)和購買的數(shù)量和價格乘積來進(jìn)行加減運算累,實現(xiàn)購買和找?guī)殴δ?。?dāng)投入的貨幣總值小于商品總金額時,則不能進(jìn)行購貨,投入的錢將全部退還。本設(shè)計中有一共有16個按鍵選擇,其中有兩個是貨物選擇鍵,有兩個是數(shù)量選擇鍵,此外還有6個貨幣投入鍵1個確認(rèn)鍵和1個取消鍵。2.2.2自動售貨機(jī)的設(shè)計思路本設(shè)計以這樣的工作流程開始自動售貨機(jī)的自動售貨過程:啟動系統(tǒng),開始待機(jī);顧客通過按鍵選擇商品的種類以及數(shù)量并確認(rèn);售貨機(jī)檢查是否有足夠的貨物并通過LCD提示等待顧客投幣;顧客投入貨幣,售貨機(jī)自動檢測金額是否足夠;金額足夠多,售貨機(jī)將推出顧客選擇的相應(yīng)數(shù)量的商品,若金額不足則直接退還貨幣;推出商品,售貨機(jī)轉(zhuǎn)入找零系統(tǒng)退出余幣;系統(tǒng)自動復(fù)位,完成售貨;系統(tǒng)采用硬件設(shè)計思路如圖2.3:采用單片機(jī)80C51作CPU采用P3.5口作為投幣的輸入端;采用LCD1602液晶為顯示模塊:采用4*4矩陣鍵盤連接P1口作為貨物選擇選擇端;采用P0口實現(xiàn)出貨、找零功能;圖2.3自動售貨機(jī)系統(tǒng)原理圖硬件端口的選擇思路:輸入:由于本設(shè)計模擬輸入功能是由4*4矩陣鍵盤來完成的,而鍵盤連接在80C51的P1口上,則貨幣投入設(shè)定為:P1口的按鍵值為0X04的時候代表1元貨幣的投入;P1口的按鍵值為0X05的時候代表5元貨幣的投入;P1口的按鍵值為0X06的時候代表10元貨幣的投入;P1口的按鍵值為0X07的時候代表20元貨幣的投入;P1口的按鍵值為0X08的時候代表50元貨幣的投入;P1口的按鍵值為0X09的時候代表100元貨幣的投入;P1口的按鍵值為0X0f的時候代表購物確定“OK”按鈕;P1口的按鍵值為0X0e的時候代表購物取消“NO”按鈕;本設(shè)計假定自動售貨機(jī)的商品種類為8種,價格為1、2、3、4、5、6、7、8元。每一個價格代表一種商品且一經(jīng)售出就由外部電機(jī)自動完成補貨。規(guī)定每次最多只能購買10個。貨物選擇:P1口的按鍵值為OX00的時候代表選擇貨物價格“price+”;P1口的按鍵值為OX01的時候代表選擇貨物價格“price-”;P1口的按鍵值為OX02的時候代表選擇貨物數(shù)量“num+”;P1口的按鍵值為OX03的時候代表選擇貨物價格“num-”;輸出:選擇商品由P0口控制的相應(yīng)LED指示燈:選擇商品1用P0.0控制D1LED燈亮;選擇商品2用P0.1控制D2LED燈亮;選擇商品3用P0.2控制D3LED燈亮;選擇商品4用P0.3控制D4LED燈亮;選擇商品5用P0.4控制D5LED燈亮;選擇商品6用P0.5控制D6LED燈亮;選擇商品7用P0.6控制D7LED燈亮;選擇商品8用P0.7控制D8LED燈亮;顯示:本設(shè)計的顯示端口由P2端口和P3.2(RS)、P3.3(RW)、P3.4(E)控制LCD1602液晶來顯示購貨狀態(tài),用P0口控制LED燈表示貨物種類。通過它可以顯示購貨的種類、數(shù)量、總價以及找零等。攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)3自動售貨機(jī)的硬件設(shè)計
3自動售貨機(jī)的硬件設(shè)計3.180C51的簡介3.1.180C51的基本概述由INTEL公司出品的MCS-51系列的80C51其實用性非常高。由于它是采用CHMOS的工藝技術(shù)制造,所以它是一款穩(wěn)定性很高的高性能8位單片機(jī),是HCMOS中的最基本的產(chǎn)品之一。在制作工藝的程中不僅繼承和擴(kuò)展了先前單片機(jī)的指令系統(tǒng)和體系結(jié)構(gòu)更是把HMOS的高速高密度的技術(shù)特點和CHMOS的低功耗特點相結(jié)合。為了滿足需求,在80C51內(nèi)部置入CPU、RAM(128字節(jié))、I/O(32個雙向輸入輸出)、定時器/計數(shù)器(16位)、串行通信口、兩級中斷結(jié)構(gòu)以及片內(nèi)時鐘震蕩電路。此外,它還可以通過選擇空閑和掉電的方式用于低功耗模式來進(jìn)行工作,空閑模式下保持串行口、中斷系統(tǒng)、RAM和定時器正常工作而同時凍結(jié)CPU來保證其正常運行。掉電模式下,自動保存RAM數(shù)據(jù),時鐘震蕩停止、芯片的其他功能停止工作。圖3.180C51單片機(jī)內(nèi)部基本結(jié)構(gòu)3.1.280C51的引腳功能介紹圖3.280C51的引腳圖80C51單片機(jī)的40個引腳大致可分為4類:電源、時鐘、控制和I/O引腳。電源:VCC-芯片電源,接+5V;VSS-接地端。時鐘:XTAL1、XTAL2晶體振蕩電路反相輸入端和輸出端??刂凭€:控制線共有4根:ALE/PROG:地址鎖存允許/片內(nèi)EPROM編程脈沖ALE功能用來鎖存P0口送出的低8位地址;PROG功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,此引腳輸入編程脈沖。PSEN:外ROM讀選通信號。RST/VPD(復(fù)位/備用電源):RST(Reset)功能是復(fù)位信號輸入端;VPD功能是在Vcc掉電情況下,接備用電源。EA/Vpp(內(nèi)外ROM選擇/片內(nèi)EPROM編程電源):EA功能:內(nèi)外ROM選擇端;Vpp功能:片內(nèi)有EPROM的芯片,在EPROM編程期間,施加編程電源Vpp。I/O線:80C51共有4個8位并行I/O端口即P0、P1、P2、P3口,共32個引腳;P3口還具有第二功能——用于特殊信號輸入輸出和控制信號(屬控制總線)P0口輸入時需要接上拉電阻才能置1。在每次使用單片機(jī)之前,我們都要使單片機(jī)復(fù)位,讓CPU以及其他功能部件都處于一個確定的初始狀態(tài),以消除上一次用戶的操作對本次用戶操作的影響。51的RST引腳是復(fù)位信號的輸入端。復(fù)位信號是高電平有效,持續(xù)時間要有24個時鐘周期以上。例如:若MCS-51單片機(jī)的時鐘頻率為12MHz,則復(fù)位脈沖寬度至少應(yīng)為2us。通常,80C51的復(fù)位有自動上電復(fù)位和人工按紐復(fù)位兩種自動上電復(fù)位電路的工作原理是:電容在通電的時候相當(dāng)于短路情況,導(dǎo)致RST引腳上的電位為高電平,這樣電容會因為電阻被充電,然后RST端逐漸降低電壓直到變?yōu)榈碗娖?,從而使單片機(jī)開始正常工作。由于自動售貨機(jī)的功能需求,本次設(shè)計采用自動上電復(fù)位電路。3.2LCD1602字符型液晶簡介3.2.1LCD1602的概述LCD1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。市面上字符液晶大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,在各類儀表和低功耗系統(tǒng)中得到廣泛的應(yīng)用。根據(jù)顯示內(nèi)容可以分為字符型液晶,圖形液晶。根據(jù)顯示容量又可以分為單行16字,2行16字,兩行20字等等。3.2.2LCD1602的硬件結(jié)構(gòu)圖3.3LCD1602的基本結(jié)構(gòu)圖引腳說明:LCD1602一般是16個引腳第1腳:VSS為接地電源。第2腳:VDD接5V正電源。第3腳:VEE為液晶顯示器對比度調(diào)整端,通過連接電源正負(fù)來調(diào)節(jié)對比度的強(qiáng)弱。當(dāng)連接電源正端時對比度最弱,反之連接負(fù)極則最高。對比度太高時會產(chǎn)生所謂的“鬼影”,在連接時可以通過接一個電位器來調(diào)整對比度。第4腳:RS為數(shù)據(jù)命令選擇端,電平為H時選擇數(shù)據(jù)寄存器、電平為L時選擇指令寄存器。第5腳:RW為讀寫選擇端,電平為H時進(jìn)行讀操作,電平為L時進(jìn)行寫操作。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15~16腳:空腳或背燈電源,15腳背光正極,16腳背光負(fù)極。3.2.3LCD1602的指令說明LCD1602的初始化設(shè)置:顯示模式設(shè)置如表3.1所示:表3.1顯示模式設(shè)置顯示開/關(guān)及光標(biāo)位置如表3.2所示:表3.2顯示開/關(guān)及光標(biāo)位置數(shù)據(jù)控制:控制器內(nèi)部設(shè)有一個數(shù)據(jù)地址指針,可以根據(jù)它來訪問內(nèi)部的全部字節(jié)。數(shù)據(jù)指針設(shè)置如表3.3所示:表3.3數(shù)據(jù)指針設(shè)置讀數(shù)據(jù):輸入時RW、RS、E均等于H,輸出D0-D7=數(shù)據(jù)寫數(shù)據(jù):輸入時RW=L、RS=H、D0-D7=數(shù)據(jù)、E=高脈沖,輸出無;其他設(shè)置如表3.4所示:表3.4其他設(shè)置LCD1602液晶模塊的讀寫指令:指令1:清除顯示,指令碼為01H,清楚顯示數(shù)據(jù);指令2:光標(biāo)返回到地址00H即光標(biāo)復(fù)位;指令3:光標(biāo)和顯示位置設(shè)置,光標(biāo)按方向移動,高/低電平右/左移,S:屏幕上所有文字是否左移或右移,高電平移動,低電平不移動;指令4:顯示開關(guān)控制D:控制整體的顯示開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示。C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍;指令5:光標(biāo)或顯示移位S/C:高電平時顯示移動的文字,低電平時移動光標(biāo);指令6:功能設(shè)置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時為雙行顯示,F(xiàn):低電平時顯示5X7的點陣字符,高電平時顯示5X10的顯示字符;指令7:字符發(fā)生器RAM地址設(shè)置;指令8:DDRAM地址設(shè)置;指令9:讀忙信號和光標(biāo)地址BF:忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或數(shù)據(jù),如果為低電平表示不忙;3.2.4LCD1602的基本時序操作LCD1602的基本時序操作以及對應(yīng)的狀態(tài)和輸入輸出如表3.5所示:
表3.5基本時序操作及對應(yīng)狀態(tài)的輸入輸出LCD1602的讀寫時序操作如圖3.4、3.5所示:圖3.4讀時序操作圖圖3.5寫時序操作圖3.34*4矩陣鍵盤簡介3.3.14*4矩陣鍵盤的概述4*4矩陣鍵盤又是4*4行列鍵盤,它是分別用4條I/O線作為行線和列線組成的鍵盤。每個鍵的位置設(shè)置在每條行線和列線在交叉處上,可以知道4*4矩陣鍵盤共有4*4=16個按鍵。這樣的設(shè)置可以有效地提高單片機(jī)I/O口的利用率,與獨立式按鍵相比大大降低了接口占用率。當(dāng)設(shè)計過程中需要按鍵個數(shù)要求比較大時,為了釋放出I/O端口來供其他連接需要時往往采用這種矩陣式按鍵來解決問題。在矩陣鍵盤中,行列線均通過一個按鍵加以連接取代了直接交叉相連。這樣,在很大的程度上增加了按鍵數(shù),而直接將端口線連接在鍵盤上則會減少一倍的按鍵數(shù)量。在需要很多按鍵的設(shè)計中采用矩陣鍵盤明顯地比獨立式按鍵更合理,而且行列線越多效果越明顯。3.3.24×4矩陣鍵盤的硬件結(jié)構(gòu)圖3.64*4矩陣鍵盤的基本結(jié)構(gòu)圖在應(yīng)用矩陣鍵盤的設(shè)計中要編譯程序的時候必定會計算出每個按鍵的接口地址是多少以方便編譯,在矩陣鍵盤的按鍵確定上我們可以采用兩種方法:行掃描法:行掃描法是我們常用的一種識別按鍵的方法,這種方法需要我們逐行逐列進(jìn)行掃描查詢,分為兩個步驟:將連接的全部行線置為低電平,然后檢測所有列線的電位狀態(tài)。只要某一列列線電位為低電平,就表示矩陣鍵盤中這列有鍵被按下,并且在被按下的閉合的按鍵在低電平列線與全部根行線相交叉的4個按鍵之中。反之,若所有列線電位均為高電平,則表示矩陣鍵盤中沒有按鍵被按下;通過前一可知按鍵處在判斷的4個按鍵之中,在確認(rèn)了有按鍵被按下后,就可進(jìn)入到確定具體被閉合鍵的操作。然后再依次將所有行線電位置為低電平,即只有一根行線為低電平,其余行線則為高電平。在確定了某根行線電位為低電平后,再逐行檢測所有列線的電平狀態(tài)。若某根列線的電位為低電平,則被按下的按鍵就處在這根列線和低電平行線的交叉處;高低電平翻轉(zhuǎn)法:這種確定矩陣鍵盤按鍵的方法也是非常有效的方法,也分為兩個步驟:先讓所連接的端口高四位為高(1),低四位為低(0),若矩陣鍵盤上有按鍵被按下,則高四位中會有一個電平從1被翻轉(zhuǎn)到0,低四位則不會改變電平狀態(tài),然后即可確定矩陣鍵盤上被按下的按鍵的所在行的具體位置;讓讓所連接的端口高四位為低(0),低四位為高(1)。若矩陣鍵盤上有按鍵被按下,則低四位中會會有一個電平1翻被轉(zhuǎn)為0,高四位則不會改變電平狀態(tài),然后即可確定矩陣鍵盤上被按下的按鍵的所在列的具體位置。綜合這兩個步驟就可以判斷出被按下的按鍵具體位置;3.4貨幣識別系統(tǒng)3.4.1對硬幣的識別目前在國內(nèi),對于硬幣的識別可采用多種方法,比如激光掃描、應(yīng)變片測重量、光電管檢測大小等,然而在自動售貨機(jī)中采用結(jié)構(gòu)簡單、成本低、測量準(zhǔn)確及其非接觸測量等優(yōu)點集一身的渦流傳感器檢測。電渦流檢測原理:以高頻的電信號通過一個線圈,在這個過程中產(chǎn)生變化的磁場通過硬幣的表面即變化磁通通過硬幣的表面,相應(yīng)地硬幣表面上產(chǎn)生電渦流,并產(chǎn)生反向的變化磁場,以削弱原來線圈產(chǎn)生出來的磁場。然后根據(jù)激勵磁場線圈幅值的變化,通過變化的給定值即可測出真假硬幣。圖3.7電渦流檢測電路原理圖圖3.7中Q2所需要的頻率由Q1、L、C4等元件組成的振蕩電路所提供,從而在C點產(chǎn)生一正弦波振蕩信號;然后再A、B兩點外接一個傳感線圈,當(dāng)有硬幣投入通過線圈時會改變C點原有信號的幅值大小,而真假硬幣通過線圈時改變的幅值大小是不一樣的,通過對比設(shè)定給定真幣的參照值來判斷真假硬幣。但是在實際應(yīng)用中,由于某些條件的原因會影響到電子線路元器件的判定值,比如溫漂的影響,由于材質(zhì)的差異比較小,從而導(dǎo)致信號值得差距變小,若受到的溫漂影響稍微增強(qiáng)一點,那么則很難精確地確檢測出假幣,為此可以采用電橋的方法來進(jìn)行改善彌補,從而減小由溫漂造成的干擾。圖中L3、L4都是激勵線圈,L3上方放置一個標(biāo)準(zhǔn)的1元硬幣或其它用低碳鋼做成的圓片,L4為檢測有無硬幣通過和是否為真假幣的激勵線圈,A、B兩信號通過通信模塊同時送到后續(xù)的運算放大器之中進(jìn)行相減,從而抵消因溫漂所造成的影響。3.4.2對紙幣的識別我們知道,在硬件數(shù)據(jù)采集設(shè)備中的電源為發(fā)光二極光,所發(fā)出光的波長峰值在紅外線所在的波段,但又不是單光譜,其中紅外光成分達(dá)到90%以上,因此,光源輻射光中起主要作用的實際上是紅外輻射。實驗中對各種紙幣的特征的識別也主要是根據(jù)紙幣的表面特征對紅外輻射的敏感。這主要是因為不同的紙幣表面特征不同,所以在相同的光輻射照耀下會呈現(xiàn)不同的反映,從而可以從以下幾個方面來鑒別紙幣:鈔票的紙張材料是特定的,所以同一種面值的鈔票在特性上具有一定程度的相同,可以設(shè)定這個面值的真幣來作為參考;鈔票表面的圖案異同,對于同種面值的真鈔而言,其表面的圖案應(yīng)該完全相同,而不同面值的真鈔表面刻印的圖案有較大區(qū)別,所以可以根據(jù)上述的光輻射理論來判定,也可以根據(jù)它們對相同光輻射的不同反映來判斷面值歸屬;因為鈔票在市場的使用過程中會出現(xiàn)不同程度的磨損或者沾染上污垢,這種情況下的鈔票表面的特征會發(fā)生直接的改變,接受光輻射的特性就會相應(yīng)地產(chǎn)生變化。因此,光輻射可以反映出鈔票的新舊程度;相對于偽幣,因為偽幣的紙張?zhí)匦院茈y滿足真鈔要求,而且偽幣中某些圖案達(dá)不到真鈔的實際標(biāo)準(zhǔn),如水印是在造紙過程中通過特征工藝抄制上去的無色圖案,而偽鈔的水印則是通過一定方式軋印或描繪上去的等等,這都能在鈔票對光輻射接受的信息中反映出來。本系統(tǒng)中采用發(fā)光二極管作為光源,所發(fā)出的光的波長峰值在紅外波段,并且有90%以上是紅外線,但不是單光譜,還有其它光譜范圍的光線。接受管使用NPN型的光電三極管,工作在紅外波長范圍內(nèi),發(fā)射管和接受管分別有6個,采用光的透射方式,采集數(shù)據(jù)時,完全對應(yīng)位于鈔票的兩側(cè),可以做到精確檢測。但是光輻射在傳輸過程中,會受外界環(huán)境的影響而產(chǎn)生能量損失。比如經(jīng)過大氣傳輸時,就會受到大氣成分的吸收,而在不同的環(huán)境條件下,大氣的成分含量有某些程度的變化,因而導(dǎo)致能量損失的程度不同。所以光輻射到鈔票介質(zhì)的傳輸距離越短,所造成的能量損失的影響就越微小,如果硬件的性能較好,外界的這種影響可以不予考慮。當(dāng)貨幣投入后經(jīng)過識別,識別出信號后,偽幣和異物被排出真幣按面值由幾組分配電磁閥分配到不同存幣腔體內(nèi)備用。當(dāng)收到退幣找零電信號后,通過退幣電磁閥或者退幣電機(jī)拉桿,將存幣腔內(nèi)下部依電信號程序退出,完成自動售貨機(jī)的退幣找零功能。3.5貨物選擇系統(tǒng)貨物選擇系統(tǒng)主要通過矩陣鍵盤按鍵操作來完成。4*4矩陣鍵盤是自動售貨機(jī)中的輸入裝置,價格低廉,結(jié)構(gòu)簡單,使用方便,在單片機(jī)應(yīng)用系統(tǒng)中得到廣泛地應(yīng)用。鍵盤按照接口原理可分為編碼鍵盤與非編碼鍵盤兩類,它們的主要區(qū)別是識別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤主要是用硬件來實現(xiàn)對鍵的識別,非編碼鍵盤主要是由軟件來實現(xiàn)鍵盤的定義與識別。CPU可以采用查詢或中斷方式了解有無將鍵輸入,并檢查是哪一個鍵按下,然后通過跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。一個完整的矩陣鍵盤控制程序應(yīng)該具備以下功能:能夠準(zhǔn)確檢測鍵盤上有無按鍵按下,為了消除鍵盤的按鍵機(jī)械觸點抖動可以采取硬件或軟件措施;有良好的邏輯處理方法,按鍵處理可以獨立開展,在處理期間對任何一個按鍵的操作不對系統(tǒng)產(chǎn)生影響,只要按鍵按下系統(tǒng)都只執(zhí)行一次按鍵功能程序;輸出的按鍵值或者鍵號可以達(dá)到很精確的狀態(tài)來正確執(zhí)行跳轉(zhuǎn)指令;圖3.9貨物選擇系統(tǒng)圖3.6出貨及找零系統(tǒng)在本系統(tǒng)中,總共設(shè)計了8種飲料,價格分別為1、2、3、4、5、6、7、8元不等,由顧客通過按鍵選擇確定后,投入售貨機(jī)可識別的貨幣(貨幣可以累加計數(shù))。當(dāng)投入的貨幣總值不夠購買選擇的商品總值時,售貨機(jī)顯示金取消交易并退出所投貨幣,如果所投貨幣大于等于購買選擇的商品總值時,由售貨機(jī)出貨并計算剩余貨幣。但是在單片機(jī)的輸出中只有高電平和低電平之分。在自動售貨機(jī)中只需要安裝一個驅(qū)動電機(jī),待顧客投入貨幣后將信號送入系統(tǒng)通過相應(yīng)電路來驅(qū)動電機(jī)推出相應(yīng)商品即可。本設(shè)計只模擬實現(xiàn)此功能,負(fù)責(zé)軟件仿真,暫不考慮硬件電機(jī)方面,只作介紹。在這里,我們選用光敏三極管來實現(xiàn)這一功能。當(dāng)單片機(jī)輸出端為高電平時,則驅(qū)動二極管發(fā)光,使驅(qū)動電機(jī)電路導(dǎo)通,這時驅(qū)動電機(jī)開始工作等待信號。當(dāng)單片機(jī)輸出端為低電平時,則二極管熄滅。驅(qū)動電機(jī)電路斷開,即完成推貨動作,LED燈閃爍。售貨機(jī)通過投幣時累計的計數(shù)和購買商品的總金額進(jìn)行相減的運算,在LCD液晶上顯示出余幣的數(shù)量,顧客取走貨物后自動退還余幣。圖3.10出貨及找零攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)4系統(tǒng)的軟件流程圖設(shè)計
4系統(tǒng)的軟件流程圖設(shè)計4.1自動售貨機(jī)貨物選擇流程圖本設(shè)計提供1-8元不等的貨物,分別用1-8的序號對應(yīng)貨物。當(dāng)啟動系統(tǒng)后進(jìn)入初始化界面,等待顧客選擇貨物種類和數(shù)量,按鍵“OK”則跳入投幣系統(tǒng),按鍵“NO”則返回初始化等待界面。在這里只以1號商品作為例子來講解具體流程如圖4.1:圖4.1自動售貨機(jī)貨物選擇流程圖4.2自動售貨機(jī)投幣系統(tǒng)流程圖在4*4矩陣鍵盤上模擬投入貨幣,若投入一種面值的貨幣就累加一種面值的貨幣,如果沒有投入貨幣或者投入貨幣值不足購買商品的話則提示繼續(xù)投幣。當(dāng)所投貨幣足夠時,進(jìn)入出貨找零系統(tǒng)如圖4.2所示:圖4.2自動售貨機(jī)投幣系統(tǒng)流程圖4.3自動售貨機(jī)出貨找零系統(tǒng)流程圖進(jìn)入出貨找零系統(tǒng)時,如果購買商品后沒有剩余貨幣則直接推出商品,若還有剩余貨幣則找出余幣,如圖4.3所示:4.3自動售貨機(jī)出貨找零系統(tǒng)流程圖攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)5系統(tǒng)軟件仿真
5系統(tǒng)軟件仿真5.1PROTEUS的簡介世界上著名的EDA仿真軟件Protues擁有其自身的獨立特點,例如從原理圖布線圖、代碼調(diào)試到單片機(jī)與外圍電路的協(xié)同仿真,一鍵切換到PCB設(shè)計,都能實現(xiàn)從概念設(shè)計到產(chǎn)品仿真的完整功能。同時也是目前世界上唯一能將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持的類型也非常廣泛,例如8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,該軟件在2010年又同時增加了Cortex和DSP系列處理器,并持續(xù)增加其他類型系列的處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能分別有:原理布線圖;PCB自動或人工布線;SPICE電路仿真;從軟件的誕生到如今,Protues作出了很大的改革,這些改革使其成為如今最受歡迎的仿真軟件之一:互動的電路仿真;用戶甚至可以實時采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。仿真處理器及其外圍電路;可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計開發(fā)環(huán)境。?豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件;智能的器件搜索:通過模糊搜索可以快速定位所需要的器件;智能化的連線功能:自動連線功能使連接導(dǎo)線簡單快捷,大大縮短繪圖時間;支持總線結(jié)構(gòu):使用總線器件和總線布線使電路設(shè)計簡明清晰;可輸出高質(zhì)量圖紙:通過個性化設(shè)置,可以生成印刷質(zhì)量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用;5.2仿真結(jié)果設(shè)計好程序之后,還需要通過protues7.5和keil3.0來實現(xiàn)程序的調(diào)試和仿真,仿真結(jié)果圖如下:當(dāng)啟動自動售貨機(jī)時機(jī)器進(jìn)入初始化等待狀態(tài),等待按鍵輸入,如圖5.1所示:圖5.1初始化等待界面通過按鍵price+和price-來選擇貨物的種類,然后通過num+和num-來選擇所購買貨物的數(shù)量,同時代表被選擇貨物的LED指示燈亮,如圖5.2所示:圖5.2選擇貨物的種類及數(shù)量當(dāng)選擇好貨物后,按下“OK”鍵進(jìn)入到投幣系統(tǒng),此時機(jī)器會自動計算出所購貨物總金額,如圖5.3所示:圖5.3貨物選擇并計價當(dāng)機(jī)器計算出總價等待顧客投入貨幣并按下“OK”鍵后,當(dāng)投入貨幣貨幣值大于或等于總價時就出貨并找零,若投入貨幣貨幣值小于總價則不能出貨只能按下“NO”退出所投貨幣或繼續(xù)投幣,如圖5.4所示:圖5.4出貨找零當(dāng)完成以上步驟后則完成一次自動購物過程,機(jī)器自動復(fù)位回到初始化界面如圖5.5所示:圖5.5自動復(fù)位返回初始化界面攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)6結(jié)論
6結(jié)論本次自動售貨機(jī)的設(shè)計主要通過單片機(jī)80c51作為中央處理原件在protues7.5中連接輸入模塊4*4矩陣鍵盤、輸出模塊LCD1602液晶顯示和LED顯示來進(jìn)行系統(tǒng)調(diào)試仿真。通過keil3.0來實現(xiàn)程序的編譯和調(diào)試,最終得到能正確完善地實現(xiàn)設(shè)計要求功能的結(jié)果。本次設(shè)計實現(xiàn)了所有自動售貨功能,包括系統(tǒng)的初始化待機(jī)、等待顧客選擇貨物并確認(rèn)、投幣購買貨物、自動出貨并找零功能、最后自動跳轉(zhuǎn)到初始化待機(jī)界面。通過4*4矩陣鍵盤來模擬實現(xiàn)顧客的選擇貨物系統(tǒng)以及投幣系統(tǒng)、通過LED燈來顯示所選擇的貨物類別、再通過LCD1602液晶來顯示當(dāng)前的操作狀態(tài)以及貨物的數(shù)量和貨幣的總值,最后通過LCD顯示來模擬系統(tǒng)的出貨系統(tǒng)和找零系統(tǒng)。在不斷地仿真和調(diào)試下都完整的實現(xiàn)了以上功能,達(dá)到了基于單片機(jī)的自動售貨機(jī)設(shè)計的要求。攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)參考文獻(xiàn)
參考文獻(xiàn)[1]白麗.自動售貨機(jī):第三次零售業(yè)革命[J].電子商務(wù).2005.(3).[2]胡漢才.單片機(jī)原理及其接口技術(shù)[M].北京:清華大學(xué)出版,1996.[3]付家才.單片機(jī)控制工程實踐技術(shù)[M].北京:化學(xué)工業(yè)出版社,2004.5.[4]潘新民.微型計算機(jī)控制技術(shù)[M].北京:人民郵電出版社,1999.9.[5]余錫存曹國華.單片機(jī)原理及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000.7.[6]雷麗文.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.2.[7]葉銀蘭.自動售貨機(jī)的設(shè)計與實現(xiàn).微計算機(jī)信息[J],2008年23期,53-55[8]朱清慧,張鳳蕊,翟天嵩.Proteus教程[M].清華大學(xué)出版社,2008.9.[9]GuiyunTian.FoundtionandApplicationofMicrocontroller[M].高等教育出版社,2004.11.[10]丁元杰.單片微機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2005.7.[11]張元良.單片機(jī)原理及應(yīng)用教程[M].北京:清華大學(xué)出版,2011.2.[12]朱軍.自動售貨機(jī)的結(jié)構(gòu)[J].信息與電腦.1995[13]裴進(jìn)靈.一種新型自動售貨機(jī)的研制[J].科技情報開發(fā)與經(jīng)濟(jì).2002.[14]張文祥,李志軍,張子紅,張小清.單片機(jī)系統(tǒng)設(shè)計與開發(fā)教程[M].北京:電子工業(yè)出版社,2011.5.[15]宋蕭,李佩佩,韓瑩瑩.自動售貨機(jī)控制設(shè)計[J].科技信息,機(jī)械與電子,2009.[16]徐仁貴.單片微型計算機(jī)應(yīng)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2001.[17]馮克.MCS-51單片機(jī)實用子程序及其應(yīng)用實例.黑龍江科學(xué)技術(shù)出版社,1990[18]馬剛.用Proteus和Keil整合構(gòu)建單片機(jī)虛擬仿真平臺.[J].現(xiàn)代電子技術(shù),2006.24:129-131.[19]朱軍.基于Proteus的單片機(jī)仿真實驗.[J].計算機(jī)光盤軟件與應(yīng)用.攀枝花學(xué)院本科畢業(yè)設(shè)計(論文)附錄
附錄A:C源程序C源程序列表:#include<reg51.h>/*******************define*************************/#defineWAIT_SALE 0//定義1602顯示狀態(tài)#defineNO_WATER 1#defineINPUT_MONEY 2#defineSALING 3#defineCHANGE 4#defineCANCLE 5#defineNO_DATA 0#definewater_change(x,y)((x)&(~(0x01<<y)))//宏控制水種類的切換#defineuintunsignedint#defineucharunsignedcharunsignedcharwater_total[]={10,10,10,10,10,10,10,10};unsignedcharwater_price[]={1,2,3,4,5,6,7,8};ucharcodewait_sale[]="saling!";//定義所顯示的內(nèi)容ucharcodeno_water[]="nowater!";ucharcodeprice[]="price:";ucharcodenumber[]="num:";ucharcodesum[]="SUM:";ucharcodeinput[]="INPUT:";ucharcodechange[]="change:";ucharcodeput_water[]="putwater...";ucharcodecancle[]="cancle...";unsignedchare=0x00;sbitP2_0=P2^0;//定義接端口sbitP2_1=P2^1;sbitP2_2=P2^2;sbitP2_3=P2^3;sbitlcd_en=P3^4;sbitrs=P3^2;sbitrw=P3^3;/****************************************************//***********************function**********************************//************lcd1602*************************/voidlcd_1602_delay(uintz)//延時{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidlcd_1602_write_com(ucharcom)//寫命令{rs=0;rw=0;P2=com;lcd_1602_delay(5);lcd_en=1;lcd_1602_delay(5);lcd_en=0;}voidlcd_1602_write_data(uchardate)//寫數(shù)據(jù){rs=1;rw=0;P2=date;lcd_1602_delay(5);lcd_en=1;lcd_1602_delay(5);lcd_en=0;}voidlcd_1602_init()//LCD1602初始化函數(shù){lcd_en=0;lcd_1602_write_com(0x38);lcd_1602_write_com(0x0e);lcd_1602_write_com(0x06);lcd_1602_write_com(0x01);}voidlcd_1602_wait_sure()//顯示'OK'&'NO'界面{lcd_1602_write_com(0x80+0x40);lcd_1602_write_data('O');lcd_1602_write_data('K'); lcd_1602_write_com(0x80+0x4e);lcd_1602_write_data('N');lcd_1602_write_data('O');}voidlcd_1602_show_num(uintnum)//1602顯示數(shù)字的函數(shù){if(num<=9){lcd_1602_write_data('0'+num);lcd_1602_write_data('');}elseif(num>=10){lcd_1602_write_data('0'+num/10);lcd_1602_write_data('0'+num%10);}}voidlcd1602_info_display(uintchoose,uintnum_type,uintnum_count)//1602顯示函數(shù){intnum;lcd_1602_write_com(0x01);switch(choose){caseWAIT_SALE:lcd_1602_write_com(0x80+0x03);//for(num=0;num<7;num++){lcd_1602_write_data(wait_sale[num]); }break;caseNO_WATER:lcd_1602_write_com(0x80+0x03);for(num=0;num<9;num++){lcd_1602_write_data(no_water[num]); }break;caseSALING://pricelcd_1602_write_com(0x80+0x00);for(num=0;num<6;num++){lcd_1602_write_data(price[num]);}lcd_1602_write_data('0'+(num_type+1));lcd_1602_write_data('');//numberlcd_1602_write_data('');for(num=0;num<4;num++){lcd_1602_write_data(number[num]);}lcd_1602_show_num(num_count); break;caseINPUT_MONEY://needmoney lcd_1602_write_com(0x80+0x00);for(num=0;num<4;num++){lcd_1602_write_data(sum[num]);}lcd_1602_show_num(num_type);//inputlcd_1602_write_data('');lcd_1602_write_data('');for(num=0;num<6;num++) {lcd_1602_write_data(input[num]); }lcd_1602_show_num(num_count);break;caseCHANGE:if(!num_count) { //putwaterlcd_1602_write_com(0x80+0x02); for(num=0;num<13;num++){lcd_1602_write_data(put_water[num]);}}else{//canclewaterlcd_1602_write_com(0x80+0x02);//取消選擇時寫命令退幣for(num=0;num<9;num++) { lcd_1602_write_data(cancle[num]); }}//changelcd_1602_write_com(0x80+0x43);for(num=0;num<7;num++) { lcd_1602_write_data(change[num]); }lcd_1602_show_num(num_type);break;default:break;}lcd_1602_write_com(0x0c);}voidlcd_1602_saling(uinttype,uintnum){ lcd1602_info_display(SALING,type,num); lcd_1602_wait_sure();}voidlcd_1602_inputing(uintneed,uintinput){lcd1602_info_display(INPUT_MONEY,need,input);lcd_1602_wait_sure();}/*************************************************/voiddelay1(unsignedintt)//延時函數(shù){unsignedinti,j;for(i=0;i<t;i++)for(j=0;j<10;j++);}voidout_water()//推出水函數(shù){inti,j=100;while(j--){ for(i=0;i<8;i++) { P0=water_change(0xff,i);delay1(50);}}P0=0xff;}unsignedcharkey(void)//按鍵響應(yīng)函數(shù){unsignedcharkey,key1,key2;P1=0XF0;if((P1&0XF0)!=0XF0) //keddown{delay1(10); //延時去抖動if((P1&0XF0)!=0XF0) //仍然有鍵按下{key1=P1&0XF0; //讀入列線值P1=0X0F;key2=P1&0X0F;key=key1|key2;switch(key)//按鍵映射{case0xee:e=0x00;break;case0xde:e=0x01;break;case0xbe:e=0x02;break;case0x7e:e=0x03;break;case0xed:e=0x04;break;case0xdd:e=0x05;break;case0xbd:e=0x06;break;case0x7d:e=0x07;break;case0xeb:e=0x08;break;case0xdb:e=0x09;break;case0xbb:e=0x0a;break;case0x7b:e=0x0b;break;case0xe7:e=0x0c;break;case0xd7:e=0x0d;break;case0xb7:e=0x0e;break;case0x77:e=0x0f;break;}while((P1&0X0F)!=0X0F);delay1(10);return1;}}return0;}/*********************************************************************//*****************main********************************/voidmain(){unsignedcharok=0,water_type=-1,water_is_choose=0;charwater_count=0;unsignedintflag=0,money=0,need_money;lcd_1602_init();again:ok=0;water_type=-1;water_count=0;water_is_choose=0;flag=0;money=0;need_money=0; lcd1602_info_display(WAIT_SALE,0,0);while(!ok) //choosethewaterandcount{flag=key();if(flag){switch(e)//不同的按鍵進(jìn)行不同的操作{case(0x00):water_type++;water_is_choose=1;if(water_type==8) {water_type=0; }P0=water_change(0xff,water_type);break; case(0x01):water_type--;water_is_choose=1;if(water_type==-1||water_type==-2){water_type=7;}P0=water_change(0xff,water_type);break;case(0x02):if(water_is_choose==1){water_count++;if(water_count>water_total[water_type]){water_count=water_total[water_type]; }}break;case(0x03):if(water_is_choose==1){water_count--;if(water_count<0) {water_count=0; }} break;case(0x0e): //返回gotoagain;break;case(0x0f): //確認(rèn)if(water_is_choose==1) { ok=1; } break;default:break; }lcd_1602_saling(water_type,water_count); }} //chooseok:calculatethemoney//計算錢的總數(shù)need_money=water_count*water_price[water_type];lcd_1602_inputing(need_money,money);ok=0; while(!ok) //getmoney { flag=key(); if(flag) { switch(e) { case(0x04): money=money+1; break; case(0x05): money=money+5; break; case(0x06): money=money+10; break; case(0x07): money=money+20; break; case(0x08): money=money+50; break; case(0x09): money=money+100; break; case(0x0e): //back lcd1602_info_display(CHANGE,money,CANCLE); P0=0xff; delay1(50000); gotoagain;break;default:break; } //showmoneylcd_1602_inputing(need_money,money);//投幣系統(tǒng)if(money>=need_money) { ok=0; //breakandshowbackmoney //showbackmoney lcd1602_info_display(CHANGE,money-need_money,NO_DATA); out_water(); gotoagain; } } }}
附錄B:系統(tǒng)總圖致謝光陰似箭,歲月如梭。我的大學(xué)生涯即將結(jié)束,我感謝陪我一起度過大學(xué)生涯的老師和同學(xué)。當(dāng)我們相繼完成自己的最后一顆畢業(yè)設(shè)計,從此我們將各奔東西。留下的只是回憶過去,在將來的某一天我們終會倍加珍惜。回想在大學(xué)校園的種種,總是懷揣一種說不出的情愫。我們度過了青蔥歲月,我們走過了歡聲笑語,這是人生一筆寶貴的財富。在本次畢業(yè)設(shè)計中,感謝導(dǎo)師劉衍平的悉心指導(dǎo),感謝同學(xué)們的入微相幫?!皫熣?,無非傳道授業(yè)解惑也?!薄笆谌唆~不如授人漁也?!痹趯?dǎo)師的幫助下,成功完成了此次的畢業(yè)設(shè)計論文。得到的不僅是一個結(jié)束,更是一個開端。我會通過導(dǎo)師傳授的學(xué)習(xí)方法進(jìn)一步開拓進(jìn)取。同學(xué)的幫助不僅是完成這次畢業(yè)論文的重要因素,更是我們大學(xué)的感情積淀。這些不僅僅是完成一個任務(wù),更是讓我學(xué)習(xí)到了單片機(jī)的編程方法,更加牢靠的掌握了C語言的編程方法。經(jīng)過一學(xué)期的努力,逐步完善了四年所學(xué)的各方面知識。相當(dāng)于進(jìn)行了一個總結(jié)概括,這是一個需要不斷嘗試的過程。我們在之間會存在各種錯誤和迷茫,當(dāng)你撥開迷霧的時候會覺得受益匪淺。只有經(jīng)歷了這個拼搏的過程的人才懂得珍惜這段時期的每一個瞬間。祝福我們的老師,祝福我們的同學(xué),同時也祝福我們自己。感謝老師在教學(xué)中的指導(dǎo)和畢業(yè)設(shè)計上的修改,感謝同學(xué)在生活中的幫助,感謝自己子啊大學(xué)的時光沒有荒廢。
畢業(yè)設(shè)計(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人鄭重承諾:所呈交的畢業(yè)設(shè)計(論文),是我個人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別加以標(biāo)注和致謝的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得及其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻(xiàn)的個人或集體,均已在文中作了明確的說明并表示了謝意。作者簽名:日期:指導(dǎo)教師簽名:日期:使用授權(quán)說明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉績?nèi)容。作者簽名:日期:
學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期:年月日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名: 日期:年月日導(dǎo)師簽名:日期:年月日
指導(dǎo)教師評閱書指導(dǎo)教師評價:一、撰寫(設(shè)計)過程1、學(xué)生在論文(設(shè)計)過程中的治學(xué)態(tài)度、工作精神□優(yōu)□良□中□及格□不及格2、學(xué)生掌握專業(yè)知識、技能的扎實程度□優(yōu)□良□中□及格□不及格3、學(xué)生綜合運用所學(xué)知識和專業(yè)技能分析和解決問題的能力□優(yōu)□良□中□及格□不及格4、研究方法的科學(xué)性;技術(shù)線路的可行性;設(shè)計方案的合理性□優(yōu)□良□中□及格□不及格5、完成畢業(yè)論文(設(shè)計)期間的出勤情況□優(yōu)□良□中□及格□不及格二、論文(設(shè)計)質(zhì)量1、論文(設(shè)計)的整體結(jié)構(gòu)是否符合撰寫規(guī)范?□優(yōu)□良□中□及格□不及格2、是否完成指定的論文(設(shè)計)任務(wù)(包括裝訂及附件)?□優(yōu)□良□中□及格□不及格三、論文(設(shè)計)水平1、論文(設(shè)計)的理論意義或?qū)鉀Q實際問題的指導(dǎo)意義□優(yōu)□良□中□及格□不及格2、論文的觀念是否有新意?設(shè)計是否有創(chuàng)意?□優(yōu)□良□中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 線槽標(biāo)準(zhǔn)施工方案(3篇)
- 基建類財務(wù)管理制度(3篇)
- 執(zhí)法部門因管理制度(3篇)
- 2026北京人民郵電出版社校園招聘備考考試題庫及答案解析
- 護(hù)理信息技術(shù)應(yīng)用實訓(xùn)課件
- 2026湖北荊州市荊州區(qū)事業(yè)單位人才引進(jìn)57人備考考試題庫及答案解析
- 2026廣東珠海市婦幼保健院(珠海市婦女兒童醫(yī)院)、華南理工大學(xué)附屬珠海婦兒醫(yī)院面向應(yīng)屆畢業(yè)生招聘事業(yè)單位人員2人備考考試試題及答案解析
- 2026貴州貴陽市息烽縣衛(wèi)生健康局公益性崗位招聘2人參考考試題庫及答案解析
- 右手機(jī)器絞傷的緊急處理方法
- 2026福建福州市水路運輸應(yīng)急保障中心編外人員招聘1人參考考試題庫及答案解析
- 2025四川省土地租賃合同范本
- GB/T 5709-2025紡織品非織造布術(shù)語
- 光伏發(fā)電項目風(fēng)險
- 企業(yè)微信使用手冊
- 綠化養(yǎng)護(hù)驗收實施方案1
- 2024年理財行業(yè)高質(zhì)量發(fā)展白皮書-農(nóng)銀理財
- 危險化學(xué)品經(jīng)營單位(安全生產(chǎn)管理人員)考試題及答案
- UL498標(biāo)準(zhǔn)中文版-2019插頭插座UL標(biāo)準(zhǔn)中文版
- 《非物質(zhì)文化遺產(chǎn)》課程教學(xué)大綱
- 小學(xué)英語名師工作室工作總結(jié)
- 居民自建樁安裝告知書回執(zhí)
評論
0/150
提交評論