基于單片機(jī)的自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 基于單片機(jī)的自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)摘 要本文設(shè)計(jì)了一個(gè)基于AT89C51單片機(jī)的自動(dòng)售貨控制系統(tǒng),文中詳細(xì)的介紹了設(shè)計(jì)方案的實(shí)施背景,各種元器件的選擇,系統(tǒng)模塊的劃分以及功能的實(shí)現(xiàn)。該系統(tǒng)模塊劃分清晰,采用按鍵實(shí)現(xiàn)人機(jī)的友好交互。以C語(yǔ)言為開發(fā)語(yǔ)言,可讀、易理解性大大提高。開發(fā)環(huán)境為Keil,Proteus有機(jī)結(jié)合,keil實(shí)現(xiàn)代碼的編寫、修改、編譯,Proteus則對(duì)編譯好的代碼在模擬器件上進(jìn)行仿真。有效的提高了開發(fā)效率。系統(tǒng)最終實(shí)現(xiàn)了貨物選擇、投幣顯示、退幣顯示、出貨顯示等一系列功能。關(guān)鍵詞:AT89C51;自動(dòng)售貨機(jī);PROTEUSThe Design of Vending Contro

2、l Systems Based on SCMPeng xin Yi(College of Physics, Mechanical and Electrical Engineering, JishouUniversity, Jishou, Hunan 416000)AbstractVending system based on AT89C51 is designed in this paper, which contains a detailed description of the implementation of the background of the design, the choi

3、ce of the various components, division and function of the system module. The modular division of system is clear, using the key to achieve human-machine friendly interaction. C language for the development of language contributes readable, easy to understand greatly improved. Development Environmen

4、t is Keil and Proteus. The keil is used to implement code of write, modify and compile, at the same time, proteus implements simulation. These effectively improve the development efficiency. System achieves a series of functions such as cargo selection, coin and currency recreation and shipment show

5、.Key words: AT89C51; Vending machine; PROTEUS目 錄第一章 緒 論11.1 自動(dòng)售貨機(jī)的歷史及發(fā)展前景11.2 自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)的意義11.3 本文的主要設(shè)計(jì)內(nèi)容2第二章 自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)分析32.1 系統(tǒng)總體設(shè)計(jì)分析32.2 元器件選擇42.3 開發(fā)工具4第三章 自動(dòng)售貨控制系統(tǒng)硬件設(shè)計(jì)53.1 硬件總體框圖53.2 AT89C51單片機(jī)模塊53.2.1 管腳說(shuō)明63.2.2 AT89C51單片機(jī)的主要特性73.2.3 芯片擦除83.3 單片機(jī)驅(qū)動(dòng)系統(tǒng)模塊83.4 系統(tǒng)顯示模塊93.4.1 數(shù)碼管顯示器93.4. 2 顯示器的驅(qū)動(dòng)電路93.

6、5 貨幣識(shí)別投入電路模塊103.6 貨品選擇按鍵模塊103.7 出貨、退幣模塊113.8 小結(jié)11第四章 自動(dòng)售貨控制系統(tǒng)軟件設(shè)計(jì)124.1 C51語(yǔ)言的優(yōu)缺點(diǎn)124.2 Keil和Proteus開發(fā)步驟124.3 主要模塊軟件設(shè)計(jì)134.3.1 按鍵掃描及鍵值識(shí)別模塊134.3.2 數(shù)碼管顯示電路134.3.3 投幣電路144.4 小結(jié)14第五章 調(diào)試與仿真155.1 調(diào)試與仿真155.2 不足與改進(jìn)19總 結(jié)20參考文獻(xiàn)21附 錄2227基于單片機(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 第一章 緒 論 第一章 緒 論1.1 自動(dòng)售貨機(jī)的歷史及發(fā)展前景據(jù)說(shuō)世界上最早的自動(dòng)售貨機(jī)出現(xiàn)在公元前3世紀(jì),那是埃及神殿里

7、的投幣式圣水出售機(jī)。17世紀(jì),英國(guó)的小酒吧里設(shè)有了香煙的自動(dòng)售貨機(jī)。在自動(dòng)售貨機(jī)歷史的長(zhǎng)河中,日本開發(fā)出實(shí)用型的自動(dòng)售貨機(jī),那是在進(jìn)入本世紀(jì)后的事。日本第一臺(tái)自動(dòng)售貨機(jī)是1904年問世的“郵票明信片自動(dòng)出售機(jī)”,它是集郵票明信片的出售和郵筒投函為一體的機(jī)器。自動(dòng)售貨機(jī)的真正普及是在第二次世界大戰(zhàn)以后。50年代,“噴水型果汁自動(dòng)售貨機(jī)”大受歡迎,果汁被注入在紙杯里出售。后來(lái),由于美國(guó)的飲料大公司進(jìn)入日本市場(chǎng),1962年,出現(xiàn)了以自動(dòng)售貨機(jī)為主體的流通領(lǐng)域的革命。1967年,100日元單位以下的貨幣全部改為硬幣,從而促進(jìn)了自動(dòng)售貨機(jī)產(chǎn)業(yè)的發(fā)展?,F(xiàn)在,自動(dòng)售貨機(jī)產(chǎn)業(yè)正在走向信息化并進(jìn)一步實(shí)現(xiàn)合理化。

8、例如實(shí)行聯(lián)機(jī)方式,通過電話線路將自動(dòng)售貨機(jī)內(nèi)的庫(kù)存信息及時(shí)地傳送各營(yíng)業(yè)點(diǎn)的電腦中,從而確保了商品的發(fā)送、補(bǔ)充以及商品選定的順利進(jìn)行。并且,為防止地球暖化,自動(dòng)售貨機(jī)的開發(fā)致力于能源的節(jié)省,節(jié)能型清涼飲料自動(dòng)售貨機(jī)成為該行業(yè)的主流。在夏季電力消費(fèi)高峰時(shí),這種機(jī)型的自動(dòng)售貨機(jī)即使在關(guān)掉冷卻器的狀況下也能保持低溫,與以往的自動(dòng)售貨機(jī)相比,它能夠節(jié)約1015%的電力。進(jìn)入21世紀(jì)時(shí),自動(dòng)售貨機(jī)也將進(jìn)一步向節(jié)省資源和能源以及高功能化的方向發(fā)展。1.2 自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)的意義自動(dòng)售貨機(jī)從問世以來(lái)就備受關(guān)注,因其無(wú)需專人守護(hù)而可以每天24小時(shí)售貨,被稱為“微型超市”。自動(dòng)售貨機(jī)的核心在其控制系統(tǒng),它能夠

9、準(zhǔn)確的識(shí)別幣值以及貨品,控制自動(dòng)售貨機(jī)接受錢幣然后選出顧客所需的物品。如今是一個(gè)智能化的社會(huì),越來(lái)越多的智能產(chǎn)品將被研發(fā)生產(chǎn)出來(lái),簡(jiǎn)單實(shí)用的自動(dòng)售貨機(jī)將會(huì)逐步成為人們購(gòu)物的“優(yōu)秀售貨員”。自動(dòng)售貨裝置已經(jīng)成為一個(gè)城市的標(biāo)志,地鐵站內(nèi)、圖書館旁、大型超市門口都能見到它們的蹤影。自動(dòng)售貨裝置以其特點(diǎn):無(wú)需專人看管,所占空間不大,方便人們購(gòu)物在當(dāng)今的社會(huì)中占據(jù)重要的地位。一個(gè)性能優(yōu)越的自動(dòng)售貨機(jī)取決于它的自動(dòng)控制系統(tǒng),采用AT89C51單片機(jī)為控制核心是由于AT89C51單片機(jī)的可靠性高,編程簡(jiǎn)單,接口方便,同時(shí)配以相應(yīng)的外圍電路來(lái)驅(qū)動(dòng)單片機(jī)以及實(shí)現(xiàn)該系統(tǒng)的其他相關(guān)的功能。自動(dòng)售貨裝置有著廣闊的發(fā)展

10、前景及市場(chǎng),優(yōu)良的自動(dòng)售貨控制系統(tǒng)的設(shè)計(jì)將會(huì)不斷的推動(dòng)其前進(jìn)。1.3 本文的主要設(shè)計(jì)內(nèi)容本文主要設(shè)計(jì)了一個(gè)自動(dòng)售貨控制系統(tǒng),從自動(dòng)售貨機(jī)的歷史、自動(dòng)售貨系統(tǒng)總體分析、自動(dòng)售貨系統(tǒng)硬件設(shè)計(jì)、自動(dòng)售貨系統(tǒng)軟件設(shè)計(jì)、調(diào)試與仿真等五個(gè)方面進(jìn)行??傮w分析得出系統(tǒng)的框圖和顧客購(gòu)物流程、元器件的選擇,硬件設(shè)計(jì)采用Proteus模擬連接實(shí)物圖,軟件設(shè)計(jì)采用c語(yǔ)言編寫,keil進(jìn)行調(diào)試,調(diào)試與仿真則在Proteus中清晰可見。各部分功能明確,相互協(xié)調(diào),共同支配著自動(dòng)售貨系統(tǒng)的有序運(yùn)行?;趩纹瑱C(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 第二章 自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)分析 第二章 自動(dòng)售貨控制系統(tǒng)設(shè)計(jì)分析2.1 系統(tǒng)總體設(shè)計(jì)分析現(xiàn)在我們

11、來(lái)簡(jiǎn)單模擬一下顧客的購(gòu)物流程:當(dāng)顧客需要從自動(dòng)售貨機(jī)購(gòu)買貨物時(shí),顧客首先通過一些外部控件選擇自己需要的貨物。此時(shí)顧客需要知道自己應(yīng)該支付多少金額,所以自動(dòng)售貨機(jī)顯示顧客所選貨物的總金額。然后顧客可以向自動(dòng)售貨機(jī)的投幣口投入錢幣,自動(dòng)售貨機(jī)顯示顧客投入的錢幣總金額,當(dāng)投入的金額大于所需的金額的時(shí)候,顧客購(gòu)買的貨物將從出貨口送出,同時(shí)退幣口退還顧客多余的金額。根據(jù)顧客的購(gòu)物流程分析,我設(shè)計(jì)出合理可行的自動(dòng)售貨控制系統(tǒng)框架圖如圖2-1。開 始系統(tǒng)初始化選購(gòu)貨物確 認(rèn)投 幣售 貨找 零NY圖2-1 自動(dòng)控制系統(tǒng)流程圖根據(jù)自動(dòng)控制系統(tǒng)的流程圖,能夠很清晰的得出系統(tǒng)的設(shè)計(jì)思路:當(dāng)顧客選擇貨物的時(shí)候,可以采

12、用三個(gè)按鍵來(lái)模擬三種貨物(本設(shè)計(jì)提供三種貨物供選擇),貨物多樣性更加接近現(xiàn)實(shí);顯示模塊采用數(shù)碼管顯示顧客所選擇的所有貨物的金額,金額的計(jì)算由內(nèi)部邏輯處理;投幣部分用兩個(gè)按鍵來(lái)模擬2種幣值(本設(shè)計(jì)提供兩種可識(shí)別幣值);顧客成功購(gòu)買后,用一個(gè)led燈模擬貨物的取出(led燈亮則有貨物出來(lái),否則沒有貨物出來(lái));退幣部分用三個(gè)led燈模擬(分別為1元,2元,2元),三個(gè)led燈便于觀察,退幣金額由內(nèi)部邏輯根據(jù)顧客的選擇計(jì)算得出。2.2 元器件選擇1)單片機(jī):選用AT89C51作為控制核心,該單片機(jī)是一種帶4K字節(jié)FLASH存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器。2)晶振:本設(shè)計(jì)選用的晶振是CRY

13、STAL,作用在于產(chǎn)生原始的時(shí)鐘頻率,這個(gè)頻率經(jīng)過頻率發(fā)生器的倍頻或分頻后就成了單片機(jī)中各種不同的總線頻率。3)排阻:排阻RP1是用來(lái)并行口的上拉或者下拉電阻用。4)數(shù)碼管:4位8段共陽(yáng)數(shù)碼管,用來(lái)顯示投幣和找零金額。5)一般電阻:設(shè)計(jì)中需要用到的電阻均是起下拉作用,用來(lái)穩(wěn)定系統(tǒng)。6)電容:本設(shè)計(jì)中所用到的電容有3個(gè),其中2個(gè)是去耦電容,其起作用一方面是本集成電路的蓄能電容,另一方面旁路掉該器件的高頻噪聲, 起到抗干擾的作用。1個(gè)接復(fù)位輸入端口,與外接電阻構(gòu)成復(fù)位電路。7)按鍵:選用9個(gè)獨(dú)立按鍵,5個(gè)按鍵用來(lái)代表貨物的不同價(jià)格,1個(gè)用來(lái)確認(rèn),1個(gè)用來(lái)取消,還有2個(gè)用來(lái)模擬貨幣投入。2.3 開發(fā)

14、工具Keil uVision2是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)C語(yǔ)言的語(yǔ)法來(lái)開發(fā),與匯編相比,功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),它還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入,使程序達(dá)到接近于匯編的工作效率。KEILC51標(biāo)準(zhǔn)C編譯器為8051微控制器的軟件開發(fā)提供了C語(yǔ)言環(huán)境,同時(shí)保留了匯編代碼高效、快速的特點(diǎn)。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個(gè)集成開發(fā)環(huán)境包含:編譯器,匯編器,實(shí)時(shí)操 作系統(tǒng),項(xiàng)目管理器,調(diào)試器。uVision2 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。Proteus軟件是英國(guó)Lab

15、center electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯?;趩纹瑱C(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 第三章 自動(dòng)售貨控制系統(tǒng)硬件設(shè)計(jì) 第三章 自動(dòng)售貨控制系統(tǒng)硬件設(shè)計(jì)3.1 硬件總體框圖經(jīng)過分析自動(dòng)售貨控制系統(tǒng)的設(shè)計(jì)得出自動(dòng)售貨控制系統(tǒng)的總體框圖如3-1。系統(tǒng)由AT89C51單片機(jī)

16、為控制核心,外圍電路有AT89C51單片機(jī)驅(qū)動(dòng)電路,貨物選擇按鍵電路,數(shù)碼管顯示電路,取貨顯示,退幣顯示以及投幣電路。各部分相互協(xié)調(diào)工作,共同完成自動(dòng)售貨控制系統(tǒng)的運(yùn)行。AT89C51單片機(jī)單片機(jī)驅(qū)動(dòng)模塊貨物選擇按鍵電路數(shù)碼管顯示電路取貨顯示退幣顯示投幣電路圖3-1總體框圖3.2 AT89C51單片機(jī)模塊AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀

17、存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器。外形及引腳排列如圖3-2(a)(b)所示:(a)AT89C51外部結(jié)構(gòu)圖 (b)AT89C51引腳圖圖3-23.2.1 管腳說(shuō)明(1) VCC:供電電壓。(2) GND:接地。(3) P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在F

18、IASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。(4) P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 (5) P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫1時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的

19、緣故。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)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。(6) EA/VP:當(dāng)EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器,注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。(7) P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸

20、出4個(gè)TTL門電流。當(dāng)P3口寫入1后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口作為AT89C51的功能口,如表3-1所示。P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。表3-1 P3口功能P3口口管腳備選功能P3.0 RXD串行輸入口P3.1 TXD串行輸出口P3.2 /INT0外部中斷0P3.3 /INT1外部中斷1P3.4 T0記時(shí)器0外部輸入P3.5 T1記時(shí)器1外部輸入P3.6 /WR外部數(shù)據(jù)存儲(chǔ)器寫選通P3.7 /RD外部數(shù)據(jù)存儲(chǔ)器讀選通(8)RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器

21、周期的高電平。(9)ALE/P:當(dāng)訪問外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí),ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。(10) PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次P

22、SEN有效。但在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。(11)XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。(12)XTAL2:來(lái)自反向振蕩器的輸出。3.2.2 AT89C51單片機(jī)的主要特性AT89C51單片機(jī)與MCS-51微控制器產(chǎn)品系列兼容;片內(nèi)有4KB可在線重復(fù)編程的快閃擦寫存儲(chǔ)器 ;存儲(chǔ)數(shù)據(jù)保存時(shí)間為10年 ;寬工作電壓范圍VCC可為2.7V到6V ;全靜態(tài)工作可從0Hz至16MHz ;程序存儲(chǔ)器具有3級(jí)加密保護(hù) ;128*8位內(nèi)部RAM ;32條可編程I/O線 ,兩個(gè)16位定時(shí)器/計(jì)數(shù)器 ;中斷結(jié)構(gòu)具有5個(gè)中斷源和2個(gè)優(yōu)先級(jí) ,可編程全雙工串行通道 ,

23、空閑狀態(tài)維持低功耗和掉電狀態(tài)保存存儲(chǔ)內(nèi)容。3.2.3 芯片擦除整個(gè)PEROM陣列和三個(gè)鎖定位的點(diǎn)擦除可通過正確的控制信號(hào)組合,并保持LE管腳處于低電平10ms來(lái)完成。在芯片擦除操作中,代碼陣列全被寫1且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停在工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。3.3 單片機(jī)驅(qū)動(dòng)系統(tǒng)模塊單片機(jī)驅(qū)動(dòng)模塊是用來(lái)驅(qū)動(dòng)單片機(jī)工作的電路,由2個(gè)去耦

24、電容與晶振并聯(lián)接入晶振接口,構(gòu)成時(shí)鐘電路,為單片機(jī)提供時(shí)鐘信號(hào);復(fù)位電容與一電阻接入復(fù)位接口,是為系統(tǒng)提供初始化信號(hào)。根據(jù)需求可以設(shè)計(jì)出該驅(qū)動(dòng)模塊的實(shí)際電路圖如圖3-3所示:圖3-3 AT89C51單片機(jī)的驅(qū)動(dòng)電路圖中C1,C2均為20pf的去耦電容,C3為10u的復(fù)位電容,X1為12M的晶振,R1上拉電阻,晶振X1兩端分別與C1,C2的一端相連并接入晶振接口XTAL1,XTAL2。C1,C2的另一端接R1的一端并一起接地,R1的另一端與C3一端接入復(fù)位接口,C3的另一端接片內(nèi)存儲(chǔ)器,并接入電源接口。C1,C2,X1構(gòu)成時(shí)鐘電路,為單片機(jī)提供時(shí)鐘信號(hào)。此單片機(jī)片內(nèi)存儲(chǔ)器有效,可使用片內(nèi)存儲(chǔ)器,

25、不用外部拓展,R1起下拉作用,穩(wěn)定系統(tǒng)。3.4 系統(tǒng)顯示模塊系統(tǒng)顯示模塊采用4位8段共陽(yáng)數(shù)碼管顯示金額。首先顯示所選物品金額,然后顯示投入金額,最后顯示找還金額。P0口沒有內(nèi)置上拉電阻,要在外部接排阻上拉,數(shù)碼管段選接P0口,為選經(jīng)過三極管驅(qū)動(dòng)與P2.0-P2.3相接。3.4.1 數(shù)碼管顯示器顯示器用以顯示所選物品總金額、投入金額、退還金額。LED顯示器是由發(fā)光二極管顯示字段的顯示器件,也可稱為數(shù)碼管。系統(tǒng)中通常使用8段LED數(shù)碼顯示器,其外形及引腳如圖2-5(a)所示,由圖可見8段LED顯示器由8個(gè)發(fā)光二極管組成。其中7個(gè)長(zhǎng)條形的發(fā)光二極管排列成“日”字形,另一個(gè)圓點(diǎn)形的發(fā)光二極管在顯示器的

26、右下角作為顯示小數(shù)點(diǎn)用,通過不同的組合可用來(lái)顯示各種數(shù)字,包括AF在內(nèi)的部分英文字母和小數(shù)點(diǎn)“”等字樣。 LED顯示器有兩種不同的形式:一種是8個(gè)發(fā)光二極管的陽(yáng)極都連在一起的,稱為共陽(yáng)極LED顯示器;另一種是8個(gè)發(fā)光二極管的陰極都連在一起的,稱為共陰極LED顯示器,我們選擇其中一種共陽(yáng)極.如圖2-5(b)所示: 圖3-4 8段LED數(shù)碼顯示器LED顯示器有動(dòng)態(tài)顯示和靜態(tài)顯示.由于靜態(tài)顯示器硬件要求比較高,而且顯示的位數(shù)不如動(dòng)態(tài)顯示器多,為此我們選擇8位的動(dòng)態(tài)LED顯示器.動(dòng)態(tài)LED顯示器是將所有位顯示器并接到I/O接口,用兩個(gè)鎖成器,一個(gè)用以選位,另一個(gè)用以選段,具體連接總圖上有。3. 4.

27、2 顯示器的驅(qū)動(dòng)電路下圖中RP1為排阻,因?yàn)镻0口沒有內(nèi)置上接電阻,需要在外部接排阻進(jìn)行上拉,數(shù)碼段選接P0口,位選與P2.0-P2.3相連接。位選的接口為低電平是該位被選中,能夠顯示數(shù)據(jù),為高電平時(shí),該位不被選中,則不亮,不能顯示任何數(shù)據(jù)。此顯示器驅(qū)動(dòng)電路如圖3-5所示:圖3-5 顯示器驅(qū)動(dòng)電路圖3.5 貨幣識(shí)別投入電路模塊貨幣識(shí)別電路采用兩個(gè)按鈕開關(guān)模擬,第一個(gè)按鈕開關(guān)表示投入1元硬幣,第二個(gè)按鈕開關(guān)表示投入5元紙幣,該系統(tǒng)只能識(shí)別這兩種幣值。貨幣識(shí)別投入電路如圖3-6所示:圖3-6貨幣識(shí)別投入電路圖3.6 貨品選擇按鍵模塊鍵盤為7個(gè)獨(dú)立按鍵,按鍵1-5是購(gòu)物鍵,分別代表了1元、2元、3元

28、,數(shù)量2、數(shù)量3不等的貨物價(jià)格的數(shù)量,6按鍵是確認(rèn)鍵,用戶在選定所欲購(gòu)買的貨物后必須按確認(rèn)鍵,6是取消鍵,當(dāng)某個(gè)操作錯(cuò)誤是可以按取消鍵返回上一級(jí)菜單。該模塊中7個(gè)鍵并聯(lián),一端接公共地,一端接單片機(jī)的P1.0-P1.6口。按鍵選擇電路如圖3-7所示:圖3-7按鍵選擇電路3.7 出貨、退幣模塊出貨、退幣模塊才用4個(gè)led燈模擬,第一個(gè)為貨物指示燈,當(dāng)顧客投幣完成后,幣值足夠是該led燈亮,表示有貨物出來(lái)。其余3個(gè)模擬找零,分別為1元、2元、2元(便于模擬),但某個(gè)通道的燈亮了,說(shuō)明該通道有退幣。出貨、退幣電路圖如圖3-8所示:圖3-8出貨、退幣電路3.8 小結(jié)系統(tǒng)硬件的設(shè)計(jì)需滿足設(shè)計(jì)要求,各電路要

29、簡(jiǎn)潔、實(shí)用。單片機(jī)的選擇要滿足設(shè)計(jì)要求,驅(qū)動(dòng)電路要為單片機(jī)提供時(shí)鐘信號(hào)及正常工作的功率驅(qū)動(dòng);按鍵電路即系統(tǒng)的輸入電路,用戶利用按鍵系統(tǒng)輸入信號(hào);顯示電路由數(shù)碼管顯示用戶所投貨幣的金額和找零金額;貨幣識(shí)別投入電路用按鍵模擬貨幣的投入?;趩纹瑱C(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 第四章 自動(dòng)售貨控制系統(tǒng)軟件設(shè)計(jì) 第四章 自動(dòng)售貨控制系統(tǒng)軟件設(shè)計(jì)4.1 C51語(yǔ)言的優(yōu)缺點(diǎn)現(xiàn)在有四種語(yǔ)言支持8051系列單片機(jī)編程,即匯編、PL/M,C和BASIC,在開發(fā)中最常用的是匯編語(yǔ)言,但隨著程序復(fù)雜程度的提高,匯編語(yǔ)言逐漸暴露了它的不足,BASIC適合于初學(xué)者或要求編程簡(jiǎn)單而對(duì)編程效率和運(yùn)行速度不高的場(chǎng)合。PL/hi對(duì)805

30、1系列單片機(jī)來(lái)講,不支持復(fù)雜的算術(shù)運(yùn)算和浮點(diǎn)變量,無(wú)豐富的庫(kù)函數(shù)支持。C語(yǔ)言是一種源于編寫UNIX 操作系統(tǒng)的語(yǔ)言,是一種結(jié)構(gòu)化語(yǔ)言,可產(chǎn)生緊湊代碼。為了更好地實(shí)現(xiàn)對(duì)單片機(jī)的開發(fā),C51應(yīng)運(yùn)而生。每個(gè)不同公司開發(fā)的C51不盡相同,本系統(tǒng)采用的是Keil Elektronik Gmbh開發(fā)的KeiluVision2工具軟件來(lái)進(jìn)行系統(tǒng)軟件編寫和調(diào)試的。在嵌入式系統(tǒng)中,相對(duì)于匯編語(yǔ)言,C語(yǔ)言作為一種高級(jí)語(yǔ)言主要存在兩個(gè)不足:一,生成的可執(zhí)行代碼冗長(zhǎng),效率不高。對(duì)于這一點(diǎn),隨著處理芯片運(yùn)算速度的提高、集成ROM的擴(kuò)大,特別編譯系統(tǒng)的不斷優(yōu)化,冗長(zhǎng)已經(jīng)不再是問題。這也是C在嵌入式系統(tǒng)中逐漸成為主流編程語(yǔ)

31、言的主要原因之一。二,C生成的可執(zhí)行代碼在時(shí)序上不容易控制,比如本系統(tǒng)中要實(shí)現(xiàn)的時(shí)序控制。一般的解決方案是在C程序中嵌入?yún)R編語(yǔ)句,但其實(shí)只要充分挖掘C的潛力,在時(shí)序要求嚴(yán)格的場(chǎng)合完全可以用C語(yǔ)言實(shí)現(xiàn)。具體方法就是閱讀開發(fā)環(huán)境給我們提供的反匯編代碼。反匯編代碼一目了然的反映了微控器的運(yùn)行時(shí)序,然后根據(jù)反匯編代碼修改C源程序。4.2 Keil和Proteus開發(fā)步驟Keil對(duì)于單片機(jī)開發(fā)是十分有用的,開發(fā)效率高、操作簡(jiǎn)單、功能齊全。Keil開發(fā)步驟清晰易懂:?jiǎn)?dòng)Keil、新建工程、新建文本、編寫源程序、編譯。在編譯產(chǎn)生.hex文件時(shí)需要注意,選中output的create HEX File才能在文

32、件目錄生成.hex的文件。Proteus在硬件構(gòu)圖方面功能強(qiáng)大,但是Proteus的使用難度也比較大。在本設(shè)計(jì)中,Proteus開發(fā)流程為:?jiǎn)?dòng)Proteus、新建工程、選取元器件、連接電路圖、添加.hex文件、運(yùn)行查看結(jié)果。Keil和Proteus結(jié)合開發(fā)能夠使得開發(fā)更為簡(jiǎn)單,開發(fā)流程圖如圖4-1所示:啟動(dòng)keil新建工程新建文本文本加入工程編寫程序編譯啟動(dòng)Proteus新建工程選取元器件連接電路圖添加.hex文件運(yùn)行生成.hex文件圖4-1 Keil和Proteus開發(fā)流程圖4.3 主要模塊軟件設(shè)計(jì)根據(jù)控制系統(tǒng)的設(shè)計(jì)要求及硬件設(shè)計(jì),該系統(tǒng)的軟件采用模塊化的設(shè)計(jì)方法,編程語(yǔ)言為C語(yǔ)言。代碼模

33、塊包括:主程序模塊、按鍵掃描及鍵值識(shí)別模塊、數(shù)碼管顯示及售貨模塊、貨幣識(shí)別投入及找零處理模塊。源程序見附錄。4.3.1 按鍵掃描及鍵值識(shí)別模塊該模塊使用7個(gè)獨(dú)立按鍵模擬顧客選擇貨物,程序設(shè)計(jì)時(shí)通過判斷對(duì)應(yīng)按鍵的接口的電平為高/低來(lái)確定顧客的選擇,如果接口為低電平表示按鍵被按下。在判斷按鍵是否被按下的過程中,采用軟件的辦法消除按鍵抖動(dòng),具體的方法為首先判斷接口是否為低電平,如果為低電平則進(jìn)行短暫的延時(shí),然后在判斷該接口是否為低電平,如果仍然為低電平,那么表示該按鍵確實(shí)已經(jīng)被按下,觸發(fā)對(duì)應(yīng)的處理邏輯。按鍵1到按鍵3表示貨物的品種,按鍵4和按鍵5表示顧客選擇貨物的數(shù)量,按鍵6表示確定,按鍵7表示取消

34、。顧客每次選擇了后都需要按下按鍵6來(lái)確定,通過顯示模塊會(huì)給顧客良好的提示。4.3.2 數(shù)碼管顯示電路數(shù)碼管接在單片機(jī)的P0口,由于P0口沒有上拉電阻,所以需要外接上拉電阻。數(shù)碼管采用動(dòng)態(tài)顯示,首先用一個(gè)數(shù)組table保存0-9的對(duì)應(yīng)的數(shù)碼管顯示十六進(jìn)制。通過邏輯計(jì)算得出需要顯示的數(shù)據(jù)后,使用tablei來(lái)取出對(duì)應(yīng)的數(shù)據(jù)置于P0口。調(diào)用顯示函數(shù)時(shí):首先判斷顧客購(gòu)物處于哪一步,第一步表示顧客選擇貨物,第二步表示顧客投入的幣值,第三步表示應(yīng)退還的幣值。同時(shí)數(shù)碼管顯示對(duì)應(yīng)步驟的數(shù)據(jù),在第三步中,如果顧客投入的幣值小于應(yīng)付的幣值,那么步驟退一步,同時(shí)顯示為投入的幣值。4.3.3 投幣電路投幣電路采用兩個(gè)

35、按鍵模擬,一個(gè)表示1元,一個(gè)表示5元。當(dāng)系統(tǒng)處于投幣階段的時(shí)候,判斷投幣按鍵是否被按下,如果被按下則表示有錢幣投入,根據(jù)按鍵按下的次數(shù)對(duì)投入幣值進(jìn)行累加。投幣結(jié)束后需要按確認(rèn)鍵讓系統(tǒng)進(jìn)入下一個(gè)階段。同時(shí)數(shù)碼管會(huì)顯示投入總幣值?;趩纹瑱C(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 第五章 調(diào)試與仿真 4.4 小結(jié)系統(tǒng)軟件設(shè)計(jì)主程序以調(diào)用其他功能函數(shù)為主,每一個(gè)模塊單獨(dú)寫一個(gè)函數(shù),代碼可讀性、可移植性性、安全性大大提高。主函數(shù)只需調(diào)用功能函數(shù),主程序簡(jiǎn)單精簡(jiǎn),系統(tǒng)運(yùn)行效率提高。第五章 調(diào)試與仿真5.1 調(diào)試與仿真 為了使設(shè)計(jì)更加的清晰明了,我采用了Proteus來(lái)進(jìn)行仿真。主要仿真的步驟與結(jié)果如下: 第一步:打開Prot

36、eus程序,根據(jù)硬件總體設(shè)計(jì)完成元器件的布局和連線如圖5-1所示:圖5-1 硬件結(jié)構(gòu)圖第二步:在keil中編譯源程序,如圖5-2所示。生成.hex文件,將.hex文件添加到AT89C51。每次修改更新源程序后都應(yīng)該重新編譯產(chǎn)生.hex文件。在keil界面的下部分消息提示欄觀察是否有警告、錯(cuò)誤,是否成功生成.hex文件。圖5-2 源程序編譯第三步:點(diǎn)擊Proteus的運(yùn)行按鈕,得到初始化的狀態(tài)圖如圖5-3所示。此時(shí)系統(tǒng)處于第一階段,只有按鍵1到按鍵5有效,其他按鍵對(duì)系統(tǒng)不產(chǎn)生影響。數(shù)碼管顯示為初始0,led燈全部為滅的狀態(tài)。圖5-3 初始化第四步:點(diǎn)擊選擇按鈕(此次模擬先按按鍵1,按后按按鍵5)

37、,然后確定(按鍵6)。數(shù)碼管顯示所選取物品的總價(jià)格如圖5-4所示。此時(shí)系統(tǒng)處于第二階段,按鍵8和按鍵9投幣電路有效,數(shù)碼管顯示所選貨物的總金為3元,led全部為滅的狀態(tài)。圖5-4 選擇物品價(jià)格第五步:點(diǎn)擊投幣按鈕(此次模擬先按按鍵8,按后按按鍵8),然后確定(按鍵6)。數(shù)碼管顯示投入幣值如圖5-5所示。此時(shí)系統(tǒng)處于第三階段,按鍵8和按鍵9有效。數(shù)碼管顯示投入總幣值為6元,led為全滅狀態(tài)。圖5-5 投幣統(tǒng)計(jì)第六步:確定后,數(shù)碼管顯示退幣幣值以及取貨、退幣led的顯示如圖5-6所示。此時(shí)系統(tǒng)處于第四階段,數(shù)碼管顯示退還幣值為3元,出貨口led為亮,一個(gè)1元、一個(gè)2元退幣燈為亮的狀態(tài)。圖5-6 退

38、幣、取貨基于單片機(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 參考文獻(xiàn) 5.2 不足與改進(jìn)源程序在調(diào)試的時(shí)候出現(xiàn)了一些語(yǔ)法錯(cuò)誤,經(jīng)過仔細(xì)的分析和修改,最終通過編譯。該程序已經(jīng)能夠完成自動(dòng)售貨控制系統(tǒng)的基本功能,在硬件方面,本設(shè)計(jì)還有一些能夠改進(jìn)的地方:數(shù)碼管顯示模塊可以改用LCD液晶顯示器來(lái)顯示,通過中文的方式給顧客提示,人機(jī)交互更加友好;投幣電路通過光感電路模擬,效果更好。軟件設(shè)計(jì)跟隨硬件設(shè)計(jì)的改變做相應(yīng)的變化,設(shè)計(jì)更加貼近現(xiàn)實(shí)。 基于單片機(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 總 結(jié) 總 結(jié)本設(shè)計(jì)以AT89C51單片機(jī)為控制核心,周圍配備有單片機(jī)驅(qū)動(dòng)電路、按鍵選擇電路、數(shù)碼管輸出顯示電路、led輸出顯示電路、投幣電路等,成功的模擬

39、了自動(dòng)售貨系統(tǒng)的運(yùn)行原理。設(shè)計(jì)所用到的開發(fā)軟件為Keil和Proteus,開發(fā)語(yǔ)言為C語(yǔ)言。通過這次畢業(yè)設(shè)計(jì),我對(duì)電子器件有了進(jìn)一步的了解,加強(qiáng)了我對(duì)單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程的了解以及遇到問題時(shí)對(duì)實(shí)際問題的分析解決能力,提高了應(yīng)用Keil軟件和Proteus軟件的能力。讓我對(duì)過去所學(xué)知識(shí)有了一個(gè)整體的認(rèn)識(shí)。在設(shè)計(jì)的過程中,我遇到了很多的問題,在老師及同學(xué)的幫助下,最終都成功解決了,同時(shí)老師對(duì)我的畢業(yè)設(shè)計(jì)提供了許多寶貴的意見,在此對(duì)他們表示感謝?;趩纹瑱C(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 參考文獻(xiàn) 參考文獻(xiàn)1 謝維成,楊加國(guó).單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)M. 北京:清華大學(xué)出版社, 200

40、9-7.2 閻石. 數(shù)字電子技術(shù)第四版M. 北京:化學(xué)工業(yè)出版社, 2004-5.3 潘新民. 微型計(jì)算機(jī)控制技術(shù)M. 北京:人民郵電出版社, 1999-9.4 胡漢才. 單片機(jī)原理及其接口技術(shù)M. 北京:清華大學(xué)出版社, 1996-3.5 尹建華. 微型計(jì)算機(jī)原理與接口技術(shù)第二版M. 北京:高等教育出版社, 2008-1.6 譚博學(xué),苗匯靜. 集成電路原理及應(yīng)用第二版M. 北京:電子工業(yè)出版社, 2008-1.7 黃正瑾. 在線編程技術(shù)M. 北京:清華大學(xué)出版社, 1996-2.8 謝自美. 電子線路設(shè)計(jì)、實(shí)驗(yàn)、測(cè)試M. 北京:人民郵電出版社, 1999-9.9 周潤(rùn)景、張麗娜、丁莉. 基于

41、PROTEUS的電路及單片機(jī)設(shè)計(jì)與仿真M. 北京:航空航天大學(xué)出版社, 2010-1. 10 彭偉. 單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例M. 北京:電子工業(yè)出版社, 2009-6.11 陳海宴. 51單片機(jī)原理及應(yīng)用基于keil c與ProteusM. 北京:航空航天大學(xué)出版社, 2010-7.基于單片機(jī)的自動(dòng)售貨系統(tǒng)設(shè)計(jì) 附 錄 附 錄源程序:#include/位定義sbit key1 = P10; /選擇1元物品sbit key2 = P11; /選擇2元物品sbit key3 = P12; /選擇3元物品sbit key4 = P13; /數(shù)量選為2sbit key5 = P14; /數(shù)量選為3sbit key6 = P15; /確認(rèn)sbit key7 = P16; /取消sbit key8 = P36; /1元硬幣sbit key9 = P37; /5元紙幣int step = 1;

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論