英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3958|回复: 1
打印 上一主题 下一主题

MCP41010数字电位器

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-21 17:09:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1)从资料看,SI要接收8位命令和8位数据,总共16位,能不能用8位机如PIC16F87XX作,如果做的话是先发数据还是先发指令?
2)是不是发一组数据和指令后就好了,电阻值就一直保持(不断电情况吓)?
2#
 楼主| 发表于 2009-3-21 17:09:57 | 只看该作者
测试程序
void Write_RES(uchar dat)         //调整数字电位器
{
uchar i,dat1,command=0x11;
dat1=dat;

RES_CS = 1;
SCK = 1;
RES_CS = 0;               //片选   
SCK = 0;

for(i=8;i>0;i--)       //写命令8位
{
command <<= 1;   
DI  = CY;   
SCK = 1;_nop_();
SCK = 0;
}

for(i=8;i>0;i--)          //写数据八位
{
dat1 <<= 1;
DI  = CY;
SCK = 1 ;_nop_();
SCK = 0 ;
}

RES_CS = 1;_nop_();

       //如果不写以下空操作程序,电位器不能连续调整,这点不知道为什么....,说明书上也没讲...我自己花时间调试出来的.....
RES_CS = 0;
         for(i=16;i>0;i--)         //空操作
{
DI  = 0;
SCK = 1 ;_nop_();
SCK = 0 ;
}

RES_CS = 1;_nop_();
DI  = 1;
SCK = 1 ;
}

硬件电路测试
以上程序在Proteus6.9中测试可以通过调用函数连续改变数字电位器阻值...

但是在实际的硬件电路中确存在一些问题....如果加入16位空操作阻值并不是想要调整的...去掉16位空操作就可以了.....
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-25 10:54 , Processed in 0.062506 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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