📄 ad.c
字号:
//========================模数转换==================
//功能:模数转换
//入口参数:通道地址
//出口参数:转换结果
//=================================================
#include "CPLD.h"
unsigned char adc(unsigned char a)
{ unsigned char d[10],adr[4];
unsigned char j,z,result=0;
for(j=4;j>0;j--) //分解地址
{ adr[j-1]=a%2;
a=a/2;
}
p13=0; //选中芯片
for(j=10,z=4;j>0;j--,z--) //送地址
{
p10=1;
if(z>0) p11=adr[z];
p10=0;
}
for(;p32==1;); //等待转换结束
p13=0; //重新选中芯片
for(j=10,z=0;j>0;j--,z++) //时钟脉冲/接收数据,下降沿开始接收数据
{
p10=1;
if(z<4) p11=adr[z]; //送地址
d[j-1]=p12; // 获得数据
p10=0;
}
for(j=9,z=128;j>2;j--) //合成数据 d[9]为高位,d[3]为低位,舍去最低两位
{
result=z*d[j]+result;
z=z/2;
}
p13=1;
return result; //返回数据
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -