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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3377|回復: 1
收起左側

基于stm32的開關控制led和數碼管的顯示和proteus仿真

[復制鏈接]
ID:379457 發表于 2021-4-30 03:05 | 顯示全部樓層 |閱讀模式
KEIL5做的,當數碼管數值高于1時,led燈會亮,回到0時燈滅。proteus仿真。
51hei.png 51hei.png P_{4EHWI~MU(37HUAQL2ZBG.png @8LDGG(R_}DQ2E0YXYEU$CQ.png

單片機源程序如下:
  1. #include "main.h"

  2. uint16_t table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

  3. void key_init()
  4. {
  5.         GPIO_InitTypeDef gpio_init;
  6.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
  7.         //將PA設置為推挽輸出
  8.         gpio_init.GPIO_Mode=GPIO_Mode_IPU;
  9.         gpio_init.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
  10.         GPIO_Init(GPIOB,&gpio_init);
  11. }

  12. void seg7_init()
  13. {
  14.         GPIO_InitTypeDef gpio_init;
  15.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
  16.         //將PA設置為推挽輸出
  17.         gpio_init.GPIO_Mode=GPIO_Mode_Out_PP;
  18.         gpio_init.GPIO_Pin=GPIO_Pin_All;
  19.         gpio_init.GPIO_Speed=GPIO_Speed_50MHz;
  20.         GPIO_Init(GPIOA,&gpio_init);
  21. }

  22. void LED_Init()
  23. {
  24.         GPIO_InitTypeDef gpio_init;//定義一個變量
  25.        
  26.         //第一步: 使能LED端口-GPIOA時鐘
  27.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
  28.        
  29.         //第二步:配置端口的工作模式并初始化
  30.                 gpio_init.GPIO_Mode=GPIO_Mode_Out_PP;
  31.         gpio_init.GPIO_Pin=GPIO_Pin_All;
  32.         gpio_init.GPIO_Speed=GPIO_Speed_50MHz;     //速度:50M
  33.         GPIO_Init(GPIOC,&gpio_init);               //初始化GPIO
  34.         //第三步:配置端口默認電平
  35. }

  36. uint8_t  button0()
  37. {
  38.         return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0));
  39. }
  40. uint8_t  button1()
  41. {
  42.         return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1));
  43. }
  44. //uint8_t  button3()
  45. //{
  46. //        return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3));
  47. //}
  48. //uint8_t  button5()
  49. //{
  50. //        return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5));
  51. //}

  52. /*****************************************
  53.         main函數

  54. *****************************************/
  55. int main(void){
  56.         uint8_t i,j,k=1;
  57.         uint16_t temp;
  58.         LED_Init();
  59.         key_init();
  60.         seg7_init();
  61.         GPIO_Write(GPIOA,table[j-1]);
  62.         while(1){
  63.                
  64.                 if(button0())
  65.                 {
  66.                         delay_ms(10);
  67.                         if(button0())
  68.                         {
  69.                                 while(button0());
  70.                                  j++;
  71.                                 if(j>16)
  72.                                         j=1;
  73.                                 GPIO_Write(GPIOA,table[j-1]);
  74.                         }                       
  75.                 }
  76.                                 if(j>1&k==0)
  77.                         {
  78.                                 delay_ms(10);
  79.                                                                 delay_ms(10);
  80.                                         GPIO_ResetBits(GPIOC,GPIO_Pin_6);
  81.                                                 delay_ms(10);
  82.                                                                         GPIO_ResetBits(GPIOC,GPIO_Pin_7);
  83.                                 delay_ms(10);
  84.                                 k++;
  85.                         }
  86.                         if(j==1&k==1)
  87.                         {
  88.                                 delay_ms(10);
  89.                                 GPIO_SetBits(GPIOC,GPIO_Pin_6);
  90.                                                                 delay_ms(10);
  91.                                                                         GPIO_SetBits(GPIOC,GPIO_Pin_7);
  92.                                 k=0;
  93.                                
  94.                         }
  95.                        
  96.                 if(button1())
  97.                 {
  98.                         delay_ms(10);
  99.                         if(button1())
  100.                         {
  101.                                 while(button1());
  102.                                  j--;
  103.                                 if(j==0)
  104.                                         j=16;
  105.                                 GPIO_Write(GPIOA,table[j-1]);
  106.                         }
  107.                 }
  108.                
  109.         }
  110.         //return 0;
  111. }
復制代碼

所有資料51hei提供下載:
新建文件夾 (5).7z (1.01 MB, 下載次數: 49)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:915610 發表于 2021-5-12 19:06 | 顯示全部樓層
為什么proteus仿真只能第一個數碼管可以棟呀
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久免费精彩视频 | 久久高潮 | 成人亚洲精品 | 欧美久久电影 | 蜜桃视频一区二区三区 | 久久99成人 | 日韩精品在线一区 | 久久久久国产精品一区二区 | 成人免费视频观看视频 | 欧美区在线观看 | 欲色av| 97成人免费| 久久久久亚洲视频 | 日韩一级一区 | 九热在线 | 在线国产视频观看 | 国产精品毛片一区二区在线看 | 免费观看一级毛片视频 | 精品视频一区二区在线观看 | 一级片av | 国产精品久久国产精品 | 成人在线免费 | 99精品视频一区二区三区 | 国产午夜精品一区二区三区四区 | 久久国产欧美日韩精品 | 亚洲国产网址 | 精品国产一区久久 | 99精品福利视频 | 成年免费大片黄在线观看一级 | 成人在线小视频 | 久久久久国产精品一区 | 激情的网站| 久夜精品 | 久久久久久久久久久久一区二区 | 国产一区二区三区 | 久草热视频 | 91精品久久| 91欧美| 国产精品一区二区三区在线播放 | 九九av | 欧美精品一区二区三区四区五区 |