基于單片機(jī)的自動(dòng)售貨機(jī)設(shè)計(jì)(畢業(yè)論文)_第1頁(yè)
基于單片機(jī)的自動(dòng)售貨機(jī)設(shè)計(jì)(畢業(yè)論文)_第2頁(yè)
基于單片機(jī)的自動(dòng)售貨機(jī)設(shè)計(jì)(畢業(yè)論文)_第3頁(yè)
基于單片機(jī)的自動(dòng)售貨機(jī)設(shè)計(jì)(畢業(yè)論文)_第4頁(yè)
基于單片機(jī)的自動(dòng)售貨機(jī)設(shè)計(jì)(畢業(yè)論文)_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目錄摘要2AASTRACT3一、自動(dòng)售貨機(jī)的系統(tǒng)結(jié)構(gòu)411自動(dòng)售貨機(jī)的總體系統(tǒng)結(jié)構(gòu)412自動(dòng)售貨過(guò)程的控制子系統(tǒng)簡(jiǎn)述5二、自動(dòng)售貨機(jī)的功能介紹621此次設(shè)計(jì)的自動(dòng)售貨機(jī)的功能簡(jiǎn)介622實(shí)現(xiàn)自動(dòng)售貨機(jī)的功能的設(shè)計(jì)思路7三、硬件接口電路731中央控制元件簡(jiǎn)介832投幣及投幣總數(shù)LCD顯示系統(tǒng)9321投幣系統(tǒng)9322貨幣累加的實(shí)現(xiàn)10323LCD顯示1033貨物選擇系統(tǒng)14331獨(dú)立式鍵盤(pán)按鍵的識(shí)別14332鍵盤(pán)的編碼14333貨物選擇系統(tǒng)的程序流程圖1434出貨系統(tǒng)24341出貨功能的描敘24342出貨程序流程圖2435找錢(qián)系統(tǒng)25351找錢(qián)系統(tǒng)的描述25352程序流程圖25四、設(shè)計(jì)仿真2641PROTEUS簡(jiǎn)介2642仿真電路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顯示THEVENDINGMACHINEDESIGNBASEDONMCUABSTRCTTHISPAPERDESCRIBESAVENDINGMACHINESYSTEMDESIGN,HARDWARESELECTION,SOFTWAREPLANNINGANDPREPARATION,ANDDESCRIBESTHEFOCUSOFTHEWORKVENDINGMACHINESYSTEMTHEORY,SYSTEMDESIGN,SOFTWAREPROGRAMMINGPRINCIPLESANDTECHNIQUESAT89C51INTHESYSTEMASTHECORECHIP,THEREALIZATIONOFACENTRALIZEDCONTROLOFTHEVENDINGMACHINESAUTOMATICCONTROLTHEENTIREPROCESSCHOICEOFTHESYSTEMASASTANDALONEKEYBOARDKEYSTOCHOOSETHEGOODSSIDE,THEREALIZATIONOFTHECOINSHOWSTHETOTALNUMBEROFFEATURESINADDITION,THESYSTEMPROGRAMUSINGKEILSOFTWARETOPREPAREANDCOMPILEPROCEDURES,THESOFTWAREPROGRAMMINGISSIMPLE,CONVENIENTERRORCHECKING,EASYTOREADANDSOONASSEMBLYLANGUAGEISTHEBASICLANGUAGEPROGRAMWITHEASYTOUNDERSTAND,EASYTOREMEMBERANDUSEANDSOONKEYWORDSVENDINGMACHINES,AT89C51,LCDDISPLAY一、自動(dòng)售貨機(jī)的系統(tǒng)結(jié)構(gòu)11自動(dòng)售貨機(jī)的總體系統(tǒng)結(jié)構(gòu)自動(dòng)售貨機(jī)是集光、機(jī)、電一體化的獨(dú)立機(jī)構(gòu),它只需要顧客投幣和按購(gòu)物鍵選擇即可自動(dòng)售貨及退找零錢(qián),其工作程序如下圖11售貨機(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ù)零,完成售貨。自動(dòng)售貨機(jī)的硬件原理構(gòu)成如下圖22所示綜合所述,售貨機(jī)系統(tǒng)可以分為三部分組成,即自動(dòng)售貨機(jī)的控制子系統(tǒng)、通訊子系統(tǒng)、硬幣器子系統(tǒng)以及紙幣器子系統(tǒng)。其中控制子系統(tǒng)是本設(shè)計(jì)研究重點(diǎn)。12自動(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)。1、預(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)單,操作方便。2、金額累計(jì)、可售指示和退幣系統(tǒng)。控制系統(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)功能。3、售完檢測(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ǔ)器也不清零。4、自動(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)商品功能。2二、自動(dòng)售貨機(jī)的功能介紹21此次設(shè)計(jì)的自動(dòng)售貨機(jī)的功能簡(jiǎn)介基本原理貨幣識(shí)別器對(duì)所投貨幣進(jìn)行識(shí)別,根據(jù)金額將商品選擇權(quán)提供用戶(hù),用戶(hù)選擇后,控制芯片發(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),等待再次正確的按鍵選擇。自動(dòng)售貨機(jī)的原理框圖如圖12所示22實(shí)現(xiàn)自動(dòng)售貨機(jī)的功能的設(shè)計(jì)思路采用單片機(jī)89C51作為中央控制元件;用P34XO口作為識(shí)別貨幣輸入端;P1口作為貨物選擇選擇端(采用獨(dú)立式鍵盤(pán)做為選擇貨物端);采用P0口實(shí)現(xiàn)掉出貨物功能、找零功能;三、硬件接口電路圖30硬件接口電路如圖30所示,本次設(shè)計(jì)的自動(dòng)售貨機(jī)系統(tǒng)包括以下幾個(gè)部分中央控制元件89C51、投幣及投幣總數(shù)LCD顯示系統(tǒng)、貨物選擇系統(tǒng)、出貨系統(tǒng)、找錢(qián)系統(tǒng)。31中央控制元件簡(jiǎn)介在本次設(shè)計(jì)中,中央控制元件采用MCS51系列單片機(jī)中的89C51。如圖31所示圖3189C51引腳圖1主要特性與MCS51兼容;4K字節(jié)可編程閃爍存儲(chǔ)器;壽命1000寫(xiě)/擦循環(huán);數(shù)據(jù)保留時(shí)間10年;全靜態(tài)工作0HZ24HZ;三級(jí)程序存儲(chǔ)器鎖定;1288位內(nèi)部RAM;32可編程I/O線(xiàn);兩個(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的一些特殊功能口,如下表所示口管腳備選功能P30RXD(串行輸入口)P31TXD(串行輸出口)P32/INT0(外部中斷0)P33/INT1(外部中斷1)P34T0(記時(shí)器0外部輸入)P35T1(記時(shí)器1外部輸入)P36/WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)P37/RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG當(dāng)訪(fǎng)問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。/PSEN外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000HFFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2來(lái)自反向振蕩器的輸出。332投幣及投幣總數(shù)LCD顯示系統(tǒng)321投幣系統(tǒng)投幣系統(tǒng)是自動(dòng)售貨設(shè)計(jì)當(dāng)中比較重要的一塊,涉及到貨幣識(shí)別系統(tǒng),對(duì)于識(shí)別貨幣器是如何設(shè)計(jì)、如何工作的,在這里將不做進(jìn)一步的研究。本課題設(shè)計(jì)主要是要實(shí)現(xiàn)自動(dòng)售貨機(jī)的投幣總數(shù)顯示、貨物選擇、出貨以及找零功能。在本次設(shè)計(jì)中用P34上的一個(gè)按鍵來(lái)代替投幣系統(tǒng)的電平輸出。在投幣系統(tǒng)中可以通過(guò)89C51內(nèi)部的定時(shí)器來(lái)控制投幣時(shí)間,在規(guī)定的時(shí)間范圍內(nèi)完成投幣動(dòng)作,否則投入的貨幣全部退出。由于本次設(shè)計(jì)主要是要體現(xiàn)從投幣到操作最后到出貨的過(guò)程,在設(shè)計(jì)中沒(méi)有用到定時(shí)設(shè)置。322貨幣累加的實(shí)現(xiàn)本次設(shè)計(jì)的貨幣累加是對(duì)判斷P34上的按鍵上所按下的次數(shù)進(jìn)行累加來(lái)實(shí)現(xiàn)的,并將累加的次數(shù)送到寄存器B,然后系統(tǒng)根據(jù)投幣的總數(shù)和相應(yīng)的操作來(lái)實(shí)現(xiàn)輸出。323LCD顯示本次設(shè)計(jì)選用TC1602液晶顯示屏,可以直接跟51系列單片接口相連。液晶模塊TC1602采用標(biāo)準(zhǔn)的16腳接口,其引腳功能如下第1腳VSS為電源地,接GND。第2腳VDD接5V正電源。第3腳VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳RW為讀寫(xiě)信號(hào)線(xiàn),高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第714腳D0D7為8位雙向數(shù)據(jù)線(xiàn)。第15腳BLA背光電源正極5V輸入引腳。第16腳BLK背光電源負(fù)極,接GND。TC1602液晶模塊內(nèi)帶標(biāo)準(zhǔn)字庫(kù),內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了192個(gè)57點(diǎn)陣字符,32個(gè)510點(diǎn)陣字符。另外還有字符生成RAM(CGRAM)512字節(jié),供用戶(hù)自定義字符。如表1所示,這些字符有阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”。1602液晶模塊內(nèi)部的控制器共有11條控制指令指令1清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置指令2光標(biāo)復(fù)位,光標(biāo)返回到地址00H指令3光標(biāo)和顯示模式設(shè)置I/D光標(biāo)移動(dòng)方向,高電平右移,低電平左移S屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效指令4顯示開(kāi)關(guān)控制。D控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示C控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo)B控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍指令5光標(biāo)或顯示移位S/C高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)指令6功能設(shè)置命令DL高電平時(shí)為4位總線(xiàn),低電平時(shí)為8位總線(xiàn)N低電平時(shí)為單行顯示,高電平時(shí)雙行顯示F低電平時(shí)顯示5X7的點(diǎn)陣字符,高電平時(shí)顯示5X10的點(diǎn)陣字符指令7字符發(fā)生器RAM地址設(shè)置指令8DDRAM地址設(shè)置指令9讀忙信號(hào)和光標(biāo)地址BF為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10寫(xiě)數(shù)據(jù)指令11讀數(shù)據(jù)41602液晶的讀寫(xiě)時(shí)序如圖所示讀操作時(shí)序?qū)懖僮鲿r(shí)序投幣總數(shù)LCD顯示相關(guān)程序程序如下MONEYEQU0040H;定義投幣顯示存儲(chǔ)單元RSEQUP30RWEQUP31EEQUP32MAINMOVMONEY,01H;賦予MONEY單元初值為1STARTACALLDELAY;調(diào)用延時(shí)程序MOVP2,01H寫(xiě)指令01H,清屏LCALLENABLEMOVP2,38H寫(xiě)指令38H,設(shè)定LCD為162顯示,57點(diǎn)陣,8位數(shù)據(jù)接口LCALLENABLEMOVP2,0FH寫(xiě)指令0FH,顯示ON,光標(biāo)ON,閃爍ONLCALLENABLEMOVP2,06H寫(xiě)指令06H,光標(biāo)輸入方式增量移位LCALLENABLEMOVP2,80H第一行起始字符地址LCALLENABLEMOVDPTR,TABLE顯示字符表頭地址LCALLDISP顯示第一行數(shù)據(jù)RET返回ENABLECLRRS寫(xiě)指令子程序CLRRWCLRELCALLDELAYSETBERETDISPMOVR4,6準(zhǔn)備顯示一行6個(gè)字符LOOP1MOVA,00H投幣數(shù)送AMOVR1,MONEYL1ADDA,06H;設(shè)置偏移量為6DJNZR1,L1MOVCA,ADPTR查表取得要顯示的數(shù)據(jù)LCALLDISPF寫(xiě)入一個(gè)數(shù)據(jù)INCDPTR數(shù)據(jù)表指針加1,準(zhǔn)備取下一個(gè)數(shù)據(jù)DJNZR4,LOOP1一行沒(méi)有顯示完就繼續(xù)JMPINSERTDISPFMOVP2,A寫(xiě)1字節(jié)數(shù)據(jù)到顯示端口SETBRS寫(xiě)數(shù)據(jù)時(shí)序請(qǐng)參照1602LCD使用說(shuō)明書(shū)CLRRWCLRELCALLDELAYSETBERETTABLEDB“0YUAN“DB“0YUAN“DB“1YUAN“DB“2YUAN“DB“3YUAN“DB“4YUAN“DB“5YUAN“DB“6YUAN“DB“7YUAN“DB“8YUAN“DB“9YUAN“DB“10YUAN“DB“11YUAN“DB“12YUAN“DB“13YUAN“DB“14YUAN“DB“15YUAN“33貨物選擇系統(tǒng)按鍵按照接口原理可分為編碼鍵盤(pán)與非編碼鍵盤(pán)兩類(lèi),這兩類(lèi)鍵盤(pán)的主要區(qū)別是識(shí)別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤(pán)主要是用硬件來(lái)實(shí)現(xiàn)對(duì)鍵的識(shí)別,非編碼鍵盤(pán)主要是由軟件來(lái)實(shí)現(xiàn)鍵盤(pán)的定義與識(shí)別。由于本次設(shè)計(jì)只需要七個(gè)按鍵即可滿(mǎn)足設(shè)計(jì)要求,所以采用獨(dú)立式鍵盤(pán),這樣對(duì)鍵盤(pán)識(shí)別的編程也比較簡(jiǎn)單。331獨(dú)立式鍵盤(pán)按鍵的識(shí)別獨(dú)立式按鍵的識(shí)別很簡(jiǎn)單,如圖30所示,當(dāng)某個(gè)鍵按下時(shí),相應(yīng)的接口會(huì)出現(xiàn)低電平,無(wú)鍵按下時(shí)則為高電平,由此就可以判斷出哪個(gè)鍵有按下。332鍵盤(pán)的編碼將P10P16上的按鍵編碼為00H、01H、02H、03H、04H、05H、06H,按鍵所對(duì)應(yīng)的功能見(jiàn)表31表31按鍵功能表按鍵號(hào)對(duì)應(yīng)的功能00H選擇2元錢(qián)貨物A01H選擇3元錢(qián)貨物B02H選擇4元錢(qián)貨物C03H對(duì)選擇的貨物買(mǎi)2個(gè)04H對(duì)選擇的貨物買(mǎi)3個(gè)05H對(duì)選擇的貨物再次確定06H對(duì)選擇的貨物取消333貨物選擇系統(tǒng)的程序流程圖34出貨系統(tǒng)341出貨功能的描敘本設(shè)計(jì)中,設(shè)置了價(jià)格分別為2元、3元、4元不等的貨物,一共3種。在通過(guò)按鍵選擇物品后,將會(huì)把產(chǎn)生的信號(hào)輸入給89C51的P1的引腳上,89C51接收信號(hào)后,經(jīng)過(guò)處理后,將會(huì)在貨物輸出端產(chǎn)生與其相對(duì)應(yīng)的信號(hào)輸出,控制所選貨物的掉出。本次設(shè)計(jì)用P10P12作為貨物的輸出端,在貨物的輸出端采用光電隔離技術(shù),對(duì)于光電隔離技術(shù)這里不做介紹,在這里用一個(gè)LED指示燈代替貨物的掉出情況,若有貨物掉出則對(duì)應(yīng)輸出口為高電平,則指示燈亮,反之指示燈不亮。由于這里P0口作通用的I/O口輸出,所以必須接上拉電阻,如圖30所示。342出貨程序流程圖圖35出貨程序流程35找錢(qián)系統(tǒng)351找錢(qián)系統(tǒng)的描述本次設(shè)計(jì)中采用P13P16口作為找零輸出口,P13P16分別對(duì)應(yīng)1元找零口、2元找零口、2元找零口、5元找零口。這樣設(shè)計(jì)的目的是方便實(shí)現(xiàn)不同數(shù)額的找零輸出。同出貨系統(tǒng)一樣,找錢(qián)系統(tǒng)也用LED指示燈來(lái)表示找零,對(duì)應(yīng)的端口上若指示燈亮則表示有零錢(qián)掉出。352程序流程圖圖36找錢(qián)程序流程圖四、設(shè)計(jì)仿真41PROTEUS簡(jiǎn)介PROTEUS嵌入式系統(tǒng)仿真與開(kāi)發(fā)平臺(tái)是英國(guó)LABCENTER公司開(kāi)發(fā)的,是目前世界上最先進(jìn)、最完整的嵌入式系統(tǒng)設(shè)計(jì)與仿真平臺(tái)。它是一種可視化的支持多種型號(hào)單片機(jī)(如51、PIC、AVR、MOTOROLAHCLL等),并且支持與當(dāng)前流行的單片機(jī)開(kāi)發(fā)環(huán)境(KEIL、MPLAB、IAR)連接調(diào)試的軟硬件仿真系統(tǒng)。PROTEUS除了具有和其他EDA工具一樣的原理圖、PCB自動(dòng)或人工布線(xiàn)及電路仿真功能外,針對(duì)微控制系統(tǒng)與外設(shè)的混合電路的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真也做到了一體化和互動(dòng)效果,是目前電子設(shè)計(jì)愛(ài)好者廣泛使用的電子線(xiàn)路設(shè)計(jì)與仿真軟件PROTEUS和MULTISIM功能的聯(lián)合和進(jìn)一步發(fā)展。PROTEUS軟件已有近20年的歷史,在全球擁有龐大的企業(yè)用戶(hù)群,是目前唯一能夠?qū)Ω鞣N處理器進(jìn)行實(shí)時(shí)仿真、調(diào)試與測(cè)試的EDA工具,真正實(shí)現(xiàn)了在沒(méi)有目標(biāo)原型時(shí)就可對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)、測(cè)試與驗(yàn)證。由于PROTEUS軟件包括逼真的協(xié)同仿真功能,得到了包括劍橋大學(xué)在內(nèi)的眾多大學(xué)用戶(hù)作為電子學(xué)或嵌入式系統(tǒng)的課程教學(xué)、實(shí)驗(yàn)和水平考試平臺(tái)。目前,PROTEUS在國(guó)內(nèi)單片機(jī)開(kāi)發(fā)者及單片機(jī)愛(ài)好者之中已開(kāi)始普及,有很多開(kāi)發(fā)者已經(jīng)開(kāi)始用此開(kāi)發(fā)環(huán)境進(jìn)行仿真。542仿真電路用KEIL軟件仿真的結(jié)果如圖所示圖520KEIL仿真假如投入5元錢(qián)貨幣,操作依次為按2元貨物選擇鍵、確定鍵,則在PROTEUS里的仿真結(jié)果如下圖所示附錄本次設(shè)計(jì)的完整程序MONEYEQU0040H;定義投幣顯示存儲(chǔ)單元RSEQUP30RWEQUP31EEQUP32投幣總數(shù)LCD顯示程序MAINMOVMONEY,01H;賦予MONEY單元初值為1STARTACALLDELAY;調(diào)用延時(shí)程序MOVP2,01H寫(xiě)指令01H,清屏LCALLENABLEMOVP2,38H寫(xiě)指令38H,設(shè)定LCD為162顯示,57點(diǎn)陣,8位數(shù)據(jù)接口LCALLENABLEMOVP2,0FH寫(xiě)指令0FH,顯示ON,光標(biāo)ON,閃爍ONLCALLENABLEMOVP2,06H寫(xiě)指令06H,光標(biāo)輸入方式增量移位LCALLENABLEMOVP2,80H第一行起始字符地址LCALLENABLEMOVDPTR,TABLE顯示字符表頭地址LCALLDISP顯示第一行數(shù)據(jù)RET返回ENABLECLRRS寫(xiě)指令子程序CLRRWCLRELCALLDELAYSETBERETDISPMOVR4,6準(zhǔn)備顯示一行6個(gè)字符LOOP1MOVA,00H投幣數(shù)送AMOVR1,MONEYL1ADDA,06H;設(shè)置偏移量為6DJNZR1,L1MOVCA,ADPTR查表取得要顯示的數(shù)據(jù)LCALLDISPF寫(xiě)入一個(gè)數(shù)據(jù)INCDPTR數(shù)據(jù)表指針加1,準(zhǔn)備取下一個(gè)數(shù)據(jù)DJNZR4,LOOP1一行沒(méi)有顯示完就繼續(xù)JMPINSERTDISPFMOVP2,A寫(xiě)1字節(jié)數(shù)據(jù)到顯示端口SETBRS寫(xiě)數(shù)據(jù)時(shí)序請(qǐng)參照1602LCD使用說(shuō)明書(shū)CLRRWCLRELCALLDELAYSETBERETTABLEDB“0YUAN“DB“0YUAN“DB“1YUAN“DB“2YUAN“DB“3YUAN“DB“4YUAN“DB“5YUAN“DB“6YUAN“DB“7YUAN“DB“8YUAN“DB“9YUAN“DB“10YUAN“DB“11YUAN“DB“12YUAN“DB“13YUAN“DB“14YUAN“DB“15YUAN“投幣口程序INSERTMOVA,P3投幣口檢測(cè)CPLAJBCACC4,S1P3口有鍵按下轉(zhuǎn)S1LCALLKEYMOVA,R5CJNEA,0FFH,CHECK貨物選擇鍵盤(pán)有鍵按下轉(zhuǎn)CHECK程序AJMPINSERTS1LCALLD10MS延時(shí)消抖MOVA,P3CPLAJBCACC4,S2S2MOVR1,MONEYINCR1MOVMONEY,R1WAIT1MOVA,P3CPLAJBCACC4,WAIT1投幣開(kāi)關(guān)未松開(kāi)繼續(xù)等待,否則返回STARTAJMPSTART;返回鍵盤(pán)程序KEYMOVA,P1;讀P1口CPLAJNZKEY2A不等零說(shuō)明有鍵按下轉(zhuǎn)KEY2MOVR5,0FFHRETKEY2LCALLD10MS延時(shí)消抖MOVA,P1CPLAJNZKEY3MOVR5,0FFHRETKEY3JNBACC0,K1MOVR5,00HLCALLWAITRETK1JNBACC1,K2MOVR5,01HLCALLWAITRETK2JNBACC2,K3MOVR5,02HLCALLWAITRETK3JNBACC3,K4MOVR5,03HLCALLWAITRETK4JNBACC4,K5MOVR5,04HLCALLWAITRETK5JNBACC5,K6MOVR5,05HLCALLWAITRETK6MOVR5,06HLCALLWAITRETWAITMOVA,P1CPLAJNZWAITRET貨物選擇程序CHECKMOVA,R5MOVR6,AMOVA,MONEYDECA因?yàn)橹敖oMONEY的初值是1,所以計(jì)算投幣總數(shù)時(shí)應(yīng)該減去1MOVB,A;將投幣總數(shù)送入BMOVA,R6CJNEA,00H,NEXTB判斷是否按下鍵0LJMPTWOYUANNEXTBCJNEA,01H,NEXTC判斷是否按下鍵1LJMPTHREEYUANNEXTCCJNEA,02H,NEXTD1判斷是否按下鍵2LJMPFOURYUANNEXTD1MOVA,B按其他鍵時(shí)退幣LCALLOUTMONEYJMPMAINTWOYUANMOVA,B將投入的貨幣累加數(shù)存入寄存器BCJNEA,02H,NEXTE1判斷投入的貨幣數(shù)是否為2元錢(qián)MOVR0,01H選擇的貨物數(shù)為1個(gè)LOOPE1LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESS2SJMPLOOPE1PRESS2CJNEA,05H,NEXTE2按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTE2CJNEA,06H,BACKE1按下取消鍵MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKE1JMPLOOPE1選擇其他鍵時(shí)返回,等到有鍵按下NEXTE1JNCNEXTE3投入的貨幣數(shù)小于所選擇商品的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTE3LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESS3SJMPNEXTE3PRESS3CJNEA,03H,NEXTE4選擇一次性購(gòu)買(mǎi)2個(gè)貨物MOVA,BCJNEA,04H,NEXTE5判斷投入的貨幣數(shù)是否為4元MOVR0,02H將選擇的貨物數(shù)量值存入R0LOOPE2LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESS4SJMPLOOPE2PRESS4CJNEA,05H,NEXTE6按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTE6CJNEA,06H,BACKE2MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKE2JMPLOOPE2選擇其他鍵時(shí)返回,等到有鍵按下NEXTE5JNCNEXTE7投入的貨幣數(shù)小于所選貨物的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTE7LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESS5SJMPNEXTE7PRESS5CJNEA,05H,NEXTE8按下確定鍵,所選貨物掉出MOVA,BSUBBA,04HMOVR0,02H將選擇的貨物數(shù)量值存入R0LCALLOUTMONEY找錢(qián)LCALLOUTGOODS所選貨物掉出JMPMAIN返回,等待下一次投幣NEXTE8CJNEA,06H,BACKE3MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKE3JMPNEXTE7選擇其他鍵時(shí)返回,等到有鍵按NEXTE4CJNEA,04H,NEXTE9選擇一次性購(gòu)買(mǎi)3個(gè)貨物MOVA,BCJNEA,06H,NEXTE10判斷投入的貨幣數(shù)是否為6元MOVR0,03H將選擇的貨物數(shù)量值存入R0LOOPE3LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESS6SJMPLOOPE3PRESS6CJNEA,05H,NEXTE11按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTE11CJNEA,06H,BACKE4MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKE4JMPLOOPE3選擇按下其他鍵返回,等到有鍵按下NEXTE10JNCNEXTE12投入的貨幣數(shù)小于所選貨物的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTE12LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESS7SJMPNEXTE12PRESS7CJNEA,05H,NEXTE13按下確定鍵,所選貨物掉出MOVA,BSUBBA,06HMOVR0,03H將選擇的貨物數(shù)量值存入R0LCALLOUTMONEY找錢(qián)LCALLOUTGOODS所選貨物掉出JMPMAIN返回,等待下一次投幣NEXTE13CJNEA,06H,BACKE5按下取消鍵MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKE5JMPNEXTE12選擇按其他鍵時(shí)返回,等到有鍵按NEXTE9CJNEA,05H,NEXTE14按下確定鍵,所選貨物掉出MOVA,BSUBBA,02HMOVR0,01H將選擇的貨物數(shù)量值存入R0MOVR1,A將找錢(qián)數(shù)存入R1LCALLOUTMONEY找錢(qián)LCALLOUTGOODS所選貨物掉出JMPMAIN返回,等待下一次投幣NEXTE14CJNEA,06H,BACKE6MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKE6JMPNEXTE9THREEYUANMOVA,B將投入的貨幣累加數(shù)存入寄存器BCJNEA,03H,NEXTF1判斷投入的貨幣數(shù)是否為3元錢(qián)MOVR0,01H選擇的貨物數(shù)為1個(gè)LOOPF1LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSB1SJMPLOOPF1PRESSB1CJNEA,05H,NEXTF2按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTF2CJNEA,06H,BACKF1按下取消鍵MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKF1JMPLOOPF1選擇按下其他鍵返回,等到有鍵按下NEXTF1JNCNEXTF3投入的貨幣數(shù)小于所選擇商品的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTF3LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSB2SJMPNEXTF3PRESSB2CJNEA,03H,NEXTF4選擇一次性購(gòu)買(mǎi)2個(gè)貨物MOVA,BCJNEA,06H,NEXTF5判斷投入的貨幣數(shù)是否為6元MOVR0,02H將選擇的貨物數(shù)量值存入R0LOOPF2LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSB3SJMPLOOPF2PRESSB3CJNEA,05H,NEXTF6按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTF6CJNEA,06H,BACKF2按下取消鍵MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKF2JMPLOOPF2選擇按下其他鍵返回,等到有鍵按下NEXTF5JNCNEXTF7投入的貨幣數(shù)小于所選貨物的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTF7LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSB4SJMPNEXTF7PRESSB4CJNEA,05H,NEXTF8按下確定鍵,所選貨物掉出MOVA,BSUBBA,06HMOVR0,02H將選擇的貨物數(shù)量值存入R0LCALLOUTMONEY找錢(qián)LCALLOUTGOODS所選貨物掉出JMPMAIN返回,等待下一次投幣NEXTF8CJNEA,06H,VOICEF3MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣VOICEF3JMPNEXTF7選擇按下其他鍵返回,等到有鍵按NEXTF4CJNEA,04H,NEXTF9選擇一次性購(gòu)買(mǎi)3個(gè)貨物MOVA,BCJNEA,09H,NEXTF10判斷投入的貨幣數(shù)是否為9元MOVR0,03H將選擇的貨物數(shù)量值存入R0LOOPF3LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSB5SJMPLOOPF3PRESSB5CJNEA,05H,NEXTF11按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTF11CJNEA,06H,BACKF4MOVA,BLCALLOUTMONEY退還全部的錢(qián)JMPMAIN返回,等待下一次投幣BACKF4JMPLOOPF3選擇按下其他鍵返回,等到有鍵按下NEXTF10JNCNEXTF12投入的貨幣數(shù)小于所選貨物的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTF12LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSB6SJMPNEXTF12PRESSB6CJNEA,05H,NEXTF13按下確定鍵,所選貨物掉出MOVA,BSUBBA,09HMOVR0,03H將選擇的貨物數(shù)量值存入R0LCALLOUTMONEY找錢(qián)LCALLOUTGOODS所選貨物掉出JMPMAIN返回,等待下一次投幣NEXTF13CJNEA,06H,BACKF5MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKF5JMPNEXTF12選擇按下其他鍵返回,等到有鍵按NEXTF9CJNEA,05H,NEXTF14按下確定鍵,所選貨物掉出MOVA,BSUBBA,03HMOVR0,01H將選擇的貨物數(shù)量值存入R0MOVR1,A將找錢(qián)數(shù)存入R1LCALLOUTMONEY找錢(qián)LCALLOUTGOODS所選貨物掉出JMPMAIN返回,等待下一次投幣NEXTF14CJNEA,06H,BACKF6MOVA,BLCALLOUTMONEY退還全部的錢(qián)JMPMAIN返回,等待下一次投幣BACKF6JMPNEXTF9選擇按下其他鍵返回,等到有鍵按下FOURYUANMOVA,B將投入的貨幣累加數(shù)存入寄存器BCJNEA,04H,NEXTG1判斷投入的貨幣數(shù)是否為4元錢(qián)MOVR0,01H選擇的貨物數(shù)為1個(gè)LOOPG1LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSC1SJMPLOOPG1PRESSC1CJNEA,05H,NEXTG2按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTG2CJNEA,06H,BACKG1按下取消鍵MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKG1JMPLOOPG1選擇按下其他鍵返回,等到有鍵按下NEXTG1JNCNEXTG3投入的貨幣數(shù)小于所選擇商品的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTG3LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSC2SJMPNEXTG3PRESSC2CJNEA,03H,NEXTG4選擇一次性購(gòu)買(mǎi)2個(gè)貨物MOVA,BCJNEA,08H,NEXTG5判斷投入的貨幣數(shù)是否為8元MOVR0,02H將選擇的貨物數(shù)量值存入R0LOOPG2LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSC3SJMPLOOPG2PRESSC3CJNEA,05H,NEXTG6按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTG6CJNEA,06H,BACKG2按下取消鍵MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKG2JMPLOOPG2選擇按下其他鍵返回,等到有鍵按下NEXTG5JNCNEXTG7投入的貨幣數(shù)小于所選貨物的預(yù)設(shè)價(jià)格LCALLOUTMONEY錢(qián)全部退還JMPMAIN返回,等待下一次投幣NEXTG7LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSC4SJMPNEXTG7PRESSC4CJNEA,05H,NEXTG8按下確定鍵,所選貨物掉出MOVA,BSUBBA,08HMOVR0,02H將選擇的貨物數(shù)量值存入R0LCALLOUTMONEY找錢(qián)LCALLOUTGOODS所選貨物掉出JMPMAIN返回,等待下一次投幣NEXTG8CJNEA,06H,BACKG3MOVA,B退還全部的錢(qián)LCALLOUTMONEYJMPMAIN返回,等待下一次投幣BACKG3JMPNEXTG7選擇按下其他鍵返回,等到有鍵按NEXTG4CJNEA,04H,NEXTG9選擇一次性購(gòu)買(mǎi)3個(gè)貨物MOVA,BCJNEA,0CH,NEXTG10判斷投入的貨幣數(shù)是否為12元MOVR0,03H將選擇的貨物數(shù)量值存入R0LOOPG3LCALLKEY等待是否有鍵按下MOVA,R5CJNEA,0FFH,PRESSC5SJMPLOOPG3PRESSC5CJNEA,05H,NEXTG11按下確定鍵,所選貨物掉出LCALLOUTGOODSJMPMAIN返回,等待下一次投幣NEXTG11CJNEA,06H,BACKG4MOVA,B退還全部的錢(qián)L

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論