ADC信息采集

前言

前面介绍了ADC,今天通过实例来讲解ADC的使用


ADC的初始化

通过代码讲解

void ADCinit()
{
/*清除ADC数据寄存器*/
    ADCH&=0x00;
    ADCL&=0x00;
/*P0_7端口模拟 IO使能*/
    APCCFG|=0x80;
/*单次转换,参考电压为电源电压,对P0_7进行采样 抽取率为512*/
    ADCCON3=0xb7;
/*停止AD*/
    ADCCON1=0x30;
/*启动AD*/    
    ADCCON1|=0x40;
}

主函数

void main()
{
    LEDinit();//LED的初始化
    UARTinit();//串口的初始化
    ADCinit();//ADC的初始化
    char temp[2];
    char abcData[5];
    int abc;
    float num;
    while(1)
    {
        if(ADCCON1&0x80)//等待ADC转换完成
        {
        /*转换完成指示*/
            temp[1]=ADCL;
            temp[0]=ADCH;
            /*初始化ADC*/ 
            ADCinit();
            /)开启下一轮转换*/
            ADCCON1|=0x40;
            /*abc赋值*/
            abc|=(int *)temp[1];
            abc|=(int *)temp[0]<<8;
            if(abc&0x8000)
            {
                abc=0;            
            }
            else
            {
            /*定义参考电压为3.3v,14位分辨率*/
                num=abc*3.3/8192;
                abcData[1]=(char *)(num)%10+48;
                adcData[3]=(char *)(num*10)%10+48;
                UartSend_String(adcData);//发送ADC数据到PC机上            
            }
            LED1=!LED1; 
            Delay(3000);    
        }
    }
}

本次实验实现了当ADC转换时,把转换的数据通过串口发送到PC机上。当转换结束后让LED1闪烁。


下期我们开始讲无线射频技术。谢谢大家,下期见!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值