#include "mcp41010.h"void MCP41010_init(){ //P2MDIN // 上电默认 digital P2MDOUT = setBits(P2MDOUT,pin4|pin5|pin6|pin7); // port2 4567 push-pull}#define mcp_setCS() {P2=setBits(P2,csx);}#define mcp_clCS() {P2=clrBits(P2,csx);}//cmd=0x11 电位器0 写数据模式void MCP41010_writeData(u8 cmd,u8 dat,u8 csx) { u8 i; mcp_setCS(); _nop_(); //cs1 cs2 mcp_sck=1; mcp_sci=0; mcp_clCS(); _nop_(); mcp_sck=0; _nop_(); for(i=0;i<8;i++) { mcp_sci=getBit(cmd,7); _nop_();_nop_(); mcp_sck=1; //data in _nop_();_nop_(); mcp_sck=0; cmd <<= 1; _nop_(); } for(i=0;i<8;i++) { mcp_sci=getBit(dat,7); _nop_();_nop_(); mcp_sck=1; _nop_();_nop_(); mcp_sck=0; dat <<= 1; _nop_(); } mcp_setCS(); _nop_();}
- #ifndef _MCP41010_H
- #define _MCP41010_H
- #include "sys51.h"
- extern void MCP41010_writeData(u8 cmd,u8 dat,u8 csx);
- extern void MCP41010_init();
- //用了2个电位器,所以有csa,csb
- sbit mcp_csa=P2^4;
- sbit mcp_csb=P2^5;
- sbit mcp_sck=P2^6;
- sbit mcp_sci=P2^7;
- #endif
联系客服