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

標(biāo)題: STM32驅(qū)動(dòng)數(shù)碼管顯示的幾種方法 [打印本頁]

作者: 樂觀的知覺    時(shí)間: 2019-3-5 10:34
標(biāo)題: STM32驅(qū)動(dòng)數(shù)碼管顯示的幾種方法
數(shù)碼管 顯示的幾種方法

單片機(jī)源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "usart.h"
  4. #include "smg.h"
  5. #include <stdlib.h>

  6. u8 ge=0,shi=0,bai=0;
  7. u8 rlen1=0;
  8. int i=0,j=0,Num=0;
  9. float        num=0;
  10. char S[100]={0};

  11. u8 smg[16]={        0xC0, 0xF9, 0xA4, 0xB0,
  12.                                                         0x99, 0x92, 0x82, 0xF8,
  13.                                                         0x80, 0x90, 0x88, 0x83,
  14.                                                         0xC6, 0xA1, 0x86, 0x8E};                                               
  15.                                                        
  16. int main(void)
  17. {               
  18. delay_init();         
  19. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  20. uart_init(115200);
  21. SMG_Init();
  22.         printf("SMG test!\r\n");
  23. while(1)  //USART1接收到[0,100)之間的數(shù)據(jù)通過數(shù)碼管顯示出來
  24. {
  25.          if(USART_RX_STA&0x8000)//接收未完成
  26.          {
  27.                  j=0;
  28.                  rlen1=USART_RX_STA&0X3FFF;        //得到本次接收到的數(shù)據(jù)長(zhǎng)度
  29.                  USART_RX_BUF[rlen1]=0;
  30.                  USART_RX_STA=0;
  31.                  printf("rlen1=%d\r\n",rlen1);
  32.                  printf("%s\r\n",USART_RX_BUF);
  33.                  sprintf(S,"%s",USART_RX_BUF);//接收到的字節(jié)數(shù)
  34.                  num=atof(S);
  35.                  printf("num=%f\r\n",num);
  36.                  if(0<=num&&num<10) //0~10
  37.                  {
  38.                          printf("數(shù)值在[0,10)區(qū)間\r\n");
  39.                          Num=num*100;
  40.                    bai=Num/100;
  41.                          shi=Num%100/10;
  42.                          ge=Num%10;
  43.                          GPIO_Write(GPIOC, (u16)smg[bai]-0x80 );
  44.                          delay_ms(1000);
  45.                          GPIO_Write(GPIOC, (u16)smg[shi] );
  46.                          delay_ms(1000);
  47.                          GPIO_Write(GPIOC, (u16)smg[ge] );
  48.                          delay_ms(1000);                         
  49.                  }
  50.                  else if(10<=num&&num<100) //10~100
  51.                  {
  52.                          printf("數(shù)值在[10,100)區(qū)間\r\n");
  53.                          Num=num*10;
  54.                          bai=Num/100;
  55.                          shi=Num%100/10;
  56.                          ge=Num%10;
  57.                          GPIO_Write(GPIOC, (u16)smg[bai] );
  58.                          delay_ms(1000);
  59.                          GPIO_Write(GPIOC, (u16)smg[shi]-0x80 );
  60.                          delay_ms(1000);
  61.                          GPIO_Write(GPIOC, (u16)smg[ge] );
  62.                          delay_ms(1000);                         
  63.                  }
  64.                  else//超出范圍
  65.                 {
  66.                         printf("數(shù)值超出[0,100)區(qū)間\r\n");
  67.                         for(i=0;i<3;i++)
  68.                         {
  69.                                 GPIO_Write(GPIOC, (u16)0x00 );
  70.                                 delay_ms(500);
  71.                                 GPIO_Write(GPIOC, (u16)0xff );
  72.                                 delay_ms(500);       
  73.                         }                               
  74.                 }
  75.          }
  76.          j++;delay_ms (10);
  77.          if(j>=300)//3秒沒數(shù)據(jù)
  78.          {
  79.                  GPIO_Write(GPIOC,~(u16)0x01);
  80.                  delay_ms(300);
  81.                  GPIO_Write(GPIOC,~(u16)0x40);
  82.                  delay_ms(300);
  83.                  GPIO_Write(GPIOC,~(u16)0x08);
  84.                  delay_ms(300);
  85.          }
  86. }
  87. }
復(fù)制代碼

所有資料51hei提供下載:
數(shù)碼管.7z (212.25 KB, 下載次數(shù): 68)



作者: admin    時(shí)間: 2019-3-6 02:18
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品一区久久久 | 欧美在线综合 | 日韩欧美一区二区三区免费观看 | 久久久精品国产 | 亚洲韩国精品 | 99精品久久| 日韩三级一区 | 浮生影院免费观看中文版 | 亚洲一区二区三区四区av | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 午夜免费看 | 天天干天天爱天天 | 国产伦精品一区二区三区在线 | 日韩中文在线视频 | 国产亚洲成av人片在线观看桃 | 国产精品久久久久久婷婷天堂 | 国产成人精品一区二区三区网站观看 | 日日摸日日添日日躁av | 中文字幕爱爱视频 | 欧美日韩国产精品一区 | 亚洲国产精品自拍 | www.毛片| 亚洲成人在线视频播放 | 91在线电影 | 狠狠色综合久久婷婷 | 五月婷婷亚洲 | 我爱操 | 老头搡老女人毛片视频在线看 | 欧美一级做性受免费大片免费 | 伊人二区| 一级看片免费视频 | 精品视频一区二区三区在线观看 | 爱爱免费视频 | 夜夜夜夜夜夜曰天天天 | 颜色网站在线观看 | 成人欧美一区二区三区在线播放 | 亚洲精品成人网 | 亚洲精品乱码久久久久久黑人 | 激情久久av一区av二区av三区 | 久久精品久久久 | 久久国产欧美日韩精品 |