📄 2ad.c
字号:
#define uchar unsigned char
#define uint unsigned int
#include <reg52.h>
#include <math.h>
sbit ad_clk=P1^1;
sbit ad_cs=P1^4;
sbit ad_sout=P1^3;
sbit ad_sin=P1^2;
uint samp;
void delayus(uchar n)
{
uchar i = 0;
for(i=0;i<n;i++)
;
}
uint ad_result(uchar port) //2543一路AD转换
{
uchar i=0;
uint ad_data= 0;
ad_cs = 1;
ad_clk = 0;
ad_cs = 0;
port<<=4;
for(i=0;i<12;i++)
{
ad_sin = (bit)(port&0x80);
ad_clk = 1;
ad_clk = 0;
port<<=1;
}
ad_cs = 1;
delayus(100);
ad_clk = 0;
ad_cs = 0;
for(i=0;i<12;i++)
{
ad_sout = 1;
ad_clk = 1;
ad_data<<=1;
if(ad_sout)
{ad_data |= 0x0001;}
ad_clk = 0;
}
delayus(200);
ad_cs = 1;
delayus(50);
return(ad_data&0x0fff);
}
float ad_v(uint x)
{
float V;
if(x<=1000) V=150.0;
else if(x>=4000) V=450.0;
else V=(x-1000)*0.1+150;
return(V);
}
float ad_a(uint x)
{
float A;
if(x==0) A=0;
else if(x>=4000) A=450.0;
else A=x*0.1125;
return(A);
}
/*
main()
{
uint i;
float s=0;
while(1)
{
// i=ad_result(0);
// s=ad_v(i);
// i=ad_result(1);
//s=ad_v(i);
//i=ad_result(2);
// s=ad_v(i);
// i=ad_result(3);
// s=ad_v(i);
// i=ad_result(4);
// s=ad_v(i);
i=ad_result(5 );
s=((float)ad_v(i)/10);
i++;
}
} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -