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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

輸入模擬電壓,四位數碼管掃描顯示

[復制鏈接]
ID:225441 發表于 2017-8-7 13:27 | 顯示全部樓層 |閱讀模式
輸入模擬電壓,四位數碼管掃描顯示
#include "stm32f10x.h"

#include "adc.h"
#include "dac.h"

u16 ADC_ConvertedValue;
float ADC_ConvertedValueLocal;
u16 dacoutlow;
u16 dacouthigh;

unsigned int a , b ,c ,d;

void LED_GPIO_Config(void)
        {  
                /*定義一個GPIO_InitTypeDef類型的結構體*/
                GPIO_InitTypeDef GPIO_InitStructure;
                /*開啟LED相關的GPIO外設時鐘*/
                RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
                /*選擇要控制的GPIO引腳*/
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;               
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

               
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);

        }
void  Dig_Disp(int i)
{
        switch(i)                       
             {            
                case 0:      
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);
                                                               
                                                                break;           
                case 1:
                                                                            GPIO_SetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);

                break;               
                case 2:
                      GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);
                break;   
                case 3:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);                                                                       
                                                                       
                break;
                case 4:  
                                                                            GPIO_SetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);
                break;   
                case 5:  
                      GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);
                break;   
                case 6:                     
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);
                break;  
                case 7:
                      GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);                                                               
                                                                       
                break;
                case 8:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);
                break;
                                                                 case 9:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_14);
                break;                                                                        
             }  

}
void  Dig_DispNP(int i)
{

        switch(i)                       
        {            case 0:      
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);
                                                               
                                                                break;           
                case 1:
                                                                            GPIO_SetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);

                break;               
                case 2:
                      GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);
                break;   
                case 3:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);                                                                       
                                                                       
                break;
                case 4:  
                                                                            GPIO_SetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);
                break;   
                case 5:  
                      GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);
                break;   
                case 6:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);
                break;  
                case 7:
                      GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);                                                               
                                                                       
                break;
                case 8:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);
                break;
                                                                 case 9:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_7);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_8);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_9);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_10);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_11);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_12);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_13);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_14);
                break;                                                                        
             }

  }
void choose(int m)
{
        switch(m){                     case 0:      
                             GPIO_SetBits(GPIOB, GPIO_Pin_0);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_1);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_5);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_6);
                                                                Dig_DispNP(d);               
                                                                
                                                                                                                             
                                                                break;           
                                                         case 1:
                      GPIO_ResetBits(GPIOB, GPIO_Pin_0);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_1);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_5);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_6);       
                                                                Dig_DispNP(c);       

                break;               
                case 2:
                      GPIO_ResetBits(GPIOB, GPIO_Pin_0);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_1);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_5);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_6);       
                                                                      Dig_Disp(b);               
                break;   
                case 3:   
                             GPIO_ResetBits(GPIOB, GPIO_Pin_0);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_1);
                                                                      GPIO_ResetBits(GPIOB, GPIO_Pin_5);
                                                                      GPIO_SetBits(GPIOB, GPIO_Pin_6);
                      Dig_DispNP(a);
       
}

}
void  Dig_OutPut(float f)
{

a = (int)(f*10)%10;                       //提取小數位
b =(int) (f)%10;                         //提取個位
c = (int)(f/10)%10;                     //提取十位
d = 0;        //提取千位
LED_GPIO_Config();       
       
}


       

void delay(unsigned int i)
{
while(i--);
}

int main(void)
{
        int x=0;
        int ct=0;
        LED_GPIO_Config();
         
  ADC1_GPIO_Config();
        ADC1_Mode_Config();
        dac_Init();
        while(1)
        {
                x++;
                ADC_SoftwareStartConvCmd(ADC1, ENABLE);
                while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
                ADC_ConvertedValue=ADC_GetConversionValue(ADC1);
               
                dacoutlow=ADC_ConvertedValue/10;
                dacouthigh=dacoutlow*9;
                DAC_SetChannel1Data(DAC_Align_12b_R,dacoutlow);
                DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);
                DAC_SetChannel2Data(DAC_Align_12b_R,dacouthigh);
                DAC_SoftwareTriggerCmd(DAC_Channel_2,ENABLE);
               
          ADC_ConvertedValueLocal =(float) ADC_ConvertedValue*(float)10/4095;
                Dig_OutPut(ADC_ConvertedValueLocal);
                delay(1000);
                if(x==30)
                        {
                                ct++;
        x=0;
                        }
                if(ct==4)
                {
                        ct=0;
                }
                choose(ct);
        }
       
       
       
       
}





回復

使用道具 舉報

ID:19715 發表于 2018-1-7 23:37 | 顯示全部樓層
怎么送數碼管段碼都是用獨位獨位發送,可以用寄存器操作,一次性8位發送就完事,簡單快捷啊
回復

使用道具 舉報

ID:273047 發表于 2018-1-8 09:51 | 顯示全部樓層
學習了
回復

使用道具 舉報

ID:271363 發表于 2018-1-8 10:57 | 顯示全部樓層
學習中
回復

使用道具 舉報

ID:418829 發表于 2018-10-31 22:40 | 顯示全部樓層
感謝樓主救我狗命
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区| 中文字幕人成乱码在线观看 | 成人在线观看免费视频 | 九色av| 韩日精品一区 | 欧美中文字幕一区 | 欧美一级欧美三级在线观看 | 欧美日韩a | 欧洲视频一区二区 | 黑人巨大精品欧美一区二区免费 | 人成在线 | 午夜精品久久 | 久久婷婷国产香蕉 | 欧美小视频在线观看 | 91青娱乐在线 | 国产精品色婷婷久久58 | 欧美aⅴ片 | 99久久99| 成人不卡视频 | 亚洲区一区二 | 亚洲欧美在线观看 | 日韩在线视频免费观看 | 999久久久精品 | 国产福利91精品一区二区三区 | 欧美黄色片 | 九色在线视频 | 午夜影院在线观看视频 | 欧美乱淫视频 | 成人三级av | 精品国产一区二区三区久久久蜜月 | 99久久精品免费看国产免费软件 | 国产精品久久久亚洲 | 天堂一区二区三区 | 久久伊人亚洲 | 亚洲一区二区三区免费观看 | 亚洲精品在线观 | 欧洲一区二区视频 | 日韩看片 | 欧美国产精品一区二区三区 | 午夜免费网 | 嫩草最新网址 |