资源简介
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单片机125Khz ID卡读卡程序
- 基于单片机的室内空气质量检测仪的
- 51单片机课程设计内含50多个课程设计
- keil调试仿真技巧-从入门到精通
- 基于单片机的GPS定位及显示系统设计
- 51单片机实现蜂鸣器的简易歌曲播放器
- 基于51单片机的智能十字路口交通灯系
- 51单片机编写的标准modbus协议通信模版
- SIM900A通过51单片机拨打电话程序
- 基于单片机的家庭无线红外测温仪
- 单片机原理及接口技术C51编程
- at89c51单片机外文翻译
- nec78系列单片机例程
- 肌电信号采集
- Lcd12864大时钟万年历 农历生肖温度
- 自动入库小车设计
- Proteus仿真的单片机控制步进电机及液
- CW2015 51单片机程序
- 单片机原理及接口技术C51编程高清P
- 基于51单片机的超声波测距技术实现含
- Proteus单片机仿真大全.rar
- 基于51单片机射频密码锁设计门禁刷卡
- 基于51单片机的十字路口交通灯Protu
- JL223B单点电容触摸
- 32x16LED汉子点阵显示屏
- STM32单片机指纹识别系统的设计
- 收发短信,短信控制LED51单片机例程
- 单片机试题及答案4套
- 单片机原理及应用 (电子书)
- 实验1.zip arduino跑马灯led灯实验,串口
评论
共有 条评论