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

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

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

[复制链接]

该用户从未签到

19

主题

61

回帖

124

积分

二级逆天

积分
124

终身成就奖

发表于 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立场,如侵犯了您的权利请发帖投诉

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