历史上的今天
返回首页

历史上的今天

今天是:2024年09月02日(星期一)

正在发生

2021年09月02日 | STM8S103 ADC初始化设置

2021-09-02 来源:eefocus

adc.h


#ifndef __ADC_H_

#define __ADC_H_

#include “define.h”

//ADC通道号定义

#define ADC_Channel0 (unsigned char)0x00

#define ADC_Channel1 (unsigned char)0x01

#define ADC_Channel2 (unsigned char)0x02

#define ADC_Channel3 (unsigned char)0x03

#define ADC_Channel4 (unsigned char)0x04

#define ADC_Channel5 (unsigned char)0x05

#define ADC_Channel6 (unsigned char)0x06

#define ADC_Channel7 (unsigned char)0x07

#define ENB 1

extern void adc_init(uint8 mode);

extern void adc_switch(uint8 channel);

extern void adc_mode_scan(uint8 value);

extern void read_adc(uint8 channel);

#endif


adc.c


#include “adc.h”

#include “uart.h”

//*****************************

//函数名称:adc_init

//函数功能:对ADC初始化,开启或关闭ADC电路

//入口参数:ADC电路使能参数

//出口参数:无

//*****************************

void adc_init(uint8 mode)

{

    uint16 i;

    if(mode == ENB) //启动ADC电路

    {

        //F/4转换时间分频 Fadc = Fmaster/ADC_CR1[4..6]

        //[000 F/2] [001 F/3] [010 F/4]

        ADC_CR1 = (ADC_CR1&0x8f)|0x00;  //f/2

        //数据左对齐

        ADC_CR2 &= ~0x08;

        //启动ADC

        ADC_CR1 |= 0x01;

        //等待ADC电路稳定

        for(i=0; i<500; i++)

            ;

        ADC_CSR &= ~0x80;   //转换结束标志清0

        return;

    }

    else

    {

        ADC_CR1 &= ~0x01;   //关闭ADC电路

        return;

    }

}


//********************************

//函数名称:adc_switch

//函数功能:在单通道模式下转换某一通道的ADC值

//                  在(扫描模式下)连续转换1-Channel的ADC值

//入口参数:要转换的ADC通道号

//出口参数:无

//********************************

void adc_switch(uint8 channel)

{

    //选择转换通道

    ADC_CSR = (ADC_CSR&0xf0)|channel;

    //启动ADC

    ADC_CR1 |= 0x01;

    //等待转换

    while(!(ADC_CSR&0x80))

        ;

    ADC_CSR &= ~0x80;

    return;

}


//********************************

//函数名称:adc_mode_scan

//函数功能:ADC扫描模式设置函数

//入口函数:扫描模式开启函数

//出口参数:无

//********************************

void adc_mode_scan(uint8 value)

{

    if(value==ENB)

    {

        ADC_CR2 |= 0x02;

    }

    else

    {

        ADC_CR2 &= ~0x02;

    }

}

void read_adc(uint8 channel)

{

    unsigned char tmpH, tmpL;

    uint8 temp;

    adc_switch(channel);

    tmpH = ADC_DRH;

    tmpL = ADC_DRL;

    temp = tmpH;

    temp *= 50;

    temp /= 256;

    //uart1_send_byte(tmpH);

    //uart1_send_byte(tmpL);

    uart1_send_byte(temp);

}


在主函数里直接调用 read_adc(channel)


推荐阅读

史海拾趣

Calmos Systems Inc公司的发展小趣事

为了进一步扩大市场份额,Calmos Systems Inc公司积极寻求与行业内外的合作伙伴建立合作关系。公司与多家知名企业签订了战略合作协议,共同开发新产品、拓展新市场。同时,公司还积极参加各类行业展会和交流活动,与业内同行进行深入交流,了解行业动态和发展趋势。通过这些努力,公司的品牌知名度和影响力不断提升,为公司的长期发展打下了坚实的基础。

Daykin Electric Corp公司的发展小趣事

1969年,大金成功开发了一台室外机连接多台室内机的家用多联系统空调。这一创新产品不仅提高了空调的能效比,还满足了大型住宅和办公场所的多样化需求。多联系统空调的诞生,使得大金在家用中央空调领域取得了领先地位。

Advanced Detector Corp公司的发展小趣事

随着技术的不断成熟和市场的扩大,ADC开始将业务扩展到更广泛的领域。公司不仅继续深耕探测器领域,还逐渐拓展到传感器、测量仪器等多个领域。通过不断推出多样化的产品,ADC成功满足了不同客户的需求,并在市场上取得了良好的口碑。

川土(Chipanalog)公司的发展小趣事

随着业务的不断发展,川土微电子开始在全国范围内进行战略布局。公司不仅在上海设立了总部和研发中心,还在其他地区设立了办事处和生产基地。此外,川土微电子还积极与多家封测厂合作建立了封测专线,确保了产品的质量和供应的稳定性。

Adafruit公司的发展小趣事

2016年,上海川土微电子有限公司(简称“川土微电子”)正式成立,标志着Chipanalog川土微电子的诞生。作为一家专注于模拟芯片产品研发与销售的高科技公司,川土微电子从成立之初就明确了其核心使命——为中国电子信息制造企业提供高品质进口替代模拟芯片。在创始人及团队的共同努力下,公司迅速确定了发展方向,并开始着手研发首款模拟芯片产品。

ACCRETECH公司的发展小趣事

2022年,川土微电子的CA-IS3062W产品荣获了中国IC设计成就奖之“年度最佳隔离器”。这一荣誉的获得不仅是对川土微电子技术实力的肯定,也进一步提升了公司在行业内的知名度。同时,这也为川土微电子未来的发展奠定了坚实的基础。

问答坊 | AI 解惑

简易数字电压表的设计

采用ADC0809对模拟电压量进行采样,通过单片机AT89S51处理后由三位数码管进行显示。…

查看全部问答>

摇摇棒续

摇摇棒一般都用延时程序,但是当一个LED灯在两个发送时间都要亮时,我们看到的图象在横向上就联在一起了,即不美观,看起来那一行也太亮了,现在寻求解决方案,一个数据送完后要加一个等灭的信号。在程序中什么设计,还有就是灭的时间是多少?…

查看全部问答>

请教各位大虾:单片机本身集成24位ADC,有何意义?

现在有几种单片机本身集成了24位的ADC,那么,有何意义?请各位大虾指点! …

查看全部问答>

准备去海同的培训,请问参加过的兄弟到底怎么样

我现在本身有一份工作,但从事的不是自己喜欢的行业,考虑了很多,准备从事嵌入式行业。 但是没有相关工作经验,投了很多简历没有公司要的,所以想通过参加培训的方式过渡到这个行业。 在51JOB上看到海同培训有这个机会,刚才也亲自去现场查看过 ...…

查看全部问答>

驱动 硬件操作相关!!

想问下, 如果在驱动里面 定义一个硬件操作的相关函数,那么在整个驱动程序加载过程当中,这个函数是怎样实现调用的.... …

查看全部问答>

WinCE开发顶级群_大家来捧场(顺便散分)

新建了一个群,主要想招揽高级别的开发者,一起分享开发经验。 虽然不一定能解决各自问题,至少能开阔眼界。 本群的特点: 1.新股,有潜力。 2.股东有实力。 3.年底分红。 4.稳赚不赔。 要求至少3年以上项目经验。对几个常见系统之一 WinCE/W ...…

查看全部问答>

MSP430-G2学习板什么时候可以供货啊?

现在都快12月了,MSP430G2学习板好买吗?…

查看全部问答>

开发板USB转串口驱动

很多同学都说连接电脑连接不上,很多都是USB转串口驱动安装的问题,要是win7的系统的话请下载(WIN7 系统USB转串口驱动),如果是XP的请下载(XP系统USB转串口驱动)。…

查看全部问答>

基于cc1100开发的无线模块都有哪些?

基于cc1100的无线模块都有哪些啊?比较好的给推荐几个吧,谢谢啦~~…

查看全部问答>