锁相放大器设计(7)

2020-04-21 00:33

参 数:无 返回值 :无

********************************************/ void stop(void) { }

/******************************************* 函数名称:mack

功 能:完成IIC的主机应答操作 参 数:无 返回值 :无

********************************************/ void mack(void) { }

/******************************************* 函数名称:mnack

功 能:完成IIC的主机无应答操作 参 数:无 返回值 :无

********************************************/

25

SDA_L; delay(); SCL_H; delay(); SDA_H; delay();

SDA_L; _NOP(); _NOP(); SCL_H; delay(); SCL_L; _NOP();_NOP(); SDA_H; delay();

void mnack(void) { }

/**********检查应答信号函数******************/ /*如果返回值为1则证明有应答信号,反之没有*/ /******************************************* 函数名称:check

功 能:检查从机的应答操作 参 数:无

返回值 :从机是否有应答:1--有,0--无 ********************************************/ void ack() { uchar i; i=0; SDA_in; SCL_H; delay();

while((P1IN&BIT1)&&(i<250)) i++; SDA_out; SCL_L; delay(); }

/******************************************* 函数名称:write1

功 能:向IIC总线发送一个1 参 数:无

26

SDA_H; _NOP(); _NOP(); SCL_H; delay(); SCL_L; _NOP(); _NOP(); SDA_L; delay();

返回值 :无

********************************************/ void write1(void) { }

/******************************************* 函数名称:write0

功 能:向IIC总线发送一个0 参 数:无 返回值 :无

********************************************/ void write0(void) { }

/******************************************* 函数名称:write1byte

功 能:向IIC总线发送一个字节的数据 参 数:wdata--发送的数据 返回值 :无

********************************************/ void write1byte(uchar wdata) {

uchar i;

27

SDA_H; delay(); SCL_H; delay(); SCL_L; delay();

SDA_L; delay(); SCL_H; delay(); SCL_L; delay();

}

/******************************************* 函数名称:read1byte

功 能:从IIC总线读取一个字节 参 数:无

返回值 :读取的数据

********************************************/ uchar read1byte(void) {

uchar rdata = 0x00,i; for(i = 0;i < 8;i++) { }

28

for(i = 8;i > 0;i--) { } SDA_H; _NOP();

if(wdata & 0x80) write1(); else

write0();

wdata <<= 1;

uchar flag;

SDA_H; delay(); SCL_H; delay(); flag = SDA_val; rdata <<= 1;

if(flag) rdata |= 0x01; SCL_L; delay();

SDA_in;

SDA_out;

return rdata;

}

void Confige1115(uchar channel) {

uchar a_channel; switch (channel) {

case 0:a_channel=0xC0;break; case 1:a_channel=0xD0;break; case 2:a_channel=0xE0;break; case 3:a_channel=0xF0;break; default: break; } start();

write1byte(address); ack();

write1byte(config); ack();

write1byte(a_channel); ack();

write1byte(Lsiwei); ack(); stop(); }

uint read1115() {

uchar result_l,result_h; uint result; start();

write1byte(address); ack();

write1byte(conversion); ack(); stop(); delay_ms(5);

29


锁相放大器设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:道路排水工程施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: