打印
[PIC®/AVR®/dsPIC®产品]

MCP41010的STC12单片机程序

[复制链接]
1574|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ivanmeng|  楼主 | 2016-4-10 17:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是STC12系列的单片机。但是没有使用其内部的SPI接口,采用I/O口模拟的方式。我买的MCP41010是SOP8封装的。为什么一直写不进数据。
程序如下:


sbit mcp_CS=P1^0;//片选
sbit mcp_SCLK=P1^1;//串行时钟
sbit mcp_SI=P1^2;//串行数据输入

/**************************************************************************
*    功    能: 数字电位器程序
**************************************************************************/
void Delay10us()                //@11.0592MHz
{
        unsigned char i;

        _nop_();
        _nop_();
        _nop_();
        i = 24;
        while (--i);
}
void  MCP410_SendData(unsigned char x)
{
            unsigned char i,command=0x11;
        mcp_CS=0; //选中芯片,使能SPI
          
        for(i=0;i<8;i++)//传送1个字节8位命令&1个8字节数据
        {
                 mcp_SCLK=0;
                if(command&0x80)//将dat中最低位数据发送到MOSI端口
                {
                        mcp_SI=1;
                        Delay10us();
                }
                else
                {
                        mcp_SI=0;
                        Delay10us();
                }                        
            mcp_SCLK=1;
                        Delay10us();
                        command<<=1; //dat数据左移1位
        }
                for(i=0;i<8;i++)//传送1个字节8位命令&1个8字节数据
        {
                 mcp_SCLK=0;
                if(x&0x80)//将dat中最低位数据发送到MOSI端口
                {
                        mcp_SI=1;
                        Delay10us();
                }
                else
                {
                        mcp_SI=0;
                        Delay10us();
                }                        
            mcp_SCLK=1;
                        Delay10us();
                        x<<=1; //dat数据左移1位
        }
                        Delay10us();
                mcp_CS=1;

}
//数字电位器程序结束  

请各位大神指点一下,不胜感激。


沙发
ivanmeng|  楼主 | 2016-4-15 13:28 | 只看该作者
MCP41010的调试已经完成,在这里给想使用这款芯片的朋友们一个参考建议:最好选用直插的MCP41010.虽然官方的数据手册上没有说明贴片与直插的有什么区别,但是经本人实测以及网上各位的使用教训,这款芯片直插与贴片好像有着较大的不同。我是先调的贴片,无论怎么尝试,无论时序多么符合数据手册的的值,都调不通。后来换了直插的,竟然一次成功。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

2

帖子

0

粉丝