基于STM32的6路搶答器Proteus仿真設計(仿真+程序+設計報告+講解視頻)
仿真圖proteus 8.9
程序編譯器:keil 5
編程語言:C語言
設計編號:C0116
1. 主要功能
設計一個基于單片機的多路智力搶答器系統(tǒng)。主要功能包括:
(1)6路;
(2)具有數(shù)據鎖存和顯示的功能;
(3)電路仿真。
詳細功能要求:
以STM32單片機為核心,設計一個6路競賽搶答器:同時供6名選手或6個代表隊比賽,分別用矩陣按鍵1-6表示。
1.設置一個系統(tǒng)復位RST和搶答控制開關STAT,開關由主持人控制。
2.搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。
3.搶答器具有倒計時功能,且一次搶答的時間由主持人設定(默認20秒)。默認倒計時時間可以通過按鍵+和按鍵-設置。
4.當主持人啟動“開始”鍵后,定時器進行減計時。
參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。
5.如果在主持人啟動"開始"鍵前搶答 ,搶答無效。且顯示器上會顯示搶答選手編號,蜂鳴器報警。
6.如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。
主要硬件設備:STM32F103C6+矩陣按鍵+LED+蜂鳴器+數(shù)碼管
資料下載鏈接(可點擊):
通過網盤分享的文件:KEY_C0116
鏈接: https://pan.baidu.com/s/1wlLQUtkveCcQ780kLbmCxg?pwd=j6fu
提取碼: j6fu
2.仿真
打開仿真工程,雙擊proteus中的單片機,選擇hex文件路徑,然后開始仿真。
主持人控制第一行按鍵控制搶答器的啟停和調整包括按鍵+和按鍵-設置倒計時時間,系統(tǒng)復位RST和搶答控制開關STAT。
開始搶答前選手違規(guī)搶答會顯示顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。
當主持人啟動“開始”鍵后,定時器進行減計時。參賽選手在設定的時間內進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。如果在主持人啟動"開始"鍵前搶答 ,搶答無效。且顯示器上會顯示搶答選手編號,蜂鳴器報警。如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。
搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。
3. 程序
程序是用keil5 mdk版本打開的,如果打開有問題,核實下keil的版本。程序是HAL版本編寫的,有stm32cubemx配置文件。有注釋可以結合講解視頻理解。
key_num=KEY_SCAN();
if(key_num>=1){
if(key_num==1){
if(counter_num>0&&state==0){
counter_num--;//搶答開始倒計時-1
}
}else if(key_num==2){
if(counter_num<99&&state==0){
counter_num++;//搶答開始倒計時+1
}
}else if(key_num==3){//復位按鍵
if(state==0||state==2){
counter_num=STAT_TIME;
LED1=LED2=LED3=LED4=LED5=LED6=1;
num=0;
BEEP=0;
if(state==2)state=0;
}
}else if(key_num==4){
if(state==0){
state=1;//開始搶答
LED1=LED2=LED3=LED4=LED5=LED6=1;//所有燈關閉
num=0;
BEEP=0;
}else if(state==2){
state=1;
counter_num=STAT_TIME;
LED1=LED2=LED3=LED4=LED5=LED6=1;//所有燈關閉
}
}else if(key_num==5){//1號搶答
if(state==0){//開始前按下?lián)尨疰I,違規(guī)搶答
num=1;
LED1=ON;
BEEP=1; //蜂鳴器長響
}else if(state==1){//搶答倒計時按下
LED1=ON;
BEEP=1;
HAL_Delay(10);
BEEP=0; //蜂鳴器短暫響一下
state =2; //搶答倒計時結束
num=1;
}
}else if(key_num==6){//2號搶答
if(state==0){//開始前按下?lián)尨疰I,違規(guī)搶答
num=2;
LED2=ON;
BEEP=1; //蜂鳴器長響
}else if(state==1){//搶答倒計時按下
LED2=ON;
BEEP=1;
HAL_Delay(10);
BEEP=0; //蜂鳴器短暫響一下
state =2; //搶答倒計時結束
num=2;
}
}else if(key_num==7){//3號搶答
if(state==0){//開始前按下?lián)尨疰I,違規(guī)搶答
num=3;
LED3=ON;
BEEP=1; //蜂鳴器長響
}else if(state==1){//搶答倒計時按下
LED3=ON;
BEEP=1;
HAL_Delay(10);
BEEP=0; //蜂鳴器短暫響一下
state =2; //搶答倒計時結束
num=3;
}
}else if(key_num==8){//4號搶答
if(state==0){//開始前按下?lián)尨疰I,違規(guī)搶答
num=4;
LED4=ON;
BEEP=1; //蜂鳴器長響
}else if(state==1){//搶答倒計時按下
LED4=ON;
BEEP=1;
HAL_Delay(10);
BEEP=0; //蜂鳴器短暫響一下
state =2; //搶答倒計時結束
num=4;
}
}else if(key_num==9){//5號搶答
if(state==0){//開始前按下?lián)尨疰I,違規(guī)搶答
num=5;
LED5=ON;
BEEP=1; //蜂鳴器長響
}else if(state==1){//搶答倒計時按下
LED5=ON;
BEEP=1;
HAL_Delay(10);
BEEP=0; //蜂鳴器短暫響一下
state =2; //搶答倒計時結束
num=5;
}
}else if(key_num==10){//6號搶答
if(state==0){//開始前按下?lián)尨疰I,違規(guī)搶答
num=6;
LED6=ON;
BEEP=1; //蜂鳴器長響
}else if(state==1){//搶答倒計時按下
LED6=ON;
BEEP=1;
HAL_Delay(10);
BEEP=0; //蜂鳴器短暫響一下
state =2; //搶答倒計時結束
num=6;
}
}
}
// memset(smgbuf, 0, sizeof(smgbuf));
smgbuf[4]=gsmg_code[num];
smgbuf[5]=0x40;//顯示-
smgbuf[6]=gsmg_code[counter_num/10];
smgbuf[7]=gsmg_code[counter_num%10];
SMG_Display(smgbuf,1);
}
4. 設計報告
10488字設計報告,內容包括硬件設計、軟件設計、結論等。
隨著電子技術的迅猛發(fā)展和普及,智能競賽搶答器作為一種集成先進科技與傳統(tǒng)競賽元素的創(chuàng)新產品,在各類知識競賽、辯論賽、以及豐富多彩的趣味活動中逐漸占據了不可或缺的地位。這一轉變,不僅標志著競賽工具的技術革新,更深刻地影響著比賽的公平性、互動性和觀賞性。
在傳統(tǒng)的手動搶答方式中,選手需要依靠自身反應速度迅速按下按鈕以表明搶答意愿,但這種方式往往受限于人為因素,如反應速度慢、判斷不準確,甚至存在作弊的可能性,從而影響了競賽的公正性和效率。相比之下,基于STM32單片機的智能競賽搶答器,憑借其高精度、高速度和強大的數(shù)據處理能力,從根本上解決了這些問題。
5. 資料清單&下載鏈接
0、常見使用問題及解決方法–必讀?。。。?/p>
1、程序代碼
2、Proteus仿真
3、功能要求
4、開題報告
5、設計報告
6、講解視頻
7、框圖
Altium Designer 安裝破解
KEIL+proteus 單片機仿真設計教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡易使用教程
單片機學習資料
相關數(shù)據手冊
答辯技巧
設計報告常用描述
鼠標雙擊打開查找嘉盛單片機51 STM32單片機課程畢業(yè)設計.url
資料下載鏈接(可點擊):
鏈接: https://pan.baidu.com/s/1wlLQUtkveCcQ780kLbmCxg?pwd=j6fu
提取碼: j6fu