资源简介
一一份在MSP430F149上完美运行的1750驱动,经过项目严格测测试
代码片段和文件信息
#include
#include “SysDelay.H“
#include “BH1750.H“
unsigned int Lignt_Value; //存储读取光照数据
unsigned char Lignt[5]={0}; //存放各位分离数据
unsigned char BH_LossFlag; //BH1750损坏或者连接异常标志
void Start_BH1750(void) //开始BH1750总线
{
DATA_OUT; //设置输出
CLK_OUT;
DATA_OUT1 ;
_NOP();_NOP();
CLK_OUT1 ;
delay_us(4); //~5us
DATA_OUT0 ;
delay_us(4);
CLK_OUT0 ;
_NOP();
}
void Stop_BH1750(void) //结束BH1750总线
{
DATA_OUT0 ;
_NOP();
CLK_OUT1 ;
delay_us(4); //~5us
DATA_OUT1 ;
delay_us(4); //~5us
CLK_OUT0 ;
}
void MS_ACK(unsigned char ack1) //主机向从机发确认信号
{
DATA_OUT;
if(ack1)
DATA_OUT1; //发送高电平
else
DATA_OUT0; //确认信号为低电平
CLK_OUT1 ;
delay_us(4);
CLK_OUT0 ;
delay_us(4); //~5us
}
/*接收从器件的应答信号
ACK=0 接收到应答信号
ACK=1;接收信号失败
*/
unsigned char SM_ACK( void )
{
unsigned char ack;
CLK_OUT1 ; //拉高时钟线
delay_us(4);
DATA_IN ; //数据线设置为输入
ack=BH1750_OUT_DATA; //接受输入数据
CLK_OUT0 ; //拉低时钟线
delay_us(4);
DATA_OUT ; //数据线重新设置为输出
return ack;
}
/*
功能 :向I2C总线写入字节(数据或命令字)
参数 :COM
返回值 :ACK应答 是否写入成功
0: 成功 1:失败
*/
unsigned char Write_BYTE_I2C( unsigned char Com)
{
unsigned char iack;
for(i=0; i<8; i++) //8位循环
{
if(Com&0x80) //发送高电平
DATA_OUT1;
else
DATA_OUT0; //发送低电平
Com<<=1; //右移一位
CLK_OUT1 ; //拉高
delay_us(5);
CLK_OUT0 ; //拉低
delay_us(5);
}
ack=SM_ACK(); //接收从器件应答 //写完之后要接受从器件应答信号
return ack;
}
/*
功能 :从I2C读取一个字节
参数 :无
返回值 :读取的数据Data
*/
unsigned char Read_BYTE_I2C(void)
{
unsigned char iData ;
for(i=0; i<8;i++) //8位循环
{
DATA_IN ; //数据线设置为输入
CLK_OUT1 ; //拉高
delay_us(5);
Data<<=1;
if(BH1750_OUT_DATA) //读到高电平
Data|=1; //相应的位置高
CLK_OUT0 ; //拉低时钟线
delay_us(5);
DATA_OUT ; //数据线重新设为输出
}
return Data ; //
}
/*
功能 :向BH1750写一个字节
参数 :Data
返回值 :无
*/
unsigned char Write_BYTE_BH1750(unsigned char Addr_Or_Data)
{
unsigned char Error=0;
Start_BH1750(); //起始总线信号
Error+=Write_BYTE_I2C(SlaveAddress); //发送设备地址+写信号(0)
Error+=Write_BYTE_I2C(Addr_Or_Data); //写入数据(写入的是对应的指令)
Stop_BH1750(); //结束I2C总线
return Error ;
}
/***************************************************************************
向BH1750中写多个字节
A
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1939 2013-04-20 16:48 新建文件夹\BH1750.H
文件 6954 2013-04-22 18:17 新建文件夹\BH1750.c
目录 0 2013-06-14 20:46 新建文件夹\
- 上一篇:STM32一步一步教你点亮流水灯
- 下一篇:汇编课设矩阵相乘运算
相关资源
- 用8位spi实现16位spi
- 基于MSP430单片机的实时多任务操作系
- MSP430系列单片机例程(msp430f235)
- MSP430控制AD9850产生频率可调的方波及
- msp430f449程序
- 基于MSP430的数控直流电压源
- MSP430F5438A Timer_B 操作实验
- MSP430F5438 UCS 时钟操作实验
- MSP430F5438A Timer_A 操作实验
- MSP430F5438 看门狗实验
- IAR EW430连接仿真器在线仿真
- 初识畅学系列MSP430F149单片机开发板
- 畅学多功能实验箱 MSP430F5438 RTC 操作实
- MSP430F5438A RAM操作实验
- msp430f5438a技术资料
- MSP430 JTAGUSB的和并口的与目标板连接的
- MSP430教程:MSP430单片机ADC12模块
- WIA-PA网络技术在井下人员定位系统中
- 16位MSP430单片机的开关稳压电源设计
- 基于mps430f149的12864液晶显示模块编程
- MSP430F5529移植modbus
- MSP430详细教程
- MSP430信号发生器.rar
- MSP430F5529 例程源码
- msp430驱动fdc2214
- 郭天祥十天学会msp430单片机配套所有
- MSP430中文手册
- 基于MSP430的逐日系统设计
- MSP430F149中文英文用户指南和英文数据
- 基于MSP430和NRF24L01的封闭环境检测系统
评论
共有 条评论