硬件課設實驗報告-自動售貨機_第1頁
硬件課設實驗報告-自動售貨機_第2頁
硬件課設實驗報告-自動售貨機_第3頁
硬件課設實驗報告-自動售貨機_第4頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、硬件課程設計報告課題名稱 :自動售貨機班級:計科 2014-02 班姓名:周志星學號:08143088指導教師 :馬海波2016年 12月 27日目錄摘要11. 設計簡介21.1設計步驟及要求21.2設計題目21.3設計背景21.4面臨問題21.5解決方案31.6設計思想32. 設計任務及要求32.1實驗目的32.2具體要求32.3使用硬件43. 總體方案與說明43.1流程設計43.1.1系統(tǒng)程序模塊43.1.2系統(tǒng)流程圖44. 硬件框圖與說明54.1DAC0832 芯片54.2可編程外圍接口芯片 8255A74.3128 × 64 字符液晶顯示器94.4可編程定時計數(shù)器 82541

2、15.電路原理圖與說明135.18254 定時電路135.2LCD 顯示電路145.3總的電路146.軟件流程圖147.實驗代碼及注釋158.結論與體會188.1實驗成果188.1.1實驗線路圖188.1.2實驗結果188.2實驗體會189.參考文獻18摘要在日常的生活中, 為了方便人群, 在人群活動較多的地方放置自動售貨機,解決了人群的需求,自動售貨機里包括多種商品,若需要購買貨物,選擇自己所需的商品,按下確定鍵,付款后及購買成功。通過使用自動售貨機, 解放了人力資源的同時, 為人們提供了便利,同時由于自動售貨機是集中調配,統(tǒng)一管理,使其成為新時期電子產(chǎn)品應用現(xiàn)實社會的體現(xiàn)之一。關鍵詞普通開

3、關 8255A 芯片 8254 芯片 DAC0832芯片 LCD 液晶顯示器1 設計簡介1.1 設計步驟及要求課程安排1. 指導老師布置任務,學生選題2. 系統(tǒng)總體設計3. 系統(tǒng)硬件設計4. 系統(tǒng)調試5. 設計報告6. 檢查、評定、總結1.2 設計題目自動售貨機1.3 設計背景在日常的生活中, 為了方便人群, 在人群活動較多的地方放置自動售貨機,解決了人群的需求,自動售貨機里包括多種商品,若需要購買貨物,選擇自己所需的商品, 按下確定鍵,付款后及購買成功。通過使用自動售貨機,解放了人力資源的同時,為人們提供了便利,同時由于自動售貨機是集中調配,統(tǒng)一管理,使其成為新時期電子產(chǎn)品應用現(xiàn)實社會的體現(xiàn)

4、之一。1.4 面臨問題1. 如何實時反應所購商品變化2. 如何利用 8254 上升沿下降沿實現(xiàn)定時轉動電機3. 如何將商品顯示在 LCD顯示屏上1.5 解決方案1. 利用 8255A B口作為輸入端口實時讀取開關控制信息,即所購商品。2. 將級聯(lián)后的 8254out1 端口連至 8255A輸入口,通過讀取輸入口數(shù)據(jù),判斷 8254 處于高低點平狀態(tài)。3. 將漢字寫入系統(tǒng)根據(jù)開關讀取狀態(tài)實時顯示漢字在LCD液晶顯示屏。1.6 設計思想該系統(tǒng)通過 8255A芯片的 B 口作為輸入口,實時采集用戶從開關輸入的狀態(tài),當K2 開關未閉合表示用戶選擇完畢,此時顯示用戶選擇的商品,通過LCD液晶顯示屏顯示商

5、品名稱,并循環(huán)此過程,不斷的顯示用戶選擇的商品。8254 芯片定時一秒,輸出口通入8255A B口不斷讀取 PB3位狀態(tài),在高電平時,實現(xiàn)跟蹤,低電平時通過0832芯片給電機寫 FF 電機轉動。每一種商品對應一種轉速。2 設計任務與要求2.1 實驗目的1. 復習 8255 芯片, 8254 芯片工作原理及使用方法2. 學會使用 128×64 字符液晶顯示屏3. 鍛煉小規(guī)模邏輯電路設計4. 提高分析、解決問題的能力2 2 具體要求本系統(tǒng)需要實時提供用戶購買商品服務,客戶在通過 K0,K1 開關選擇實驗商品時,顯示屏顯示商品,按下K2 鍵即確認購買鍵,電動機根據(jù)所選商品轉動, 不同商品為

6、了區(qū)分, 使其設置為不同的電動機轉速。2.3 使用硬件8255A芯片 8254 芯片 DAC0832芯片 128 ×64 字符液晶顯示器3 總體方案與設計說明3.1 實驗流程設計系統(tǒng)程序模塊圖 3-1 系統(tǒng)程序模塊系統(tǒng)流程圖圖 3-2 系統(tǒng)流程圖4 硬件框圖與說明4.1DAC0832芯片1. 概述DAC0832是 8 分辨率的 D/A 轉換集成芯片。與微處理器完全兼容。這個 DA芯片以其價格低廉、接口簡單、轉換控制容易等優(yōu)點,在單片機應用系統(tǒng)中得到廣泛的應用。 D/A 轉換器由 8 位輸入鎖存器、8 位 DAC寄存器、 8 位 D/A 轉換電路及轉換控制電路構成。2. 芯片結構圖圖

7、4-1DAC0832結構圖*D0 D7:8 位數(shù)據(jù)輸入線,TTL電平,有效時間應大于 90ns( 否則鎖存器的數(shù)據(jù)會出錯) ;* ILE :數(shù)據(jù)鎖存允許控制信號輸入線,高電平有效;* CS:片選信號輸入線(選通數(shù)據(jù)鎖存器),低電平有效;* WR1:數(shù)據(jù)鎖存器寫選通輸入線,負脈沖(脈寬應大于 500ns)有效。由 ILE、CS、WR1的邏輯組合產(chǎn)生 LE1,當 LE1 為高電平時,數(shù)據(jù)鎖存器狀態(tài)隨輸入數(shù)據(jù)線變換, LE1的負跳變時將輸入數(shù)據(jù)鎖存;* XFER:數(shù)據(jù)傳輸控制信號輸入線,低電平有效,負脈沖(脈寬應大于 500ns)有效;* WR2:DAC寄存器選通輸入線,負脈沖(脈寬應大于 500n

8、s)有效。由 WR2、XFER的邏輯組合產(chǎn)生 LE2,當 LE2為高電平時, DAC寄存器的輸出隨寄存器的輸入而變化, LE2的負跳變時將數(shù)據(jù)鎖存器的內容打入 DAC寄存器并開始 D/A 轉換。* IOUT1 :電流輸出端 1,其值隨 DAC寄存器的內容線性變化;* IOUT2 :電流輸出端 2,其值與 IOUT1值之和為一常數(shù);* Rfb :反饋信號輸入線,改變 Rfb 端外接電阻值可調整轉換滿量程精度;* Vcc :電源輸入端, Vcc 的范圍為 +5V+15V;* VREF:基準電壓 輸入線, VREF的范圍為 -10V+10V;* AGND:模擬信號地;* DGND:數(shù)字信號地。4.2

9、 可編程外圍接口芯片8255A1. 概述8255A是一種通用的可編程并行I/O 接口芯片,它是為Intel系列微處理器設計配套電路,也可用于其他微處理器系統(tǒng)中。通過對它編程,芯片可工作于不同的工作方式。在微型計算機系統(tǒng)中,用8255A做接口時,通常不需要附加外部邏輯電路就可直接為CPU與外設之間提供數(shù)據(jù)通道,因此得到了極為廣泛的應用。2. 系統(tǒng)結構圖圖 4-2 8255A 系統(tǒng)結構圖由圖可見, 8255A由數(shù)據(jù)端口 A、B、C(期中, C口被分為 C口上半部分和 C口下半部分),A 組和 B組控制邏輯,數(shù)據(jù)總線緩沖器和讀寫控制邏輯。3. 控制字8255A 具有 3 種基本工作方式。方式 0:基

10、本輸入輸出方式;方式 1:選通輸入輸出方式;方式 2:雙向總線 I/O 方式。端口 A可以工作于 3 種方式中的任一種; 端口 B 只能工作于方式 0 和方式 1,而不能工作于方式 2;端口 C常被分成 2 個 4 位端口,除了用做輸入輸出端口外, 還能用來配合 A 口和 B 口工作,為這兩個端口的輸入輸出操作提供聯(lián)絡信號。4. 工作方式方式 0 基本輸入輸出方式,它適用于不需要應答信號的簡單輸入輸出場合。 A B C 口適用方式 1 選通輸入 / 輸出方式。在這種方式下, A 口和 B 口作為數(shù)據(jù)口,均可用于輸入或輸出方式。A B 口方式 2雙向總線方式。 A口4.3128×64

11、字符液晶顯示器1. 概述ST7920是臺灣矽創(chuàng)電子公司生產(chǎn)的中文圖形控制芯片, 它是一種內置 128×64-12 漢字圖形點陣的液晶顯示控制模塊, 用于顯示漢字及圖形 ? 12864A-1 漢字圖形點陣液晶顯示模塊集成ST7920驅動器,可顯示漢字及圖形,內置8192 個中文漢字( 16×16 點陣)、128 個字符( 8×16 點陣)及 64×256 點陣顯示 RAM(GDRAM)。2. 系統(tǒng)結構外形如圖圖 4-3 LCD 顯示屏系統(tǒng)結構圖圖 4-4 LCD 系統(tǒng)圖3. 工作原理12864 液晶顯示器工作于并行模式。 8 位數(shù)據(jù)線與 8255A芯片 8

12、 位數(shù)據(jù)口連接,控制口( E、R/W、D/I )與 8255A 芯片 C口四位相連。通過 8255A的 8 位數(shù)據(jù)空向 12864 液晶顯示器傳送數(shù)據(jù),通過C口低四位傳送控制信號??刂瓶贓 為使能端,高電位有效。R/W為讀寫控制,低點位為寫數(shù)據(jù)、高電位為讀數(shù)據(jù)。D/I 為數(shù)據(jù)與命令口,低電位為命令、高電位為數(shù)據(jù)。將需要顯示的地址通過數(shù)據(jù)口以命令的形式送入顯示器,再將需要顯示的數(shù)據(jù)通過數(shù)據(jù)口以數(shù)據(jù)的形式送入顯示器,即可顯示內容。表 4-1 LCD 漢字顯示坐標 X 坐標L88888888ine10H1H2H3H4H5H6H7HL99999999ine20H1H2H3H4H5H6H7HL88888

13、888ine38H9HAHBHCHDHEHFHL99999999ine48H9HAHBHCHDHEHFH圖 4-5 LCD 中文字庫截圖4.4可編程定時器計數(shù)器82541. 概述8254 芯片是一款使用十分廣泛的可編程定時,計數(shù)芯片,其主要功能是定時和計數(shù)的功能。我們的微機內的動態(tài)存儲器刷新電路,系統(tǒng)日時鐘的技術以及發(fā)聲系統(tǒng)的聲源都是由8254 芯片來完成的。2. 系統(tǒng)結構圖 4-6 8254 系統(tǒng)結構圖數(shù)據(jù)總線緩沖器: 數(shù)據(jù)總線緩沖器是一個三態(tài)、 雙向 8 位寄存器主要作用是與 cpu 進行數(shù)據(jù)交換, 8 位數(shù)據(jù)線 D7D0與 CPU的系統(tǒng)數(shù)據(jù)總線連接,構成 CPU和 8254 之間信息傳送

14、的通道, CPU通過數(shù)據(jù)總線緩沖器向 8254 寫入控制命令、計數(shù)初始值或讀取計數(shù)值。讀寫邏輯:讀寫邏輯是芯片的控制部分, 編程人員通過控制信號的選擇來選擇芯片的工作方式。讀 / 寫控制邏輯用來接收 CPU系統(tǒng)總線的讀、寫控制信號和端口選擇信號,用于控制 8254 內部寄存器的讀 / 寫操作??刂谱旨拇嫫鳎?控制寄存器是一個只能寫不能讀的8 位寄存器,系統(tǒng)通過指令將控制字寫入控制寄存器,設定8254 的不同工作方式。計數(shù)器:8254 內部有三個結構完全相同而又相互獨立的 16 位減“ 1” 計數(shù)器,每個計數(shù)器有六種工作方式, 各自可按照編程設定的方式工作。3. 工作方式( 1)方式 0:計數(shù)到

15、 0 結束輸出正躍變信號方式。(2)方式 1:硬件可重觸發(fā)單穩(wěn)方式。(3)方式 2:頻率發(fā)生器方式。(4)方式 3:方波發(fā)生器。(5)方式 4:軟件觸發(fā)選通方式。(6)方式 5:硬件觸發(fā)選通方式。5 電路原理圖與說明5.1 8254定時電路圖 5-1 8254 定時電路5.2 LCD 顯示電路圖 5-2 LCD 顯示電路5.3總的電路圖 5-3 系統(tǒng)總電路6 軟件流程圖圖 6-1 軟件流程圖7 實驗代碼及注釋#include<stdio.h>charlcd46=#include<conio.h>0xC4,0xCC,0xB2,0xE8,0x20,0x31;#include

16、 "ApiExusb.h"void clear();#pragmavoid cmdsetup();comment(lib,"ApiExusb.lib")void datasetup();charlcd16=void main()0xBF,0xC9,0xC0,0xD6,0x20,0x31;charlcd260xC2,0xF6,0xB6,0xAF,0x20,0x31;charlcd360xBA,0xEC,0xC5,0xA3,0x20,0x31;右轉=byte data;int i;printf("Pressbegin!nn");anyke

17、ytogetch();PortWriteByte(0x288,lcd1i);if(!Startup()/*打datasetup();開設備*/Error!n");printf("ERROR: Open Deviceelseif(data= 1|data= 9)return;PortWriteByte(0x288,0x90);/ 通道 0 工作方式3,初值 1000cmdsetup();PortWriteByte(0x283,0x36);Sleep(10);PortWriteByte(0x280,2000%256)for(i = 0;i<6;i+);PortWriteB

18、yte(0x280,2000/256);PortWriteByte(0x288,lcd2i);PortWriteByte(0x283,0x76);/datasetup();通道 2 工作方式3,初值 Out0PortWriteByte(0x281,1000%256);elseif(data= 2|data= 10)PortWriteByte(0x281,1000/256);/ 級聯(lián)后的周期2 秒clear();PortWriteByte(0x288,0x90);while(!kbhit()cmdsetup();PortWriteByte(0x28b,0x82);Sleep(10);/* 設 8

19、255為方式 0,C口輸出 ,A口輸for(i = 0;i<6;i+)出,B 口輸入 */clear();PortWriteByte(0x288,lcd3i);PortReadByte(0x289,&data);/從 B口不斷datasetup();地讀入數(shù)據(jù)printf("%dn", data);PortWriteByte(0x290,0x00);elseif(data= 3|data= 11)if(!(data & 4) /判斷 B口輸入數(shù)據(jù) K2 是否閉合PortWriteByte(0x288,0x90);if(data = 0|data = 8

20、) /cmdsetup();根據(jù) K0 K1 由 B 口傳入數(shù)據(jù)判斷鍵值四種Sleep(10);for(i = 0;i<6;i+)PortWriteByte(0x288,0x90);cmdsetup();PortWriteByte(0x288,lcd4i);Sleep(10);datasetup();for(i = 0;i<6;i+)else /鍵 K2 按下開始電機轉動if(data = 6|data = 14)PortWriteByte(0x290,0x00);while(true)PortWriteByte(0x290,0x51);if(data = 7|data = 15)if(data8254 高電平不斷獲取& 8)/跟蹤PortWriteByte(0x290,0xFF);break;break;break;PortWriteByte(0x290,0x00);break;while(true)/ 低電平開始轉動 并不斷檢測電平PortWriteByte(0x290,0x00);Cleanup();機一個轉速/ 由 K0K1共四種轉速if(!(data & 8)鍵值給電動void clear()if(data = 4|data =

溫馨提示

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

評論

0/150

提交評論