給大家提供一個單片機八路搶答器設(shè)計的超詳細完整資料下載,含論文 仿真 原理圖 源碼 任務(wù)書及開題報告 焊接仿真教程和其他相關(guān)教程等等一應(yīng)俱全 都有的都有了.
(1)、程序開始當主席臺按下開始搶答按鈕后,數(shù)碼管顯示搶答倒計時。在該時間內(nèi)八路搶答按下有效,若超出搶答時間蜂鳴器發(fā)出搶答失敗警報預(yù)示該次搶答失敗。若有效時間內(nèi)有人搶答則1位數(shù)碼管顯示搶答選手號,二位數(shù)碼管顯示答題倒計時。在答題有效時間內(nèi)答題完成則搶答成功,若超過答題時間,蜂鳴器給出答題超時警報,答題失敗。 (2)、在開始搶答的過程中主席臺可按下結(jié)束搶答來中斷此次搶答。直接結(jié)束搶答后數(shù)碼管均顯示0.等待下次搶答開始。 (3)、在開始搶答時,主席臺可以不使用開始搶答按鈕而按下隨機抽擊選手答題按鈕來隨機抽取一位選手答題。該按鈕按下后1位數(shù)碼管顯示隨機選手號,二位數(shù)碼管顯示答題倒計時,若時間超時,蜂鳴器給出警報。若有效時間內(nèi)答題,則答題成功。 (4) 、在隨機抽取選手答題中,可以按下結(jié)束隨機抽取選手答題按鈕來結(jié)束隨機抽取答題。結(jié)束后數(shù)碼管均顯示0. 等待下次搶答開始。
1.001.jpg (167.04 KB, 下載次數(shù): 128)
下載附件
2017-5-10 16:44 上傳
1.002.jpg (123.39 KB, 下載次數(shù): 135)
下載附件
2017-5-10 16:44 上傳
3、下面焊接步驟可按圖片進行
1.003.jpg (104.98 KB, 下載次數(shù): 122)
下載附件
2017-5-10 16:44 上傳
下面圖片中畫的黑線表示也需要連線,在這里由于拍照時還未焊接,后來焊接的!在此特別提出!下面最后幾張圖片中可以看到該畫黑線處的連線! 很多同志需要自己焊接reset功能的找不到RST腳,可以上網(wǎng)查查的!上面圖單片機焊接兩排下面一排右邊開始數(shù),第9個腳為RST腳!
1.004.jpg (107.17 KB, 下載次數(shù): 140)
下載附件
2017-5-10 16:44 上傳
1.005.jpg (103.01 KB, 下載次數(shù): 135)
下載附件
2017-5-10 16:44 上傳
1.006.jpg (106.97 KB, 下載次數(shù): 157)
下載附件
2017-5-10 16:44 上傳
1.007.jpg (104.64 KB, 下載次數(shù): 129)
下載附件
2017-5-10 16:44 上傳
仿真圖:
0.png (73.87 KB, 下載次數(shù): 151)
下載附件
2017-5-10 16:33 上傳
0.png (105.73 KB, 下載次數(shù): 134)
下載附件
2017-5-10 16:32 上傳
文件列表:
C51學(xué)習(xí)視頻沒有\(zhòng)
KEIL 軟件安裝視頻沒有\(zhòng)
keil_project\
keil_project2\
Keil_Project3\
Protel 99 軟件安裝包\
Protel 99畫圖軟件學(xué)習(xí)視頻\
proteus7.5仿真\
proteus8.0仿真\
PROTEUS仿真軟件的安裝方法\
proteus軟件安裝包\
仿真學(xué)習(xí)案例\
仿真指導(dǎo)\
單片機程序下載軟件\
參考論文及設(shè)計文檔\
開題報告及任務(wù)書\
沒有單片機初學(xué)者視頻教程\
焊接指導(dǎo)\
電路圖\
程序\
Keil-Project說明.txt
proteus7.5仿真.rar
proteus仿真.rar
八路搶答器設(shè)計功能說明.docx
搶答器仿真指導(dǎo).docx
搶答器元器件清單.docx
畢設(shè)答辯技巧.rar
下面分享下基于單片機的八路搶答器設(shè)計任務(wù)書及開題報告.doc(51hei提供的附件內(nèi)有完整的論文下載word格式 可編輯):
XXXX學(xué)校
任務(wù)書
學(xué)生姓名: XX 學(xué)號: XXXXXX 系 別: 電子工程系 專 業(yè): 電子技術(shù) 畢業(yè)綜合實踐題目:基于單片機的八路搶答器設(shè)計
指導(dǎo)教師: XX講師 (姓名、專業(yè)技術(shù)職務(wù))
材 料 目 錄 年月
XX學(xué)校
畢 業(yè) 綜 合 實 踐 任 務(wù) 書
學(xué)年 系專業(yè)
學(xué)生姓名: | | | | | | 畢業(yè)綜合實踐題目: | | | 起迄日期: | | 實踐地點: | | 指導(dǎo)教師: | | 顧問教師: |
| 教研組(室)負責(zé)人: | | 發(fā)任務(wù)書日期: XXXX年 XX月XX日 |
|
|
|
|
|
|
|
一、選題背景: 在這個瞬息萬變、競爭激烈的時代,選擇一個優(yōu)越的工具往往能提升企業(yè)在這個市場上的競爭力。進入21世紀,隨著科學(xué)技術(shù)的發(fā)展,生活中的競賽越來越多,為了在比賽中能準確、公正、直觀的判斷出第一搶答者,設(shè)計的搶答器通常有數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。設(shè)計一種易于使用和區(qū)分度高的搶答器成了非常迫切的任務(wù),搶答器主要用于選手做搶答題時,選手進行搶答,搶到題的選手來回答問題。搶答器不僅考驗選手的反應(yīng)速度同時也要求選手具備足夠的知識面和一定的勇氣。選手們都站在同一個起跑線上,體現(xiàn)了公平公正的原則,因此我們設(shè)計了一種采用數(shù)字電路制作的多功能數(shù)顯搶答器,除了有搶答功能外,還具有定時報警功能和數(shù)顯功能。 | 二、設(shè)計(研究)內(nèi)容: 1.對本課題的總結(jié)介紹:“八路搶答器”設(shè)計采用STC89C51自身接口實現(xiàn)數(shù)碼管動態(tài)顯示和蜂鳴報警系統(tǒng)。當主席臺按下開始強大按鈕時,數(shù)碼管顯示搶答倒計時,在該時間內(nèi)搶答有效如無人搶答時間到后將進行蜂鳴器報警。若有人搶答數(shù)碼管顯示答題倒計時,有限時間內(nèi)答題則搶答成功,若有限時間內(nèi)無法答題,蜂鳴器進行答題超時報警。 2.工作內(nèi)容:首先要對該設(shè)計進行分析,用protel99SE將該電路的原理圖給繪出,然后用編寫出程序并畫出流程圖。編譯編寫的程序生成可執(zhí)行HEX文件,再用proteus軟件進行設(shè)計仿真。再將程序下載到單片機中,最后將焊接電路,并進行硬件調(diào)試。 3.能力要求及目標 (1)學(xué)習(xí)能力強、工作態(tài)度認真,能及時完成任務(wù)。 (2)理論聯(lián)系實際,能綜合運用所學(xué)的理論知識和技能解決實際問題。具有較強的分析能力和解決問題的能力。 (3)畢業(yè)綜合實踐成果對實際應(yīng)用有一定的現(xiàn)實意義且能體現(xiàn)較強的動手能力。 (4)在工作中有創(chuàng)新意識,在某些方面有獨到的見解和創(chuàng)新。 (5)在畢業(yè)綜合實踐中能較快的適應(yīng)崗位的需要,有較強的職業(yè)道德修養(yǎng),較強的溝通能力。 目標:通過該項目的設(shè)計,增強了自身的設(shè)計能力,并且也提高了專業(yè)水平。同時分析和解決問題的能力也涿漸提高。 | 三、課題任務(wù)具體要求及預(yù)期成果: 此設(shè)計方案是利用對數(shù)字電路知識的穩(wěn)固掌握來進行課程設(shè)計的,要求做到熟悉各集成芯片的功能,進行正確的引腳連接,從而完成搶答器的功能實現(xiàn)和軟件仿真。 課題要求完成的方案及成果: 1. 設(shè)計出基于單片機的八路搶答器設(shè)計的原理圖設(shè)計、proteus仿真設(shè)計、源程序的編寫及調(diào)試、硬件的焊接及調(diào)試。 2. 編寫相應(yīng)的設(shè)計相關(guān)文檔。 3.完成畢業(yè)綜合實踐報告。 | 四、時間安排與要求: : 選擇并確定課題,并收集好一些相關(guān)的資料。 : 下發(fā)任務(wù)書。 : 完成開題報告。 : 完成初步設(shè)計,包括電路圖、參數(shù)設(shè)置。 : 進行有關(guān)的仿真實驗、分析調(diào)試,并達到預(yù)期的效果。 : 完成論文的初稿,進行中期的檢查。 : 修改論文,最終完成畢業(yè)設(shè)計,上交材料。 | 五、完成課題需具備的條件: 實踐者應(yīng)具備扎實的電路分析、電子技術(shù)應(yīng)用、電子測量、等基礎(chǔ)知識,能熟練應(yīng)用proteus、Protel等軟件對電路進行仿真分析、對電路進行檢測和排故。有一定的電路設(shè)計、分析問題和解決問題能力。同時需要一定的編程能力熟練KEIL下C51編程。 所需設(shè)備:裝有KEIL軟件、Protel軟件及Keil軟件的電腦。 參考資料: 【1】殷慶縱 李福勤 編著 電子線路CAD 北京:北京大學(xué)出版社,2009.8 【2】劉訓(xùn)非 編著 EDA技術(shù)(二)校本教材 【3】陳其純 編著 電子線路(第二版)北京:高等教育出版社,2006.6 【4】陳尚松 郭慶 雷加 編著 電子測量與儀器 北京:電子工業(yè)出版社,2009.1 【5】張毅剛 修林成 編著 MCS-51單片機應(yīng)用設(shè)計 北京:哈爾濱工業(yè)大學(xué)出版,社 2009.2 【6】何立民 主編 單片機應(yīng)用技術(shù)選編 北京: 北京航空航天大學(xué)出版社,1991.9
| 六、其他需要說明的的事項:
|
單片機源程序:
- #include <reg51.h>
- #include <intrins.h>
- #include <stdlib.h>
- sbit DG1 = P0^0; //二位數(shù)碼管第一位選擇腳
- sbit DG2 = P0^1; //二位數(shù)碼管第二位選擇腳
- sbit DG3 = P0^3;
- //P2端口 數(shù)碼管段選
- //P1端口 八位選手搶答
- sbit start_qd_pin = P3^7;//開始搶答按鈕連接管腳
- sbit end_qd_pin = P3^5; //結(jié)束搶答按鈕連接管腳
- sbit start_srand_qd_pin = P3^4;//開始隨機抽取選手按鈕連接管腳
- sbit end_srand_qd_pin = P3^6;//結(jié)束隨機抽取選手按鈕連接管腳
- sbit beep=P3^3;//蜂鳴器連接管腳
- unsigned char weixuan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數(shù)碼管段碼:0123456789
- unsigned char qd_num=0; //搶答選手號
- unsigned char qd_time=0; //搶答倒計時間
- unsigned char timeout_num=0; //定時器產(chǎn)生中斷次數(shù)
- unsigned char work_status = 0; //工作狀態(tài),下面幾個為工作狀態(tài)定義的宏
- #define START_QD_STATUS 0
- #define WAIT_QD_STATUS 1
- #define ACK_QD_STATUS 2
- #define ACK_SRAND_QD_STATUS 3
- /*------延時2ms函數(shù)------*/
- void delay2ms(void) //誤差 0us
- {
- unsigned char a,b;
- for(b=4;b>0;b--)
- for(a=248;a>0;a--);
- _nop_(); //if Keil,require use intrins.h
- }
- /*------延時50ms函數(shù),參數(shù)num為延時多少個50ms------*/
- void delay50ms(unsigned int num) //誤差 0us
- {
- unsigned char a,b;
- unsigned char i=0;
- for(i=0; i<num; i++)
- {
- for(b=173;b>0;b--)
- for(a=143;a>0;a--);
- }
- }
- /*---初始化定時器0---*/
- void InitTimer0(void)//50ms
- {
- TMOD = 0x01;//定時器工作模式1
- TH0 = 0x3C; //定時器裝值高8位
- TL0 = 0x0B0;//定時器裝值低8位
- EA = 1; //使能總中斷
- ET0 = 1; //使能定時器0中斷
- TR0 = 1; //啟動定時器
- }
- /*------關(guān)閉定時器0------*/
- void end_Timer0(void)
- {
- ET0 = 0;//關(guān)閉定時器0中斷
- TR0 = 0;//停止定時器0
- }
- /*----初始化函數(shù)-----*/
- void init(void)
- {
- DG1 = 0;
- DG2 = 0;
- DG3 = 0;
-
- beep = 0;//上電時由于該腳為高,而為高時蜂鳴器會叫,故初始化為低
- }
- /*----------等待開始搶答狀態(tài)
- 該狀態(tài)下一直等待主席臺按下開始搶答按鈕或隨機搶答按鈕,再進入相應(yīng)的工作狀態(tài)!
- 這種狀態(tài)機的編程方式是當前單片機開發(fā)者的主流思想。
- ---------*/
- void start_qd_status(void)
- {
- if(start_qd_pin == 0)//檢測到開始搶答按鈕按下
- {
- work_status = WAIT_QD_STATUS;//工作狀態(tài)設(shè)置為等待答題狀態(tài)
- qd_num = 0; //回答選手號為0,等待選手按下
- qd_time = 20; //20s搶答時間
- timeout_num=0; //中斷次數(shù)清0
- InitTimer0(); //開啟定時器0
- }
- if(start_srand_qd_pin == 0)//檢測到隨機抽取選手答題按鈕按下
- {
- work_status = ACK_SRAND_QD_STATUS;//工作狀態(tài)設(shè)置為隨機選手回答狀態(tài)
- srand(TL0%100); //產(chǎn)生隨機數(shù)種子,srand和rand函數(shù)有興趣可以百度一下單片機產(chǎn)生隨機數(shù)方法!
- qd_num = (rand()%9);//0-8, 產(chǎn)生隨機數(shù)
- if(qd_num == 0) //防止產(chǎn)生隨機數(shù)0
- qd_num = (rand()%9); //再次產(chǎn)生隨機數(shù)
- qd_time = 30; //30s答題時間
- timeout_num=0; //中斷次數(shù)清0
- InitTimer0(); //開始定時器0
- }
- }
- /*-------開始按鈕按下后,等待選手搶答狀態(tài)函數(shù)------*/
- void wait_qd_status(void)
- {
- unsigned char i = 0;
- if(qd_time == 0)//無人搶答,搶答時間已到
- {
- end_Timer0();//停止定時器0
- //蜂鳴器給出無人搶答警報
- beep = 1; //蜂鳴器響
- delay50ms(40);
- beep = 0;
- work_status = START_QD_STATUS;//無人搶答后恢復(fù)原始狀態(tài),設(shè)置工作狀態(tài)為開始搶答狀態(tài)
- }
- if(end_qd_pin == 0)//檢測到結(jié)束按鍵
- {
- end_Timer0();//停止定時器0
- qd_num = 0;//回答選手號為0
- qd_time = 0;//搶答時間清0
- work_status = START_QD_STATUS;//工作狀態(tài)置開始搶答狀態(tài)
- }
- switch(P1)//檢測哪位選手按下?lián)尨鸢粹o
- {
- case 0xfe://1號
- qd_num = 1;//回答選手號為1
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- case 0xfd://2號
- qd_num = 2;//回答選手號為2
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- case 0xfb://3號
- qd_num = 3;//回答選手號為3
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- case 0xf7://4號
- qd_num = 4;//回答選手號為4
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- case 0xef://5號
- qd_num = 5;//回答選手號為5
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- case 0xdf://6號
- qd_num = 6;//回答選手號為6
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- case 0xbf://7號
- qd_num = 7;//回答選手號為7
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- case 0x7f://8號
- qd_num = 8;//回答選手號為8
- qd_time = 30;
- timeout_num=0;
- InitTimer0();
- work_status = ACK_QD_STATUS;
- break;
- default:
- break;
- }
- }
- /*------選手回答問題狀態(tài)------*/
- void ack_qd_status()
- {
- unsigned char i = 0;
- if(qd_time == 0)//答題超時
- {
- end_Timer0();//結(jié)束定時器0
- qd_num = 0;
- qd_time = 0;
- for(i=0;i<3;i++)//選手回答問題超時警報
- {
- beep = 1;
- delay50ms(5);
- beep = 0;
- delay50ms(5);
- }
- work_status = START_QD_STATUS;//設(shè)置工作狀態(tài)為開始搶答狀態(tài)
- }
- if(end_qd_pin == 0)//結(jié)束按鍵按下
- {
- end_Timer0();//結(jié)束定時器0
- qd_num = 0;
- qd_time = 0;
- work_status = START_QD_STATUS;//設(shè)置工作狀態(tài)為開始搶答狀態(tài)
- }
- }
- /*-------隨機選手回答狀態(tài)-------*/
- void ack_srand_status()
- {
- unsigned char i = 0;
- if(qd_time == 0)//答題超時
- {
- end_Timer0();//結(jié)束定時器0
- qd_num = 0;
- qd_time = 0;
- for(i=0;i<3;i++)//隨機選手回答問題超時警報
- {
- beep = 1;
- delay50ms(5);
- beep = 0;
- delay50ms(5);
- }
- work_status = START_QD_STATUS;
- }
- if(end_srand_qd_pin == 0)//結(jié)束按鍵
- {
- end_Timer0();//結(jié)束定時器0
- qd_num = 0; //選手號清0
- qd_time = 0;//時間清0
- work_status = START_QD_STATUS;//設(shè)置工作狀態(tài)為開始搶答狀態(tài)
- }
- }
- /*-----數(shù)碼管顯示函數(shù)
- 二位數(shù)碼管顯示倒計時時間
- 一位數(shù)碼管顯示搶答選手號------*/
- void display(unsigned char qd_time, unsigned char qd_num)
- {
- P2 = weixuan[qd_time/10];//顯示時間十位
- DG1 = 1; //打開第一位數(shù)碼管位選
- delay2ms();
- DG1 = 0;
- P2 = weixuan[qd_time%10];//顯示時間個位
- DG2 = 1; //打開第二位數(shù)碼管位選
- delay2ms();
- DG2 = 0;
- P2 = weixuan[qd_num%10];//顯示選手號
- DG3 = 1; //打開第三位數(shù)碼管位選
- delay2ms();
- DG3 = 0;
- }
- /*-------主函數(shù)-----*/
- void main()
- {
- init();//初始化
- while(1)
- {
- switch(work_status)//工作狀態(tài)判斷
- {
- case START_QD_STATUS://開始搶答狀態(tài)
- start_qd_status();
- break;
- case WAIT_QD_STATUS://等待選手搶答狀態(tài)
- wait_qd_status();
- break;
- …………限于本文篇幅 余下代碼請從51黑帖子末尾下載附件…………
復(fù)制代碼
八路搶答器全部資料打包下載(完整資料,含論文 仿真 原理圖 源碼 教程等等一應(yīng)俱全 都有的都有了):
八路搶答器.zip
(6.76 MB, 下載次數(shù): 416)
2017-5-10 16:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|