📄 ad7888.txt
字号:
//AD7888
#include<reg51.h> //51寄存器定义库//上升沿读
#include<intrins.h> //变量移位函数库
sbit SCLK=P0^0;
sbit DOUT=P0^1;
sbit DIN=P0^2;
sbit CS=P0^3;
void measure()
{
unsigned char i;
unsigned int getdata,ADDR=0x0400; //设置AD7888参数:通道1、片外基准、正常工作模式
CS=0;
SCLK=1;
getdata=0x0000;
for(i=4;i>0;i--) //忽略4个前导0
{
SCLK=1;
_nop_();
SCLK=0;
if(ADDR&0x8000) //发送控制指令的前四位
DIN=1;
else DIN=0;
_nop_();
SCLK=1;
ADDR<<=1;
}
for(i=0;i<12;i++) //读取高字节数据
{
getdata<<=1;
SCLK=0;
_nop_();
if(ADDR&0x8000) //发送控制指令的后四位
DIN=1;
else DIN=0;
if(DOUT)
getdata=getdata|0x01; //从AD7888输出端读取一位数
SCLK=1;
ADDR<<=1;
}
CS=1;
}
void main()
{
CS=1;
while(1)
{ //采集到12位BCD码数据 可以计算后送入数码管显示
measure(); //第一次采集数据不正确,上电后以第二次为准
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -