版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
一、實驗?zāi)康模?、掌握8255A編程原理;2、掌握鍵盤的輸入和數(shù)碼管的顯示;3、提高理論與實踐相結(jié)合的能力,強化所學(xué)內(nèi)容。二、實驗要求:用8255A實現(xiàn)模擬電梯,用鍵盤輸入要求電梯所到達的樓層,數(shù)碼管顯示電梯當前所在樓層。電梯在初始樓層,當有用戶在其他樓層做出請求時,即通過鍵盤輸入希望電梯到達的樓層,電梯運行到目的樓層。電梯在運行運行過程中經(jīng)過一層需要的時間是1秒,即數(shù)碼管顯示每個數(shù)字的時間是1秒,當電梯到達目的樓層時,揚聲器發(fā)出聲音三、實驗過程:1〕實驗流程圖:2〕實驗硬件設(shè)計電路圖:3〕實驗接線按硬件設(shè)計圖接線,8255C口接鍵盤〔實際8255的C0~C3接鍵盤的列0~列3,C4~C7接鍵盤的行0~行3〕,8255CS接地址譯碼輸出的288h~28fh。8255的A口PA0~PA7接數(shù)碼管的a~dp。數(shù)碼管位碼S0接+5V,S3~S1接GND。8255端口A地址為:288H端口B地址為:289H端口C地址為:28AH控制口地址為:28BH3〕實驗代碼:頭文件:#include<stdio.h>#include<conio.h>#include"ApiExusb.h"#pragmacomment(lib,"ApiExusb.lib")運行函數(shù):voidCDiantiDlg::OnRun(){ //TODO:Addyourcontrolnotificationhandlercodeherecharled[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; /*上面為從0-8對應(yīng)的段碼表*/bytedata; //將鍵盤輸入數(shù)據(jù)存儲bytei,j; //i為輸入數(shù)據(jù),j為對應(yīng)的段碼 bytenow,goal; //記錄電梯的目前樓層和目標樓層 getch(); if(!Startup()) /*翻開設(shè)備*/ { printf("ERROR:OpenDeviceError!\n"); return; }now=j=0; //PortWriteByte(0x28b,0x81); //初始狀態(tài)為0層while(!kbhit()) {PortWriteByte(0x28b,0x81); //設(shè)置8255的A口輸出C口低輸入 PortWriteByte(0x288,led[now]);//數(shù)碼管顯示PortWriteByte(0x28a,0x0f); //c口初始化后四位為0x0fPortReadByte(0x28a,&data); //讀取c口數(shù)據(jù)低四位 i=data;if(i!=0x0f){i=data;Sleep(50);PortWriteByte(0x28b,0x88);//設(shè)置A口輸出C高四位輸入PortWriteByte(0x28a,0xf0);//c口初始化高四位為0xf0 PortReadByte(0x28a,&data); //讀取c口數(shù)據(jù)高四位i=i|data; //〔C口高四位與低四位即鍵盤的行與列相與得出所按的鍵〕 //記錄按鍵八位碼if(i==0x77)j=0; //得出目的樓層elseif(i==0x7b)j=1;elseif(i==0x7d)j=2;elseif(i==0x7e)j=3;elseif(i==0xb7)j=4;elseif(i==0xbb)j=5;elseif(i==0xbd)j=6;elseif(i==0xbe)j=7;elseif(i==0xd7)j=8;else;} goal=j; if(now!=goal) { if(now>goal) { for(;now>goal;now--) { PortWriteByte(0x28b,0x81); PortWriteByte(0x288,led[now]);//數(shù)碼管顯示 Sleep(1000); //每層停一秒 } PortWriteByte(0x28b,0x81); PortWriteByte(0x288,led[goal]);//數(shù)碼管顯示 //PortWriteByte(0x28b,0x80); PortWriteByte(0x289,0x80); //揚聲器開,PB7變成高電平 Sleep(100); PortWriteByte(0x288,0x00); //揚聲器關(guān) } else { for(;now<goal;now++) { PortWriteByte(0x28b,0x81); PortWriteByte(0x288,led[now]);//數(shù)碼管顯示 Sleep(1000); } PortWriteByte(0x28b,0x81); PortWriteByte(0x288,led[goal]);//數(shù)碼管顯示 //PortWriteByte(0x28b,0x80); PortWriteByte(0x289,0x80); //揚聲器開 Sleep(100); PortWriteByte(0x288,0x00); //揚聲器關(guān) }} PortWriteByte(0x28b,0x81); PortWriteByte(0x288,led[goal]);//數(shù)碼管顯示 } Cleanup(); /*關(guān)閉設(shè)備*/}三、實驗現(xiàn)象:數(shù)碼管顯示數(shù)字為1〔表示電梯初始狀態(tài)停在第一層〕,此時LED顯示燈全滅〔表示沒有鍵入目的樓層〕;從鍵盤上鍵入數(shù)字4,相應(yīng)的LED顯示燈亮,數(shù)碼管顯示每隔2秒從1到4遞增,當?shù)竭_4時停下并開揚聲器,表示電梯從一樓上升到達四樓,相應(yīng)的LED燈滅。在電梯運行過程中不相應(yīng)其他鍵入信息,知道停在四樓。電梯到達四樓后假設(shè)鍵入大于四的
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人民幣金融思維課程設(shè)計
- 銅壓延加工操作人員的技能培訓(xùn)考核試卷
- 物理實驗現(xiàn)象探究教具開發(fā)考核試卷
- 計算機網(wǎng)絡(luò)技術(shù)考核試卷
- 國際貿(mào)易國際信用評估機構(gòu)選擇考核試卷
- 江蘇省蘇州市星灣學(xué)校2024-2025學(xué)年八年級上學(xué)期英語第一次調(diào)研試卷
- 北師大版初中數(shù)學(xué)分一分一課件
- 常見量的比較與排序
- 張衡傳人科學(xué)巨匠的生平與成就
- 蘇教版課件三角形中的角平分線與高線應(yīng)用
- 6《我們來做“熱氣球”》教學(xué)設(shè)計-2023-2024學(xué)年科學(xué)三年級上冊教科版
- 吉林省松原市前郭爾羅斯蒙古族自治縣南部學(xué)區(qū)2024-2025學(xué)年部編版七年級歷史上學(xué)期第一次月考試題
- 8 課余生活真豐富 教學(xué)設(shè)計-2024-2025學(xué)年道德與法治一年級上冊統(tǒng)編版
- 部編版(2024)七年級道德與法治上冊第4課《幸福和諧的家庭》練習題(含答案)
- 2024中國鐵路北京局集團招聘全日制大專(高職)畢業(yè)生2341人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 人教版2024-2025學(xué)年七年級地理上冊 第一章 地球 單元測試卷
- 中醫(yī)把脈及脈象原理精講課件
- 臍血干細胞分化與應(yīng)用
- 教研員培訓(xùn)課件
- 兼職員工合同書
- AQ/T 2081-2023 金屬非金屬礦山在用帶式輸送機安全檢測檢驗規(guī)范(正式版)
評論
0/150
提交評論