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

標題: 輸入模擬電壓,四位數碼管掃描顯示 [打印本頁]

作者: 123ahhh    時間: 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);
        }
       
       
       
       
}






作者: 明白    時間: 2018-1-7 23:37
怎么送數碼管段碼都是用獨位獨位發送,可以用寄存器操作,一次性8位發送就完事,簡單快捷啊
作者: txywqp2018    時間: 2018-1-8 09:51
學習了
作者: lewangle    時間: 2018-1-8 10:57
學習中
作者: 12345shiwo    時間: 2018-10-31 22:40
感謝樓主救我狗命




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 美日韩一区 | 成人毛片在线观看 | 久久久久综合 | 天天干夜夜欢 | 91午夜理伦私人影院 | av一区二区在线观看 | yy6080午夜 | 国产免费小视频 | 操小妹影院 | 一极黄色片 | 国产精品xxx在线观看 | 中文字幕有码在线 | 夜夜爽天天爽 | 精品欧美一区二区精品久久 | 在线综合网 | 日本中文字幕在线观看 | 亚洲国产福利 | 国产黄色一区 | 精品福利在线 | 国产在线成人 | 日韩在线视频免费观看 | 久久福利影院 | 久久精品欧美一区二区三区不卡 | 在线a| 久久国产精品一区二区 | 91片黄在线观看 | 欧美日韩黄色片 | 日韩中文字幕精品 | 午夜爽爽影院 | 色婷av| 免费在线观看黄 | 国产美女视频 | 国产精品久久久久久久久久久久久 | 久久艹精品 | 日韩在线中文 | 三级视频在线 | 欧美日韩精品一区二区 | 精品一区av | 国产一级特黄aaa大片 | 国产视频一区二 | 亚洲黄色免费 |