基于STM32籃球計(jì)分器數(shù)碼管顯示(Proteus仿真+程序+設(shè)計(jì)報(bào)告+原理圖PCB+講解視頻)
仿真圖proteus 8.9
程序編譯器:keil 5
編程語言:C語言
設(shè)計(jì)編號(hào):C0102
1.主要功能
設(shè)計(jì)一個(gè)基于STM32單片機(jī)的籃球比賽計(jì)分器仿真設(shè)計(jì),下面是設(shè)計(jì)的功能要求
1.可以在比賽期間隨時(shí)更新A和B隊(duì)的比分。
2.中場(chǎng)休息期間交換場(chǎng)地,交換A隊(duì)和B隊(duì)的位置。
3.當(dāng)添加比賽分?jǐn)?shù)時(shí),如果有錯(cuò)誤,可以手動(dòng)更改賽場(chǎng)分?jǐn)?shù)。
4.具備籃球24秒進(jìn)攻時(shí)間倒計(jì)時(shí),進(jìn)攻時(shí)間結(jié)束時(shí)可以觸發(fā)蜂鳴器警報(bào)。
5.可以通過復(fù)位按鍵回復(fù)比分初始狀態(tài)。
6.可以通過proteus仿真演示。
主要硬件設(shè)備:STM32F103+74HC138+蜂鳴器+數(shù)碼管
2.功能演示
1.可以在比賽期間隨時(shí)更新A和B隊(duì)的比分。
2.中場(chǎng)休息期間交換場(chǎng)地,交換A隊(duì)和B隊(duì)的位置。
3.當(dāng)添加比賽分?jǐn)?shù)時(shí),如果有錯(cuò)誤,可以手動(dòng)更改賽場(chǎng)分?jǐn)?shù)。
4.具備籃球24秒進(jìn)攻時(shí)間倒計(jì)時(shí),進(jìn)攻時(shí)間結(jié)束時(shí)可以觸發(fā)警報(bào)。
當(dāng)系統(tǒng)啟動(dòng)時(shí),發(fā)光二極管數(shù)碼管按程序流程被點(diǎn)亮,顯示賽場(chǎng)比賽24秒倒計(jì)時(shí)和賽場(chǎng)比賽計(jì)分。沒啟動(dòng)之前24秒倒計(jì)時(shí)時(shí)間顯示24。比賽分?jǐn)?shù)000:000.按下啟動(dòng)按鍵后,24秒倒計(jì)時(shí)數(shù)碼管開始倒計(jì)時(shí)。比賽狀態(tài)指示燈開始指示燈點(diǎn)亮,如果有A隊(duì)得分,可以通過A+按鍵按一下加一份。如果有錯(cuò)誤需要修正可以按下A-,按一下減一份。B隊(duì)得分同理操作。如果比賽開始后有犯規(guī)或者其他需要暫停比賽的需要,可以按下啟動(dòng)/暫停按鍵來暫停比賽,需要重新開始再按一下。24秒進(jìn)攻倒計(jì)時(shí)結(jié)束后蜂鳴器報(bào)警提醒。
下圖是中場(chǎng)A隊(duì)得分6分,B隊(duì)得分3分。需要交換場(chǎng)地再計(jì)分輕觸交換場(chǎng)地按鍵即可。比分會(huì)換過來。
3.程序設(shè)計(jì)
程序是用keil5 mdk版本打開的,如果打開有問題,核實(shí)下keil的版本。程序是HAL版本編寫的,有stm32cubemx配置文件。有注釋可以結(jié)合講解視頻理解。
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim == &htim2) //定時(shí)器2中斷 10ms一次
{
if(start==1){
if(flick_cnt<100){//flick_cnt計(jì)數(shù)在0-100,100就一秒
flick_cnt++;
}else{
flick_cnt=0;
if(miao>0){//秒計(jì)時(shí) 一秒減一次
miao--;
if(miao==0){
start=0;//停止
beep_time=30;
BEEP=BEEP_ON;
}else if(miao>0){
BEEP=BEEP_OFF;
}
}
}
}
if(beep_time>0)//蜂鳴器響
{
if(beep_time)beep_time--;
if(beep_time==0){
BEEP=BEEP_OFF;
}
}
}
}
/*中斷回調(diào)函數(shù)*/
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0) /*檢測(cè)到EXTI0線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin)==0){//消抖
if(start==0) /*檢測(cè)到EXTI0線產(chǎn)生外部中斷事件*/
{
start=1;//開始倒計(jì)時(shí)
miao=24;//倒計(jì)時(shí)時(shí)間24秒
}
else
{
if(start==1)
start=2;
else
start=1;
}
}
}
else if(GPIO_Pin == GPIO_PIN_1) /*檢測(cè)到EXTI1線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY2_GPIO_Port,KEY2_Pin)==0){//消抖
flag=!flag; //交換場(chǎng)地
}
}
else if(GPIO_Pin == GPIO_PIN_6) /*檢測(cè)到EXTI6線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY3_GPIO_Port,KEY3_Pin)==0){//消抖
start=1;
miao=24;
}
}
else if(GPIO_Pin == GPIO_PIN_7) /*檢測(cè)到EXTI7線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY4_GPIO_Port,KEY4_Pin)==0){//消抖
// if(start==0){
fena=0;
miao=24;
fenb=0;
// }
}
}
else if(GPIO_Pin == GPIO_PIN_8) /*檢測(cè)到EXTI8線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY5_GPIO_Port,KEY5_Pin)==0){//消抖
if(fena<999)
fena++;
}
}
else if(GPIO_Pin == GPIO_PIN_9) /*檢測(cè)到EXTI9線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY6_GPIO_Port,KEY6_Pin)==0){//消抖
if(fena>0)
fena--;
}
}
else if(GPIO_Pin == GPIO_PIN_10) /*檢測(cè)到EXTI10線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY7_GPIO_Port,KEY7_Pin)==0){//消抖
if(fenb<999)
fenb++;
}
}
else if(GPIO_Pin == GPIO_PIN_11) /*檢測(cè)到EXTI11線產(chǎn)生外部中斷事件*/
{
HAL_Delay(10);
if(HAL_GPIO_ReadPin(KEY8_GPIO_Port,KEY8_Pin)==0){//消抖
if(fenb>0)
fenb--;
}
}
}
/* USER CODE END 4 */
程序流程圖
4.原理圖PCB
5.元器件清單
No. | 數(shù)量 | Comment | Designator |
---|---|---|---|
1 | 1 | 有源蜂鳴器5V | BUZ1 |
2 | 1 | 二極管1N4007 | D1 |
3 | 8 | 按鍵K4-6×6_TH | KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,KEY8 |
4 | 2 | LED燈LED-TH-3mm_R | LED1,LED2 |
5 | 1 | 0.36寸共陰極二位數(shù)碼管 | LED4 |
6 | 1 | 三極管SS8550 | Q1 |
7 | 2 | 電阻100歐 | R1,R3 |
8 | 2 | 電阻10k | R5,R6 |
9 | 2 | 0.56寸共陰極四位數(shù)碼管 | SEG1,SEG2 |
10 | 1 | STM32F103C8T6最小系統(tǒng)板 | U1 |
11 | 1 | 74HC245 | U2 |
12 | 1 | 74LS138 | U3 |
實(shí)物圖
6.設(shè)計(jì)報(bào)告
9068字設(shè)計(jì)報(bào)告,內(nèi)容包括硬件設(shè)計(jì)、軟件設(shè)計(jì)、結(jié)論等。
籃球是青少年非常喜歡的體育運(yùn)動(dòng),它不僅能鍛煉人的意志,而且還可以陶冶情操,培養(yǎng)團(tuán)隊(duì)精神和合作意識(shí),最重要的是提高青少年的身體素質(zhì)。廣大人民群眾的物質(zhì)生活伴隨著中國(guó)綜合國(guó)力的不斷上升,也變的花樣繁多起來,與此帶來的是對(duì)精神生活的需求。他們都希望自己的身體和精神都能健康。大家都想通過體育運(yùn)動(dòng)來鍛煉自己。在過去的30多年里,籃球比賽已經(jīng)成為了全世界最流行的體育運(yùn)動(dòng)項(xiàng)目。尤其是進(jìn)入新世紀(jì)以來,很多中國(guó)球員和華裔美國(guó)人加入了NBA,籃球在中國(guó)也越來越流行,年輕人們對(duì)籃球也越來越熱愛。針對(duì)這一現(xiàn)象,本文根據(jù)我國(guó)籃球運(yùn)動(dòng)的具體規(guī)定,設(shè)計(jì)了一種可以用于籃球比賽賽場(chǎng)的計(jì)時(shí)計(jì)分設(shè)備。這個(gè)籃球計(jì)時(shí)計(jì)設(shè)備,在實(shí)際賽場(chǎng)中操作簡(jiǎn)單,而且計(jì)時(shí)計(jì)分準(zhǔn)確。非常適合青少年的日?;@球和其他兩隊(duì)制競(jìng)賽活動(dòng)。
7.下載鏈接
資料下載鏈接:
通過網(wǎng)盤分享的文件:KEY_C0102
https://pan.baidu.com/s/1FnO5TuM2o0TDhcZHdFK1UA?pwd=2i1u
提取碼: 2i1u
0、常見使用問題及解決方法–必讀?。。?!
1、程序代碼
2、Proteus仿真
3、功能要求
4、開題報(bào)告
5、設(shè)計(jì)報(bào)告+PPT
6、框圖
7、原理圖
8、PCB圖
9、元器件清單
10、實(shí)物圖
11、講解視頻
Altium Designer 安裝破解
KEIL+proteus 單片機(jī)仿真設(shè)計(jì)教程
KEIL安裝破解
Proteus元器件查找
Proteus安裝
Proteus簡(jiǎn)易使用教程
單片機(jī)學(xué)習(xí)資料
相關(guān)數(shù)據(jù)手冊(cè)
答辯技巧
設(shè)計(jì)報(bào)告常用描述
鼠標(biāo)雙擊打開查找嘉盛單片機(jī)51 STM32單片機(jī)課程畢業(yè)設(shè)計(jì).url