找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4647|回复: 0
打印 上一主题 下一主题
收起左侧

ADS1230的驱动程序,自己编写测试,基于51单片机

[复制链接]
跳转到指定楼层
楼主
ID:232431 发表于 2017-9-11 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADS1230的驱动程序,自己编写测试,基于51单片机,包括ad的初始化和ad的读取
下载:
ad1230驱动.docx (11.55 KB, 下载次数: 83)


初始化ADS1230
void ad_init()
{
    //ad_pdwn=1;
    //delayus(5);
    ad_pdwn=0;
    delayus(5);
    ad_pdwn=1;
    delayus(5);
    ad_sclk=0;
}
/*void ad_init()
{
    uchar i;
    ad_sclk=0;
    ad_pdwn=0;
    _nop_();_nop_();
    ad_pdwn=1;
    _nop_();_nop_();
    while(ad_dout);
    _nop_();_nop_();   
    for (i=0;i<26;i++)
    {
        ad_sclk=1;
        _nop_();_nop_();
        ad_sclk=0;
        _nop_();_nop_();
    }
}*/
读取AD转换后的值
ulong get_ad()
{
    ulong zhi=0;
    uchar i;
    ulong result=0;
    while(ad_dout);
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    for(i=0;i<20;i++) //在时钟的上升沿和下降沿都可以输出转换的数据    {
    {    zhi<<=1;
        ad_sclk=1;
        _nop_();
        ad_sclk=0;
        if(ad_dout==1)
            zhi+=1;
        _nop_();
    }
    ad_sclk=1;//注意必须要加一个额外的时钟周期去强制拉高ad_dout
    _nop_();
    ad_sclk=0;
    _nop_();
    result=zhi;
    /*if(result>524287)//result是负数
        result=1048576-result;
    //result=(float)result*0.0308166;
    //result=(ulong)result;*/
    return result;
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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