标题: 我想通过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)

作者: 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
  1. sbit SCK = P3^0;               
  2. sbit DI = P3^1;               
  3. sbit RES_CS = P1^0;
  4. void Write_RES(unsigned char);

  5. void main()
  6. {
  7.         Write_RES(0x80);
  8.         Write_RES(0x80);
  9.         while(1);
  10. }
  11. void Write_RES(unsigned char dat)       //调整数字电位器
  12. {
  13. unsigned char i,dat1,command=0x11;
  14. dat1=dat;

  15. RES_CS = 1;
  16. SCK = 1;
  17. RES_CS = 0;           //片选   


  18. for(i=8;i>0;i--)     //写命令8位
  19. {
  20.                 //将下降沿产生语句放在循环开始处
  21.                 SCK = 0;
  22.                 command <<= 1;   
  23.                 DI = CY;   
  24.                 //用循环处理语句代替延时
  25.                 SCK = 1;//_nop_();
  26. }

  27. for(i=8;i>0;i--)       //写数据八位
  28. {
  29. //将下降沿产生语句放在循环开始处
  30.                 SCK = 0;
  31.                 dat1 <<= 1;
  32.                 DI = CY;
  33.                 //用循环处理语句代替延时
  34.                 SCK = 1;//_nop_();
  35. }

  36. RES_CS = 1
  37. }
复制代码



作者: 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