




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用技术学院本 科 毕 业 论 文题 目: 年 级: 专 业: 班 号: 学 号: 学生姓名: 指导教师: 职 称: 论文提交日期: 年 月 日基于51单片机的温湿度及气压检测系统苏州大学 应用技术学院 XX班级(学号#) 姓名目 录摘 要3Abstract3第一章 引 言4第1.1节 研究的背景和意义4第1.2节 国内外的研究现状4第1.3节 任务及目标6第二章 硬件方案介绍6第2.1节 主控芯片选择6第2.2节 显示模块选择7第2.3节 温湿度传感器介绍8第2.4节 气压传感器介绍8第2.5节 语音芯片的介绍9第三章 硬件电路设计9第3.1节 STC89C51单片机系统设计9第3.2节 LCD1602液晶显示电路设计12第3.3节 DHT11温湿度传感器电路设计14第3.4节 BMP085气压传感器电路设计15第3.5节 语音芯片电路设计16第3.6节 系统硬件电路总设计17第四章 软件设计17第4.1节 主程序介绍18第4.2节 LCD1602显示程序设计19第4.3节 DHT11温湿度采集程序设计22第4.4节 BMP085气压采集程序设计27第4.5节 语音芯片驱动程序设计33第五章 系统调试33第六章 结论33参考文献35致谢36摘要 本次毕业设计将单片机作为研究课题,主要任务及目标为:掌握单片机技术原理,运用单片机进行单片机设计,来进行温度、湿度、气压检测并实现语音播报功能。完成这项设计有利于存储各类对温湿度气压有一定要求的产品,例如粮食的保管运输等,此设计可以在不利于粮食存储的季节提供一项保护措施。AbstractIn recent years, the rapid development of the microcontroller, the most obvious advantage is that you can be embedded microcontroller various instruments, devices. Embedded systems are currently a large number of single-chip computer. Our vast land, different environments require different storage temperature and humidity climate products do a good job of adjusting measures pressure to better preservation.The graduation project will SCM as a research topic, the main task and goal: to master the principle of single-chip technology, the use of single-chip microcontrollers designed for temperature, humidity, air pressure detecting and voice broadcast feature. Complete the design is conducive to all kinds of storage temperature and humidity pressure certain requirements for products, such as food storage and transportation, this design provides a safeguard against food stored in the season. 第1章 引言第1.1节 研究的背景和意义 在我们的生活中,我们有时候必须时刻关注环境的变化,只有把握好不同变化,我们才可以更好地生存和发展。例如,在一些植物育种,生长家畜,以及温度和湿度是分不开的,它们只在适当的情况下,在适当的温度和湿度,以生长较快,我们可以得到更大的效益。温度和湿度的更精确的测量是在生物制药,食品加工,造纸等行业的关键。总之,无论在日常生活或在工业,农业是从环境温度和湿度的测量是分不开的。因此,温湿度控制和测量的研究具有十分重要的意义。 由于传感器可以将多种物理、化学和生物量和其它信号转换成电信号,使人们可以利用计算机实现自动测量、信息处理和自动控制。传感器用于测量和控制系统,它的性能会间接的影响系统的性能。因此,我们必须掌握各类传感器的结构、原理和性能指标。通过分析了解将传感器和信息通信和信息处理相结合,适应传感器发生产,研发和应用。温湿度传感器的发展速度快,应用范围非常广泛,而且有很大的发展潜力,以提高认识和理解的传感器,特别是在深入研究了温度和湿度传感器后,基于实时、准确和广泛的原则进行了设计。 这种设计的是基于微控制器STC89C52的温湿度以及气压检测的控制系统,主要应用DHT11温湿度传感器作为温度和湿度数据的采集芯片,以BMP08高精度气压传感器作为气压数据的采集,这两个传感器具有测量精度高、硬件电路简单、数据传输方便、可测试不同环境温湿度和气压的特点。另外和控制电路相连,可以进行阈值的控制,使温度和湿度以及气压参数在预先设定的范围内,不需要人的直接参与。第1.2节 国内外的研究现状智能温度传感器在1990年代中期,是微电子技术、计算机技术和自动测试技术的结晶。目前,世界上已经开发了各种各样的智能温度传感器系列产品。智能温度传感器内部包含一个温度传感器,A / D转换器和信号处理器,内存(或注册)和接口电路。一些产品有多个选择器、中央控制器的随机存取存储器RAM和ROM罗智能温度传感器可以输出温度数据及相关的温度控制,适合各种微控制器可以实现通过软件和测试功能,温度计越来越智能。湿度测量湿度传感器产品属于工业在90年代的崛起。湿度传感器主要分为两种类型的电阻和电容的基本形式产品是形成于衬底层水分湿膜材料。空气中水蒸气吸附水分材料后,组件的阻抗,介电常数变化很大,从而使水分传感器。近年来,国内外在该领域研究和发展的湿度传感器取得了更大的发展。湿度传感器从简单的湿敏元件集成、智能化、多参数检测的方向迅速发展。每个厂家都有不同程度的湿度传感器产品在国内外,质量价格差异较大,用户如何选择理想的最优性价比的产品有一定的困难,在这方面需要有一个了解。现在,有很多国内外湿度传感器在国内市场产品,电容式聚合物,氯化锂和金属氧化物。湿度传感器。近年来,国内外在该领域研究和发展的湿度传感器取得了更大的发展。湿度传感器从简单的湿敏元件集成、智能化、多参数检测的方向迅速发展。每个厂家都有不同程度的湿度传感器产品在国内外,质量价格差异较大,用户如何选择理想的最优性价比的产品有一定的困难,在这方面需要有一个了解。现在,有很多国内外湿度传感器在国内市场产品,电容式聚合物,氯化锂和金属氧化物。测量温度和湿度的关键是温度和湿度传感器。测量温度和湿度是分开的。随着技术的进步和人民生活的需要测量的温度和湿度传感器。温度传感器的发展经历了三个阶段:传统的离散温度传感器、模拟集成温度传感器,智能集成温度传感器。当前,国际新型温度传感器从模拟到数字,集成开发智能和网络的方向。温度和湿度传感器也逐渐经历了这样一个阶段数字智能化。温度和湿度检测系统在国内产业发展水平不高,仍然得到了广泛的应用,但随着国内生产的温度和湿度探测器发展水平还不高,相比之下,日本,美国,德国和其他发达国家,仍有很大差距。进入21世纪后,尤其是中国加入世贸组织后,国内产品面临着巨大的挑战。行业,特别是传统行业迫切需要应用电子技术,自动控制技术来改革和完善。如纺织品、温度和湿度是影响质量的重要因素纺织品,纺织企业但对于温度和湿度控制措施还很粗糙,很落后,和绝大多数仍在使用干湿球温度计,利用人工观察,人工调节阀门,风扇,其控制效果。所以基本上在制药行业。在食品工业中,主要通过经验,很少人使用温度和湿度传感器。第1.3节 任务及目标 近年来单片机的快速发展,单片机最明显的优势就是可以嵌入到各种仪器、设备。目前很多嵌入式系统采用单片机。在我国不同区域、环境气候产品存储需要空气压力调节温度和湿度,以更好的保护。 本次毕业设计将单片机作为研究课题,主要任务及目标为:掌握单片机技术原理,运用单片机进行单片机设计,来进行温度、湿度、气压检测并实现语音播报功能。完成这项设计有利于存储各类对温湿度气压有一定要求的产品,例如粮食的保管运输等,此设计可以在不利于粮食存储的季节提供一项保护措施。第2章 系统总体方案介绍第2.1节 主控芯片选择方案一:采用AT89C51单片机。AT89C51单片机是一种带4 k字节的闪存(FPEROM - FLASH编程和可擦只读存储器)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C51单片机是一种带2 k字节flash可编程单片机可擦除只读存储器(ROM)的单片机可擦除只读存储器反复1000次。该设备采用ATMEL高密度非易失存储器制造技术,和行业标准的MCS - 51指令集和输出管脚兼容。由于多功能8位CPU和闪存在单一芯片,ATMEL AT89C51单片机的结合是一种有效的微控制器,AT89C2051的精简版本。AT89C51单片机为许多嵌入式控制系统提供了一个高灵活性和低价格。AT89C51单片机不支持ISP(在线更新),和四个时钟周期完成一个指令周期,处理速度较慢,适用于实时性要求不高的系统。方案二:使用STC89C52单片机,STC89C52 STC公司生产一种低功耗,高性能CMOS8单片机,8 k在系统可编程闪存。STC89C52使用古典MCS - 51内核,但是做了很多的改进与传统没有51单片机芯片的功能。在单个芯片上,具有灵活的8位CPU和在系统可编程Flash,让许多STC89C52嵌入式控制应用程序高灵活和有效的解决方案。具有以下功能:标准8 k字节Flash,512字节的内存,32个I / O端口线,看门狗定时器,内置的4 KB EEPROM,MAX810复位电路,三个16位定时器/计数器,4个外部中断,一个向量7年级4中断结构(5向量与传统51兼容2级中断结构),全双工串行端口。除了STC89C52静态逻辑运算可以减少到0赫兹,支持两种类型的软件可以选择节电模式。空闲模式下,CPU停止工作,允许内存,定时器/计数器,一个串行端口,继续工作。掉电保护,RAM的内容保存,振荡器是冻的,单片机停止所有工作,直到下一个中断或硬件复位。35 MHZ操作频率最高,6 t / 12 t是可选的。 综合本系统需要满足的技术指标以及硬件设计的性价比我们选择方案二。第2.2节 显示模块选择方案一:数码管。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。(1)静态显示驱动 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要58=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 (2)动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的。数码管亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定,从而得到了广泛的应用,但对于温湿度的显示不太方便,而且连线复杂。方案二:采用1602液晶屏。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。1602具有轻薄短小、低压微功耗、体积小、无辐射、平面直角显示及影像稳定不闪烁等优点,且可视面积大、效果好、分辨率高、抗干扰能力强,适合用于显示字母、数字、符号等信息,而且不需要扩展过多外围电路,可由单片机直接进行控制输出显示。相对而言,液晶显示器显示质量高、体积小、功耗低等特点,而且其电路设计简单,操作更加方便。因此我们选择方案二。第2.3节 温湿度传感器介绍 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。第2.4节 气压传感器介绍 BMP085是一款高精度、超低功耗的数字气压传感器,采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,适合应用于移动设备中。它由电阻式压力传感器、AD转换器、控制单元组成,其中控制单元包括E2PROM和12c接口,可以通过12C总线直接与各种微处理器连接通信。BMP085的E2PROM存储11个校准系数,这些校准系数用于对气压传感器进行温度补偿,从而减少周围环境对其造成的误差。BMP085的压强测量范围在3001100 hPa(海拔高度一500 m9 000 m),温度测量范围在一4085,符合产品开发与应用的需求。值得一提的是,本研究所测量的气压和温度的数据精度都是传感器内部硬件数模电路已实现的,数据精度分别为0.01 hPa和0.1 oC。第2.5节 语音芯片的介绍第3章 硬件电路设计第3.1节 STC89C51单片机系统设计 STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。3.1.1 STC89C52 引脚功能 STC89C52RC引脚功能说明:VCC(40引脚):接电源。VSS(20引脚):接地。 P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。 P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。 P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVXDPTR”指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行“MOVXR1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。(29引脚):外部程序存储器选通信号,是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。3.1.2 复位电路 本系统复位模块采用的是上电复位。复位电路利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,当你进行完了一个题目的计算后肯定是要清零的是吧!或者你输入错误,计算失误时都要进行清零操作。以便回到原始状态,重新进行计算。上电复位电路就是上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST端为低电平,程序正常运行。RST引脚的高电平只要能保持两个机器周期以上的高电平,单片机就可以进行复位操作。复位电路的电路图如图3.1.2所示。图3.1.2 复位电路 复位电路接单片机的I/O口第九脚RST脚,进行上电复位,当RST引脚的高电平只要能保持两个机器周期以上的高电平,单片机就可以进行复位操作。3.1.3 时钟电路 时钟电路用于产生单片机工作时所必须的时钟控制信号,单片机的内部电路在时钟信号的控制下,严格的执行指令进行工作,在执行指令时,CPU首先要到程序存储器中取出所需要的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两类,一类用于片内对各个功能部件的控制,另一类用于对片外存储器或I/O端口的控制。 单片机各功能部件的运行都是以时钟信号为基准,有条不紊地一拍一拍地工作,因此时钟频率直接影响单片的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟设计电路有两种方式,一种是内部时钟方式,一种是外部时钟方式。本文设计应用的是外部时钟,外部时钟方式是使用外部振荡器产生的脉冲信号,本设计采用的是12MHZ的晶振和30PF的电容组成时钟电路。时钟电路的电路图如图3.1.3所示。图3.1.3 时钟电路 时钟电路分别接单片机的第十八和十九脚XTAL1脚和XTAL2脚。第3.2节 LCD1602液晶显示电路设计 液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。单片机可以通过数据总线与控制信号直接采用存储器访问形式、I/O设备访问形式控制该液晶显示模块。本设计采用1602液晶屏,液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,通电后就可以显示出图形、文字。在本设计中,应用1602显示方便且工作稳定。3.2.1 LCD1602引脚功能1602采用标准的16脚接口,其中: 第1脚:VSS为电源地; 第2脚:VCC接5V电源正极; 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度); 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器; 第5脚:RW为读写信号线,高电平1时进行读操作,低电平0时进行写操作; 第6脚:E(或EN)端为使能(enable)端,高电平1时读取信息,负跳变时执行指令; 第714脚:D0D7为8位双向数据端; 第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极。3.2.2 LCD1602与单片机接口 LCD1602的第一个脚接电路板的地。第二脚接电路板的电源。第三脚是显示器对比度调节端,接一个滑动变阻器,滑动变阻器一端接地一端接电源,用来调节液晶显示器的对比度。第四脚是寄存器选择端,接单片机的I/O口P1.1,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚是RW读写信号端,接单片机的I/O口P1.2,高电平1时进行读操作,低电平0时进行写操作。第6脚是E(或EN)端为使能(enable)端,接单片机的I/O口P1.4,高电平1时读取信息,负跳变时执行指令。第714脚是D0D7为8位双向数据端,接单片机I/O口P0,进行数据传输最终显示在显示器上。第15和16脚是空脚或背灯电源,15脚背光正极接电源,16脚背光负极接地。LCD与单片机的接口电路如图3.2.2所示。图3.2.2 LCD1602电路第3.3节 DHT11温湿度传感器电路设计 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。引脚介绍: Pin1:(VDD),电源引脚,供电电压为3-5.5V。 Pin2:(DATA),串行数据,单总线。 Pin3(VDD),接地端,电源负极。(2)接口说明: 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。 DHT11接口图如图3.3所示。单片机P1.6口用来发收串行数据,即数据口。连接传感器的Pin2(单总线,串行数据)。图3.3 DHT11电路 传感器的第一脚是电源脚,接电路板的电源。第二脚是数据端,接单片机的I/O口P3.2,把数据传输到单片机。第三脚是接地端,接电路板的地。第3.4节 BMP085气压传感器电路设计 BMP085是BOSCH(博世)公司生产的新一代数字气压传感器,BMP085的低功耗、低电压的电学特性使它可以很好的适用于手机、PDA、GPS导航器件以及户外装备上。BMP085在低的高度噪声(merely0.25)快速转换的情况下,表现很好。 BMP085采用强大的8脚陶瓷无引线芯片承载(LCC)超薄封装,它性能卓越,具有稳定的电磁兼容性、高精度、线性性以及稳定性,并且内置有校准补偿,绝对精度最低可以达到0.03hPa(0.25米),并且耗电极低,只有3A。气压测量范围从300hPa到1100hPa,换算成高度为海拔9000米到500米。BMP085是基于压阻效应技术的,它共有4个引脚,1脚(VCC)接正电源,2脚(GND)接电源地,3脚(SCL)为IIC的时钟端,4脚(SDA)为IIC的数据端其引脚图如图3.4所示。图3.4 BMP085电路第3.5节 语音芯片电路设计第3.6节 系统硬件电路总设计第4章 软件设计 在完成了系统硬件的设计后,再设计系统软件,首先要建立程序框架的流程图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序,这样能快速准备的进行编程。首先建立主程序框架流程图,弄明白整个系统程序设计,其次再分别设计显示模块、传感器模块和键盘模块的程序,最后在进行整合,形成一个完整的程序。 本系统采用C语言编程。C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。 C语言编程的优点有: (1)简洁紧凑、灵活方便。C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 (2)运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 (3)数据类型丰富。C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 (4)语法限制不太严格,程序设计自由度大。虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。第4.1节 主程序介绍 本系统的整个程序流程是首先上电,系统各部分进行初始化,单片机初始化,液晶显示器初始化等。初始化完成后进行键盘扫描,然后再进行延时一段时间,供传感器采集数据,延时完成后就进行数据的采集并传输到单片机,单片机处理之后传输到液晶显示器,液晶显示器显示温湿度值以及气压值。每过一段时间就就行一次语音播报,接着继续执行数据采集程序。详细程序如下所示:void main() uint s;Init_BMP085();temperature=0;/温度值pressure=0;/压力值height=0;/相对海拔高度值init();LCD1602_Init(); LCD1602_Clear();/清屏for(s=500;s0;s-)LCD1602_WriteString(0,0,wel0);LCD1602_WriteString(0,1,wel1); LCD1602_Clear();/清屏for(s=500;s0;s-)LCD1602_WriteString(6,0,12dz);LCD1602_WriteString(6,1,zhw); LCD1602_Clear();/清屏LCD1602_WriteString(0,0,str1);LCD1602_WriteString(0,1,str2); LCD1602_WriteChar(6,0,0xdf);LCD1602_WriteChar(7,0,0x43); while (1) RH(); shidu_shi=0x30+U8RH_data_H/10; shidu_ge=0x30+U8RH_data_H%10; wendu_shi=0x30+U8T_data_H/10; wendu_ge=0x30+U8T_data_H%10; LCD1602_BMP180();LCD1602_WriteChar(14,0,shidu_shi);LCD1602_WriteChar(15,0,shidu_ge);LCD1602_WriteChar(4,0,wendu_shi); LCD1602_WriteChar(5,0,wendu_ge); 第4.2节 LCD1602显示程序设计 液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告诉模块在哪里显示了字符。1602液晶显示模块可与单片机接口直接连接,无需再加驱动。 LCD1602的显示数据过程是首先液晶初始化,初始化完成后执行延时程序,等待数据的采集,延时完成后LCD会先写入一些指令和显示字符的地址,在这完成后单片机会向LCD发送数据即写数据,数据发送完LCD就会读取写入的地址并显示出来,最后返回。软件流程图如图4.2所示。图4.2详细程序如下所示:/*- 判忙函数-*/bit LCD_Check_Busy(void) DataPort = 0xFF; RS_CLR; RW_SET; EN_CLR; _nop_(); EN_SET;return (bit)(DataPort & 0x80);/*- 写入命令函数-*/void LCD_Write_Com(unsigned char com) while(LCD_Check_Busy(); /忙则等待RS_CLR; RW_CLR; EN_SET; DataPort = com; _nop_(); EN_CLR;/*- 写入数据函数-*/void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); /忙则等待RS_SET; RW_CLR; EN_SET; DataPort = Data; _nop_();EN_CLR;/*- 清屏函数-*/void LCD1602_Clear(void) LCD_Write_Com(0x01); DelayMs(5);/*- 写入字符串函数-*/void LCD1602_WriteString(unsigned char x,unsigned char y,unsigned char *s) if (y = 0) LCD_Write_Com(0x80 + x); /表示第一?else LCD_Write_Com(0xC0 + x); /表示第二行 while (*s) LCD_Write_Data( *s); s+; /*- 写入字符函数-*/void LCD1602_WriteChar(unsigned char x,unsigned char y,unsigned char Data) if(y = 0) LCD_Write_Com(0x80 + x); else LCD_Write_Com(0xC0 + x); LCD_Write_Data( Data); /* 功 能:LCD1602 的初始化函数* 参 数:无* 返回值:无*/void LCD1602_Init(void) LCD_Write_Com(0x38); /*显示模式设置*/ DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); DelayMs(5); LCD_Write_Com(0x38); LCD_Write_Com(0x08); /*显示关闭*/ LCD_Write_Com(0x01); /*显示清屏*/ LCD_Write_Com(0x06); /*显示光标移动设置*/ DelayMs(5); LCD_Write_Com(0x0C); /*显示开及光标设置*/ 第4.3节 DHT11温湿度采集程序设计 DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。具体格式在下面说明,当前小数部分用于以后扩展,出现读出为零。操作流程如下:一次完整的数据传输为40bit,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。 用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。详细程序如下所示: /*/* */*DHT11函数 */* */* */*/void Delay_dht11(uint j) uchar i;for(;j0;j-) for(i=0;i27;i+);void Delay_10us(void)uchar i;i-;i-;i-;i-;i-;i-;void COM(void)uchar i;for(i=0;i8;i+) U8FLAG=2;while(!DHT11_DATA)&U8FLAG+);Delay_10us();Delay_10us();Delay_10us();U8temp=0;if(DHT11_DATA)U8temp=1;U8FLAG=2;while(DHT11_DATA)&U8FLAG+); if(U8FLAG=1)break;U8comdata=1;U8comdata|=U8temp; /-/-湿度读取子程序 -/-/-以下变量均为全局变量-/-温度高8位= U8T_data_H-/-温度低8位= U8T_data_L-/-湿度高8位= U8RH_data_H-/-湿度低8位= U8RH_data_L-/-校验 8位 = U8checkdata-/-调用相关子程序如下-/- Delay();, Delay_10us();,COM(); /-void RH(void)/主机拉低18ms DHT11_DATA=0;Delay_dht11(180);DHT11_DATA=1;/总线由上拉电阻拉高 主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年制造业企业销售人员面试指南与预测题集
- 2025年人力资源行业中级审计员面试宝典问题与答案
- 2025年乡镇畜牧站招聘畜牧专业人才模拟题及答案
- 护理三基培训知识内容表课件
- 2025年超临界高温、高压汽轮发电机组合作协议书
- 2025年画具画材项目发展计划
- 2025年数字化X射线机项目合作计划书
- 2025年PCM脉码调制终端设备项目合作计划书
- 江苏省淮安市清江浦区淮安小学2024-2025学年五年级下学期期中数学试题
- 湖南省长沙市雨花区周南石燕湖中学2024-2025学年八年级下学期期末考试英语试题(含答案无听力原文及音频)
- 2025桐乡市国企招聘考试题目及答案
- 《重大隐患判定标准解读》
- 高校防网络电信诈骗课件
- 2025年高考政治学科命题原则、命题趋势、考查重点与导向解读
- 木模铝模劳务分包合同
- 手术室安全知识
- 临床带教方案
- DL-T 5876-2024 水工沥青混凝土应用酸性骨料技术规范
- 全国第三届职业技能大赛(无人机驾驶(植保)项目)选拔赛理论考试题库(含答案)
- 运动解剖学课件完整版
- 地下室管理制度
评论
0/150
提交评论