⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mcp6s21.c

📁 可编程放大器MCP6S21AVR驱动程序
💻 C
字号:
#include <AbSacc.H>
#include <REG51.H>
#include <math.h>
#include <intrins.h>
#include <stdio.h>
#define  uint unsigned int 
#define  uchar unsigned char 
#define GETBIT(A,B) ((A&(1<<B))?1:0)
void configch(uint CON1,bit Fg);
void configga(uint CON2,bit Fg);
void dlms(unsigned int x);      //1毫秒延时程序//
sbit DI=P3^0;		/* RXD */
sbit CLK1=P3^1;		/* TXD */
sbit CS=P2^0;
sbit CLK=P2^1;
sbit SI=P2^2;
sbit SO=P2^3;
sbit P2_4= P2^4;             //增益按键
uint channel=0x4100;              //MCP6S2X通道寄存器配置字
uint gain;                 //MCP6S2X增益寄存器配置字
uchar ID=0;
uint oldID=10; 

//MCP6S21通道寄存器配置字写入
void configch(uint CON1,bit Fg)
{
 uchar i;
 if(Fg)CS=0;
  else CS=0;
 for(i = 16;i>=1;i--)
 { SI =CON1&0x8000;
 CON1=CON1<<1;
 CLK= 0;
 CLK= 1;
 }
if(Fg) CS=1;
else   CS=1;

}
//MCP6S21增益寄存器配置字写入
void configga(uint CON2,bit Fg)
{
 uchar i;
 if(Fg)CS=0;
  else CS=0;
 for(i = 16;i>=1;i--)
 { SI = CON2&0x8000;
 CON2=CON2<<1;
 CLK= 0;
 CLK= 1;
 }
if(Fg) CS=1;
else   CS=1;

}


//配置0通道的增益为32;
void main(void)
{
 gain=0x4007;
 configch(channel,1);
 configga(gain, 1 );
 while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -