找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6524|回復(fù): 5
收起左側(cè)

stm32f103r6源程序+Proteus仿真

  [復(fù)制鏈接]
ID:329190 發(fā)表于 2020-5-26 08:40 | 顯示全部樓層 |閱讀模式
stm32f103r6的程序帶仿真 有4個模塊的
51hei.png

單片機源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "sys.h"
  4. #include "usart.h"
  5. #include "adc.h"
  6. #include "smg.h"
  7. #include "timer.h"

  8. //0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F, .,全滅
  9. u8 smg_num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80,0x00};
  10. u8 smg_wei=0;//數(shù)碼管位選

  11. //ADC變量
  12. static u16 adcx=0;
  13. static u16 adcx1=0;
  14. static float temp=0;

  15. u8 num=0;//數(shù)碼管值
  16. u8 adc_t=0;//adc采樣時間值

  17. int main(void)
  18. {                                 

  19.         LED_Init();
  20.         Adc_Init();       
  21.         while(1) {
  22.        
  23.          adc_t++;
  24.                  if(adc_t==10)//ADC 采樣
  25.                  {
  26.                          adc_t=0;
  27.                          adcx=Get_Adc_Average(ADC_CH9,3);//ADC原始值
  28.                          temp=(float)adcx*(3.3/4096);//ADC電壓值
  29.                          adcx1=temp;
  30.                          temp-=adcx1;
  31.                          temp*=1000;
  32.                  }
  33.                  Delay(30);
  34.                  if(adcx>0){
  35.                  switch(smg_wei)
  36.                  {
  37.                            //ADC采樣原始值
  38.                            case 0:  if(adcx>1000)num = smg_num[adcx/1000];
  39.                                                 else         num = 0x00;                                 
  40.                                             break;
  41.                            case 1:         if(adcx>100) num = smg_num[adcx%1000/100];
  42.                                                 else         num = 0x00;
  43.                                                 break;
  44.                            case 2:  if(adcx>10)  num = smg_num[adcx%100/10];
  45.                                                 else         num = 0x00;                                       
  46.                                         break;
  47.                            case 3:  num = smg_num[adcx%10]; break;
  48.                            case 4:  num = 0x00; break;
  49.                            //ADC換算后的電壓值
  50.                            case 5: // num = smg_num[adcx1]|0x01;break;
  51.                                 num = smg_num[adcx1]|0x80;break;
  52.                            case 6:  num = smg_num[(u16)temp/100]; break;
  53.                            case 7:  num = smg_num[(u16)temp%100/10];break;   
  54.                  }
  55.                  GPIOC->ODR=num;
  56.                  LED_Wei(smg_wei);
  57.                  smg_wei++;
  58.                  if(smg_wei==8)
  59.                    smg_wei=0;

  60.             }
  61.                  
  62.         }

  63. }
復(fù)制代碼

所有資料51hei提供下載:

中斷方式實現(xiàn)按鍵控制.rar

807.29 KB, 下載次數(shù): 85, 下載積分: 黑幣 -5

ADC.7z

128.69 KB, 下載次數(shù): 87, 下載積分: 黑幣 -5

串口通信實驗.rar

809.69 KB, 下載次數(shù): 77, 下載積分: 黑幣 -5

pwm.rar

648.88 KB, 下載次數(shù): 63, 下載積分: 黑幣 -5

評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:797599 發(fā)表于 2021-5-10 23:43 | 顯示全部樓層
四個安裝包下載哪一個?
回復(fù)

使用道具 舉報

ID:797599 發(fā)表于 2021-5-10 23:51 | 顯示全部樓層
親,stm32f103r6源程序+Proteus仿真中有四個安裝包,卑微的我該下載哪一個呢?
回復(fù)

使用道具 舉報

ID:658039 發(fā)表于 2021-5-11 09:36 | 顯示全部樓層
請問Proteus用什么版本?
回復(fù)

使用道具 舉報

ID:106610 發(fā)表于 2021-8-2 09:29 | 顯示全部樓層
有參考價值,謝謝作者
回復(fù)

使用道具 舉報

ID:387687 發(fā)表于 2021-11-20 21:21 | 顯示全部樓層

有參考價值,謝謝作者
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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