久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7795|回復: 4
收起左側

STM32按鍵控制數碼管 計數 翻轉的程序源碼

[復制鏈接]
ID:412827 發表于 2018-11-7 17:39 | 顯示全部樓層 |閱讀模式
stm32單片機源程序如下:
  1. /*******************************************************************************
  2. --------------------------------------------------------------------------------
  3. * 實 驗 名                 : 使用庫函數點亮一個LED
  4. * 實驗說明       :
  5. * 連接方式       :
  6. * 注    意                 : LED驅動文件在led.c內
  7. *******************************************************************************/

  8. #include "stm32f10x.h"
  9. #include "led.h"

  10. /*******************************************************************************
  11. * 函 數 名         : main
  12. * 函數功能                   : 主函數
  13. * 輸    入         : 無
  14. * 輸    出         : 無
  15. *******************************************************************************/
  16. unsigned char shumaguan_Tab[] = {
  17.                                                                                                 0xc0, // 顯示 0
  18.                                                                                                 0xf9, // 顯示 1
  19.                                                                                                 0xa4, // 顯示 2
  20.                                                                                                 0xb0, // 顯示 3
  21.                                                                                                 0x99, // 顯示 4
  22.                                                                                                 0x92, // 顯示 5
  23.                                                                                                 0x82, // 顯示 6
  24.                                                                                                 0xf8, // 顯示 7
  25.                         0x80, // 顯示 8
  26.                                                                                                 0x98, // 顯示 9
  27.                                };                     //  數碼管顯示字符表
  28. //unsigned char shumaguan1_Tab[] = {
  29. //                                                                                                0x98, // 顯示 9
  30. //                                                                                                0x80, // 顯示 8
  31. //                                                                                                0xf8, // 顯示 7
  32. //                                                                                                0x82, // 顯示 6
  33. //                                                                                                0x92, // 顯示 5
  34. //                                                                                                0x99, // 顯示 4
  35. //                                                                                                0xb0, // 顯示 3
  36. //                                                                                                0xa4, // 顯示 2
  37. //                        0xf9, // 顯示 1
  38. //                                                                                                0xc0, // 顯示 0
  39. //                               };      

  40.        
  41. void delay(unsigned int xms)  //    延時xms
  42. {
  43.     unsigned int x,y;
  44.     for(x=xms;x>0;x--)
  45.         for(y=110;y>0;y--);
  46. }


  47.                                                                                                                          
  48. int main()
  49. {
  50. int i1=0,i2=0,a ,cnt=0,i3=0,i4=0,cnt1,b,c=1,d=0,i5=0,i6=0,i7=0,kcnt=0;

  51. // Init               
  52.                 key_Init();    //按鍵初始化
  53.                  BUZ_Init();           //蜂鳴器初始化
  54.                 LED_Init();            //LED初始化

  55.   while(1)
  56.         {
  57.                 {//
  58.     delay(1);
  59.           i1++;
  60.     i2++;
  61.           i3++;
  62.     i4++;
  63.                 i5++;
  64.                 i6++;
  65.                 i7++;
  66.           //TimerBase_TaskA++;
  67.                 }

  68. // Tasks

  69. // Task  每次按下按鍵次數
  70.                 if(i5>20&& KEY1_DOWN==0 )
  71.                 { i5=0;       
  72.                         // beep = ~beep;
  73.                         delay(5);
  74.                         if(         KEY1_DOWN==0)
  75.                 {       
  76.                        
  77.                        
  78.                         kcnt=kcnt+1;

  79.                 }
  80.        
  81.        
  82.   // Task 判斷按鍵按下的奇偶
  83.                 if( kcnt%2==0 )       
  84.         {i6=0;
  85.                
  86.                 a=1;    //傳遞給數碼管  使之反向計數
  87.                 b=1;     //  傳遞給蜂鳴器   使蜂鳴器發出聲音
  88.                 c=1;     //   將數碼管正向計數程序 鎖死
  89.                 cnt1 = cnt ;    //讀取cnt的值   
  90.                 cnt=0;        //清除正向計數的值
  91.         }
  92.            else
  93.                 { i6=0;
  94.                        
  95.                         a=0;   // 將數碼管反向計數程序   鎖死
  96.                         b=0;   //傳遞給蜂鳴器   使蜂鳴器沒有聲音
  97.                          c=0;   //傳遞給數碼管  使之正向計數
  98.                         cnt=0;     
  99.                         cnt1=0;    //清除反向計數的值
  100.                 }
  101.                 while(KEY1_DOWN==0);
  102.         }
  103.                
  104.                
  105.                
  106.     // Task 數碼管正向計數                
  107.                 if((i1 > 50000) && (c==0))               
  108.                 {
  109.                         i1=0;
  110.       
  111.                         if(cnt > 9)        // 產生從cnt 0~9循環
  112.                         {         
  113.                                 cnt =0;
  114.                
  115. //                        a=0;   // 將數碼管反向計數程序   鎖死
  116. //                        b=1;   //傳遞給蜂鳴器   使蜂鳴器有聲音
  117.                         }
  118.                                
  119.                         GPIO_Write(GPIOC, shumaguan_Tab[cnt]);
  120.                        
  121.                         cnt++;
  122.                
  123.                 }
  124.                
  125.                

  126. // Task 數碼管反向計數       
  127.                 if(i3 > 50000&&a==1)
  128.                 {
  129.                         i3=0;
  130.                                
  131.                 if(cnt1 <0)        // 產生從cnt1 0~9循環
  132.                         {         
  133. //                       
  134. //                      b=1;     //  傳遞給蜂鳴器   發出聲音
  135. //                      c=0;     // 開始正向計數
  136.                                 cnt1=0;
  137.                         }
  138.                                                   
  139.                         GPIO_Write(GPIOC, shumaguan_Tab[cnt1]);

  140.                         cnt1--;         
  141.                         //b=0;
  142.        }
  143.                
  144.      

  145.                          // Task 翻轉時蜂鳴器發出聲音
  146.                 if(i2 > 10 )
  147.                 {i2=0;       
  148.        if(  b==1)
  149.                          {
  150.                                 c=1;
  151.                           a=1;        //反向計數
  152.                                  d=1;
  153.                         beep = ~beep;// 產生固定頻率
  154.                    }
  155.          
  156.           }
  157.                
  158.                 //清零蜂鳴器
  159.                         if(i7 > 50000&& d==1 )   
  160.                 {       
  161.        i7=0;
  162.                                 b=0;
  163.           }
  164.                
  165.                
  166.                                                                            
  167.                

  168.             
  169.          

  170.     // Task D       
  171.         /*        if(i4 > 10)
  172.                 {i4=0;
  173.                
  174.                        
  175.                                 if(d==1)
  176.                         {
  177.                                 a=0;
  178.                           c=0;
  179.                                   beep = ~beep; // 產生固定頻率
  180.         cnt =0;
  181.                                 d=0;
  182.                   }
  183.                                                 
  184.           }*/
  185. }
  186.        
  187. }
  188.        
  189.        
復制代碼

所有資料51hei提供下載:
第三次數碼管 立即反轉.rar (264.71 KB, 下載次數: 57)


回復

使用道具 舉報

ID:1 發表于 2018-11-7 17:42 | 顯示全部樓層
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

ID:412827 發表于 2018-11-7 17:47 | 顯示全部樓層
admin 發表于 2018-11-7 17:42
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣

在哪補全..
回復

使用道具 舉報

ID:1 發表于 2018-11-7 17:57 | 顯示全部樓層
回帖框右側的高級模式可以上圖
回復

使用道具 舉報

ID:412827 發表于 2018-11-13 23:06 | 顯示全部樓層
原理圖.doc (335.5 KB, 下載次數: 23) 原理圖.doc (335.5 KB, 下載次數: 9)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费成人高清在线视频 | 久久伊人亚洲 | 农村真人裸体丰满少妇毛片 | 亚洲国产一区在线 | 日韩成人av在线 | 自拍 亚洲 欧美 老师 丝袜 | 国产精品自拍啪啪 | 国产精品亚洲成在人线 | 国产成人在线免费 | 天堂网中文 | 亚洲精品视频免费观看 | 欧美色综合一区二区三区 | 免费性视频 | 久久久久久久久久久久亚洲 | 精品在线一区 | 中文字幕在线观看第一页 | 欧产日产国产精品视频 | 国产国产精品久久久久 | 国产精品久久国产精品 | 国产亚洲欧美另类一区二区三区 | 日本午夜免费福利视频 | 日韩视频一区在线观看 | 全免费a级毛片免费看视频免 | 成人精品福利 | 午夜一级黄色片 | 先锋资源网 | 99精品欧美一区二区蜜桃免费 | 69热视频在线观看 | 国产精品免费一区二区三区四区 | 91在线看网站 | 亭亭五月激情 | 久久成人激情 | 青青草国产在线观看 | 亚洲 欧美 另类 综合 偷拍 | 丁香五月网久久综合 | 国产成人精品久久二区二区91 | 欧美一级淫片免费视频黄 | 看a网站 | 啪啪免费网站 | 国产精品永久久久久 | 亚洲欧美一区二区在线观看 |