STC12C5A60S2读取ADC的值串口发送

发布者:艺泉阁最新更新时间:2022-07-04 来源: csdn关键字:STC12C5A60S2  读取ADC  串口发送 手机看文章 扫描二维码
随时随地手机看文章

#include <STC12C5A60S2.H>

#include "intrins.h"


//ADC_CONTR bit:

#define ADC_POWER 0x80 //adc 启动

#define ADC_FLAG 0x10 //adc转换完成标志

#define ADC_START 0x08 //adc开始标志

#define ADC_SPEEDLL 0x00 //540 clocks

#define ADC_SPEEDL 0x20   //360 clocks

#define ADC_SPEEDH 0x40   //180 clocks

#define ADC_SPEEDHH 0x60   //90 clocks



#define FOSC 11059200L

#define BAUD 9600


void Delay10us() //@11.0592MHz

{

    unsigned char i;


    _nop_();

    _nop_();

    _nop_();

    i = 24;

    while (--i);

}



void Delay500ms() //@11.0592MHz

{

    unsigned char i, j, k;


    i = 22;

    j = 3;

    k = 227;

    do

    {

        do

        {

            while (--k);

        } while (--j);

    } while (--i);

}




void InitUart()

{

    SCON=0x50;

    TMOD=0x20;

    TH1=TL1=-(FOSC/12/32/BAUD);

    TR1=1;

    TI=1;

}


void SendData(unsigned char dat)

{

    while(!TI);

    TI=0;

    SBUF=dat;

}


void InitADC()

{

    P1ASF = 0xFF;

    AUXR1 |= 1<<2; //1:ADC_RES<<8+ADC_RESL

    ADC_RES=0;

    ADC_RESL=0;

    ADC_CONTR=ADC_POWER|ADC_SPEEDLL;

    Delay10us();

}


unsigned char GetADCResult(unsigned char ch)

{

    ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|ADC_START;

    _nop_();

    _nop_();

    _nop_();

    _nop_();

    while(!(ADC_CONTR&ADC_FLAG));

    ADC_CONTR&=~ADC_FLAG;

    return ADC_RES;

}



void main()

{

    unsigned char ch = 0;

    InitUart();

    InitADC();

    while(1)

    {

        //SendData(ch);

        SendData(GetADCResult(ch));

        SendData(ADC_RESL);

        //ch++;

        if(ch==8) ch=0;

        Delay500ms();

        Delay500ms();

        Delay500ms();

        Delay500ms();

    }

}


万用表测得VCC电压为4.59V,把P1.0和3V3短接,上位机收到数据位0x02DD,即733。

根据公式733*4590/1024=3285mV,测试正常。

关键字:STC12C5A60S2  读取ADC  串口发送 引用地址:STC12C5A60S2读取ADC的值串口发送

上一篇:51单片机按键控制LED亮灭\单个IO翻转
下一篇:STC12C5A60S2双串口发送

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved