我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 655|回复: 0

基于STC15w401系列的多路adc采集程序

[复制链接]
  • TA的每日心情
    无聊
    2025-9-19 09:57
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    19

    主题

    58

    回帖

    144

    积分

    二级逆天

    积分
    144

    终身成就奖

    发表于 2020-11-25 14:38:42 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    此源码是采集多路ADC电路电压值,结果STC15w401 flash太小,源码只能这么大,添加不了其它功能。
    1. 主函数
    2. #include    "config.h"
    3. #include    "adc.h"
    4. #include    "delay.h"
    5. #include    "soft_uart.h"
    6. /*************    功能说明    **************
    7. 本程序演示多路ADC查询采样,通过模拟串口发送给上位机,波特率9600,8,n,1。
    8. 用户可以修改为1~8路的ADC转换。
    9. ******************************************/
    10. /*************    本地常量声明    **************/
    11. /*************    本地变量声明    **************/
    12. /*************    本地函数声明    **************/
    13. /*************  外部函数和变量声明 *****************/
    14. void    ADC_config(void)
    15. {
    16.     ADC_InitTypeDef        ADC_InitStructure;                //结构定义
    17.     ADC_InitStructure.ADC_Px        = ADC_P10 | ADC_P11 | ADC_P12;    //设置要做ADC的IO,    ADC_P10 ~ ADC_P17(或操作),ADC_P1_All
    18.     ADC_InitStructure.ADC_Speed     = ADC_360T;            //ADC速度            ADC_90T,ADC_180T,ADC_360T,ADC_540T
    19.     ADC_InitStructure.ADC_Power     = ENABLE;            //ADC功率允许/关闭    ENABLE,DISABLE
    20.     ADC_InitStructure.ADC_AdjResult = ADC_RES_H8L2;        //ADC结果调整,    ADC_RES_H2L8,ADC_RES_H8L2
    21.     ADC_InitStructure.ADC_Polity    = PolityLow;        //优先级设置    PolityHigh,PolityLow
    22.     ADC_InitStructure.ADC_Interrupt = DISABLE;            //中断允许        ENABLE,DISABLE
    23.     ADC_Inilize(&ADC_InitStructure);                    //初始化
    24.     ADC_PowerControl(ENABLE);                            //单独的ADC电源操作函数, ENABLE或DISABLE
    25. }
    26. /**********************************************/
    27. void main(void)
    28. {
    29.     u8    i;
    30.     u16    j;
    31.     ADC_config();
    32.     while (1)
    33.     {
    34.         for(i=0; i<3; i++)
    35.         {
    36.             delay_ms(250);
    37.         //    Get_ADC10bitResult(i);        //参数0~7,查询方式做一次ADC, 丢弃一次
    38.             j = Get_ADC10bitResult(i);    //参数0~7,查询方式做一次ADC, 返回值就是结果, == 1024 为错误
    39.             TxSend('A');
    40.             TxSend('D');
    41.             TxSend(i+'0');
    42.             TxSend('=');
    43.             TxSend(j/1000 + '0');
    44.             TxSend(j%1000/100 + '0');
    45.             TxSend(j%100/10 + '0');
    46.             TxSend(j%10 + '0');
    47.             TxSend(' ');
    48.             TxSend(' ');
    49.         }
    50.         PrintString("\r\n");
    51.     }
    52. }
    53. ADC
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉|网站地图

    闽公网安备35062302000276号 | 闽ICP备2024076463号-1 | 论坛技术支持QQ群171867948 | 论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表