资源简介
MCS51单片机读写AD7745采集电容传感器数据
代码片段和文件信息
//**********************************
// AD7746电容检测
// IIC接口
//
//***********************************//
#include
#include
#include
sbit SCL=P2^0;
sbit SDA=P2^1;
sbit RDY=P3^3;
#define CapDacvalue 4.97
void IIC_START(void);
void IIC_STOP(void);
void IICSendbyte(unsigned char ch);
void IICSendbyte2(unsigned char ch);
unsigned char IICRECVbyte(void);
unsigned char IICWatask(void);
unsigned char IICWatask2(void);
void IICSendask(void);
void IICSendNask(void);
unsigned char SETUP_7745(unsigned char addrunsigned char value);
void GET7745value(unsigned char *punsigned char n);
void delay(unsigned int x );
unsigned char IICreadstatus(unsigned char addr);
void AD7745_RESET();
unsigned char MRD[3]={000};
unsigned char flflageflag3flag4;
unsigned char stdata;
unsigned long int cfregvalueHcfregvalueMcfregvalueL;
void main()
{
unsigned char capdacreg;
SCON=0x57; //波特率发生器 串行方式1 9600
TMOD=0x21;
TH1=0xFD;
TL1=0xFD;
EA=1;
TR1=1;
IT1=1;
EX1=1;
fl=1;
flage=1;
flag3=1;
flag4=1;
stdata=0x01;
//printf(“%d%d%d%d\n“flflageflag3flag4);
AD7745_RESET();
capdacreg=(int)((CapDacvalue*0x7F)/17);
capdacreg=0x80|capdacreg;
fl=SETUP_7745(0x070x80); //设置CAP SETUP寄存器值
flage=SETUP_7745(0x090x2B); //EXCSETUP 寄存器设置
flag3=SETUP_7745(0x0A0xA1);
flag4=SETUP_7745(0x0Bcapdacreg);
while(1);
}
void AD7745_RESET(void)
{ IIC_START();
IICSendbyte(0xBF);
IIC_STOP();
}
void IIC_START(void)
{
//SCL=0;
SDA=1;
delay(2);
SCL=1;
delay(6);
SDA=0;
delay(6);
SCL=0;
delay(2);
}
void IIC_STOP(void)
{
// SCL=0;
SDA=0;
delay(2);
SCL=1;
delay(6);
SDA=1;
delay(6);
SCL=0;
delay(4);
}
void IICSendbyte(unsigned char ch)
{
unsigned char i;
SCL=0;
for (i=0;i<8;i++)
{
SDA=(bit)(ch&0x80);
delay(6);
ch<<=1;
SCL=1;
delay(6);
SCL=0;
delay(6);
}
delay(6);
}
void IICSendbyte2(unsigned char ch)
{
unsigned char i;
SCL=0;
for (i=0;i<8;i++)
{
SDA=(bit)(ch&0x80);
delay(6);
ch<<=1;
SCL=1;
delay(6);
SCL=0;
delay(6);
}
delay(6);
}
unsigned char IICRECVbyte(void)
{
unsigned char i;
unsigned char temp=0;
SCL=0;
SDA=1;
for (i=0;i<8;i++)
{
SCL=1;
delay(5);
temp=temp<<1;
if(SDA==1)
temp=temp|0x01;
else
temp=temp&0xfe;
SCL=0;
}
return(temp);
}
unsigned char IICWatask(void) //等待AD7745向单片机发送应答信号函数
{
unsigned char i=0;
unsigned
相关资源
- 51 单片机 红外避障小车 大集合136
- STC8951系列单片机中方指南
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 单片机与温度传感器DS18B20的程序设计
- 51单片机基于protues的几个仿真实例
- 基于52单片机的直流电压测量
- 38k单片机红外发送代码、keil
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 武汉理工大学 单片机课程设计 16*16点
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 浙江工业大学2005-2006学年单片机习题
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
评论
共有 条评论