养鸡场智能监控系统设计_第1页
养鸡场智能监控系统设计_第2页
养鸡场智能监控系统设计_第3页
免费预览已结束,剩余34页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、内容摘要养鸡场在现代社会中占据着重要的作用, 用它有效地控制温度、光照、 湿度、气体浓度等是改变鸡禽生长环境、为鸡禽生长创造最佳条件、避免 外界四季变化和恶劣气候对其影响的前提。本设计以STC89C5单片机为核心完成了对空气温度、湿度、光照度 进行数据的采集、处理、显示等系统的基本框图和工作原理控制的设计的 工作。主要内容有:(1)通过数字温湿度传感器 DHT11采集实时温、湿度。(3)通过光敏电阻采集实时光照度。(4)通过气体传感器MQ-2检测室内 是否有某种气体浓度过量。通过以上设计可以对鸡禽生长过程中的环境温度、湿度和光照度进行了实时地、连续地检测、直观地显示。克服了传统的人工测量方法不

2、能进 行连续测量的弊端,节省了工作量,并避免了人为的疏漏或错误造成的不 必要的损失。关键词单片机;温湿度传感器;光敏电阻;气体传感器; LCD第一章概述11.1选题背景11.2 国内外的发展现状 11.3课题内容、目的及思路 21.4设计过程及工艺要求 2第二章系统的总体设计32.1系统设计目标32.2系统的组成和工作原理 32.3 环境参数检测方案的比较和选择 5湿度传感器的选择 5温度传感器的选择 62.3.3 光亮度传感器的选择 8气体传感器的选择 8方案选择总结 9第三章硬件的设计93.1 MCU 选型93.2 湿湿度测量电路 103.3光照度测量电路113.4 数据显示电路 123.

3、5复位电路133.6 气体浓度检测电路 143.7 电源电路14总结致谢错误!未定义书签。参考文献15附录系统源代码16基于单片机的养鸡场温湿度亮度气体监控系统设计第一章概述1.1选题背景现代化禽类养殖中的重要一环就是对养殖环境的一些重要参数进行检测 和控制。例如:空气的温度、湿度、光照强度、二氧化碳含量、土壤的含水 量等。养殖环境与生物的生长、发育、能量交换密切相关,进行环境测控是 实现禽类养殖生产管理自动化、科学化的基本保证,通过对监测数据的分析, 结合生物生长发育规律,控制环境条件,使养殖达到优质、高产、高效的目 的。以养殖鸡禽为代表的现代养殖设施在现代化养殖生产中发挥着巨大的作 用,所

4、以对养殖场的温度、湿度与光照强度等参数的控制就显的非常重要了。传统的方法是用毛发湿度表、酒精温度计等进行人工测量,再对不符合 的温度、湿度、光照度通过在养殖场进行降温、遮光等控制来调节,这种人 工测控的方法费时费力、效率低、且无法保证测量的连续性,测量的误差大、 随机性大,随意性强。为了克服以上几点不足,我们需要一种造价低廉,使 用方便且测量准确的自动测控系统。1.2国内外的发展现状国外的养殖设施己经发展到比较完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件,不利于在我国广 泛地推广,而当今在我国大多数地方对养殖场温度、湿度、光照强度的检测 与控制都采用人工

5、管理,存在着测控精度低、劳动强度大及由于测控不及时 等弊端,容易造成不可弥补的损失,结果不但大大增加了成本,浪费了人力 资源,而且很难达到预期的效果。本系统主要针对养殖场内温度、湿度,光 照强度研制了单片机控制的养殖场自动控制系统 , 综合考虑系统的精度、效率 以及经济性要求三个方面因素之后,最终确定以单片机为控制核心,选用性 价比比较高的传感器,实现对温湿度的精确测量与准确控制,同时又具有价 格低等优点,便于在我国推广。1.3 课题内容、目的及思路本系统主要采用单片机作为系统的控制核心,由养殖场内的空气温度湿 度传感器、光照度传感器采集数据,经过模数转换后送入单片机,由单片机 根据采集的数据

6、做出相应的控制,例如控制继电器的开合,使换气风扇、滴 灌设备、遮阳幕等设备的启动或停止,达到控制养殖场内各项参数的目的。 同时在外接的LCD液晶上显示实时参数,便于观察。1.4 设计过程及工艺要求在本系统中为了保证对温度、湿度和光照度的检测的实时性和准确性, 采用了数字温湿度传感器来检测温、湿度。采用光敏电阻检测光照度。最后 通过单片机处理后显示在 LCD液晶显示屏上,对养殖场的各个参数进行实时 监控,以便及时作出调整,以达到鸡禽生长的环境条件。本系统的基本功能有:检测空气温度、湿度、环境光照度和各气体浓度 情况并显示以上各项参数。第二章 系统的总体设计2.1 系统设计目标本设计的要求是以单片

7、机为控制核心,以湿度传感器、温度传感器、光 敏电阻完成对养殖场内的各项参数进行测量,并将数据输入到单片机中,有 单片机根据所编写的程序,及时将通过各种传感器测的数据实时地显示在液 晶屏上。2.2 系统的组成和工作原理硬件系统主要有信号采集、信号分析、信号处理三个部分组成。(1)信号采集 由湿度传感器、温度传感器、光敏电阻组成。( 2) 信 号分析 由单片机基本系统组成。(3)信号处理 由并行口 LCD夜晶显示屏。单片机通过湿度传感器检测土壤的湿度,若土壤的湿度过低,单片机就 打开滴灌设备的电磁阀一分钟,对作物进行滴灌作业,增加土壤湿度,经过 一段时间,单片机再次检测土壤湿度,如果湿度过高,就关

8、闭滴灌设备的电 磁阀,停止滴灌作业。如果开始检测的土壤湿度在适宜的范围,单片机则维 持现有状态不变。温度传感器韻度传感器养单片=光照传嬴器场机A气体浓度传感器设计的原理框图:2.3 环境参数检测方案的比较和选择湿度传感器的选择单片机作为控制核心,要有被检测信号输入,由单片机处理。如何准确 的确定外围环境的各项参数就显的非常重要。传感器是实现测量与控制的首要环节,是测控系统的关键部件,如果没 有传感器对原始信号进行准确可靠的捕捉和转换,系统就无法实现要求的各 项功能。工业生产过程中的自动化的测量和控制,大部分主要依靠各种传感 器来检测和控制生产过程中的各项参量,使系统工作在最佳的状态下。测量空气

9、湿度的方法有很多种,其原理是根据某种物质从其周围的空气 中吸收水分后引起的物理或化学的性质的变化,间接的获得空气的湿度。电 容式、电阻式和湿涨式湿敏元件分别是根据其高分子材料吸水后的介电常数、 电阻率和体积发生的变化进行湿度的测量。方案一:采用HOS-201湿敏传感器。HOS-201湿敏传感器为高湿度开关传 感器,它的工作电压为交流1V以下,频率为50HZ-1KHZ测量范围为0%- 100%RH工作温度为050C,阻抗在75%RH(2&)时为1MQ。这种传感器主 要用于开关的传感器,不能在宽频域内检测湿度。这种传感器只限于一定范 围内使用时具有良好的线性度。方案二:采用DHT11湿度传感器。D

10、HT11数字温湿度传感器是一款含有 已校准数字信号输出的温湿度复合传感器。传感器包括一个电阻式感湿元件 和一个NTC测温元件并与一个高性能8位单片机相连接,因此该产品具有品 质卓越、超快响应、抗干扰能力强、性价比极高等优点综合比较方案一和方案二,方案一虽然满足精度和测量温度的要求,但 是只是限定于一定的范围内使用时具有良好的线性度。因此,我们选择方案 二作为本设计的湿度传感器。232温度传感器的选择方案一:采用AD590温度传感器。AD590温度传感器是美国模拟器件公司 生产的单片集成两端感温电流源。AD590性能描述:测量范围在 -50C -+ 150C,满刻度范围误差为士 0.3 C,当电

11、源电压在5 10V之间,稳定度为1 %时,误差只有士 0.01 C 。AD590为电流型传感器温度每变化 1C其电流变 化1uA在35C和95C时输出电流分别为 308.2uA和368.2uA。方案二:采用DHT11湿度传感器。DHT11数字温湿度传感器是一款含有已 校准数字信号输出的温湿度复合传感器。传感器包括一个电阻式感湿元件和 一个NTC测温元件并与一个高性能8位单片机相连接,因此该产品具有品质 卓越、超快响应、抗干扰能力强、性价比极高等优点。综合比较方案一和方案二,两方案都可以满足设计所要求的精度温度要 求,但方案一的后续电路复杂,需要经过放大,数模转换等步骤,增加了设 计的复杂度和成

12、本,并需要占用单片机较多的I/O 口。方案二的后续电路简单,占用的I/O 口数量少,为整体设计留出了足够的I/O 口资源。故我们采 用方案二作为本系统的温度传感器。1、传感器性能说明参数条件MinTypMax单位湿度分辨率111%RH16Bit重复性 1%RH精度25C 4%RH0-50C 5%RH互换性可完全互换量程范围0C3090%RH25C2090%RH50 C2080%RH响应时间1/e(63%)25 C,1m/s空气61015S迟滞 1%RH长期稳定性典型值 1%RH/yr温度分辨率111c161616Bit重复性 1c精度 1 2c量程范围050c响应时间1/e(63%)630S2

13、、 接口说明建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。 VDDVDDI 5K1叶MCU -_DHT114PinGND典型应用电路3、电源引脚DHT11的供电电压为3-5.5V。传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDDGND之间可增加一个100nF的电容,用以去耦滤波2.3.3 光亮度传感器的选择方案一:采用光照度传感器M124749该光照度传感器采用先进的电路模块技术开发变送器,用于实现对环境光照度的测量,输出标准的电压及电流 信号,体积小,安装方便,线性度好,传输距离长,抗干扰能力强,量程可 调。但价格昂贵

14、,性价比不高,且不易购买。方案二:采用光敏电阻。光敏电阻的工作原理是当有光线照射时,电阻 内原本处于稳定状态的电子受到激发,成为自由电子,所以光线越强,产生 的自由电子也就越多,电阻就会越小。光敏电阻的优点有内部的光电效应和 电极无关(光电二极管才有关),即可以使用直流电源。 灵敏度和半导体材料、 以及入射光的波长有关,价格低廉,性价比高。比较以上两个方案,方案一虽然具有更好的设计精度和线性度,但性价 比不如光敏电阻好。方案二具有较高的性价比且同时也能满足系统的设计要 求,故采用光敏电阻作为光照度传感器。2.3.4 气体传感器的选择MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二

15、氧 化锡(SnO 2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气 中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为 与该气体浓度相对应的输出信号。 以检测空气中 co 的含量是否在一般情况下。基于本次只是检测空气中一氧化碳含量是否超标,我们经过详细的探讨最终决定使用气体传感器 MQ-2。2.3.5 方案选择总结1)湿度传感器采用DHT11。2)温度传感器采用DHT11。3)光亮度传感器采用光敏电阻4)气体传感器采用MQ-2。第三章 硬件的设计3.1 MCU 选型STC89C52是一种低功耗、高性能 CMOS位微控制器,具有8K在系统可 编程Flash存储器。在单

16、芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解 决方案。具有以下标准功能:8k 字节 Flash, 512字节 RAM, 32 位 I/O 口线,看门狗定时器,内置4KB EEPRQMMAX81C复位电路,三个16位 定时器/计 数器,全双工串行口,最高运作频率 35MHZ它是MCS-51系列单片机的派生 产品,在指令系统、硬件结构和片内资源上与标准 8052单片机完全兼容, DIP40 封装系列与 8051 兼容均为 Pin-to-Pin ,使用时容易掌握;高速、低功耗、价格低、稳定可靠、应用广泛、通用性强,在系统 /

17、在应 用可编程 (ISP, IAP) ,不占用户资源。STC89C5单片机管脚如图3-1 :葺r m i 1esiH-K-* e三:K.-j-nz - :!-图3-1 STC89C52单片机管脚定义图3.2湿湿度测量电路DHT1数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。 传感器包括一个电阻式感湿元件和一个 NT(测温兀件,并与一个咼性能8位单片机相连接。因此该产品具有品质卓越、 超快响应、抗干扰能力强、性价比极高等优点。每个 DHT1传感器都在极为 精确的湿度校验室中进行校准。校准系

18、数以程序的形式储存在0T内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接 口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可 达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。图3-2温湿度测量电路3.3光照度测量电路系统采用价格低廉的光敏电阻测量光照度,因其没有良好的线性度,所 以只能大致的测量。根据光敏电阻在不同的光照下有不同的阻值,经过 A/D 转换后输入到单片机内进行处理。图3-3光敏传感器连接电路3.4 数据显示电路12864引脚说明:1 VSS- 模块的电源地2

19、 VDD- 模块的电源正端3 V0-LCD 驱动电压输入端4 RS(CS)H/L 并行的指令 / 数据选择信号;串行的片选信号5 R/W(SID)H/L 并行的读写选择信号;串行的数据口6 E(CLK)H/L 并行的使能信号;串行的同步时钟7 DB0H/L 数据 08 DB1H/L 数据 19 DB2H/L 数据 210 DB3H/L 数据 311 DB4H/L 数据 412 DB5H/L 数据 513 DB6H/L 数据 614 DB7H/L 数据 715 PSBH/L并/串行接口选择:H-并行;L-串行16 NC空脚17 /RETH/L复位低电平有效18 NC空脚19 LED_A-背光源正

20、极(LED+5V20 LED_K背光源负极(LED-OV逻辑工作电压(VDD):4.55.5V电源地(GND):0V图3-4LCD12864与单片机的连接电路图3.5复位电路为了确保系统中的电路温度可靠工作, 复位电路是必不可少的部分 ,其 第一功能就是高电平复位,高电平复位是在通电瞬间通过充电来实现的。手 动复位是指通过接通一按键开关,使单片机进入复位状态。系统上电运行后, 如果需要复位,只需通过手动复位就可以实现。本系统使用的复位电路如图3-7所示:图3-5复位电路图3.6气体浓度检测电路图3-6气体检测电路3.7电源电路由于STC89C52勺工作电压为+5V,所以电源需要输出+5V稳定电

21、压可以使单片机可以稳定正常的工作,电源电路如图3-9所示:图3-电源电路总体电路图:参考文献1 梅晓榕,柏桂珍,张卯瑞自动控制元件及线路M.北京:科学出版社,20072 张义和,王敏男,许宏昌,余长春例说51单片机(C语言版)M.北京:人民邮电出版社,2010,63 胡汉才单片机原理与接口技术M.清华大学出版社,1996.4 黄贤斌,郑筱霞传感器原理与应用M.北京:高等教育出版社成都:电子科技大学出版社,2004,3(2009.1 重印)5 何立民单片机应用系统设计M.北京:北京航天航空出版社.1990,50-4906 刘笃仁,韩保君传感器原理及应用技术M.机械工业出版社.2003,87 王勇

22、等 . 凌阳单片机原理及其毕业设计精选 M. 科学出版社8 童诗白 . 模拟电路基础 M, 北京 : 高等教育出版社 ,20019 马忠梅,籍顺心,张凯等.单片机的C语言应用程序设计M.北京航天航空大学出版社,200310 美M考夫曼,AH塞得.电子计算手册M.国防科技出版社.11 王毅.单片机器件应用手册 M. 北京:人民邮电出版社 ,199412 谭浩强C程序设计(第二版)清华大学出版社,1999年12月。附录系统 源代码#includecodeunsignedcharwendu= 温 度#include /Keil library;#include /Keil librarycodeun

23、signedcharshidu= 湿 度#includeRH;codeunsignedcharguangzhao= 光 照LM;#include 12864.h code unsigned char Aboutme= 智能养鸡场#include bh1750.h ;#include main.h#include DHT11.hU16 a,b,t;U8 flag,i;#defineBCD2DEC(X) U8 temp_fordh112;(X&0x70)4)*10+(X&0x0f)#define DEC2BCD(X) (X/10)4|(X%10)void delay_nms(unsigned in

24、t k);void main()void GUI_init(void);/ 毫秒延时*float temp;delay_nms(200); / 延时 200ms/ 初始化 LCDInit_BH1750(); / 初始化 BH1750LCDInit();Single_Write_BH1750(0x01); / power onSingle_Write_BH1750(0x10);GUI_init();while(1) /循环void delay_nms(unsigned int k)unsigned int i,j;for(i=0;ik;i+)for(j=0;j121;j+);void wendu

25、_fuhao(void)WriteCommandLCD(0x86 ,0);WriteDataLCD(0xa1);WriteDataLCD(0xe6);unsigned char temp_for_gz5; t=0;flag=0;P1_0=1;P2=0xff;Delay(40);void GUI_init(void)DisplayListChar(0,1,wendu);DisplayListChar(0,2,shidu);DisplayListChar(0,3,guangzhao);DisplayListChar(0,4,Aboutme); wendu_fuhao();RH();WriteCom

26、mandLCD(0x83,0); temp_fordh110=(U8T_data_H)/10; temp_fordh111=(U8T_data_H)%10;WriteDataLCD(0x30+temp_fordh110);WriteDataLCD(0x30+temp_fordh111);WriteCommandLCD(0x93,0);宏定义char X,temp_fordh110=(U8RH_data_H)/10; temp_fordh111=(U8RH_data_H)%10; WriteDataLCD(0x30+temp_fordh110);WriteDataLCD(0x30+temp_fo

27、rdh111);delay_nms(180); / 延时180msMultiple_Read_BH1750(); / 连续读出数据,存储在BUF中dis_data=BUF0;dis_data=(dis_data0;a-)for(b=110;b0;b-);void Delay5Ms128(void)unsigned int TempCyc = 5552; while(TempCyc-);void Delay400Ms(void)unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; wh

28、ile(TempCycB-);*void WriteDataLCD(unsigned char WDLCD) /ReadStatusLCD(); / 检测忙LCD_RW = 0;LCD_Data = WDLCD;LCD_RS = 1;LCD_E=0;delay_for12864(20);LCD_E=1;delay_for12864(20);LCD_E = 0;*void WriteCommandLCD(unsignedWCLCD,BuysC) /BuysC 为 0 时忽略忙检测/if (BuysC) ReadStatusLCD(); / 要检测忙char根据需LCD_RW = 0; LCD_D

29、ata = WCLCD;LCD_RS = 0;LCD_E=0; delay_for12864(20);LCD_E =1; delay_for12864(20);LCD_E=0;初始化*读数据*unsigned char ReadDataLCD(void) unsigned char LCDDA;LCD_RS = 1;LCD_RW = 1;LCD_E = 1;LCD_E = 1;LCDDA=LCD_Data;LCD_E = 0;return(LCDDA);*读状态*void LCDInit(void)Delay5Ms128();LCD_E=1;LCD_E=0;LCD_E=1;WriteComma

30、ndLCD(0x30,0); / 显示模式设置 开始要求每次检测忙信号Delay5Ms128();WriteCommandLCD(0x30,0);Delay5Ms128();WriteCommandLCD(0x0C,1); / 显示开及光 标设置Delay5Ms128();Delay5Ms128();WriteCommandLCD(0x01,1); / 显示清屏WriteCommandLCD(0x06,1); / 显示光标移 动设置unsigned char ReadStatusLCD(void)*显示开及光LCD_Data = 0xFF;LCD_RS = 0;LCD_RW = 1;LCD_E

31、 = 1;LCD_E = 1;while (LCD_Data & Busy); / 检测忙信号LCD_E = 0; return(1);* void LCDClear(void)WriteCommandLCD(0x01,1); / 显示清屏WriteCommandLCD(0x34,1); / 显示光标移 动设置WriteCommandLCD(0x30,1); /标设置16,Y 不能大于 1*闪烁效果*void LCDFlash(void)WriteCommandLCD(0x08,1); / 显示清屏Delay400Ms();WriteCommandLCD(0x0c,1); /显示开及光标设置D

32、elay400Ms();WriteCommandLCD(0x08,1); / 显示清屏Delay400Ms();WriteCommandLCD(0x0c,1); /显示开及光标设置Delay400Ms();WriteCommandLCD(0x08,1); / 显示清屏Delay400Ms();/* 按 指 定 位 置 显 示 一 个 字 符*/void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData1, unsigned char DData2)if(Y4)/DisplayOneChar(0,1,0xD0

33、)Y=4;X &= 0x0F; / 限制 X 不能大于switch(Y)case 1:X|=0X80;break;case 2:X|=0X90;break;case 3:X|=0X88;break;case 4:X|=0X98;break;WriteCommandLCD(X, 0); / 这里不检测忙信 号,发送地址码WriteDataLCD(DData1);WriteDataLCD(DData2);/* 按 指 定 位 置 显 示 一 串 字 符 */void DisplayListChar(unsigned char X, unsigned char Y, unsigned char co

34、de *DData)unsigned char ListLength,X2;ListLength = 0;X2=X;if(Y4)Y=4;X &= 0x0F; / 限制 X 不能大 于 16 , Y 在 1-4 之内switch(Y)case 1:X2|=0X80;break; / 根据行数来选 择相应地址case 2:X2|=0X90;break;case 3:X2|=0X88;break;case 4:X2|=0X98;break;WriteCommandLCD(X2, 1); / 发送地址 码while (DDataListLength=0x20)/ 若到达字串尾则退出if (X = 0x

35、0F)/X 坐标应小于 0xFWriteDataLCD(DDataListLength);ListLength+;X+;Delay5Ms128();#endif#ifndef _BH1750_H#define _BH1750_H#define SlaveAddress 0x46#define uchar unsigned char#define uint unsigned intsbitSCL=P2A3; IIC时钟引脚定义sbitSDA=P2A4; /IIC数据引脚定义typedefunsigned char BYTE;typedef unsigned short WORD;BYTE BUF

36、8;uchar ge,shi,bai,qian,wan; / 显示变量int dis_data;void conversion(int temp_data);void Init_BH1750(void);voidSingle_Write_BH1750(ucharREG_Address);/单个写入数据voidMultiple_Read_BH1750();/ 连续的读取内部寄存void BH1750_Start(); 起始信号/void BH1750_Stop(); 停止信号/void BH1750_SendACK(bit ack); / 应答 ACKbit BH1750_RecvACK();/

37、读 ackvoid BH1750_SendByte(BYTE dat);/IIC 单个字节写BYTEBH1750_RecvByte();/IIC 单个字节读void conversion(int temp_data) /数据转换出 个,十,百,千,万wan=temp_data/10000+0x30 ;temp_data=temp_data%10000;/ 取余 运SCL = 1;/算 算线qian=temp_data/1000+0x30 ;Delay5us();/temp_data=temp_data%1000; /取余运SDA = 0;/算 算沿bai=temp_data/100+0x30

38、;Delay5us();/temp_data=temp_data%100; /取余运SCL = 0;/算 算线shi=temp_data/10+0x30 ;temp_data=temp_data%10; /取余运算/*ge=temp_data/1+0x30;停止信号*/void Delay5ms()void BH1750_Stop()WORD n = 560;SDA = 0;/线拉高时钟延时产生下降延时拉低时钟while (n-);SCL = 1;/线void Delay5us()Delay5us();/SDA = 1;/沿_nop_();_nop_();_nop_();_nop_();Del

39、ay5us();/_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();拉低数据拉高时钟 延时产生上升延时_nop_();_nop_();_nop_();_nop_();/*起始信号*/void BH1750_Start()SDA = 1; / 拉高数据 线/* 发送应答信号入口参数 :ack (0:ACK 1:NAK) */ void BH1750_SendACK(bit ack) SDA = ack; /号写应答信SCL = 1;/拉高时钟线dat = 1;/移出数据Delay5us();/延时的最高位SCL = 0

40、;/拉低时钟SDA = CY;/送数据口线SCL = 1;/拉高时钟Delay5us();/延时线Delay5us();/延时SCL = 0;/拉低时钟/*线接收应答信号Delay5us();/延时*/bit BH1750_RecvACK()BH1750_RecvACK();SCL = 1;/拉高时钟线/*Delay5us();/延时从 IIC 总线接收一个字节数据CY = SDA;/读应答信*/号BYTE BH1750_RecvByte()SCL = 0;/拉低时钟线Delay5us();/延时BYTE i;BYTE dat = 0;return CY;SDA = 1;/使能内部上拉, 准备读取数据J/*for (i=0; i8;i+)/8位计数器向 IIC 总线发送一个字节数据dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论