📄 max186.c
字号:
#include<reg52.h>
#include"top.h"
sbit CS=P1^1; /*p1.1为片选信号*/
sbit SCLK=P1^0; /*p1.0为串行时钟信号*/
sbit DIN=P1^2; /*p1.2为数据输入*/
sbit DOUT=P1^3; /*p1.3为数据输出*/
void ad_186(UWORD*addata)
{
UBYTE i,j,m,s,z=0;
UWORD out[8][10];
UWORD outdata=0;
/*---------数据暂存单元清零程序----------------*/
for(i=0;i<8;i++)
{
for(j=0;j<10;j++)
{
out[i][j]=0;
}
}
/*-----------A/D转换数据采集程序--------------*/
CS=1;
SCLK=0;
for(j=0;j<10;j++)
{
s=0x8f;
z=0;
do
{
CS=0;
SCLK=0;
for(i=0;i<8;i++)
{
UBYTE indata;
indata=s;
indata=((indata<<i)&0x80);
DIN=indata;
SCLK=1;
for(m=0;m<5;m++);
SCLK=0;
}
CS=1;
for(i=0;i<10;i++);
CS=0;
SCLK=1;
for(i=0;i<12;i++)
{
SCLK=1;
SCLK=0;
outdata=outdata<<1;
if(DOUT)
outdata+=1;
}
out[z][j]=outdata;
z++;
for(i=0;i<4;i++)
{
SCLK=1;
SCLK=0;
}
CS=1;
outdata=0;
s=s+0x10;
}while(s<0xff);
}
/*---------------中值滤波程序--------------------*/
for(z=0;z<8;z++)
{
UWORD a=0;
for(j=0;j<10;j++)
{
a=a+out[z][j];
}
addata[z]=a/10;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -