找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机多通道AD采集源程序(8路) STC15w系列

查看数: 10109 | 评论数: 5 | 收藏 10
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-7-16 12:00

正文摘要:

12864为串行接法。AD0~AD4接的5V电源。 AD5~AD7接的GND。 STC15W408AS 自带8路10位AD   程序只使用了高八位。量程为255. 程序里面含10位AD采集。1024。 代码已注释。 新手上路。有错误还请斧正。 ...

回复

ID:97678 发表于 2023-4-18 12:48
10位 ADC 采集部分程序有问题
做如下修改编译就可以通过, 这样修改可以吗?
/****************
*以下关于ADC
*****************/
void ADC_init() //adc初始化
{
        P1ASF=0XFF;     //设置P1为ADC采集
        ADC_RES=0;        //清除高八位结果寄存器
        ADC_CONTR=0XE0; //ADC上电  A/D转换周期90个时钟周期
        delay(5);
}

uchar ADC_P(unsigned char ch) //ADC处理函数
{
ADC_CONTR &= !ADC_FLAG;         //清除ADC中断标志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|ch;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
        ADC_data=(a1<<2)|(b1>>6); //10AD  */

/*        ADC_CONTR&=~ADC_FLAG;  //关闭标志位
        ADC_CONTR=0X80|0X00|0X08|ch;
        _nop_();_nop_();_nop_();_nop_();  */
       
/*   ADC_CONTR &= !ADC_FLAG;         //清除ADC中断标志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|0x00;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
//        ADC_data=(a1<<2)|(b1>>6); //10AD  */

              while(!(ADC_CONTR&0x10));//等待ADC转换完成

        return ADC_RES;  //返回ADC结果  8位AD
}
ID:361216 发表于 2022-5-24 15:16
不错的资料,正是我想找了东西。
ID:996527 发表于 2022-3-25 22:28
good,程序学习下,请问有没有具体电路连接呢
ID:646328 发表于 2020-11-16 15:52
uchar ADC_P(unsigned char ch) //ADC处理函数
{
        ADC_CONTR&=~ADC_FLAG;  //关闭标志位
        ADC_CONTR=0X80|0X00|0X08|ch;
        _nop_();_nop_();_nop_();_nop_();
        while(!(ADC_CONTR&0x10));//等待ADC转换完成

        return ADC_RES;  //返回ADC结果  8位AD
      
/*   ADC_CONTR &= !ADC_FLAG;         //清除ADC中断标志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|0x00;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
//        ADC_data=(a1<<2)|(b1>>6); //10AD  */

}如果使用10位ad,不应该是
/*   ADC_CONTR &= !ADC_FLAG;         //清除ADC中断标志
          delay(30);
    ADC_CONTR=0x80|0x00|0x08|0x00;
          a1=ADC_RES;  //高8位
          b1=ADC_RESL; //低8位
          delay(60);
//        ADC_data=(b1<<2)|(a1>>6); //10AD  */
,详情请看图片

51hei截图_20201116155222.png (38.13 KB, 下载次数: 89)

51hei截图_20201116155222.png

评分

参与人数 1黑币 +60 收起 理由
admin + 60 回帖助人的奖励!

查看全部评分

ID:813923 发表于 2020-8-13 16:57
有没有proteus仿真电路鸭?

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表