在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 9202|回复: 28

A\D子程序

[复制链接]
发表于 2003-8-19 22:14:50 | 显示全部楼层 |阅读模式

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

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

x
求A\D转换程序,汇编C51都可以.希望有详细数据处理,并能用LED显示结果,多谢
发表于 2003-8-20 07:30:50 | 显示全部楼层

A\D子程序

那看你用什么片子了。
比如是ADUC812的话它内部就有A/D。D/A的功能,很方便。
但如果用外接的则编程也不一样了。不过不外乎也就是设定工作寄存器然后写数据到数据寄存器。
发表于 2003-8-20 09:39:02 | 显示全部楼层

A\D子程序

LBHIDDEN[0]LBHIDDEN[这个贴子最后由laobai在 2005/04/22 07:59pm 第 3 次编辑]

这些是我上学时作的一个东东里裁出来的,仅作参考。
一个是大学物理实验泫震动仪,里边用了led显示
一个是其他一个数采器里ad max187采样程序,用了混合编程可以用c来调用asm,看了就会调用

10_34_2.txt

6.64 KB, 下载次数: 12 , 下载积分: 资产 -2 信元, 下载支出 2 信元

发表于 2003-8-20 10:00:43 | 显示全部楼层

A\D子程序

[这个贴子最后由laobai在 2003/08/20 10:40am 第 1 次编辑]

这些是我上学时作的一个东东里裁出来的,仅作参考。
一个是大学物理实验泫震动仪,里边用了led显示
一个是其他一个数采器里ad max187采样程序,用了混合编程可以用c来调用asm,看了就会调用
便宜没好货,好货不便宜,快来买阿!
发表于 2003-8-21 01:30:12 | 显示全部楼层

A\D子程序

laobai,我敬你还是一个人材。
但也希望你不要把商人的市侩带到这个纯以技术为交流的地方来,谢谢。

发表于 2003-8-21 11:20:21 | 显示全部楼层

A\D子程序

[这个贴子最后由laobai在 2003/08/21 11:23am 第 1 次编辑]

你作为本板板主,说话不要这么不给面子嘛,你不要不等于没有人要。如果是网上转的我可以不要或要很少,我自己做的,虽然当时水平不高,毕竟是心血。
打5折啦。
 楼主| 发表于 2003-9-1 19:04:06 | 显示全部楼层

A\D子程序

谢谢:我想用89C51单片机,用2543做AD转换,你有办法吗?
发表于 2003-9-2 10:56:38 | 显示全部楼层

A\D子程序

自己改改吧
////////////////////////A/D转换(TLC2543)///////////////////////////////////////
uint getdata(uchar CHN)
{
    uchar i,j,k,temp;
    uint thedata,dataadd,datasum; ////采集16次,分别存放采集的数据和累加和
    EX1=0;               ////不要有按键的影响
    CHN=CHN<<4;          ////12位格式,MSB先导,单极性
    AD_IOCLK=0;
    AD_CS=1; AD_CS=1;
    AD_CS=0; AD_CS=0;    ////下降沿并保持低电平,目的:延时以便CS稳定
    temp=CHN;            ////输入要转换的通道
    for(i=0;i<12;i++)    ////输入第一次的设置,但不要当前数据
    {
        if((temp&0x80)!=0){AD_DATIN=1;}
        else{AD_DATIN=0;}
        AD_IOCLK=1;     ////上升沿
        AD_IOCLK=0;     ////下降沿
        temp=temp<<1;
    }
    ////以下程序段应该读取上一次转换结果,同时输入本次设置(未变)
    datasum=0;
    for(k=0;k<16;k++)       ////每个通道采集256次
    {  dataadd=0;
       for(j=0;j<16;j++)
       {
      thedata=0;  AD_EOC=0;
      while(!AD_EOC){} ////等待转换完成此处最好改改
          AD_CS=1;
          AD_CS=0; AD_CS=0; //下降沿
          temp=CHN; //重新输入要转换的通道
              for(i=0;i<12;i++)
               {
                 if((temp&0x80)!=0){AD_DATIN=1;}////送数据
                 else{AD_DATIN=0;}
                 if(AD_DATOUT){thedata=thedata+1;}
                 AD_IOCLK=1;   ////上升沿
                 AD_IOCLK=0;   ////下降沿
                 temp=temp<<1;
                 thedata=thedata<<1;
               } //end i
          AD_CS=0;AD_CS=1; //上升沿
          AD_EOC=0;
          thedata=thedata>>1;
          dataadd+=thedata;
       } //end j
       thedata=dataadd>>4;
       thedata=thedata&0x0fff;  //屏蔽高四位,因为是12位转换结果
       datasum+=thedata;
     }//end k
    thedata=datasum>>4;
    thedata=thedata&0x0fff;  //256次取平均
    EX1=1; AD_CS=1;
    return thedata;
}
发表于 2003-9-2 22:35:11 | 显示全部楼层

A\D子程序

其实呢,买卖贴子是为了带动一下气氛,同样也可以激发客人来注册,适当的买卖贴子也不要在乎了。
发表于 2003-9-3 08:17:09 | 显示全部楼层

A\D子程序

呵呵,我当了板主以后,也不在这个版面买卖贴子了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 23:17 , Processed in 0.026071 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表