




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于單片機的自動售貨控制系統設計摘 要本文設計了一個基于AT89C51單片機的自動售貨控制系統,文中詳細的介紹了設計方案的實施背景,各種元器件的選擇,系統模塊的劃分以及功能的實現。該系統模塊劃分清晰,采用按鍵實現人機的友好交互。以C語言為開發語言,可讀、易理解性大大提高。開發環境為Keil,Proteus有機結合,keil實現代碼的編寫、修改、編譯,Proteus則對編譯好的代碼在模擬器件上進行仿真。有效的提高了開發效率。系統最終實現了貨物選擇、投幣顯示、退幣顯示、出貨顯示等一系列功能。關鍵詞:AT89C51;自動售貨機;PROTEUSThe Design of Vending Control
2、 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 choic
3、e 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 Environment
4、 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 自動售貨機的歷史及發展前景11.2 自動售貨控制系統設計的意義11.3 本文的主要設計內容2第二章 自動售貨控制系統設計分析32.1 系統總體設計分析32.2 元器件選擇42.3 開發工具4第三章 自動售貨控制系統硬件設計53.1 硬件總體框圖53.2 AT89C51單片機模塊53.2.1 管腳說明63.2.2 AT89C51單片機的主要特性73.2.3 芯片擦除83.3 單片機驅動系統模塊83.4 系統顯示模塊93.4.1 數碼管顯示器93.4. 2 顯示器的驅動電路93.5
6、 貨幣識別投入電路模塊103.6 貨品選擇按鍵模塊103.7 出貨、退幣模塊113.8 小結11第四章 自動售貨控制系統軟件設計124.1 C51語言的優缺點124.2 Keil和Proteus開發步驟124.3 主要模塊軟件設計134.3.1 按鍵掃描及鍵值識別模塊134.3.2 數碼管顯示電路134.3.3 投幣電路144.4 小結14第五章 調試與仿真155.1 調試與仿真155.2 不足與改進19總 結20參考文獻21附 錄22第一章 緒 論1.1 自動售貨機的歷史及發展前景據說世界上最早的自動售貨機出現在公元前3世紀,那是埃及神殿里的投幣式圣水出售機。17世紀,英國的小酒吧里設有了香
7、煙的自動售貨機。在自動售貨機歷史的長河中,日本開發出實用型的自動售貨機,那是在進入本世紀后的事。日本第一臺自動售貨機是1904年問世的“郵票明信片自動出售機”,它是集郵票明信片的出售和郵筒投函為一體的機器。自動售貨機的真正普及是在第二次世界大戰以后。50年代,“噴水型果汁自動售貨機”大受歡迎,果汁被注入在紙杯里出售。后來,由于美國的飲料大公司進入日本市場,1962年,出現了以自動售貨機為主體的流通領域的革命。1967年,100日元單位以下的貨幣全部改為硬幣,從而促進了自動售貨機產業的發展。現在,自動售貨機產業正在走向信息化并進一步實現合理化。例如實行聯機方式,通過電話線路將自動售貨機內的庫存信
8、息及時地傳送各營業點的電腦中,從而確保了商品的發送、補充以及商品選定的順利進行。并且,為防止地球暖化,自動售貨機的開發致力于能源的節省,節能型清涼飲料自動售貨機成為該行業的主流。在夏季電力消費高峰時,這種機型的自動售貨機即使在關掉冷卻器的狀況下也能保持低溫,與以往的自動售貨機相比,它能夠節約1015%的電力。進入21世紀時,自動售貨機也將進一步向節省資源和能源以及高功能化的方向發展。1.2 自動售貨控制系統設計的意義自動售貨機從問世以來就備受關注,因其無需專人守護而可以每天24小時售貨,被稱為“微型超市”。自動售貨機的核心在其控制系統,它能夠準確的識別幣值以及貨品,控制自動售貨機接受錢幣然后選
9、出顧客所需的物品。如今是一個智能化的社會,越來越多的智能產品將被研發生產出來,簡單實用的自動售貨機將會逐步成為人們購物的“優秀售貨員”。自動售貨裝置已經成為一個城市的標志,地鐵站內、圖書館旁、大型超市門口都能見到它們的蹤影。自動售貨裝置以其特點:無需專人看管,所占空間不大,方便人們購物在當今的社會中占據重要的地位。一個性能優越的自動售貨機取決于它的自動控制系統,采用AT89C51單片機為控制核心是由于AT89C51單片機的可靠性高,編程簡單,接口方便,同時配以相應的外圍電路來驅動單片機以及實現該系統的其他相關的功能。自動售貨裝置有著廣闊的發展前景及市場,優良的自動售貨控制系統的設計將會不斷的推
10、動其前進。1.3 本文的主要設計內容本文主要設計了一個自動售貨控制系統,從自動售貨機的歷史、自動售貨系統總體分析、自動售貨系統硬件設計、自動售貨系統軟件設計、調試與仿真等五個方面進行。總體分析得出系統的框圖和顧客購物流程、元器件的選擇,硬件設計采用Proteus模擬連接實物圖,軟件設計采用c語言編寫,keil進行調試,調試與仿真則在Proteus中清晰可見。各部分功能明確,相互協調,共同支配著自動售貨系統的有序運行。第二章 自動售貨控制系統設計分析2.1 系統總體設計分析現在我們來簡單模擬一下顧客的購物流程:當顧客需要從自動售貨機購買貨物時,顧客首先通過一些外部控件選擇自己需要的貨物。此時顧客
11、需要知道自己應該支付多少金額,所以自動售貨機顯示顧客所選貨物的總金額。然后顧客可以向自動售貨機的投幣口投入錢幣,自動售貨機顯示顧客投入的錢幣總金額,當投入的金額大于所需的金額的時候,顧客購買的貨物將從出貨口送出,同時退幣口退還顧客多余的金額。根據顧客的購物流程分析,我設計出合理可行的自動售貨控制系統框架圖如圖2-1。開 始系統初始化選購貨物確 認投 幣售 貨找 零NY圖2-1 自動控制系統流程圖根據自動控制系統的流程圖,能夠很清晰的得出系統的設計思路:當顧客選擇貨物的時候,可以采用三個按鍵來模擬三種貨物(本設計提供三種貨物供選擇),貨物多樣性更加接近現實;顯示模塊采用數碼管顯示顧客所選擇的所有
12、貨物的金額,金額的計算由內部邏輯處理;投幣部分用兩個按鍵來模擬2種幣值(本設計提供兩種可識別幣值);顧客成功購買后,用一個led燈模擬貨物的取出(led燈亮則有貨物出來,否則沒有貨物出來);退幣部分用三個led燈模擬(分別為1元,2元,2元),三個led燈便于觀察,退幣金額由內部邏輯根據顧客的選擇計算得出。2.2 元器件選擇1)單片機:選用AT89C51作為控制核心,該單片機是一種帶4K字節FLASH存儲器的低電壓、高性能CMOS 8位微處理器。2)晶振:本設計選用的晶振是CRYSTAL,作用在于產生原始的時鐘頻率,這個頻率經過頻率發生器的倍頻或分頻后就成了單片機中各種不同的總線頻率。3)排阻
13、:排阻RP1是用來并行口的上拉或者下拉電阻用。4)數碼管:4位8段共陽數碼管,用來顯示投幣和找零金額。5)一般電阻:設計中需要用到的電阻均是起下拉作用,用來穩定系統。6)電容:本設計中所用到的電容有3個,其中2個是去耦電容,其起作用一方面是本集成電路的蓄能電容,另一方面旁路掉該器件的高頻噪聲, 起到抗干擾的作用。1個接復位輸入端口,與外接電阻構成復位電路。7)按鍵:選用9個獨立按鍵,5個按鍵用來代表貨物的不同價格,1個用來確認,1個用來取消,還有2個用來模擬貨幣投入。2.3 開發工具Keil uVision2是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,使用接
14、近于傳統C語言的語法來開發,與匯編相比,功能上、結構性、可讀性、可維護性上有明顯的優勢,它還能嵌入匯編,您可以在關鍵的位置嵌入,使程序達到接近于匯編的工作效率。KEILC51標準C編譯器為8051微控制器的軟件開發提供了C語言環境,同時保留了匯編代碼高效、快速的特點。C51已被完全集成到uVision2的集成開發環境中,這個集成開發環境包含:編譯器,匯編器,實時操 作系統,項目管理器,調試器。uVision2 IDE可為它們提供單一而靈活的開發環境。Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機
15、及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯。第三章 自動售貨控制系統硬件設計3.1 硬件總體框圖經過分析自動售貨控制系統的設計得出自動售貨控制系統的總體框圖如3-1。系統由AT89C51單片機為控制核心,外圍電路有AT89C51單片機驅動電路,貨物選擇按鍵電路,數碼管顯示電路,取貨顯示,退幣顯示以及投幣電路。各部分相互協調工作,共同完成自動售貨控制系統的運行。AT89C
16、51單片機單片機驅動模塊貨物選擇按鍵電路數碼管顯示電路取貨顯示退幣顯示投幣電路圖3-1總體框圖3.2 AT89C51單片機模塊AT89C51是一種帶4K字節FLASH存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C51是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中
17、,ATMEL的AT89C51是一種高效微控制器。外形及引腳排列如圖3-2(a)(b)所示:(a)AT89C51外部結構圖 (b)AT89C51引腳圖圖3-23.2.1 管腳說明(1) VCC:供電電壓。(2) GND:接地。(3) P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。(4) P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能
18、接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 (5) P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫1時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址1時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其
19、特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。(6) EA/VP:當EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器,注意加密方式1時,EA將內部鎖定為RESET;當EA端保持高電平時,此間內部程序存儲器在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。(7) P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入1后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口作為AT89C51的功
20、能口,如表3-1所示。P3口同時為閃爍編程和編程校驗接收一些控制信號。表3-1 P3口功能P3口口管腳備選功能P3.0 RXD串行輸入口P3.1 TXD串行輸出口P3.2 /INT0外部中斷0P3.3 /INT1外部中斷1P3.4 T0記時器0外部輸入P3.5 T1記時器1外部輸入P3.6 /WR外部數據存儲器寫選通P3.7 /RD外部數據存儲器讀選通(8)RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平。(9)ALE/P:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正
21、脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。(10) PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN有效。但在訪問外部數據存儲器時,這兩次有效的PSEN信號將不出現。(11)XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。(12)XTAL2:來自反向振蕩器的輸出。
22、3.2.2 AT89C51單片機的主要特性AT89C51單片機與MCS-51微控制器產品系列兼容;片內有4KB可在線重復編程的快閃擦寫存儲器 ;存儲數據保存時間為10年 ;寬工作電壓范圍VCC可為2.7V到6V ;全靜態工作可從0Hz至16MHz ;程序存儲器具有3級加密保護 ;128*8位內部RAM ;32條可編程I/O線 ,兩個16位定時器/計數器 ;中斷結構具有5個中斷源和2個優先級 ,可編程全雙工串行通道 ,空閑狀態維持低功耗和掉電狀態保存存儲內容。3.2.3 芯片擦除整個PEROM陣列和三個鎖定位的點擦除可通過正確的控制信號組合,并保持LE管腳處于低電平10ms來完成。在芯片擦除操作
23、中,代碼陣列全被寫1且在任何非空存儲字節被重復編程以前,該操作必須被執行。此外,AT89C51設有穩態邏輯,可以在低到零頻率的條件下靜態邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停在工作。但RAM,定時器,計數器,串口和中斷系統仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所用其他芯片功能,直到下一個硬件復位為止。3.3 單片機驅動系統模塊單片機驅動模塊是用來驅動單片機工作的電路,由2個去耦電容與晶振并聯接入晶振接口,構成時鐘電路,為單片機提供時鐘信號;復位電容與一電阻接入復位接口,是為系統提供初始化信號。根據需求可以設計出該驅動模塊的實際電路圖如圖3-3所示:圖3-
24、3 AT89C51單片機的驅動電路圖中C1,C2均為20pf的去耦電容,C3為10u的復位電容,X1為12M的晶振,R1上拉電阻,晶振X1兩端分別與C1,C2的一端相連并接入晶振接口XTAL1,XTAL2。C1,C2的另一端接R1的一端并一起接地,R1的另一端與C3一端接入復位接口,C3的另一端接片內存儲器,并接入電源接口。C1,C2,X1構成時鐘電路,為單片機提供時鐘信號。此單片機片內存儲器有效,可使用片內存儲器,不用外部拓展,R1起下拉作用,穩定系統。3.4 系統顯示模塊系統顯示模塊采用4位8段共陽數碼管顯示金額。首先顯示所選物品金額,然后顯示投入金額,最后顯示找還金額。P0口沒有內置上拉
25、電阻,要在外部接排阻上拉,數碼管段選接P0口,為選經過三極管驅動與P2.0-P2.3相接。 數碼管顯示器顯示器用以顯示所選物品總金額、投入金額、退還金額。LED顯示器是由發光二極管顯示字段的顯示器件,也可稱為數碼管。系統中通常使用8段LED數碼顯示器,其外形及引腳如圖2-5(a)所示,由圖可見8段LED顯示器由8個發光二極管組成。其中7個長條形的發光二極管排列成“日”字形,另一個圓點形的發光二極管在顯示器的右下角作為顯示小數點用,通過不同的組合可用來顯示各種數字,包括AF在內的部分英文字母和小數點“”等字樣。 LED顯示器有兩種不同的形式:一種是8個發光二極管的陽極都連在一起的,稱為共陽極LE
26、D顯示器;另一種是8個發光二極管的陰極都連在一起的,稱為共陰極LED顯示器,我們選擇其中一種共陽極.如圖2-5(b)所示: 圖3-4 8段LED數碼顯示器LED顯示器有動態顯示和靜態顯示.由于靜態顯示器硬件要求比較高,而且顯示的位數不如動態顯示器多,為此我們選擇8位的動態LED顯示器.動態LED顯示器是將所有位顯示器并接到I/O接口,用兩個鎖成器,一個用以選位,另一個用以選段,具體連接總圖上有。3. 4. 2 顯示器的驅動電路下圖中RP1為排阻,因為P0口沒有內置上接電阻,需要在外部接排阻進行上拉,數碼段選接P0口,位選與P2.0-P2.3相連接。位選的接口為低電平是該位被選中,能夠顯示數據,
27、為高電平時,該位不被選中,則不亮,不能顯示任何數據。此顯示器驅動電路如圖3-5所示:圖3-5 顯示器驅動電路圖3.5 貨幣識別投入電路模塊貨幣識別電路采用兩個按鈕開關模擬,第一個按鈕開關表示投入1元硬幣,第二個按鈕開關表示投入5元紙幣,該系統只能識別這兩種幣值。貨幣識別投入電路如圖3-6所示:圖3-6貨幣識別投入電路圖3.6 貨品選擇按鍵模塊鍵盤為7個獨立按鍵,按鍵1-5是購物鍵,分別代表了1元、2元、3元,數量2、數量3不等的貨物價格的數量,6按鍵是確認鍵,用戶在選定所欲購買的貨物后必須按確認鍵,6是取消鍵,當某個操作錯誤是可以按取消鍵返回上一級菜單。該模塊中7個鍵并聯,一端接公共地,一端接
28、單片機的P1.0-P1.6口。按鍵選擇電路如圖3-7所示:圖3-7按鍵選擇電路3.7 出貨、退幣模塊出貨、退幣模塊才用4個led燈模擬,第一個為貨物指示燈,當顧客投幣完成后,幣值足夠是該led燈亮,表示有貨物出來。其余3個模擬找零,分別為1元、2元、2元(便于模擬),但某個通道的燈亮了,說明該通道有退幣。出貨、退幣電路圖如圖3-8所示:圖3-8出貨、退幣電路3.8 小結系統硬件的設計需滿足設計要求,各電路要簡潔、實用。單片機的選擇要滿足設計要求,驅動電路要為單片機提供時鐘信號及正常工作的功率驅動;按鍵電路即系統的輸入電路,用戶利用按鍵系統輸入信號;顯示電路由數碼管顯示用戶所投貨幣的金額和找零金
29、額;貨幣識別投入電路用按鍵模擬貨幣的投入。第四章 自動售貨控制系統軟件設計4.1 C51語言的優缺點現在有四種語言支持8051系列單片機編程,即匯編、PL/M,C和BASIC,在開發中最常用的是匯編語言,但隨著程序復雜程度的提高,匯編語言逐漸暴露了它的不足,BASIC適合于初學者或要求編程簡單而對編程效率和運行速度不高的場合。PL/hi對8051系列單片機來講,不支持復雜的算術運算和浮點變量,無豐富的庫函數支持。C語言是一種源于編寫UNIX 操作系統的語言,是一種結構化語言,可產生緊湊代碼。為了更好地實現對單片機的開發,C51應運而生。每個不同公司開發的C51不盡相同,本系統采用的是Keil
30、Elektronik Gmbh開發的KeiluVision2工具軟件來進行系統軟件編寫和調試的。在嵌入式系統中,相對于匯編語言,C語言作為一種高級語言主要存在兩個不足:一,生成的可執行代碼冗長,效率不高。對于這一點,隨著處理芯片運算速度的提高、集成ROM的擴大,特別編譯系統的不斷優化,冗長已經不再是問題。這也是C在嵌入式系統中逐漸成為主流編程語言的主要原因之一。二,C生成的可執行代碼在時序上不容易控制,比如本系統中要實現的時序控制。一般的解決方案是在C程序中嵌入匯編語句,但其實只要充分挖掘C的潛力,在時序要求嚴格的場合完全可以用C語言實現。具體方法就是閱讀開發環境給我們提供的反匯編代碼。反匯編
31、代碼一目了然的反映了微控器的運行時序,然后根據反匯編代碼修改C源程序。4.2 Keil和Proteus開發步驟Keil對于單片機開發是十分有用的,開發效率高、操作簡單、功能齊全。Keil開發步驟清晰易懂:啟動Keil、新建工程、新建文本、編寫源程序、編譯。在編譯產生.hex文件時需要注意,選中output的create HEX File才能在文件目錄生成.hex的文件。Proteus在硬件構圖方面功能強大,但是Proteus的使用難度也比較大。在本設計中,Proteus開發流程為:啟動Proteus、新建工程、選取元器件、連接電路圖、添加.hex文件、運行查看結果。Keil和Proteus結合
32、開發能夠使得開發更為簡單,開發流程圖如圖4-1所示:啟動keil新建工程新建文本文本加入工程編寫程序編譯啟動Proteus新建工程選取元器件連接電路圖添加.hex文件運行生成.hex文件圖4-1 Keil和Proteus開發流程圖4.3 主要模塊軟件設計根據控制系統的設計要求及硬件設計,該系統的軟件采用模塊化的設計方法,編程語言為C語言。代碼模塊包括:主程序模塊、按鍵掃描及鍵值識別模塊、數碼管顯示及售貨模塊、貨幣識別投入及找零處理模塊。源程序見附錄。4.3.1 按鍵掃描及鍵值識別模塊該模塊使用7個獨立按鍵模擬顧客選擇貨物,程序設計時通過判斷對應按鍵的接口的電平為高/低來確定顧客的選擇,如果接口
33、為低電平表示按鍵被按下。在判斷按鍵是否被按下的過程中,采用軟件的辦法消除按鍵抖動,具體的方法為首先判斷接口是否為低電平,如果為低電平則進行短暫的延時,然后在判斷該接口是否為低電平,如果仍然為低電平,那么表示該按鍵確實已經被按下,觸發對應的處理邏輯。按鍵1到按鍵3表示貨物的品種,按鍵4和按鍵5表示顧客選擇貨物的數量,按鍵6表示確定,按鍵7表示取消。顧客每次選擇了后都需要按下按鍵6來確定,通過顯示模塊會給顧客良好的提示。4.3.2 數碼管顯示電路數碼管接在單片機的P0口,由于P0口沒有上拉電阻,所以需要外接上拉電阻。數碼管采用動態顯示,首先用一個數組table保存0-9的對應的數碼管顯示十六進制。
34、通過邏輯計算得出需要顯示的數據后,使用tablei來取出對應的數據置于P0口。調用顯示函數時:首先判斷顧客購物處于哪一步,第一步表示顧客選擇貨物,第二步表示顧客投入的幣值,第三步表示應退還的幣值。同時數碼管顯示對應步驟的數據,在第三步中,如果顧客投入的幣值小于應付的幣值,那么步驟退一步,同時顯示為投入的幣值。4.3.3 投幣電路投幣電路采用兩個按鍵模擬,一個表示1元,一個表示5元。當系統處于投幣階段的時候,判斷投幣按鍵是否被按下,如果被按下則表示有錢幣投入,根據按鍵按下的次數對投入幣值進行累加。投幣結束后需要按確認鍵讓系統進入下一個階段。同時數碼管會顯示投入總幣值。4.4 小結系統軟件設計主程
35、序以調用其他功能函數為主,每一個模塊單獨寫一個函數,代碼可讀性、可移植性性、安全性大大提高。主函數只需調用功能函數,主程序簡單精簡,系統運行效率提高。第五章 調試與仿真5.1 調試與仿真 為了使設計更加的清晰明了,我采用了Proteus來進行仿真。主要仿真的步驟與結果如下: 第一步:打開Proteus程序,根據硬件總體設計完成元器件的布局和連線如圖5-1所示:圖5-1 硬件結構圖第二步:在keil中編譯源程序,如圖5-2所示。生成.hex文件,將.hex文件添加到AT89C51。每次修改更新源程序后都應該重新編譯產生.hex文件。在keil界面的下部分消息提示欄觀察是否有警告、錯誤,是否成功生
36、成.hex文件。圖5-2 源程序編譯第三步:點擊Proteus的運行按鈕,得到初始化的狀態圖如圖5-3所示。此時系統處于第一階段,只有按鍵1到按鍵5有效,其他按鍵對系統不產生影響。數碼管顯示為初始0,led燈全部為滅的狀態。圖5-3 初始化第四步:點擊選擇按鈕(此次模擬先按按鍵1,按后按按鍵5),然后確定(按鍵6)。數碼管顯示所選取物品的總價格如圖5-4所示。此時系統處于第二階段,按鍵8和按鍵9投幣電路有效,數碼管顯示所選貨物的總金為3元,led全部為滅的狀態。圖5-4 選擇物品價格第五步:點擊投幣按鈕(此次模擬先按按鍵8,按后按按鍵8),然后確定(按鍵6)。數碼管顯示投入幣值如圖5-5所示。
37、此時系統處于第三階段,按鍵8和按鍵9有效。數碼管顯示投入總幣值為6元,led為全滅狀態。圖5-5 投幣統計第六步:確定后,數碼管顯示退幣幣值以及取貨、退幣led的顯示如圖5-6所示。此時系統處于第四階段,數碼管顯示退還幣值為3元,出貨口led為亮,一個1元、一個2元退幣燈為亮的狀態。圖5-6 退幣、取貨5.2 不足與改進源程序在調試的時候出現了一些語法錯誤,經過仔細的分析和修改,最終通過編譯。該程序已經能夠完成自動售貨控制系統的基本功能,在硬件方面,本設計還有一些能夠改進的地方:數碼管顯示模塊可以改用LCD液晶顯示器來顯示,通過中文的方式給顧客提示,人機交互更加友好;投幣電路通過光感電路模擬,
38、效果更好。軟件設計跟隨硬件設計的改變做相應的變化,設計更加貼近現實。 總 結本設計以AT89C51單片機為控制核心,周圍配備有單片機驅動電路、按鍵選擇電路、數碼管輸出顯示電路、led輸出顯示電路、投幣電路等,成功的模擬了自動售貨系統的運行原理。設計所用到的開發軟件為Keil和Proteus,開發語言為C語言。通過這次畢業設計,我對電子器件有了進一步的了解,加強了我對單片機的基本原理、單片機應用系統開發過程的了解以及遇到問題時對實際問題的分析解決能力,提高了應用Keil軟件和Proteus軟件的能力。讓我對過去所學知識有了一個整體的認識。在設計的過程中,我遇到了很多的問題,在老師及同學的幫助下,
39、最終都成功解決了,同時老師對我的畢業設計提供了許多寶貴的意見,在此對他們表示感謝。參考文獻1 謝維成,楊加國.單片機原理與應用及C51程序設計M. 北京:清華大學出版社, 2009-7.2 閻石. 數字電子技術第四版M. 北京:化學工業出版社, 2004-5.3 潘新民. 微型計算機控制技術M. 北京:人民郵電出版社, 1999-9.4 胡漢才. 單片機原理及其接口技術M. 北京:清華大學出版社, 1996-3.5 尹建華. 微型計算機原理與接口技術第二版M. 北京:高等教育出版社, 2008-1.6 譚博學,苗匯靜. 集成電路原理及應用第二版M. 北京:電子工業出版社, 2008-1.7 黃
40、正瑾. 在線編程技術M. 北京:清華大學出版社, 1996-2.8 謝自美. 電子線路設計、實驗、測試M. 北京:人民郵電出版社, 1999-9.9 周潤景、張麗娜、丁莉. 基于PROTEUS的電路及單片機設計與仿真M. 北京:航空航天大學出版社, 2010-1. 10 彭偉. 單片機C語言程序設計實訓100例M. 北京:電子工業出版社, 2009-6.11 陳海宴. 51單片機原理及應用基于keil c與ProteusM. 北京:航空航天大學出版社, 2010-7.附 錄源程序:#include<reg52.h>/位定義sbit key1 = P10; /選擇1元物品sbit key2 = P11; /選擇2元物品sbit key3 = P12; /選擇3元物品sbit key4 = P13; /數量選為2sbit key5 = P14; /數量選為3sbit key6 = P15; /確認sbit key7 = P16; /取消sbit key8 = P36; /1元硬幣sbit key9 = P37; /5元紙幣int step = 1; /操作的步驟int price = 0; /物品價格int num = 1; /物品數量int table1 = 0x3F,0x06,0x5B,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電視設備智能生物藥品電子商務技術考核試卷
- 生活的滋味初一語文作文
- 平凡的愛初三語文作文
- 河南省信陽市潢川縣2023-2024學年七年級下學期期末教學質量監測數學試卷(含答案)
- 礦山環境監測與放射性污染治理考核試卷
- 橋梁工程的綠色施工評價考核試卷
- 浙江省湖州市2025年初中學業水平調研測評語文試題卷(含答案)
- 環境監測新技術與應用考核試卷
- 橡膠制品行業發展趨勢與前沿技術考核試卷
- 毛皮服裝生產過程中的生產數據統計分析與決策考核試卷
- 民法典知識競賽課件
- 絞車工考試題及答案
- 2025年度“基層法治建設年”活動實施方案
- 2025年升降機司機作業證理論考試筆試試題(200題)附答案
- 2025年網絡安全培訓考試題庫(網絡安全專題)實戰試題
- 行政管理本科畢業論文-地方政府智慧政府建設問題與對策研究-以G市為例
- 血液科疾病常見癥狀護理
- 基于AI的網絡安全威脅分析-全面剖析
- (一模)2025年3月濟南市2025屆高三模擬考試英語試卷(含答案)
- 湖南省2025屆高三九校聯盟第二次聯考英語試卷(含答案解析)
- DBJ51T 108-2018 四川省建筑巖土工程測量標準
評論
0/150
提交評論