- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南京邮电大学 自动化 学院
实 验 报 告
实验名称: 光强测试系统
课程名称: 测控技术与仪器专业综合实验
所在专业: 测控技术与仪器
学生姓名: 方川
班级学号:
任课教师: 戎舟
2014 /2015 学年第 二 学期
摘要:本系统通过51单片机和虚拟仪器技术实现了光强测试及检测系统。传统光强测试系统由光敏元件和多级放大电路构成,因为外部环境的干扰和系统内部噪声、温漂的存在,系统的可靠性大大降低。本系统采用一种数字光强传感器模块,采用集成单片测光芯片BH1750FVI,该芯片采用IIC数据总线进行通信。51单片机通过IIC总线读得当前光强数据后,通过串口发送给LabVIEW上位机,以实现对光强进行实时监测。
关键词:BH1750FVI 51单片机 LabVIEW I2C总线 串口
实验地点:教5-214 实验学时:6
实验目的
1.理解光强测试系统所用传感器的原理,掌握光强测试系统所用模块的使用。
2.掌握单片机和上位机LabVIEW的串口通信。
实验内容
采用光强测试系统实现一基于单片机和虚拟仪器技术的光强测试系统,单片机接收数据后通过串口传至上位机,在LabVIEW中实现数据的实时显示和存储等功能。
三、实验设备
(1)计算机 1台
(2)SL-1型51单片机综合实验箱 1台
(3)光强度传感器BH1750FVI 1个
四、实验硬件原理
1.系统结构
图4.1 系统硬件框图
2、光强传感器BH1750FVI
a.硬件结构
不区分光源数字型环境光强度传感器BH1750FVI是日本RHOM株式会社近些年推出的一种两线式串行总线接口的集成电路,可以根据收集的光线强度数据来进行环境监测,其具有1~65 535 lx的高分辨率,可支持较大范围的光照强度变化。BH1750FVI结构框图如图2所示。
图4.2 BH1750FVI结构框图
从结构框图可容易看出,外部光照被接近人眼反应的高精度光敏二极管PD探测到后,通过集成运算放大器将PD电流转换为PD电压,由模数转换器获取16位数字数据,然后被逻辑和IC界面进行数据处理与存储。OSC为内部的振荡器提供内部逻辑时钟,通过相应的指令操作即可读取出内部存储的光照数据。数据传输使用标准的I2C总线,按照时序要求操作起来也非常方便。
传感器模块实物图如图4.3所示。
图4.3 传感器模块实物图
传感器与51单片机电路连接图如图所示
图4.4 电路连接图
图4.5 设备地址
b.指令集
指令集的指令由控制器发给BH1750,先发模块的写地址,然后发指令。
图4.6 测量模式说明
图4.7 3种测量模式参数
本系统采用H分辨率模式,实际值与测量值关系如下式。
高分辨模式:实际值=测量值*(69*X)/1.2
高分辨模式2:实际值=测量值*(69*X)/(1.2*2)
其中69:MT寄存器默认值(十进制)。MT寄存器可以调整测量的灵敏度,值为31时,灵敏度最低。
3、51单片机
51单片机资源与IIC总线程序不再赘述,见电子稿附件。
4、LABVIEW VISA串口通信
VISA串口通信模块程序采用范例,不再赘述,见电子稿附件。
五、软件程序
1、单片机C程序设计
这里面只上主函数程序,其他子函数见电子稿。
void main()
{
float temp;
delay_nms(200); //延时200ms
Init_UART(); //9600-N-1-8-1
while(1) {
Init_BH1750(); //初始化BH1750
delay_nms(180); //延时180ms
Multiple_Read_BH1750(); //连续读出数据,存储在BUF中
dis_data=BUF[0];
dis_data=(dis_data8)+BUF[1];//合成数据
temp=(float)dis_data/Conversion_Parram;
UART_Send_Data(temp);
}
}
2、La
文档评论(0)