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 + -
显示快捷键?