




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、武漢理工大學(xué)能力拓展訓(xùn)練課程設(shè)計說明書 目錄1 設(shè)計任務(wù)及要求分析11.1 設(shè)計任務(wù)11.2 任務(wù)分析12 方案比較及認(rèn)證說明22.1 方案比較22.2 認(rèn)證說明23 系統(tǒng)設(shè)計33.1 設(shè)計方案結(jié)構(gòu)圖33.2 系統(tǒng)原理43.2.1 按鍵部分43.2.2 單片機(jī)控制部分43.2.3 數(shù)碼顯示部分53.3 系統(tǒng)總體接線圖64 軟件設(shè)計74.1 系統(tǒng)總體流程圖74.2 系統(tǒng)軟件設(shè)計85 系統(tǒng)仿真95.1 搶答仿真95.2 無人搶答仿真105.3 結(jié)果分析116 總結(jié)12參考文獻(xiàn)13附錄 程序清單141 設(shè)計任務(wù)及要求分析1.1 設(shè)計任務(wù) 初始條件:計算機(jī)、單片機(jī)、eda實驗箱。要求:設(shè)計智能搶答器,
2、使用8位按鍵,分別模擬搶答者位數(shù)。當(dāng)在提問時所有的按鍵均是被封鎖的,即按下無響應(yīng)。在要求回答時,所有按鍵同時開放,當(dāng)某按鍵最先按下時,立即保持該按鍵信號封鎖其它所有按鍵,用bcd碼形式顯示該按鍵。記錄搶答過程的時間(毫秒)并顯示。1.2 任務(wù)分析 分析設(shè)計題目可知應(yīng)采用51單片機(jī)進(jìn)行系統(tǒng)總體控制。其中,我們可選擇單片機(jī)的p0、p1、p2口輸入、輸出信號,將10個控制鍵信號輸入單片機(jī),經(jīng)處理后,再將51單片機(jī)的控制信號輸出來驅(qū)動數(shù)碼管顯示部分。在設(shè)計任務(wù)中,最關(guān)鍵的問題是對輸入信號的取入及處理。我們可以采用鍵盤掃描函數(shù)取入主持人按鍵信息及搶答按鍵信息,復(fù)位按鍵信息則可直接輸入,然后我們可以利用5
3、1單片機(jī)分別完成:對搶答器的開啟控制,啟動后顯示搶答時間,以及對最先按下按鍵的搶答者進(jìn)行號碼鎖存以及最終顯示搶答者號碼和搶答時間。按照這樣的思路來進(jìn)行設(shè)計,就可以完成設(shè)計要求。 2 方案比較及認(rèn)證說明2.1 方案比較 方案一:在按鍵信號檢測方面,將8位搶答者的按鍵狀態(tài)分別輸入到p0.0-p0.7八位p0口中,然后單獨對每個按鍵進(jìn)行檢測并定義,使1-8八個按鍵按下后,能對應(yīng)產(chǎn)生1-8八個數(shù)字。再將數(shù)字返回到數(shù)碼管顯示子程序中,顯示搶答者號碼。在數(shù)碼管顯示時,采用4位和1位的靜態(tài)顯示方式。 方案二:在按鍵信號檢測方面,將8位搶答者的按鍵狀態(tài)分別輸入到p0.0-p0.7八位p0口中,然后對8個按鍵進(jìn)
4、行集中檢測,將8個按鍵的狀態(tài)組成一個8位的二進(jìn)制數(shù),設(shè)計一個鍵盤掃描程序,使1-8八個按鍵中某一個按下后能對應(yīng)產(chǎn)生1-8八個數(shù)字。再將數(shù)字返回到數(shù)碼管顯示子程序中,顯示搶答者號碼。在數(shù)碼管顯示時,采用4位和1位的動態(tài)掃描方式。 2.2 認(rèn)證說明 方案一中單獨對8個按鍵進(jìn)行檢測,而不對8個按鍵整體檢測,這樣需要對p0.0-p0.7八位p0口分別檢測然后對應(yīng)產(chǎn)生1-8八個數(shù)字,這樣會使單片機(jī)程序顯得冗長。方案一中數(shù)碼管采用靜態(tài)顯示,由于使用的數(shù)碼管較多,占用的輸出口較多,使電路的硬件設(shè)計變得麻煩;方案二中對8個按鍵組成的整體進(jìn)行檢測,這樣程序簡潔,而且確保在第一個搶答者按下按鍵后,數(shù)碼管能準(zhǔn)確顯示
5、搶答者的號碼。方案二中采用動態(tài)掃描方式進(jìn)行數(shù)字顯示,這樣數(shù)碼管占用的輸出口只有7個,節(jié)省了電路的硬件開銷。故采用方案二。3 系統(tǒng)設(shè)計3.1 設(shè)計方案結(jié)構(gòu)圖 系統(tǒng)設(shè)計方案結(jié)構(gòu)圖如圖3.1所示。 時間顯示 搶答按鍵 51 單 片 機(jī) 控 制復(fù)位 開啟按鍵 號碼顯示 圖3.1 系統(tǒng)總原理圖3.2 系統(tǒng)原理3.2.1 按鍵部分本系統(tǒng)設(shè)計有10個按鍵,其中代表8位搶答者的按鍵接單片機(jī)的p1口,主持人按鍵接單片機(jī)的控制口p2.5來對搶答進(jìn)行開啟控制,復(fù)位鍵的輸出信號接單片機(jī)的rst位來對搶答器進(jìn)行復(fù)位控制。按鍵部分接線圖如圖3.2.1所示。圖3.2.1 按鍵部分接線圖3.2.2 單片機(jī)控制部分本設(shè)計中單片
6、機(jī)從p1口接收來自代表8位搶答者的按鍵的信號,p2.5接收開啟控制信號,rst位接收復(fù)位信號。通過調(diào)用單片機(jī)程序,單片機(jī)p0口接上拉電阻后將控制數(shù)碼管的段選,p2.0則將進(jìn)行顯示優(yōu)先搶答者號碼的數(shù)碼管的位選控制,p2.1-2.4進(jìn)行顯示時間的數(shù)碼管的位選,從而實現(xiàn)單片機(jī)對搶答器系統(tǒng)的控制。 單片機(jī)控制部分接線圖如圖3.2.2所示。圖3.2.2 單片機(jī)控制部分接線圖3.2.3 數(shù)碼顯示部分 顯示優(yōu)先搶答者號碼的數(shù)碼管和顯示時間的數(shù)碼管的七位段選是共用的,位選則分別由p2.0和p2.1-2.4控制,采用動態(tài)顯示。 數(shù)碼顯示部分接線圖如圖3.2.3所示。圖3.2.3 數(shù)碼顯示部分接線圖3.3 系統(tǒng)總
7、體接線圖 完成系統(tǒng)各部分功能設(shè)計以后,則可將系統(tǒng)各部分組合起來,得到系統(tǒng)總體硬件接線圖。 系統(tǒng)總體接線圖如圖3.3所示。圖3.3 系統(tǒng)總體接線圖4 軟件設(shè)計4.1 系統(tǒng)總體流程圖 系統(tǒng)設(shè)計方案結(jié)構(gòu)圖如圖4.1所示。 開始開始鍵 按下?數(shù)碼管顯示0 n 搶答環(huán)節(jié)開始 開始計時 y 顯示 計時 結(jié)束 數(shù)碼管 顯示9999 到定時 時間? y n n 數(shù)碼管顯示號碼 有人搶 答? 數(shù)碼管顯示時間 搶答環(huán)節(jié)結(jié)束 關(guān)閉計時 y圖4.1 系統(tǒng)總體流程圖4.2 系統(tǒng)軟件設(shè)計 系統(tǒng)設(shè)計的代表8位搶答者的按鍵,將信號輸入到單片機(jī)的p1.0-p1.7口后,鍵盤掃描程序取入p1口的輸入值,通過使用switch語句,
8、將按鍵信息變?yōu)閮?yōu)先搶答者的號碼送入數(shù)碼管顯示。在鍵盤掃描程序中,加入了延遲程序進(jìn)行消抖,使按鍵檢測更可靠。系統(tǒng)的開啟按鍵則可在輸入p2.5口后,可直接在主程序中加入if語句進(jìn)行控制。在數(shù)碼管時間顯示部分,數(shù)碼管采用動態(tài)掃描方式,并使用了t0定時器計數(shù)。t0定時器的單次計時時間為1ms,每記一次時,數(shù)碼管時間顯示數(shù)值加一,實現(xiàn)了數(shù)碼管毫秒計時的功能。 具體程序見附錄。5 系統(tǒng)仿真5.1 搶答仿真 當(dāng)計時時間未到9999,有人按下?lián)尨鸢存I時,系統(tǒng)可顯示優(yōu)先搶答者的號碼以及計時時間。搶答仿真結(jié)果如圖5.1所示。圖5.1 搶答仿真結(jié)果圖5.2 無人搶答仿真 當(dāng)計時時間到9999,仍未有人按下?lián)尨鸢存I時
9、,系統(tǒng)顯示優(yōu)先搶答者的號碼為0,計時時間為9999。無人搶答仿真結(jié)果如圖5.2所示。圖5.2 無人搶答仿真結(jié)果圖5.3 結(jié)果分析 通過仿真可以看出,系統(tǒng)的工作過程為:在開啟按鍵按下之前,數(shù)碼管顯示優(yōu)先搶答者的號碼為0,計時時間為0,直到開啟按鍵按下時,搶答器才開始計時,如果計時到9999之前,有搶答者按下按鍵進(jìn)行搶答,則數(shù)碼管顯示優(yōu)先搶答者的號碼以及計時時間。若計時到9999,則系統(tǒng)顯示優(yōu)先搶答者的號碼為0,計時時間為9999,表示無人搶答。從搶答器的工作過程可以看出,系統(tǒng)設(shè)計符合預(yù)期要求,而且可以準(zhǔn)確、可靠工作。6 總結(jié)經(jīng)過多次艱難的嘗試,我終于完成了能力拓展訓(xùn)練任務(wù)。在剛剛看到課程設(shè)計任務(wù)
10、書時,由于對單片機(jī)的編程及綜合使用不是很熟悉,我都感覺有點無從下手。帶著一個個的疑問我認(rèn)真地去圖書館查閱了相關(guān)資料、上網(wǎng)去了解單片機(jī)編程、仿真相關(guān)的內(nèi)容,同時也和其他同學(xué)溝通、交流,互相學(xué)習(xí),漸漸的感覺有了些頭緒。雖然我的課程設(shè)計不是很成熟,仍然還有很多不足之處,但我仍然感覺自己還是有所收獲,因為在完成課程設(shè)計的過程中讓我不僅學(xué)到了很多課本上沒有的東西,還讓我學(xué)會了如何利用各種資源去學(xué)習(xí)自己不熟悉的知識。這次課程設(shè)計真是讓我獲益匪淺。參考文獻(xiàn)1 張義和.王敏男等編著.例說51單片機(jī).北京:人民郵電出版社.20082 張靖武.周靈彬編著.單片機(jī)系統(tǒng)的proteus設(shè)計與仿真. 北京:電子工業(yè)出版
11、社,2007.3頂明亮.唐前輝編著.51單片機(jī)應(yīng)用設(shè)計與仿真:基于keil與proteus.北京:北京航空航天大學(xué)出版社,20094蘇衛(wèi)斌.8050系列單片機(jī)應(yīng)用手冊m.北京:科學(xué)出版社,1997.5徐仁貴.微型計算機(jī)接口技術(shù)及應(yīng)用m.北京:機(jī)械工業(yè)出版社,1996.6高鋒.單片機(jī)應(yīng)用系統(tǒng)設(shè)計及實用技術(shù)m.北京:機(jī)械工業(yè)出版社,2004.附錄 程序清單#includesbit seg_1 = p20; /顯示選手的數(shù)碼管 sbit seg_2 = p21; /顯示計時的千位sbit seg_3 = p22; /顯示計時的百位sbit seg_4 = p23; /顯示計時的十位sbit seg_
12、5 = p24; /顯示計時的個位 sbit key_1 = p25; /開始按鍵 #define dat p0 #define key_port p1 /設(shè)置八組搶答按鍵,p1.0p1.7分別對應(yīng)組號18 unsigned int t0count=0; /計數(shù)器計數(shù) long int time= 0; /計時時間 bit flag1 = 0; /當(dāng)開始按下按鍵時,標(biāo)志位置1bit flag2 = 0; /當(dāng)有選手按下按鍵時,標(biāo)志位置1const unsigned char code seg_dat= /時間的數(shù)碼管的顯示,對應(yīng)數(shù)字0f0xc0,0xf9,0xa4,0xb0,0x99,0x92
13、,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff, ; unsigned char key_scan(void); /鍵盤掃描函數(shù),返回值為按下的鍵的序號 void dis_1(unsigned char num1); /數(shù)碼管的顯示函數(shù) 顯示的是哪一位選手按下了 void dis_4(long int num4); /數(shù)碼管的顯示函數(shù) 顯示的是計時時間 void delayms(unsigned int i); /延時大約imsvoid delayus(unsigned int i); /延時大約ius unsigned char
14、 key_scan(void) /鍵盤掃描函數(shù) ,返回值為按下的鍵的序號unsigned char get_port = 0; /清零 key_port = 0xff; /每次掃描前,先將接鍵盤的引腳口拉高 key_1 = 1; /開始按鍵,每次掃描前先拉高 get_port = key_port; /從端口采回值 if(get_port != 0xff) /如果檢測到有鍵按下 delayms(10); /延時10ms,進(jìn)行消抖操作。 get_port = key_port; /再次采回端口值 if(get_port != 0xff) get_port = key_port;switch (k
15、ey_port) /標(biāo)志位置位 并返回相應(yīng)的值 case 0xfe:flag2 = 1;return 1;case 0xfd:flag2 = 1;return 2;case 0xfb:flag2 = 1;return 3;case 0xf7:flag2 = 1;return 4; case 0xef:flag2 = 1;return 5; case 0xdf:flag2 = 1;return 6;case 0xbf:flag2 = 1;return 7;case 0x7f:flag2 = 1;return 8;while(!key_port); /松手檢測 if(key_1 = 0) /如果開
16、始鍵按下 delayms(10); /延時10ms if(key_1 = 0) /再次判斷是否確實按下按鍵 flag1 = 1; /標(biāo)志位置1 return 9; /返回值為9 while(!key_1); /松手檢測 return 0;void dis_1(unsigned char num1) /1位led數(shù)碼管的顯示函數(shù) seg_1 = 1; /開數(shù)碼管的顯示 seg_2 = 0;seg_3 = 0;seg_4 = 0;seg_5 = 0;dat = seg_datnum1; /讓數(shù)碼管顯示對應(yīng)的數(shù)值 delayms(5); /短暫的延時可以增加亮度 dat = seg_dat16; /
17、關(guān)閉顯示,避免對下一次的值造成干擾。 void dis_4(long int num4) /四位led數(shù)碼管的顯示函數(shù) unsigned char shi,ge,bai,qian;qian = num4/1000; /提取出每位的值bai = num4%1000/100;shi = num4%100/10; ge = num4%10; seg_1 = 0; seg_2 = 0;seg_3 = 0; seg_4 = 0;seg_5 = 1; /開數(shù)碼管的顯示dat = seg_datge; /讓數(shù)碼管顯示個位的數(shù)值 delayms(5); /短暫的延時可以增加亮度 dat = seg_dat16
18、; /關(guān)閉顯示,避免對下一次的值造成干擾。 seg_1 = 0; seg_2 = 0; seg_3 = 0;seg_4 = 1; /開數(shù)碼管的顯示seg_5 = 0;dat = seg_datshi; /讓數(shù)碼管顯示十位的數(shù)值 delayms(5); /短暫的延時增加亮度 dat = seg_dat16; /關(guān)閉顯示,避免對下一次的值造成干擾。 seg_1 = 0; seg_2 = 0;seg_3 = 1; /開數(shù)碼管的顯示seg_4 = 0;seg_5 = 0; dat = seg_datbai; /讓數(shù)碼管顯示百位的數(shù)值 delayms(5); /短暫的延時可以增加亮度 dat = seg_dat16; /關(guān)閉顯示,避免對下一次的值造成干擾。seg_1 = 0; seg_2 = 1; /開數(shù)碼管的顯示seg_3 = 0;seg_4 = 0;seg_5 = 0;dat = seg_datqian; /讓數(shù)碼管顯示千位的數(shù)值 delayms(5); /短暫的延時增加亮度 dat = seg_dat16; /關(guān)閉顯示,避免對下一次的值造成干擾
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年體育經(jīng)紀(jì)人考生心理建設(shè)試題及答案
- 2024年籃球裁判員面臨的新問題試題及答案
- 關(guān)注2024年體育經(jīng)紀(jì)人資格考試試題及答案
- 長期視角下的足球裁判員等級考試的試題與答案
- 深入了解2024年模具設(shè)計師考試試題及答案
- 足球裁判員對新技術(shù)的應(yīng)用試題及答案
- 預(yù)習(xí)必看籃球裁判員考試試題及答案
- 模具設(shè)計師資格考試知識擴(kuò)展試題及答案
- 2025年中國分體式焊槍市場調(diào)查研究報告
- 2024年種子繁育員職業(yè)考試緊急情況處理試題及答案
- 創(chuàng)傷緊急救護(hù)知識課件
- 醫(yī)院單位單位內(nèi)部控制自我評價報告
- 湖北省第十屆湖北省高三(4月)調(diào)研模擬考試數(shù)學(xué)試題及答案
- 五一勞動節(jié)前安全檢查重點
- 2025年03月廣東深圳市光明區(qū)科技創(chuàng)新局公開招聘專干5人筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
- 內(nèi)蒙古通遼市科左中旗實驗小學(xué)2025屆數(shù)學(xué)三下期末質(zhì)量檢測試題含解析
- 高溫急救知識培訓(xùn)
- 學(xué)前教育學(xué) 課件 第1、2章 緒論;學(xué)前教育的目標(biāo)、內(nèi)容的方法
- 2025北京豐臺高三一模物理試題及答案
- 江南美術(shù)遺產(chǎn)融入美育的數(shù)智化路徑探索
- 診所醫(yī)療質(zhì)量相關(guān)管理制度
評論
0/150
提交評論