找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ADC0832模式转换模块的程序,请大神帮我看看有没有问题。

[复制链接]
跳转到指定楼层
#
ID:185401 发表于 2017-4-3 09:47 来自手机 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
/***********读数模转换数据********************************************************/        //请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的                                                //  1  0  0 通道                                                //  1  1  1 通道 unsigned char ad0832read(bit SGL,bit ODD){        unsigned char i=0,value=0,value1=0;                                SCL=0;                DO=1;                CS=0;                //开始                SCL=1;                //第一个上升沿                        SCL=0;                DO=SGL;                SCL=1;          //第二个上升沿                SCL=0;                DO=ODD;                SCL=1;            //第三个上升沿                DO=1;                for(i=0;i<8;i++)                {                        SCL=1;                        value<<=1;                        if(DO)                                value++;                                                                }                for(i=0;i<8;i++)                {                        //接收校验数据                        value1<<=1;                        if(DO)                                value1+=0x80;                        SCL=1;                        SCL=0;                }                CS=1;                SCL=1;                return 0;}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

板凳
ID:111634 发表于 2017-4-4 15:51 | 只看该作者
本帖最后由 zl2168 于 2017-4-4 15:52 编辑

实例86  ADC0832串行A-D(虚拟CLK)


Proteus仿真一下,确认有效。
实例86 ADC0832串行A-D(虚拟CLK).rar (35.29 KB, 下载次数: 9)
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版.。书中电路和程序设计有详细说明,程序语句条条有注解。


回复

使用道具 举报

沙发
ID:111634 发表于 2017-4-4 15:48 | 只看该作者
本帖最后由 zl2168 于 2017-4-4 15:50 编辑

实例85  ADC0832串行A-D(TXD输出CLK)


Proteus仿真一下,确认有效。
实例85 ADC0832串行A-D( TXD输出CLK).rar (36.86 KB, 下载次数: 12)
以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版.。书中电路和程序设计有详细说明,程序语句条条有注解。


回复

使用道具 举报

楼主
ID:151348 发表于 2017-4-3 21:09 | 只看该作者
天哪,这也太乱了,
这是前人的程序,我试过,没问题

sbit cs=P1^0;
sbit clk=P1^1;
sbit data_in=P1^2;
sbit data_out=P1^2;

unsigned char Get_AD_Result(unsigned char CH)
{
        unsigned char i,test,adval;
        adval=0x00;
        test=0x00;
        clk=0;
        data_in=1;
        _nop_();
        cs=0;        
        _nop_();
        clk=1;
        _nop_();

        if(CH==0x00)
        {
                clk=0;
                data_in=1;
                _nop_();
                clk=1;
                _nop_();
                clk=0;                 
                data_in=0;
                _nop_();
                clk=1;
                _nop_();
        }
        else
        {
                clk=0;
                data_in=1;
                _nop_();
                clk=1;
                _nop_();
                clk=1;
                _nop_();
                clk=0;
                data_in=1;
                _nop_();
                clk=1;
                _nop_();
        }
        clk=0;
        data_in=1;
        for(i=0;i<8;i++)
        {
                _nop_();
                adval<<=1;
                clk=1;
                _nop_();
                clk=0;
                if(data_out)
                        adval|=0x01;
                else
                        adval|=0x00;        
        }
        for(i=0;i<8;i++)
        {
        test>>=1;
        if(data_out)
                test|=0x80;
        else
                test|=0x00;               
                _nop_();
                clk=1;
                _nop_();
                clk=0;
        }

        _nop_();
        cs=1;
        data_out=1;
        clk=1;
        return (adval == test) ? test:0;
}

数据转换方法为
                 d = Get_AD_Result(0);

                Display_Buffer[0]=d/51 +'0';//整数部分
                Display_Buffer[2]=(d%51)*10/51 +'0';//一位数
                Display_Buffer[3]=((d%51)*10%51)*10/51 +'0';//两位数
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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