max196.c

来自「51单片机及其C语言程序开发实例光盘资料.rar」· C语言 代码 · 共 71 行

C
71
字号
#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 + =
减小字号Ctrl + -
显示快捷键?