找回密码
 立即注册

QQ登录

只需一步,快速开始

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

大哥们 可以帮我看一下ads1118为什么不能返回数据吗

[复制链接]
跳转到指定楼层
楼主
ID:110885 发表于 2016-4-12 19:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
32黑币
本帖最后由 差人的嘴脸 于 2016-4-12 19:31 编辑

void cshdk()//初始化io
{
        P0M1 = 0;   P0M0 = 0;
        P1M1 = 0;   P1M0 =0;
        P2M1 = 0;   P2M0 =0;
}
void cshSPI()//初始化SPI
{
        SPDAT=0;//消除数据寄存器的数据
        SPSTAT=0xc0;//清除状态
        SPCTL=0Xd7;//设置主机和从机模式 设置时钟

}

void ys(unsigned int yssj)//软件延时
{
        int cfbl;
        for(;yssj>0;yssj--)
                for(cfbl=0;cfbl<115;cfbl++);
}
void xrsj(signed int sj)//交换数据
{
        
        P12=0;
        ys(500);
        SPDAT=(sj>>8);
        while(!(SPSTAT & 0x80));
        SPSTAT |= 0xC0;
        ys(500);
        hc=SPDAT;
        
        ys(500);
        SPDAT=(sj&0xff);
        while(!(SPSTAT & 0x80));
        SPSTAT |= 0xC0;
        hc=(SPDAT<<8)|SPDAT;
        ys(500);
        P12=1;   //这个是ss端口
}
下面是main的一部分
P12=1;
        cshSPI();
        xrsj(0x8583);
        while(1)
        {
                hc=0x8000;             //我是想测试下有没有改变hc的值  hc是缓存ads1118的返回数据
                ys(1000);
                xrsj(0x0000);        
                //hc=0x0002;
                /**********************************/
                ys(1000);
                xssj[0]=(hc&0x00ff)+'0';
                xssj[1]=(hc>>8)+'0';
               
                xsj(xssj[0]);  //这个是128的显示  
                ys(500);
                xsj(xssj[1]);
                 //while(1) ;
                /**********************************/
        }



程序的显示结果:   电压值  00
单片机是  IAP15w4K61S4

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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