版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
自動售貨機設(shè)計自動售貨機設(shè)計PAGE68PAGEIII摘要自動販賣機是能夠根據(jù)投入的錢幣自動付貨的機器,它是商業(yè)自動化的常用設(shè)備,不受時間、地點的限制,能節(jié)省人力、方便交易。現(xiàn)代的自動售貨機的種類、結(jié)構(gòu)和功能依出售的商品而異。錢幣裝置是售貨機的核心,其主要功能是確認投入錢幣的金額,如果投入的金額達到購買物品的數(shù)值即發(fā)出售貨信號,并找出余錢。自動售貨機自動輸出顧客所要的商品。因此,自動售貨機在商業(yè),食品行業(yè)越來越普及,更方便消費者購買自己所需的商品。使用方便、可靠、節(jié)省人力的自動售貨機將在社會生活中成為一種趨勢。本文詳細介紹了自動售貨機系統(tǒng)以AT81C51芯片為核心,運用匯編語言在keil軟件上進行編寫、編譯,在proteus上進行仿真,并通過選擇獨立鍵盤按鍵和LED顯示,實現(xiàn)自動售貨機的貨物選擇,投幣顯示,出貨,找零等功能。本文并詳細介紹了自動售貨機系統(tǒng)的設(shè)計方案、硬件選擇、軟件規(guī)劃和編寫。重點描述了自動售貨機的工作原理、系統(tǒng)設(shè)計和軟件編程。關(guān)鍵詞:自動售貨機;AT89C51;LCD顯示;AbstractTradesmachineisautomaticallycanpaythegoodsautomaticallyaccordingtotheinvestmentmoneythemachine,itisthecommercialautomationcommonlyusedequipment,thetime,theplacelimit,cannotsavethemanpower,theconveniencetransaction.Themodernvendingmachine'stype,thestructureandthefunctiondependonthesellthecommodity,butdifferent.Themoneyinstallmentisvendingmachine'score,itsmajorfunctionisconfirmstheinvestmentmoneytheamount,ifinveststheamountachievesthepurchasegoodsthevaluenamelytosendoutthevendingsignal,anddiscoverstheextramoney.Thevendingmachineoutputsthecommoditywhichautomaticallythecustomerwants.Therefore,thevendingmachineinthetrade,foodprofessionisgettingmoreandmorepopular,amoreconvenientconsumerpurchasesthecommoditywhichoneneed.Theeasytooperate,reliable,theeconomicalmanpower'svendingmachinewillbecomeonetendencyinthesociallife.ThisarticleintroducedindetailthevendingmachinesystemtakeAT81C51chipasthecore,theutilizationassemblylanguagecarriesonthecompilation,thetranslationonthekeilsoftware,carriesonthesimulationonproteus,anddemonstratedthroughthechoiceindependentkeyboardpressedkeyandLED,realizesvendingmachine'scargochoice,throwsthecointodemonstrate,producesgoods,giveschangeandsoonfunctions.Thisarticleandintroducedthevendingmachinesystem'sdesignproposal,thehardwareselect,thesoftwareplanandthecompilationindetail.Describedvendingmachine'sprincipleofwork,thesystemdesignandthesoftwareprogrammingwithemphasis.Keywords:VendingMachines;AT89C51;LCDDisplay;目錄TOC\o"1-3"\u摘要 IAbstract II第一章緒論 11.1課題背景 11.2課題任務(wù)及要求 21.3課題內(nèi)容及安排 2第二章自動售貨機的總體概括 32.1自動售貨機介紹 32.2自動售貨機的研究意義 4第三章硬件介紹 53.1單片機的介紹 53.1.1AT89C51的介紹 63.1.2單片機復(fù)位電路的介紹 103.1.3時鐘電路的介紹 113.2LED的介紹 123.2.1LED基本信息 123.2.2LED發(fā)光原理 133.3.3TC1602介紹 133.3keil軟件介紹 163.3.1keilcμVision2功能 173.3.2keilc的基本操作 183.4proteus軟件介紹 253.4.1PROTEUS軟件的特點 263.4.2proteus實現(xiàn)仿真 273.4.3PROTEUS軟件基本操作 28第四章自動售貨機的系統(tǒng)結(jié)構(gòu) 344.1自動售貨機的總體系統(tǒng)結(jié)構(gòu) 344.2自動售貨過程的控制子系統(tǒng)簡述 35第五章自動售貨機的功能介紹 375.1自動售貨機的功能簡介 375.2實現(xiàn)自動售貨機的功能的設(shè)計思路 38第六章硬件接口電路 396.1投幣系統(tǒng) 396.1.2貨幣累加的實現(xiàn) 406.2貨物選擇系統(tǒng) 406.2.1獨立式鍵盤按鍵的識別 406.2.2鍵盤的編碼 406.2.3貨物選擇系統(tǒng)的程序流程圖: 416.3出貨系統(tǒng) 416.3.1出貨功能的描敘 416.3.2出貨程序流程圖 426.4找錢系統(tǒng)的描述及流程圖 42第七章設(shè)計仿真 447.1仿真電路 447.2proteus仿真圖 44參考文獻 48致謝 49附錄 50總結(jié) 68PAGE69第一章緒論1.1課題背景自動售貨機又稱自動售貨亭是能根據(jù)投入的錢幣自動付貨的機器,是商業(yè)化常用設(shè)備。一般的自動售貨機系統(tǒng)由貨幣識別系統(tǒng),按鍵系統(tǒng),出貨系統(tǒng)等組成。公元1世紀,希臘人希羅制造的自動出售圣水的裝置是世界上最早的自動售貨機。1925年美國研制出售香煙的自動售貨機,此后又出現(xiàn)了出售郵票、車票的各種現(xiàn)代自動售貨機。現(xiàn)代自動售貨機的種類、結(jié)構(gòu)和功能依出售的物品而異,主要有食品、飲料、香煙、郵票、車票、日用品等自動售貨機。自動售貨機是一種全新的商業(yè)零售形式,20世紀70年代自日本和歐美發(fā)展起來。它又被稱為24小時營業(yè)的微型超市。在日本,70%的罐裝飲料是通過自動售貨機售出的。全球著名飲料商可口可樂公司在全世界就布有50萬臺飲料自動售貨機。但是在中國市場,自動售貨機出售出售的商品一般比超市、便利店的貴。但在美國、日本這些自動售貨業(yè)已經(jīng)十分發(fā)達的國家,自動售貨機出售商品的價格是浮動的,跟機器所處位置、周邊商業(yè)環(huán)境相關(guān)。在美國,自動售貨機的競爭對手\o"競爭對手"主要是便利店,與便利店為鄰的自動售貨機出售的商品往往以價格便宜取勝。南開大學(xué)市場營銷學(xué)韓德昌教授指出,自動售貨機具有技術(shù)含量高、銷售方式新、市場潛力大、商品貨真價實等優(yōu)點,決定了它廣闊的發(fā)展前景。而且,它與電子購物等新型消費方式相通,能創(chuàng)造巨大的商機。在天津南開戈德股份有限公司的展覽臺前看到,只要顧客用手機撥打自動售貨機上顯示的一個號碼,就可以通過手機付費的方式買到東西,顧客只需月底支付手機賬單。專家預(yù)測,未來幾年中國市場上的自動售貨機將每年增加5-10萬臺。中國沿海比較富裕的地區(qū),將大約有3.5億人口經(jīng)常使用自動售貨機。1.2課題任務(wù)及要求研究自動售貨機發(fā)展過程及前景,完成自動售貨機的系統(tǒng)結(jié)構(gòu)設(shè)計。本次自動售貨機一共設(shè)有3種2元,3元,4元價格不等的物品,當(dāng)貨幣被投入后,對貨幣進行識別,根據(jù)金額讓客戶選擇物品,物品選擇后,控制芯片發(fā)出指令將所選擇的商品從儲備料道口中送達取物口。如果客戶累計所投入金額大于物品價格時,機器實現(xiàn)找錢功能,當(dāng)交易不成功時,機器退回顧客所投的貨幣。另外,本次設(shè)計的自動售貨機可實現(xiàn)同時都買2到3個貨物。1.3課題內(nèi)容及安排首先,介紹自動售貨機的歷史,現(xiàn)狀及前景。然后,概述本次自動售貨機的系統(tǒng)機構(gòu)和功能簡介。并突出介紹本次自動售貨機的硬件接口電路:投幣系統(tǒng),貨幣累加LED顯示,貨物選擇,出貨系統(tǒng),找零系統(tǒng)。最后在proteus上進行仿真。本次課題芯片才用美國ATMEL公司生產(chǎn)的MCS-21系列的ATM89C51單片機,采用匯編語言進行編寫。選用可以與51系列單片接口直接相連的TC1602液晶模塊經(jīng)行顯示。在英國labcenter公司開發(fā)的proteus嵌入式系統(tǒng)仿真與開發(fā)環(huán)境平臺上仿真。第二章自動售貨機的總體概括2.1自動售貨機介紹自動售貨機是能夠根據(jù)投入的錢幣自動付貨的機器,它是商業(yè)自動化的常用設(shè)備,不受時間、地點的限制,能節(jié)省人力、方便交易?,F(xiàn)代的自動售貨機的種類、結(jié)構(gòu)和功能依出售的商品而異。錢幣裝置是售貨機的核心,其主要功能是確認投入錢幣的真?zhèn)?,分選錢幣的種類,計算金額。如果投入的金額達到購買物品的數(shù)值即發(fā)出售貨信號,并找出余錢。自動售貨機自動輸出顧客所要的商品。因此,自動售貨機在商業(yè),食品行業(yè)越來越普及,更方便消費者購買自己所需的商品。使用方便、可靠、節(jié)省人力的自動售貨機將在社會生活中成為一種趨勢。自動售貨機是本世紀70年代在日本、歐美發(fā)展起來的高新技術(shù)現(xiàn)代應(yīng)用產(chǎn)品,被稱為24小時營業(yè)的微型超市,售貨領(lǐng)域已擴展至小食品、小用品、香煙、電話卡、車票、郵票等。目前在40多個國家已經(jīng)廣泛使用,日本平均每23人一臺,美國平均每40人一臺,歐洲平均每60人一臺。在鄰國日本,70%份額的罐裝飲料市場是通過自動售貨機售出的;美國可口可樂公司擁有五十余萬臺飲料自動售貨機分布在世界各地。通過自動售貨機銷售將成為商品零售業(yè)不可分割的重要組成部分。保有量約2萬臺,且品種單一,主要以瓶飲料售貨機為主,技術(shù)質(zhì)量還未完全過關(guān),生產(chǎn)和運營成本較高,收益也不高。導(dǎo)致此現(xiàn)狀的主要原因是中國有關(guān)的自動售貨機企業(yè)未能有效解決成本,質(zhì)量,運營等諸多問題。但由于隨中國經(jīng)濟的快速發(fā)展和社會的巨大進步,自動售貨機的實際需求已相當(dāng)大?,F(xiàn)在,自動售貨機產(chǎn)業(yè)正在走向信息化并進一步實現(xiàn)合理化。例如實行聯(lián)機方式,通過電話線路將自動售貨機內(nèi)的庫存信息及時地傳送各營業(yè)點的電腦中,從而確保了商品的發(fā)送、補充以及商品選定的順利進行。并且,為防止地球暖化,自動售貨機的開發(fā)致力于能源的節(jié)省,節(jié)能型清涼飲料自動售貨機成為該行業(yè)的主流。在夏季電力消費高峰時,這種機型的自動售貨機即使在關(guān)掉冷卻器的狀況下也能保持低溫,與以往的自動售貨機相比,它能夠節(jié)約10-15%的電力。進入21世紀時,自動售貨機也將進一步向節(jié)省資源和能源以及高功能化的方向發(fā)展。2.2自動售貨機的研究意義面對當(dāng)前快速商品社會,人們的時間觀念越來越重,如何才能更快的購買到顧客自己所需的商品,這都是顧客和商家共同面臨的問題。隨著科技的發(fā)展及人們生活水平的提高,自動售貨機市場的發(fā)展越來越呈現(xiàn)出多元化及個性化的需求。通過自動售貨機進行自助購物正逐漸成為市民的一種新的消費時尚,快捷方便的購物方式滿足了人們在當(dāng)今科技高速發(fā)展的現(xiàn)代社會追求高品質(zhì)生活的需要。自動售貨機在城市商業(yè)區(qū)、寫字樓大廳、風(fēng)景區(qū)、車站、碼頭、繁華街道等公共場所的布設(shè)能夠美化亮化城市環(huán)境,方便群眾生活,已經(jīng)成為城市各角落的一道亮麗風(fēng)景線。自動售貨機已在國內(nèi)普及,并成為城市現(xiàn)代文明程度的一種象征性標(biāo)志。第三章硬件介紹3.1單片機的介紹單片機從外觀來看實際就是一個具有多個引腳的集成電路芯片,而芯片的內(nèi)部結(jié)構(gòu)是無法直觀看到的。為了更好地使用單片機進行應(yīng)用設(shè)計,需要從總體上理解單片機芯片內(nèi)部的結(jié)構(gòu)。下圖為單片機內(nèi)部結(jié)構(gòu):圖3.1單片機內(nèi)部結(jié)構(gòu)圖單片機芯片內(nèi)部主要包括以下8個組成部分:中央處理單元(CPU),時鐘電路,程序存儲器(ROM),數(shù)據(jù)存儲器(RAM),并行I/O接口,串行接口,定時/計數(shù)器,中斷系統(tǒng)。中央處理單元(CPU)。它是單片機運算與控制的核心部分,如果把單片機比作一個人,那么CPU就好比是這個人的大腦。時鐘電路。它主要用來向CPU提供工作的節(jié)拍。時鐘電路每產(chǎn)生一個時鐘節(jié)拍,CPU就會完成一部分工作,CPU的所有運算以及控制操作都是按時鐘節(jié)拍進行控制完成的。時鐘電路就好比人的心臟,控制著這個CPU工作的節(jié)奏。程序存儲器(ROM)。它是用來存儲由CPU執(zhí)行的應(yīng)用程序或者常數(shù)數(shù)據(jù)表的二進制代碼的。數(shù)據(jù)存儲器(RAM)。用于保存應(yīng)用程序以及單片機自身在運行過程中所要使用數(shù)據(jù)的二進制代碼。并行接口。并行接口即并行輸入/輸出接口,簡稱并口。用于單片機芯片與外部設(shè)備同時交換多位二進制數(shù)據(jù)。例如,來自外部的8位二進制數(shù)據(jù)可以通過并口的8個I/O引腳同事進入單片機;相反,來自外部的二進制數(shù)據(jù)也可以通過并口輸入到單片機。如果將單片機應(yīng)用于控制,可以使用并口接收和發(fā)出開關(guān)量控制信號。80C51單片機具有4個并口,分別為P0,P1,P2,P3,而且每個并口又包括8個I/O引腳,所以最多可以輸入輸出32個二進制數(shù)字信號。串行接口。串行接口簡稱串口。與并口相比,串口每次只能發(fā)送或接收1位二進制信息,如果要傳送一個8位二進制數(shù)據(jù),需要傳送8次,但串口傳數(shù)據(jù)可使用3條導(dǎo)線進行,硬件連接比較簡捷。定時/計數(shù)器。80C51單片機給用戶提供了兩個定時/計數(shù)器T0和T1,它們既可以作為定時器使用也可以作為計數(shù)器使用,具體功能可由用戶編程設(shè)置。在單片機應(yīng)用時往往需要產(chǎn)生定時信號或?qū)r間發(fā)生的次數(shù)進行計數(shù),定時/計數(shù)器提供了這樣的功能。中斷系統(tǒng)。在實際應(yīng)用中,有些時間出現(xiàn)時需要單片機暫?,F(xiàn)行的工作馬上進行處理,待處理完事件后再繼續(xù)進行被暫停的工作,中斷系統(tǒng)為解決這類問題提供了有效的手段。80C51單片機的中斷系統(tǒng)可以處理來自外部的中斷觸發(fā)信號中斷,串口中斷,定時或計數(shù)器中斷。上述8個組成部分通過內(nèi)部總線緊密連接起來,形成了一個麻雀雖小五臟俱全的計算機系統(tǒng),再配上相應(yīng)的外圍電路就可實現(xiàn)各種各樣的實際應(yīng)用系統(tǒng)[8]。3.1.1AT89C在本次設(shè)計中,中央控制元件采用MCS-51系列單片機中AT89C51。AT89C51可以說是最常用的51單片機,下圖介紹它的引腳資料。如圖3.2所示.圖3.2AT89C51引腳圖AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片內(nèi)含4kbytes的可反復(fù)擦寫的只讀程序存儲器(PEROM)和128bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元,功能強大AT89C51單片機可為您提供許多高性價比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。1.主要性能參數(shù):·與MCS-51產(chǎn)品指令系統(tǒng)完全兼容·4k字節(jié)可重擦寫Flash閃速存儲器·1000次擦寫周期·全靜態(tài)操作:0Hz-24MHz·三級加密程序存儲器·128×8字節(jié)內(nèi)部RAM·32個可編程I/O口線·2個16位定時/計數(shù)器·6個中斷源 ·可編程串行UART通道·低功耗空閑和掉電模式2.管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外部中斷0)P3.3/INT1(外部中斷1)P3.4T0(記時器0外部輸入)P3.5T1(記時器1外部輸入)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。3.1.2單片機復(fù)位電路的介紹當(dāng)MCS-51系列單片機的復(fù)位引腳RST出現(xiàn)兩個機器周期以上的高電平時,單片機就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復(fù)位狀態(tài)。當(dāng)單片機進入到復(fù)位狀態(tài)時,單片機內(nèi)部的所有硬件組成部分進行初始化,恢復(fù)到單片機得默認工作狀態(tài),并從程序存儲器的0000H地址單元處開始執(zhí)行程序。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本的方式:上電復(fù)位和上電與開關(guān)復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。在上電的瞬間,RC電路開始充電,RST引腳出現(xiàn)正脈沖,RC電路使RST引腳的高電平保持10ms以上,保證單片機有效進行復(fù)位。隨著對電容的充電,RST引腳的點位主見下降,知道結(jié)束復(fù)位狀態(tài)。一般通過要選擇合適的R和C大小來保證RST引腳維持高電平的時間,以實現(xiàn)可靠的復(fù)位。在復(fù)位電路中,R的值為1K,C的值為22uF.在實際復(fù)位電路設(shè)計中,常常將上電復(fù)位電路與開關(guān)復(fù)位電路兩種方式結(jié)合在一起,這樣即可實現(xiàn)上電復(fù)位也可以實現(xiàn)開關(guān)復(fù)位。上電復(fù)位及上電與開關(guān)組合復(fù)位電路圖,如下:圖3.3上電復(fù)位電路圖3.4上電復(fù)位和按鈕復(fù)位電路3.1.3時鐘電路的介紹時鐘電路是單片機產(chǎn)生工作節(jié)拍電路,它控制著單片機的工作節(jié)奏。MCS-51系列單片機的時鐘電路設(shè)計有兩種方式:一是內(nèi)部時鐘方式,二是外部時鐘方式。內(nèi)部時鐘方式在MCS-51系列單片機的內(nèi)部,有一個用于構(gòu)成振蕩器的高增益反相放大器。單片機芯片的引腳XTAL1為反相器的輸入端,引腳XTAL2為輸出端。放大器與作為反饋元件的片外經(jīng)偵一起構(gòu)成了一個自激振蕩器,產(chǎn)生周期性脈沖信號,內(nèi)部時鐘方式的電路如圖3.5:MCS-51系列單片機的晶體振蕩器的頻率范圍通常選擇在1.2—12MHz之間,典型值為12MHz或11.0592MHz。圖2-5中電容C1,C2主要作用是幫助晶體振蕩器起振,它的值通常在20—100pf之間。當(dāng)晶振的振蕩頻率為12MHz時,電容的大小通常選擇30pf。一般在設(shè)計時鐘電路中,多采用內(nèi)部時鐘方式。圖3.5內(nèi)部時鐘電路圖2.外部時鐘電路外部時鐘方式是利用外部振蕩器時鐘源直接來連接單片機在XTAL1或XTAL2引腳。通常XTAL1接地,XTAL2接外部時鐘,由于考慮XTAL2的邏輯電平匹配,一般加一個4.7—10K的上拉電阻如3.6圖所示。這種外部時鐘方式的設(shè)計方法使用較少[9]。圖3.6外部時鐘電路圖3.2LED的介紹3.2.1LED基本信息LED(LightEmittingDiode),發(fā)光二極管,是一種固態(tài)的半導(dǎo)體器件,它可以直接把電轉(zhuǎn)化為光,LED的心臟是一個半導(dǎo)體的晶片,晶片的一端附著在一個支架上,一端是負極,另一端連接電源的正極,使整個晶片被環(huán)氧樹脂封裝起來。半導(dǎo)體晶片由兩部分組成,一部分是P型半導(dǎo)體,在它里面空穴占主導(dǎo)地位,另一端是N型半導(dǎo)體,在這邊主要是電子。但這兩種半導(dǎo)體連接起來的時候,它們之間就形成一個“P-N結(jié)”。當(dāng)電流通過導(dǎo)線作用于這個晶片的時候,電子就會被推向P區(qū),在P區(qū)里電子跟空穴復(fù)合,然后就會以光子的形式發(fā)出能量,這就是LED發(fā)光的原理。而光的波長決定光的顏色,是由形成P-N結(jié)材料決定的。3.2.2LED發(fā)光原理發(fā)光二極管是由Ⅲ-Ⅳ族化合物,如GaAs(砷化鎵)、GaP(磷化鎵)、GaAsP(磷砷化鎵)等半導(dǎo)體制成的,其核心是PN結(jié)。因此它具有一般P-N結(jié)的I-N特性,即正向?qū)?,反向截止、擊穿特性。此外,在一定條件下,它還具有發(fā)光特性。在正向電壓下,電子由N區(qū)注入P區(qū),空穴由P區(qū)注入N區(qū)。進入對方區(qū)域的少數(shù)載流子(少子)一部分與多數(shù)載流子(多子)復(fù)合而發(fā)光。假設(shè)發(fā)光是在P區(qū)中發(fā)生的,那么注入的電子與價帶空穴直接復(fù)合而發(fā)光,或者先被發(fā)光中心捕獲后,再與空穴復(fù)合發(fā)光。除了這種發(fā)光復(fù)合外,還有些電子被非發(fā)光中心(這個中心介于導(dǎo)帶、介帶中間附近)捕獲,而后再與空穴復(fù)合,每次釋放的能量不大,不能形成可見光。發(fā)光的復(fù)合量相對于非發(fā)光復(fù)合量的比例越大,光量子效率越高。由于復(fù)合是在少子擴散區(qū)內(nèi)發(fā)光的,所以光僅在靠近PN結(jié)面數(shù)μm以內(nèi)產(chǎn)生。理論和實踐證明,光的峰值波長λ與發(fā)光區(qū)域的半導(dǎo)體材料禁帶寬度Eg有關(guān),即λ≈1240/Eg(nm)式中Eg的單位為電子伏特(eV)。若能產(chǎn)生可見光(波長在380nm紫光~780nm紅光),半導(dǎo)體材料的Eg應(yīng)在3.26~1.63eV之間。比紅光波長長的光為紅外光。現(xiàn)在已有紅外、紅、黃、綠及藍光發(fā)光二極管,但其中藍光二極管成本、價格很高,使用不普遍[10]。3.3.3TC1602介紹本次設(shè)計選用TC1602液晶顯示屏??梢灾苯痈?1系列單片接口相連。液晶模塊TC1602采用標(biāo)準(zhǔn)的16腳接口,其引腳功能如下第1腳:VSS為電源地,接GND。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:BLA背光電源正極(+5V)輸入引腳。第16腳:BLK背光電源負極,接GND。TC1602液晶模塊內(nèi)帶標(biāo)準(zhǔn)字庫,內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了192個5×7點陣字符,32個5×10點陣字符。另外還有字符生成RAM(CGRAM)512字節(jié),供用戶自定義字符。如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“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)移動方向,高電平右移,低電平左移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:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符指令7:字符發(fā)生器RAM地址設(shè)置
指令8:DDRAM地址設(shè)置
指令9:讀忙信號和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)
指令11:讀數(shù)據(jù)TC1602液晶顯示屏的讀寫時序:讀操作時序:寫操作時序:圖3.73.83.3keil軟件介紹KeilC51μVision2集成開發(fā)環(huán)境是KeilSoftware,Inc/KeilElektronikGmbH開發(fā)的基于80C51內(nèi)核的微處理器軟件開發(fā)平臺,內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立到管理、編譯、鏈接、目標(biāo)代碼的生成、軟件仿真、硬件仿真等完整的開發(fā)流程尤其是C編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達到了較高的水平,而且可以附加靈活的控制選項,在開發(fā)大型項目時非常理想。KeilC51集成開發(fā)環(huán)境的主要功能有以下幾點:1.μVision2forWindows:是一個集成開發(fā)環(huán)境,它將項目管理、源代碼編輯和程序調(diào)試等組合在一個功能強大的環(huán)境中;2.C51國際際準(zhǔn)化C交叉編譯器:從C源代碼產(chǎn)生可重定位的目標(biāo)模塊;3.A51宏匯編器:從80C51匯編源代碼產(chǎn)生可重定位的目標(biāo)模塊;4.BL51鏈接器/定位器:組合由C51和A51產(chǎn)生的可重定位的目標(biāo)模塊,生成絕對目標(biāo)模塊;5.LIB51庫管理器:從目標(biāo)模塊生成連接器可以使用的庫文件;6.OH51目標(biāo)文件至HEX格式的轉(zhuǎn)換器,從絕對目標(biāo)模塊生成IntelHex文件;7.RTX-51實時操作系統(tǒng):簡化了復(fù)雜的實時應(yīng)用軟件項目的設(shè)計。這個工具套件是為專業(yè)軟件開發(fā)人員設(shè)計的,但任何層次的編程人員都可以使用,并獲得80C51單片機的絕大部分應(yīng)用。3.3.1keilcμVision2功能μVision2支持所有的Keil80C51的工具軟件,包括C51編譯器、宏匯編器、鏈接器器/定位器和目標(biāo)文件至Hex格式轉(zhuǎn)換器,μVision2可以自動完成編譯、匯編、鏈接程序等操作。1.C51編譯器和A51匯編器由μVision2IDE創(chuàng)建的源文件,可以被C51編譯器或A51匯編器處理,生成可重定位的object文件。KeilC51編譯器遵照ANSIC語言標(biāo)準(zhǔn),支持C語言的所有標(biāo)準(zhǔn)特性。另外,還增加了幾個可以直接支持80C51結(jié)構(gòu)的特性。Keil
A51宏匯編器支持80C51及其派生系列的所有指令集。2.LIB51庫管理器LIB51庫管理器可以從由匯編器和編譯器創(chuàng)建的目標(biāo)文件建立目標(biāo)庫。這些庫是按規(guī)定格式排列的目標(biāo)模塊,可在以后被鏈接器所使用。當(dāng)鏈接器處理一個庫時,僅僅使用了庫中程序使用了的目標(biāo)模塊而不是全部加以引用。3.BL51連接器/定位器BL51鏈接器使用從庫中提取出來的目標(biāo)模塊和有編譯器、匯編器生成的目標(biāo)模塊,創(chuàng)建一個絕對地址目標(biāo)模塊。絕對地址目標(biāo)文件或模塊包括不可重定位的代碼和數(shù)據(jù)。所有的代碼和數(shù)據(jù)都被固定在具體的存儲器單元中。4.μVision2軟件調(diào)試器μVision2軟件調(diào)試器能十分理想地進行快速、可靠的程序調(diào)試。調(diào)試器包括一個高速模擬器,可以使用它模擬整個80C51系統(tǒng),包括片上外圍器件和外部硬件。當(dāng)從器件數(shù)據(jù)庫選擇器件時,這個器件的屬性會被自動配置。5.μVision2硬件調(diào)試器μVision2調(diào)試器提供了幾種在實際目標(biāo)硬件上測試程序的方法。安裝MON51目標(biāo)監(jiān)控器到目標(biāo)系統(tǒng),并通過Monitor-51接口下載程序;使用高級GDI接口,將μVision2調(diào)試器與多功能EDA軟件Proteus相連接,通過μVision2的人機交互環(huán)境可實現(xiàn)仿真操作。6.RTX51實時操作系統(tǒng)RTX51實時操作系統(tǒng)是針對80C51為控制器系列的一個多任務(wù)內(nèi)核。RTX51實時內(nèi)核簡化了需要對實時事件進行反應(yīng)的復(fù)雜應(yīng)用的系統(tǒng)設(shè)計、編程和調(diào)試。這個內(nèi)核完全集成在C51編譯器中,使用非常簡單。任務(wù)描述表和操作系統(tǒng)的一致性由BL51鏈接/定位器自動進行控制。此外,μVision2還具有極其強大的軟件環(huán)境、友好的操作界面和簡單快捷的操作方法,主要表現(xiàn)在以下幾點:1.
豐富的菜單欄;2.
可以快速選擇命令按鈕的工具欄;3.一些源代碼文件窗口;4.
對話框窗口;5.
直觀明了的信息顯示窗口。3.3.2keilc的基本操作KeilC51軟件是眾多單片機應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯,編譯,仿真于一體,支持匯編,PLM語言和C語言的程序設(shè)計,界面友好,易學(xué)易用。下面介紹KeilC51軟件的使用方法進入KeilC51后,屏幕如下圖所示。幾秒鐘后出現(xiàn)編輯界圖3.9啟動KeilC51時的屏幕圖3.10進入KeilC51后的編輯界面建立一個新工程單擊Project菜單,在彈出的下拉菜單中選中NewProject選項圖3.11然后選擇你要保存的路徑,輸入工程文件的名字,比如保存到C51目錄里,工程文件的名字為C51如下圖所示,然后點擊保存圖3.12這時會彈出一個對話框,要求你選擇單片機的型號,你可以根據(jù)你使用的單片機來選擇,keilc51幾乎支持所有的51核的單片機,我這里還是以大家用的比較多的Atmel的89C51來說明,如下圖所示,選擇89C51之后,右邊欄是對這個單片機的基本的說明,然后點擊確定。圖3.13完成上一步驟后,屏幕如下圖所示圖3.14到現(xiàn)在為止,我們還沒有編寫一句程序,下面開始編寫我們的第一個程序。在下圖中,單擊“File”菜單,再在下拉菜單中單擊“New”選項圖3.15新建文件后屏幕如下圖所示圖3.16此時光標(biāo)在編輯窗口里閃爍,這時可以鍵入用戶的應(yīng)用程序了,但筆者建議首先保存該空白的文件,單擊菜單上的“File”,在下拉菜單中選中“SaveAs”選項單擊,屏幕如下圖所示,在“文件名”欄右側(cè)的編輯框中,鍵入欲使用的文件名,同時,必須鍵入正確的擴展名。注意,如果用C語言編寫程序,則擴展名為(.c);如果用匯編語言編寫程序,則擴展名必須為(.asm)。然后,單擊“保存”按鈕。圖3.17回到編輯界面后,單擊“Target1”前面的“+”號,然后在“SourceGroup1”上單擊右鍵,彈出如下菜單圖3.18然后單擊“AddFiletoGroup‘SourceGroup1’”屏幕如下圖所示:圖3.19選中Test.c,然后單擊“Add”屏幕好下圖所示圖3.20注意到“SourceGroup1”文件夾中多了一個子項“Text1.c”了嗎?子項的多少與所增加的源程序的多少相同。7)現(xiàn)在,請輸入如下的C語言源程序:#include<reg52.h>//包含文件#include<stdio.h>voidmain(void)//主函數(shù){SCON=0x52;TMOD=0x20;TH1=0xf3;TR1=1;//此行及以上3行為PRINTF函數(shù)所必須printf(“HelloIamKEIL.\n”);//打印程序執(zhí)行的信息printf(“Iwillbeyourfriend.\n”);while(1);}在輸入上述程序時,讀者已經(jīng)看到了事先保存待編輯的文件的好處了吧,即Keilc51會自動識別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會使用戶少犯錯誤,有利于提高編程效率。程序輸入完畢后,如下圖所示圖3.218)在上圖中,單擊“Project”菜單,再在下拉菜單中單擊“BuiltTarget”選項(或者使用快捷鍵F7),編譯成功后,再單擊“Project”菜單,在下拉菜單中單擊“Start/StopDebugSession”(或者使用快捷鍵Ctrl+F5),屏幕如下所示圖3.229)調(diào)試程序:在上圖中,單擊“Debug”菜單,在下拉菜單中單擊“Go”選項,(或者使用快捷鍵F5),然后再單擊“Debug”菜單,在下拉菜單中單擊“StopRunning”選項(或者使用快捷鍵Esc);再單擊“View”菜單,再在下拉菜單中單擊“SerialWindows#1”選項,就可以看到程序運行后的結(jié)果,其結(jié)果如下圖所示圖3.23至此,我們在KeilC51上做了一個完整工程的全過程。但這只是純軟件的開發(fā)過程,如何使用程序下載器看一看程序運行的結(jié)果呢?10)單擊“Project”菜單,再在下拉菜單中單擊“”在下圖中,單擊“Output”中單擊“CreateHEXFile”選項,使程序編譯后產(chǎn)生HEX代碼,供下載器軟件使用。把程序下載到AT89S51單片機中[6]。圖3.243.4proteus軟件介紹Proteus嵌入式系統(tǒng)仿真與開發(fā)平臺是英國Labcenter公司開發(fā)的,是目前世界上最先進、最完整的嵌入式系統(tǒng)設(shè)計與仿真平臺。它是一種可視化的支持多種型號單片機(51系列、AVR、PIC、ARM等),并且支持與當(dāng)前流行的單片機開發(fā)環(huán)境(Keil、MPLAB、IAR)連接調(diào)試的軟硬件仿真系統(tǒng)。Proteus除了具有和其他EDA工具一樣的原理圖、PCB自動或人工布線及電路仿真功能外,針對微控制系統(tǒng)與外設(shè)的混合電路的電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真也做到了一體化和互動效果,是目前電子設(shè)計愛好者廣泛使用的電子線路設(shè)計與仿真軟件Proteus和Multisim功能的聯(lián)合和進一步發(fā)展。Proteus軟件已有近20年的歷史,在全球擁有龐大的企業(yè)用戶群,是目前唯一能夠?qū)Ω鞣N處理器進行實時仿真、調(diào)試與測試的EDA工具,真正實現(xiàn)了在沒有目標(biāo)原型時就可對系統(tǒng)進行設(shè)計、測試與驗證。由于Proteus軟件包括逼真的協(xié)同仿真功能,得到了包括劍橋大學(xué)在內(nèi)的眾多大學(xué)用戶作為電子學(xué)或嵌入式系統(tǒng)的課程教學(xué)、實驗和水平考試平臺。目前,Proteus在國內(nèi)單片機開發(fā)者及單片機愛好者之中已開始普及,有很多開發(fā)者已經(jīng)開始用此開發(fā)環(huán)境進行仿真。3.4.1PROTEUS軟件的特點1.功能特點Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是:(1)原理布圖(2)PCB自動或人工布線(3)SPICE電路仿真2.革命性的特點(1)互動的電路仿真用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計進行交互仿真。(2)仿真處理器及其外圍電路 可以仿真51系列、AVR、PIC等常用主流單片機。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計開發(fā)環(huán)境。3.4.2p1.PROTEUS實現(xiàn)軟件仿真.1)
支持多種主流單片機系統(tǒng)的仿真支持當(dāng)前的主流單片機,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。2)提供軟件調(diào)試功能3)提供豐富的外圍接口器件及其仿真RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。這樣很接近實際。在訓(xùn)練學(xué)生時,可以選擇不同的方案,這樣更利于培養(yǎng)學(xué)生。4)
提供豐富的虛擬儀器利用虛擬儀器在仿真過程中可以測量外圍電路的特性,培養(yǎng)學(xué)生實際硬件的調(diào)試能力。5)
具有強大的原理圖繪制功能2.用proteus單獨仿真在PROTUES繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實物運行狀態(tài)和過程。3.4.3PROTEUS軟件基本操作本文中由于我們主要使用Proteus軟件在單片機方面的仿真功能,所以我們重點研究ISIS模塊的用法,在下面的內(nèi)容中,如不特別說明,我們所說的Proteus軟件特指其ISIS模塊。下面我們首先來熟悉一下Proteus的界面。Proteus是一個標(biāo)準(zhǔn)的Windows窗口程序,和大多數(shù)程序一樣,沒有太大區(qū)別,其啟動界面如下圖所示:圖3.25如圖中所示,區(qū)域①為菜單及工具欄,區(qū)域②為預(yù)覽區(qū),區(qū)域③為元器件瀏覽區(qū),區(qū)域④為編輯窗口,區(qū)域⑤為對象拾取區(qū),區(qū)域⑥為元器件調(diào)整工具欄,區(qū)域⑦為運行工具條。下面我們就以建立一個和我們在Keil簡介中所講的工程項目相配套的Proteus工程為例來詳細講述Proteus的操作方法以及注意事項。首先點擊啟動界面區(qū)域③中的“P”按鈕(PickDevices,拾取元器件)來打開“PickDevices”(拾取元器件)對話框從元件庫中拾取所需的元器件。對話框如下圖所示:在對話框中的“Keywords”里面輸入我們要檢索的元器件的關(guān)鍵詞,比如我們要選擇項目中使用的AT89C51,就可以直接輸入。輸入以后我們能夠在中間的“Results”結(jié)果欄里面看到我們搜索的元器件的結(jié)果。在對話框的右側(cè),我們還能夠看到我們選擇的元器件的仿真模型、引腳以及PCB參數(shù)。這里有一點需要注意,可能有時候我們選擇的元器件并沒有仿真模型,對話框?qū)⒃诜抡婺P秃鸵_一欄中顯示“NoSimulatorModel”(無仿真模型)。那么我們就不能夠用該元器件進行仿真了,或者我們只能做它的PCB板,或者我們選擇其他的與其功能類似而且具有仿真模型的元器件。搜索到所需的元器件以后,我們可以雙擊元器件名來將相應(yīng)的元器件加入到我們的文檔中,那么接著我們還可以用相同的方法來搜索并加入其他的元器件。當(dāng)我們已經(jīng)將所需的元器件全部加入到文檔中時,我們可以點擊“OK”按鈕來完成元器件的添加。添加好元器件以后,下面我們所需要做的就是將元器件按照我們的需要連接成電路。首先在元器件瀏覽區(qū)中點擊我們需要添加到文檔中的元器件,這時我們就可以在瀏覽區(qū)看到我們所選擇的元器件的形狀與方向,如果其方向不符合你的要求,你可以通過點擊元器件調(diào)整工具欄中的工具來任意進行調(diào)整,調(diào)整完成之后在文檔中單擊并選定好需要放置的位置即可。接著按相同的操作即可完成所有元器件的布置,接下來是連線。事實上Proteus的自動布線功能是如此的完美以至于我們在做布線時從來都不會覺得這是一項任務(wù),而通常像是在享受布線的樂趣。布線時我們只需要單擊選擇起點,然后在需要轉(zhuǎn)彎的地方單擊一下,按照你所需走線的方向移動鼠標(biāo)到線的終點單擊即可。本例我們布線的結(jié)果如下圖所示:圖3.26因為該工程十分簡單,我們沒有必要加上復(fù)位電路,所以這點在圖中予以忽略,請大家注意。除此以外,你可能還發(fā)現(xiàn),單片機系統(tǒng)沒有晶振,這一點你需注意。事實上在Proteus中單片機的晶振可以省略,系統(tǒng)默認為12MHz,而且很多時候,當(dāng)然也為了方便,我們只需要取默認值就可以了。下面我們來添加電源。先說明一點,Proteus中單片機芯片默認已經(jīng)添加電源與地,所以我們可以省略。然后在添加電源與地以前,我們先來看一下上面第一個圖中區(qū)域⑤的對象拾取區(qū),我們在這里只說明本文中可能會用得到的以及比較重要的工具。:(SelectionMode)。選擇模式,通常情況下我們都需要選中它,比如布局時和布線時。:(ComponentMode)。組件模式,點擊該按鈕,能夠顯示出區(qū)域③中的元器件,以便我們選擇。:(WireLabelMode)。線路標(biāo)簽?zāi)J?,選中它并單擊文檔區(qū)電路連線能夠為連線添加標(biāo)簽。經(jīng)常與總線配合使用。
:(TextScriptMode)。文本模式,選中它能夠為文檔添加文本。:(BusesMode)。總線模式,選中它能夠在電路中畫總線。關(guān)于總線畫法的詳細步驟與注意事項我們在下面會進行專門講解。:(TerminalsMode)。終端模式,選中它能夠為電路添加各種終端,比如輸入、輸出、電源、地等等。l:(VirtualInstrumentsMode)。虛擬儀器模式,選中它我們能夠在區(qū)域③中看到很多虛擬儀器,比如示波器、電壓表、電流表等等。好了,下面我們就來添加電源。首先點擊,選擇終端模式,然后在元器件瀏覽區(qū)中點擊POWER(電源)來選中電源,通過區(qū)域⑥中的元器件調(diào)整工具進行適當(dāng)?shù)恼{(diào)整,然后就可以在文檔區(qū)中單擊放置電源了。放置并連接好線路的電路圖一部分如下圖所示:圖3.27連接好電路圖以后我們還需要做一些修改。由上圖我們可以看出,圖中的R1電阻值為10k,這個電阻作為限流電阻顯然太大,將使發(fā)光二極管D1亮度很低或者根本就不亮,影響我們的仿真結(jié)果。所以我們要進行修改。修改方法如下:首先我們雙擊電阻圖標(biāo),這時軟件將彈出“EditComponent”對話框(見下圖所示的對話框),對話框中的“ComponentReferer”是組件標(biāo)簽之意,可以隨便填寫,也可以取默認,但要注意在同一文檔中不能有兩個組件標(biāo)簽相同;“Resistance”就是電阻值了,我們可以在其后的框中根據(jù)需要填入相應(yīng)的電阻值。填寫時需注意其格式,如果直接填寫數(shù)字,則單位默認為Ω;如果在數(shù)字后面加上K或者k,則表示kΩ之意。這里我們填入270,表示270Ω。修改好各組件屬性以后就要將程序(HEX文件)載入單片機了。首先雙擊單片機圖標(biāo),系統(tǒng)同樣會彈出“EditComponent”對話框,如下圖。在這個對話框中我們點擊“Programfiles”框右側(cè)的,來打開選擇程序代碼窗口,選中相應(yīng)的HEX文件后返回,這時,按鈕左側(cè)的框中就填入了相應(yīng)的HEX文件,我們點擊對話框的“OK”按鈕,回到文檔,程序文件就添加完畢了。圖3.28裝載好程序,我們就可以進行仿真了。首先來熟悉一下上面第一個圖中區(qū)域⑦的運行工具條。因為比較簡單,我們只作一下介紹。工具條從左到右依次是“Play”、“Step”、“Pause”、“Stop”按鈕,即運行、步進、暫停、停止。下面我們點擊“Play”按鈕來仿真運行,效果如下圖所示,可以看到系統(tǒng)按照我們的程序在運行著,而且我們還能看到其高低電平的實時變化。如果我們已經(jīng)觀察到了結(jié)果就可以點擊“Stop”來停止運行[7]。圖3.29第四章自動售貨機的系統(tǒng)結(jié)構(gòu)4.1自動售貨機的總體系統(tǒng)結(jié)構(gòu)自動售貨機是集光、機、電一體化的獨立機構(gòu),它只需要顧客投幣和按購物鍵選擇即可自動售貨及退找零錢,其工作程序如下圖4.1圖4.1自動售貨機工作時序圖售貨機的工作原理是:(1)從投幣口送入貨幣,然后通過傳感器采集數(shù)據(jù)、識別器判斷貨幣的真?zhèn)尾⑴袆e面值。(2)識別器把信息數(shù)據(jù)傳給通信模塊。(3)通信模塊與售貨機的主控系統(tǒng)通信,主控系統(tǒng)顯示面值,啟動售貨機的面板鍵,顯示出哪個貨道有貨,哪個貨道已經(jīng)售完,并等待顧客按鍵選擇商品。(4)顧客選擇商品后,售貨機自動把商品送出,等待顧客取走。(5)顯示余額,如果金額足夠多,顧客可以選擇找?guī)呕蛘呃^續(xù)買商品;如果款額不夠,售貨機經(jīng)過延時予以退幣。退幣分為兩種情況:一種是由貨幣識別器完成退紙幣,另一種是由硬幣的通信模塊完成退硬幣。(6)系統(tǒng)復(fù)零,完成售貨。自動售貨機的硬件原理構(gòu)成如下圖4.2所示圖4.2自動售貨機硬件結(jié)構(gòu)圖綜合所述,售貨機系統(tǒng)可以分為三部分組成,即自動售貨機的控制子系統(tǒng)、通訊子系統(tǒng)、硬幣器子系統(tǒng)以及紙幣器子系統(tǒng)。其中控制子系統(tǒng)是本設(shè)計研究重點。4.2自動售貨過程的控制子系統(tǒng)簡述控制子系統(tǒng)由以下四個部分組成,分別是預(yù)設(shè)自動售貨機系統(tǒng)、金額累計、可售指示和退幣系統(tǒng)、售完檢測系統(tǒng)、售出累計及自測功能系統(tǒng)。1、預(yù)設(shè)自動售貨機系統(tǒng)。自動售貨機售出的同類商品可分為若干品種,其售前設(shè)定價格須預(yù)先寄存在控制系統(tǒng)內(nèi)。售貨機的價格設(shè)置由按鍵和存儲器組成。通過按鍵選擇被設(shè)價商品的種類及價格,并將價格寫入存儲器中,該存儲器本身具有掉電保護功能,屬于軟件設(shè)置方式。此外,在簡易售貨機中,由于出售商品的種類少,價格變化下,使用幣種單一,也可以用硬件設(shè)置價格,采用撥碼開關(guān)對應(yīng)方式,結(jié)構(gòu)簡單,操作方便。2、金額累計、可售指示和退幣系統(tǒng)。控制系統(tǒng)的核心CPU對識幣、退幣、無貨檢驗及購貨信號進行循環(huán)檢查,當(dāng)有識幣信號后,將金額數(shù)值送入金額累計存儲器中進行累計,并通過串行接口使可售指示燈亮,提示購貨。此時可以按下購貨按鈕,由于CPU檢測到有購貨信號后,如金額累計器中的數(shù)值與預(yù)設(shè)價格相等,則通過并行擴展接口驅(qū)動電磁閥或者微電機驅(qū)動出商品,并將金額累計存儲器清零,完成一次售貨過程,如累計金額大于預(yù)設(shè)價格時,驅(qū)動商品后,相減差額由信號驅(qū)動退幣,實現(xiàn)退幣和找錢功能。3、售完檢測系統(tǒng)。在自動售貨機商品存儲存道下方按有接觸行程開關(guān),當(dāng)存儲存道有商品時,壓下行程開關(guān),自動售貨機正常工作;當(dāng)商品出售完畢時,行程開關(guān)被釋放,向CPU發(fā)出無貨信號,經(jīng)過檢測通過串行擴展接口向相應(yīng)的售完指示燈發(fā)出信號,使機身“售完”指示燈亮,此種商品自動停售,即使投幣金額達到該道商品預(yù)設(shè)價格數(shù)值,可售按鈕仍然無法啟動信號,金額累計存儲器也不清零。4、自動售貨機售出累計及自測功能系統(tǒng)。該機CPU在每次售出商品后,向售出累計存儲器中累計售出數(shù)據(jù),通過自動售貨機內(nèi)部的按鍵可在金額顯示窗口中讀到累計結(jié)果。此外,在按下自測功能鍵后,出現(xiàn)自測功能信號,由外部按鍵操作,可檢測各商品存儲道的驅(qū)動商品功能。第五章自動售貨機的功能介紹5.1自動售貨機的功能簡介基本原理:當(dāng)貨幣被投入后,識別器對所投貨幣進行識別,根據(jù)金額將商品選擇權(quán)提供用戶,用戶選擇后,控制芯片發(fā)出指令將所選擇商品從儲備料道中送達取物口。其功能描述:貨物種類一共設(shè)有3種,這3種物品分別對應(yīng)著3個不同的按鍵選擇,其中2元,3元,4元價格不等的物品各1種;自動售貨機能夠?qū)⑼稁趴倲?shù)用LCD顯示。如果累計投入的貨幣數(shù)目超過物品的預(yù)設(shè)價格,機器能夠?qū)崿F(xiàn)找錢功能;如果投入的貨幣沒有達到所選擇物品的預(yù)設(shè)價格時,投入的錢將全部退還;在投入一次累加貨幣后選擇物品,如果投入的累加貨幣數(shù)目大大超過所選擇物品的預(yù)設(shè)單個價格時,那么能夠?qū)崿F(xiàn)選擇同一個物品購買多個,在本設(shè)計中設(shè)為可以同時購買2個或3個物品。本設(shè)計中有一共有7個按鍵選擇,其中3個是貨物選擇鍵,有2個是多選鍵(一次購買2個或3個貨物),還有1個確定鍵和1個取消鍵。如果沒有按照預(yù)先設(shè)計的流程順序進行按鍵選擇,自動售貨機將會自動返回操作前的狀態(tài),等待再次正確的按鍵選擇。自動售貨機的原理框圖如圖5.1所示圖5.1自動售貨機系統(tǒng)原理框圖5.2實現(xiàn)自動售貨機的功能的設(shè)計思路采用單片機89C51作為中央控制元件;用P3.4(XO)口作為識別貨幣輸入端;P1口作為貨物選擇選擇端(采用獨立式鍵盤做為選擇貨物端);采用P0口實現(xiàn)掉出貨物功能、找零功能;第六章硬件接口電路圖6.1硬件接口電路如圖6.1所示,本次設(shè)計的自動售貨機系統(tǒng)包括以下幾個部分:中央控制元件89C51、投幣及投幣總數(shù)LCD顯示系統(tǒng)、貨物選擇系統(tǒng)、出貨系統(tǒng)、找錢系統(tǒng)。6.1投幣系統(tǒng)投幣系統(tǒng)是自動售貨設(shè)計當(dāng)中比較重要的一塊。本課題設(shè)計主要是要實現(xiàn)自動售貨機的投幣總數(shù)顯示、貨物選擇、出貨以及找零功能。在本次設(shè)計中用P3.4上的一個按鍵來代替投幣系統(tǒng)的電平輸出。在投幣系統(tǒng)中可以通過89C51內(nèi)部的定時器來控制投幣時間,在規(guī)定的時間范圍內(nèi)完成投幣動作,否則投入的貨幣全部退出。由于本次設(shè)計主要是要體現(xiàn)從投幣到操作最后到出貨的過程,在設(shè)計中沒有用到定時設(shè)置。6.1.2本次設(shè)計的貨幣累加是對判斷P3.4上的按鍵上所按下的次數(shù)進行累加來實現(xiàn)的,并將累加的次數(shù)送到寄存器B,然后系統(tǒng)根據(jù)投幣的總數(shù)和相應(yīng)的操作來實現(xiàn)輸出。6.2貨物選擇系統(tǒng)按鍵按照接口原理可分為編碼鍵盤與非編碼鍵盤兩類,這兩類鍵盤的主要區(qū)別是識別鍵符及給出相應(yīng)鍵碼的方法。編碼鍵盤主要是用硬件來實現(xiàn)對鍵的識別,非編碼鍵盤主要是由軟件來實現(xiàn)鍵盤的定義與識別。由于本次設(shè)計只需要七個按鍵即可滿足設(shè)計要求,所以采用獨立式鍵盤,這樣對鍵盤識別的編程也比較簡單。6.2.1獨立式按鍵的識別很簡單,如圖6.1所示,當(dāng)某個鍵按下時,相應(yīng)的接口會出現(xiàn)低電平,無鍵按下時則為高電平,由此就可以判斷出哪個鍵有按下。6.2.2將P1.0~P1.6上的按鍵編碼為00H、01H、02H、03H、04H、05H、06H,按鍵所對應(yīng)的功能見表6.1表6.1按鍵功能表按鍵號對應(yīng)的功能00H選擇2元錢貨物A01H選擇3元錢貨物B02H選擇4元錢貨物C03H對選擇的貨物買2個04H對選擇的貨物買3個05H對選擇的貨物再次確定06H對選擇的貨物取消6.2.3貨物選擇系統(tǒng)的程序流程圖圖6.2貨物選擇系統(tǒng)的程序流程圖6.3出貨系統(tǒng)6.3.1本設(shè)計中,設(shè)置了價格分別為2元、3元、4元不等的貨物,一共3種。在通過按鍵選擇物品后,將會把產(chǎn)生的信號輸入給89C51的P1的引腳上,89C51接收信號后,經(jīng)過處理后,將會在貨物輸出端產(chǎn)生與其相對應(yīng)的信號輸出,控制所選貨物的掉出。本次設(shè)計用P1.0~P1.2作為貨物的輸出端,在貨物的輸出端采用光電隔離技術(shù),對于光電隔離技術(shù)這里不做介紹,在這里用一個LED指示燈代替貨物的掉出情況,若有貨物掉出則對應(yīng)輸出口為高電平,則指示燈亮,反之指示燈不亮。由于這里P0口作通用的I/O口輸出,所以必須接上拉電阻,如圖3.0所示。6.3.2圖6.3出貨程序流程6.4找錢系統(tǒng)的描述及流程圖本次設(shè)計中采用P1.3~P1.6口作為找零輸出口,P1.3~P1.6分別對應(yīng)1元找零口、2元找零口、2元找零口、5元找零口。這樣設(shè)計的目的是方便實現(xiàn)不同數(shù)額的找零輸出。同出貨系統(tǒng)一樣,找錢系統(tǒng)也用LED指示燈來表示找零,對應(yīng)的端口上若指示燈亮則表示有零錢掉出。圖6.4找錢程序流程圖第七章設(shè)計仿真7.1仿真電路用Keil軟件仿真的結(jié)果如圖所示:圖7.1Keil仿真7.2proteus仿真圖假如投入5元錢貨幣,操作依次為按2元貨物選擇鍵、確定鍵,則在proteus里的仿真結(jié)果如下圖所示:圖7.2初始狀態(tài)圖7.3投入5元圖7.4找回3元圖7.5掉出2元貨物圖7.6返回初始狀態(tài)參考文獻[1]朱軍王海東。自動售貨機中的紙鈔及硬幣識別原理.傳感器世界[J],1996年2期,37-39[2]葉銀蘭。自動售貨機的設(shè)計與實現(xiàn).微計算機信息[J],2008年23期,53-55[3]張毅剛彭喜源譚曉昀。MCS-51單片機應(yīng)用設(shè)計[M]。哈爾濱工業(yè)大學(xué)出版社,1997年12月[4]王巖。TC1602液晶模塊與單片接口字符實驗.,2009年3月25日[5]朱清慧張鳳蕊翟天嵩。Proteus教程[M]。清華大學(xué)出版社,2008年9月[6]智慧百科《自動售貨機》/wiki/%E8%87%AA%E5%8A%A8%E5%94%AE%E8%B4%A7%E6%9C%BA[7]黃智偉鄧月明王彥。ARM9嵌入式系統(tǒng)設(shè)計基礎(chǔ)教程。北京航空航天大學(xué)出版社2008年8月[8]譚浩強.《MCS-51單片機應(yīng)用教程》[M].北京:清華大學(xué)出版社.2004:57~62[9]金建設(shè).《單片微機原理及應(yīng)用》[M].北京:郵電大學(xué)出版社,2009:20~36[10]百度百科.《LED》./view/52538.htm#sub52538致謝本次設(shè)計是在王魯云老師的悉心指導(dǎo)下完成的,通過這次畢業(yè)設(shè)計我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉,同時在設(shè)計過程當(dāng)中我加強了對單片機的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程的了解,以及加強了對Keil軟件和Proteus軟件的應(yīng)用能力,為今后的學(xué)習(xí)和研究打下了基礎(chǔ)。同時,我也要感謝其他老師和同學(xué)的幫助,從他們身上我學(xué)到了很多理論知識,自己的實踐能力也得到了很大的提高。在未來的學(xué)習(xí)和工作中,我會繼續(xù)努力,不斷地實現(xiàn)自己的人生價值,以更好的成績來回報母校,回報社會。附錄本次設(shè)計的完整程序MONEYEQU0040H;定義投幣顯示存儲單元 RSEQUP3.0RWEQUP3.1EEQUP3.2*******投幣總數(shù)LCD顯示程序********MAIN:MOVMONEY,#01H;賦予MONEY單元初值為1START:ACALLDELAY;調(diào)用延時程序MOVP2,#01H;寫指令01H,清屏LCALLENABLEMOVP2,#38H;寫指令38H,設(shè)定LCD為16*2顯示,5*7點陣,8位數(shù)據(jù)接口 LCALLENABLEMOVP2,#0FH;寫指令0FH,顯示ON,光標(biāo)ON,閃爍ONLCALLENABLEMOVP2,#06H;寫指令06H,光標(biāo)輸入方式增量移位LCALLENABLEMOVP2,#80H;第一行起始字符地址LCALLENABLEMOVDPTR,#TABLE;顯示字符表頭地址LCALLDISP;顯示第一行數(shù)據(jù)RET;返回ENABLE:CLRRS;寫指令子程序CLRRWCLRELCALLDELAYSETBERETDISP:MOVR4,#6;準(zhǔn)備顯示一行6個字符LOOP1:MOVA,00H;投幣數(shù)送AMOVR1,MONEYL1:ADDA,#06H;設(shè)置偏移量為6DJNZR1,L1MOVCA,@A+DPTR;查表取得要顯示的數(shù)據(jù)LCALLDISPF;寫入一個數(shù)據(jù)INCDPTR;數(shù)據(jù)表指針加1,準(zhǔn)備取下一個數(shù)據(jù)DJNZR4,LOOP1;一行沒有顯示完就繼續(xù)JMPINSERTDISPF:MOVP2,A;寫1字節(jié)數(shù)據(jù)到顯示端口SETBRS;寫數(shù)據(jù)時序(請參照1602LCD使用說明書)CLRRWCLRELCALLDELAYSETBERETTABLE:DB"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"**********投幣口程序***********INSERT:MOVA,P3;投幣口檢測CPLAJBCACC.4,S1;P3口有鍵按下轉(zhuǎn)S1LCALLKEYMOVA,R5CJNEA,#0FFH,CHECK;貨物選擇鍵盤有鍵按下轉(zhuǎn)CHECK程序AJMPINSERTS1:LCALLD10MS;延時消抖MOVA,P3CPLAJBCACC.4,S2S2:MOVR1,MONEYINCR1MOVMONEY,R1WAIT1:MOVA,P3CPLAJBCACC.4,WAIT1;投幣開關(guān)未松開繼續(xù)等待,否則返回STARTAJMPSTART;返回***********鍵盤程序************KEY:MOVA,P1;讀P1口CPLAJNZKEY2;A不等零說明有鍵按下轉(zhuǎn)KEY2MOVR5,#0FFHRETKEY2:LCALLD10MS;延時消抖MOVA,P1CPLAJNZKEY3MOVR5,#0FFHRETKEY3:JNBACC.0,K1MOVR5,#00HLCALLWAITRETK1:JNBACC.1,K2MOVR5,#01H
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車站裝修批蕩施工協(xié)議
- 防腐施工應(yīng)急預(yù)案合同
- 互聯(lián)網(wǎng)項目招投標(biāo)合同注意事項
- 化工行業(yè)招待費管理新方法
- 花藝助理勞動合同注意事項
- 供水供電收費管理:發(fā)票管理辦法
- 食品飲料輸送管道施工
- 2025版空置房屋閑置資源盤活利用合作開發(fā)合同3篇
- 臨時辦學(xué)場所租賃合同
- 2025版二零二五年度新能源充電樁建設(shè)與運營合同3篇
- 企業(yè)EHS風(fēng)險管理基礎(chǔ)智慧樹知到答案章節(jié)測試2023年華東理工大學(xué)
- 健身俱樂部入場須知
- TZJXDC 002-2022 電動摩托車和電動輕便摩托車用閥控式鉛酸蓄電池
- GB/T 337.1-2002工業(yè)硝酸濃硝酸
- 《解放戰(zhàn)爭》(共48張PPT)
- 借調(diào)人員年終總結(jié)模板【5篇】
- GB 1886.342-2021食品安全國家標(biāo)準(zhǔn)食品添加劑硫酸鋁銨
- 期末復(fù)習(xí)必背作文 魯教版八年級上冊英語全冊
- 放射工作人員法律法規(guī)及防護知識培訓(xùn)考核試題附答案
- 2023年全科醫(yī)師轉(zhuǎn)崗培訓(xùn)理論考試試題及答案
- 西方法律思想史 課件
評論
0/150
提交評論