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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

STM32驅(qū)動(dòng)數(shù)碼管顯示的幾種方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:391361 發(fā)表于 2019-3-5 10:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
數(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)


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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久久精品影院 | 先锋资源在线 | 精品亚洲一区二区三区 | 在线观看av网站永久 | 午夜影院在线观看 | 欧美一级黄色片在线观看 | 国产一二区视频 | 亚洲综合99 | 伊人成人免费视频 | 亚洲精品一区二区三区在线观看 | 日韩av免费在线观看 | 狠狠爱免费视频 | 成人免费淫片aa视频免费 | 激情五月激情综合网 | 欧美成年黄网站色视频 | 俺去俺来也www色官网cms | 日本综合在线观看 | 欧美黄色片 | 日韩欧美在线观看 | 亚洲风情在线观看 | 精品伊人久久 | 欧美视频在线播放 | www网站在线观看 | 亚洲一二三区在线观看 | 色综合视频 | 99精品久久| 中文字幕在线看 | 一级视频黄色 | 欧美日日 | 精品福利一区二区三区 | 国产精品久久久久久网站 | 99久久电影| 成人影院网站ww555久久精品 | 亚洲情侣视频 | 久久国产传媒 | 97精品超碰一区二区三区 | 九九导航 | 天天综合网91 | 狠狠骚| 一级全黄少妇性色生活免费看 | 亚洲国产成人久久久 |