📄 ads1211.c
字号:
#include "reg935.h"
#include <intrins.h>
#include "ADS1211.h"
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned char byte;
uchar idata ad1,ad2,ad3,ad4;
sbit DRDY = P2^6;
sbit SCLK = P2^4;
sbit DOUT = P2^3;
sbit DIN = P2^2;
sbit CS2 = P2^5;
void Delay1 (INT16U numb) //延时函数
{
INT16U i,j;
for(j=0;j<numb;j++){
for (i = 0;i <10;i++){
_nop_();
}
}
}
void Write_1211(uchar da) //写ADS1211
{
unsigned char i;
_nop_();
for (i=0;i<8;i++){
SCLK=1;
_nop_();
_nop_();
DIN =(bit)(da&0x80);
da<<=1;
_nop_();
SCLK=0;
}
DIN=1;
DOUT=1;
}
unsigned char Read_1211(void) //读ADS1211
{
unsigned char i;
unsigned char adr;
for (i=0;i<8;i++){
SCLK=1;
_nop_();
adr<<=1;
if(DOUT){
adr|=0x01;
}
SCLK=0;
_nop_();
}
DIN=1;
DOUT=1;
return adr;
}
void Ads1211Ini(void) //初始化ADS1211
{
// uchar da;
while(DRDY==0); //等待空闲
CS2=0;
// da=0x64;
Write_1211(COMMAND1);
_nop_();
_nop_();
//_nop_();
// da=0x12;
Write_1211(COMMAND2);
_nop_();
// da=0x20;
Write_1211(COMMAND3);
_nop_();
// da=0x01;
Write_1211(COMMAND4);
_nop_();
// da=0x86;//da=0x46;
Write_1211(COMMAND5);
_nop_();
// SS=1;
}
unsigned long Adout(void){ //A/D转换
unsigned long adc;
uchar da;
da=0xC0;
while(DRDY==0); //等待空闲
CS2=0;
_nop_();
_nop_();
write_1211(da);
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ad1=read_1211();
ad2=read_1211();
ad3=read_1211();
adc=ad1;
adc<<=8;
adc+=ad2;
adc<<=8;
adc+=ad3;
// adc<<=1;
// SS=1;
DRDY=1;
return(adc);
}
/*
void IOIni(){
CS2=1;
Delay1 ();
CS2=0;
//P1M1=0x00; //设置P1端口
// P1M2=0x00;
P2M1=0x00; //设置P2端口
P2M2=0x80; //
Ads1211Ini();
CS2=1;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -