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

📄 max196.c

📁 max196是maxic公司的16位的A/D芯片
💻 C
字号:
#include<reg51.h>
#include "MAX196.h"

//短延时函数:nNop()
void nNop(uchar x)
{
	for(;x>0;x--);
	}

//长延时函数:LongDelay()
void LongDelay(uint i)
{
	uint j;
	for(;i>0;i--)
		{ for(j=4000;j>0;j--);}
	}
	
//指定通道指定方式采样函数:nSample()
uint nSample(uchar ch, uchar rng, uchar clk, uchar acqmod)
{
	uchar CMod1,CMod2;
	uint temp;
	uint temp1,temp2;
	CMod1 = ((ch&0x07) | ((rng<<3)&0x18) | ((INACQ<<5)&0x20) | ((clk<<6)&0xc0)) & 0xff;
	CMod2 = ((ch&0x07) | ((rng<<3)&0x18) | ((EXACQ<<5)&0x20) | ((clk<<6)&0xc0)) & 0xff;
	if(acqmod==0)    //内部控制模式
	{
		SetPinData_L(0);
		SetCS(0);
		SetWR(1);		
		SetRD(1);
	//	nNop(1);
		PinData_L = CMod1;
		SetWR(0);
		nNop(1);
		SetWR(1);
		while(PinINT != 0);
		SetPinData_L(1);
		SetRD(0);
	//	nNop(1);
		temp1 = PinData_L;
		temp2 = PinData_H;
		temp = (temp1 | (temp2 << 8)) & 0xfff;
		}
	else if(acqmod==1)    //外部控制模式
	{
		SetPinData_L(0);
		SetCS(0);
		SetWR(1);		
		SetRD(1);
	//	nNop(1);
		PinData_L = CMod2;
		SetWR(0);
		nNop(1);
		SetWR(1);
		nNop(1);
	//	nNop(1);
		PinData_L = CMod1;
		SetWR(0);
		nNop(1);
		SetWR(1);
		while(PinINT != 0);
		SetPinData_L(1);
		SetRD(0);
	//	nNop(1);
		temp1 = PinData_L;
		temp2 = PinData_H;
		temp = (temp1 | (temp2 << 8)) & 0xfff;
		}
	return(temp);
	}

⌨️ 快捷键说明

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