欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于c8051f310的mcp41010数字电位器驱动源码

程序员文章站 2022-06-01 14:25:56
...
#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


 

相关标签: mcp41010