max187.c

来自「针对12位高速模数转换芯片MAX187的读取程序」· C语言 代码 · 共 94 行

C
94
字号
//本程序实现MAX187的读数操作
#include <absacc.h>
#include <math.h>
#include <reg52.h>
  
//MAX187控制
sbit bCS  =P1^2;
sbit bSCLK=P3^0;
sbit bDOUT=P3^1;
//测试位
sbit Test =P2^0;

void Delay10ms(unsigned char ms10)
{
	unsigned char Dy1,Dy2;
	while(ms10--)     /* 10 ms */
	{
    Dy1=5;
	while(Dy1--)
	 {
	  Dy2=255;  //2.2222ms 11.0592MHz//* 2.4576 ms 10MHz*//
	  while(Dy2--);
	 }
	}
}

void OutDelay(unsigned char i)
{
     while(i--);
}
 
//接收数据
bit Clock()
{
	bit bSample=0;
	bSCLK=0;
	OutDelay(1);
	bSCLK=1;
	bSample=bDOUT;
	return(bSample);
}
unsigned int ReceiveData ()
{
	unsigned char i;
	unsigned long RecData=0;
	bit bSample=0; 		
		bSCLK=0;
		bCS=0;
	 	OutDelay(35);
	    bSCLK=1;
		for(i=0;i<12;i++)
		{
			RecData<<=1;
			if(Clock())
 		    RecData+=1;
		}
		 bSCLK=1;
	     OutDelay(1);
	     bSCLK=0;
	     OutDelay(1);
	     bSCLK=1;
		 OutDelay(5);
		 bCS=1;
		 OutDelay(5);	    
	bCS=1;
	bSCLK=1;
	bDOUT=1;
    return(RecData);
}
unsigned int GetADValue()
{
	unsigned int ADData=0;
	ADData=ReceiveData();
    OutDelay(200);
	return(ADData);
}
//数据处理示意
void Process()
{
    unsigned int Value=0;
	if((Value=GetADValue())>=100)
	     Test=0;
    else Test=1;
}
void main()
{
	Delay10ms(30);
    while(1)//主循环
	{
	  Process();     
	}   
}

⌨️ 快捷键说明

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