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

📄 max187.c

📁 针对12位高速模数转换芯片MAX187的读取程序
💻 C
字号:
//本程序实现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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -