?? ad7888.txt
字號(hào):
//AD7888
#include<reg51.h> //51寄存器定義庫(kù)//上升沿讀
#include<intrins.h> //變量移位函數(shù)庫(kù)
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; //設(shè)置AD7888參數(shù):通道1、片外基準(zhǔn)、正常工作模式
CS=0;
SCLK=1;
getdata=0x0000;
for(i=4;i>0;i--) //忽略4個(gè)前導(dǎo)0
{
SCLK=1;
_nop_();
SCLK=0;
if(ADDR&0x8000) //發(fā)送控制指令的前四位
DIN=1;
else DIN=0;
_nop_();
SCLK=1;
ADDR<<=1;
}
for(i=0;i<12;i++) //讀取高字節(jié)數(shù)據(jù)
{
getdata<<=1;
SCLK=0;
_nop_();
if(ADDR&0x8000) //發(fā)送控制指令的后四位
DIN=1;
else DIN=0;
if(DOUT)
getdata=getdata|0x01; //從AD7888輸出端讀取一位數(shù)
SCLK=1;
ADDR<<=1;
}
CS=1;
}
void main()
{
CS=1;
while(1)
{ //采集到12位BCD碼數(shù)據(jù) 可以計(jì)算后送入數(shù)碼管顯示
measure(); //第一次采集數(shù)據(jù)不正確,上電后以第二次為準(zhǔn)
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -