标题:
我想通过STC15F2K60S单片机控制电位器MCP41010
[打印本页]
作者:
a372242775
时间:
2023-11-2 18:27
标题:
我想通过STC15F2K60S单片机控制电位器MCP41010
想问问程序的思路 在网上找了一下午都没找到相关的控制MCP410的程序。。
主要就是想通过程序控制电位器来调整电位器阻值
作者:
coody_sz
时间:
2023-11-2 19:19
这种简单接口的IC,看看手册就可以写了。
作者:
wulin
时间:
2023-11-2 21:28
MCP41XXX42XXX.PDF
(689.72 KB, 下载次数: 9)
2023-11-2 21:28 上传
点击文件名下载附件
作者:
dalaoshi
时间:
2023-11-3 02:02
MCP41010: ;SET VOLUME
;P1.1=CS2 ;NO-USE
;P1.6=CS1
;P1.7=SI
;P5.4=SCK
;CMD=XXCCXXPP CC=CONTROL=01=WRITE PP=01=WRITE TO 0-VR
CLR P1.6 ;LOW ALLOW TO CLOCK IN DATA
NOP
CLR P5.4
MOV A, #00010001B ;CMD WRITE
LCALL MCPIN
MOV A, 31H
MOV B, #2
MUL AB
;LCALL SENTONEBYTE1
LCALL MCPIN
NOP
SETB P1.6 ;HIGH CS
NOP
RET
MCPIN:
MOV R6, #8
MCPIN1:
RLC A ;CLOCK IN
JC SI_H
CLR P1.7
JMP SI_L
SI_H:
SETB P1.7
SI_L:
NOP
SETB P5.4 ;RISE UP TO CLOCK DATA IN
NOP
CLR P5.4
DJNZ R6,MCPIN1
RET
作者:
chxelc
时间:
2023-11-3 08:27
sbit SCK = P3^0;
sbit DI = P3^1;
sbit RES_CS = P1^0;
void Write_RES(unsigned char);
void main()
{
Write_RES(0x80);
Write_RES(0x80);
while(1);
}
void Write_RES(unsigned char dat) //调整数字电位器
{
unsigned char i,dat1,command=0x11;
dat1=dat;
RES_CS = 1;
SCK = 1;
RES_CS = 0; //片选
for(i=8;i>0;i--) //写命令8位
{
//将下降沿产生语句放在循环开始处
SCK = 0;
command <<= 1;
DI = CY;
//用循环处理语句代替延时
SCK = 1;//_nop_();
}
for(i=8;i>0;i--) //写数据八位
{
//将下降沿产生语句放在循环开始处
SCK = 0;
dat1 <<= 1;
DI = CY;
//用循环处理语句代替延时
SCK = 1;//_nop_();
}
RES_CS = 1
}
复制代码
作者:
a372242775
时间:
2023-11-3 20:42
本帖最后由 a372242775 于 2023-11-4 10:29 编辑
chxelc 发表于 2023-11-3 08:27
谢谢大哥
这个程序是可以的
只要选择自己单片机型号,再根据连接的引脚重新更改定义一下就基本可以
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1