找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6478|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

基于STM32籃球比賽計分源程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:410216 發(fā)表于 2019-5-18 12:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
自己做的設(shè)計, 使用通用定時器產(chǎn)生0.01秒時間單位進(jìn)行倒計時,在LCD上顯示剩余時間(分鐘、秒、秒小數(shù)各2位)和雙方分?jǐn)?shù),用4個按鈕控制時間啟動/暫停、雙方加減分?jǐn)?shù)。

單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "bsp_led.h"
  3. #include "bsp_exti.h"
  4. #include "./usart/bsp_usart.h"        
  5. #include "./lcd/bsp_ili9341_lcd.h"
  6. #include "./flash/bsp_spi_flash.h"
  7. #include "./SysTick/bsp_SysTick.h"
  8. #include "./beep/bsp_beep.h"

  9. //變量說明:start_stop;比賽開始/暫停   fen_up;加分   fen_down;減分   red_team;紅隊   blue_team:藍(lán)隊
  10. int start_stop=0,fen_up=0,fen_down=0,red_team=0,blue_team=0;  

  11. int red_team_fen=0,blue_team_fen=0;  //red_team_fen,紅隊比分 ; blue_team_fen藍(lán)隊比分

  12. int a=0;           //判斷紅藍(lán)對的標(biāo)志

  13. uint8_t s[5],t[5];
  14. //int time[0];

  15. uint8_t s1=0,s2=0,s3=0,s4=0;    //時間變量  毫秒s1; 秒s2; 分s3; 時s4;

  16. void time_runing(void);                        /* 比賽時間計算函數(shù) */
  17. void time_runing_test(void);        /* 比賽時間顯示函數(shù) */
  18. void time_inti(void);                        /* 比賽時間初始化 */
  19. void fen_test(void);                     /* 紅藍(lán)隊得分顯示函數(shù) */
  20. /**
  21.   * @brief  主函數(shù)
  22.   * @param  無
  23.   * @retval 無
  24.   */
  25. int main(void)
  26. {
  27.         /* LED 端口初始化 */
  28.         LED_GPIO_Config();                  
  29.         EXTI_Key_Config();
  30.         ILI9341_Init ();
  31.         SysTick_Init();
  32.         USART_Config();
  33.         BEEP_GPIO_Config();               
  34.         ILI9341_GramScan ( 6 );
  35.         LCD_SetColors(RED,BLACK);
  36.         ILI9341_DisplayStringEx(48,20,24,24,"籃球比賽計分",0);
  37.         LCD_SetColors(GREEN,BLACK);
  38.         ILI9341_DisplayStringEx(20,60,20,20,"比賽時間:",0);
  39.         time_runing_test();
  40.         LCD_SetColors(GREEN,BLACK);
  41.         ILI9341_DisplayStringEx(70,90,20,20,"紅藍(lán)隊比分",0);
  42.         ILI9341_DispString_EN_CH(20,120,"紅隊:");
  43.         ILI9341_DispString_EN_CH(120,120,"藍(lán)隊:");
  44.         fen_test();
  45.         while(1)                           
  46.         {                 
  47.                 if(start_stop)
  48.                 {
  49.                          time_runing();
  50.                          time_runing_test();
  51.                          if(s3==10)
  52.                          {
  53.                                  start_stop=0;
  54.                                  time_inti();
  55.                                  BEEP( ON_ );                           // 響
  56.                                  Delay_s(5);        
  57. //                                 BEEP( OFF_ );                  // 不響
  58. //                                 Delay_s(0x0FFFFF);
  59.                          }                 
  60.                 }
  61.                 fen_test();
  62.         }
  63. }
  64. /*紅藍(lán)隊得分顯示函數(shù)*/
  65. void fen_test(void)
  66. {
  67.         LCD_SetColors(BLUE,BLACK);
  68.         sprintf(t,"%d",red_team_fen);
  69.         if(red_team_fen<10)
  70.         {
  71.                 ILI9341_DispString_EN_CH(68,120,"0");
  72.                 ILI9341_DispString_EN_CH(76,120,t);
  73.         }
  74.         else
  75.                 ILI9341_DispString_EN_CH(68,120,t);
  76.         
  77.         sprintf(t,"%d",blue_team_fen);
  78.         if(blue_team_fen<10)
  79.         {
  80.                 ILI9341_DispString_EN_CH(168,120,"0");
  81.                 ILI9341_DispString_EN_CH(176,120,t);
  82.         }
  83.         else
  84.                 ILI9341_DispString_EN_CH(168,120,t);
  85.         //ILI9341_DispString_EN_CH(120,120,blue_team_fen);
  86. }

  87. /* 比賽時間初始化 */
  88. void time_inti(void)
  89. {
  90.         s2=0;s1=0;s3=0;s4=0;
  91. }

  92. /* 比賽時間顯示函數(shù) */
  93. void time_runing_test(void)
  94. {
  95.         LCD_SetColors(BLUE,BLACK);
  96.         sprintf(s,"%d",s3);
  97.         if(s3<10)
  98.         {
  99.                 ILI9341_DisplayStringEx(120,60,20,20,"0",0);
  100.                 ILI9341_DisplayStringEx(130,60,20,20,s,0);
  101.         }
  102.         else
  103.         {
  104.                 ILI9341_DisplayStringEx(120,60,20,20,s,0);
  105.         }   
  106.         ILI9341_DisplayStringEx(140,60,20,20,":",0);

  107.         
  108.         sprintf(s,"%d",s2);
  109.         if(s2<10)
  110.         {
  111.                 ILI9341_DisplayStringEx(150,60,20,20,"0",0);
  112.                 ILI9341_DisplayStringEx(160,60,20,20,s,0);
  113.         }
  114.         else
  115.         {
  116.                 ILI9341_DisplayStringEx(150,60,20,20,s,0);
  117.         }   
  118.         ILI9341_DisplayStringEx(170,60,20,20,":",0);
  119.         

  120.         sprintf(s,"%d",s1);
  121.         if(s1<10)
  122.         {
  123.                 ILI9341_DisplayStringEx(180,60,20,20,"0",0);
  124.                 ILI9341_DisplayStringEx(190,60,20,20,s,0);
  125.         }
  126.         else
  127.         {
  128.                 ILI9341_DisplayStringEx(180,60,20,20,s,0);
  129.         }           
  130. }

  131. /* 比賽時間計算函數(shù) */
  132. void time_runing(void)
  133. {

  134.         Delay_ms(1);
  135.         s1++;
  136.         if(s1==100)
  137.         {
  138.                 s2++;
  139.                 s1=0;        
  140.         }
  141.         if(s2==60)
  142.         {
  143.                 s3++;
  144.                 s2=0;
  145.         }
  146.         if(s3==60)
  147.         {
  148.                 s4++;
  149.                 s3=0;
  150.         }
  151. }
復(fù)制代碼

所有資料51hei提供下載:
基于STM32籃球比賽計分.7z (217.96 KB, 下載次數(shù): 120)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2019-5-18 19:27 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報

板凳
ID:475247 發(fā)表于 2019-5-18 19:43 | 只看該作者
最好用仿真畫好來看看
回復(fù)

使用道具 舉報

地板
ID:68875 發(fā)表于 2019-5-18 21:59 | 只看該作者
good job
回復(fù)

使用道具 舉報

5#
ID:566544 發(fā)表于 2019-6-20 16:29 | 只看該作者
請問您的代碼中的頭文件都是自己寫的嗎
回復(fù)

使用道具 舉報

6#
ID:573545 發(fā)表于 2019-6-28 17:21 | 只看該作者
求原理圖呀
回復(fù)

使用道具 舉報

7#
ID:779148 發(fā)表于 2020-6-14 17:29 | 只看該作者
這個畫圖用芯片stm32f103r6應(yīng)該就可以吧
回復(fù)

使用道具 舉報

8#
ID:781678 發(fā)表于 2020-6-17 10:12 | 只看該作者
我下載了這份代碼,但是在我這個正點原子STM32f407ZGT6探索者開發(fā)板上,用flymcu下載,LCD屏上沒有任何顯示,請問是什么問題呢,是我操作有誤嗎?謝謝
回復(fù)

使用道具 舉報

9#
ID:661659 發(fā)表于 2020-6-22 15:19 | 只看該作者
有沒有樓主會畫proteus圖
回復(fù)

使用道具 舉報

10#
ID:1029110 發(fā)表于 2022-5-23 22:05 | 只看該作者
樓主的p8有沒有
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表