基于51单片机的智能窗帘的研究与设计_第1页
基于51单片机的智能窗帘的研究与设计_第2页
基于51单片机的智能窗帘的研究与设计_第3页
基于51单片机的智能窗帘的研究与设计_第4页
基于51单片机的智能窗帘的研究与设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、辽工大电子设计目录摘要1第1章 绪论21.1 系统设计的背景及意义21.2 设计的基本内容21.3 实现的基本功能3第2章 总体电路设计与原理说明42.1 方案介绍42.2总体方案设计52.2.1 自动控制窗帘基本功能52.2.2 总体结构设计5第3章 硬件分析与设计73.1 单片机及相关电路设计73.1.1 89C51单片机概述73.1.2 晶振电路83.1.3 复位电路83.1.4 显示电路93.2 光敏传感器电路93.3 A/D转换电路103.4 步进电机电路11123.5 温度检测电路123.6 红外控制电路14第4章 程序分析设计184.1 主程序184.2 重要子程序设计18第5章

2、 总结19参考文献20附录1 :原理图21附录 2 :部分子程序22 摘要自动控制技术是20世纪发展最快、影响最大的技术之一,也是21世纪最重要的高技术之一。今天,技术、生产、军事、管理、生活等各个领域,都离不开自动控制技术。就定义而言,自动控制技术是控制论的技术实现应用,是通过具有一定控制功能的自动控制系统,来完成某种控制任务,保证某个过程按照预想进行,或者实现某个预设的目标。随着电子计算机技术和其他高技术的发展,自动控制技术的水平越来越高,应用越来越广泛,作用越来越重要。尤其是在生产过程的自动化、工厂自动化、机器人技术、综合管理工程、航天工程、军事技术等领域,自动控制技术起到了关键作用。当

3、然,在智能家居方面,自动控制技术有较好的发展前景。应用自动控制技术,将是家居环境更加智能化,人性化。针对家居环境采光及避光问题,自动窗帘控制系统将取代手动控制,更加人性化。本文综述了自动窗帘系统的设计与控制系统,介绍了设计制作一个完整的自动窗帘控制系统所需要做的理论分析,以及各环节功能的实现。自动窗帘控制系统核心是采用单片机AT89C51控制,其次采用感光传感器,红外控制电路,温度检测电路等外围电路。整个系统在各模块的配合下实现半自动控制,自动控制等功能。该设计在理论层面上,以程序语言驱动各模块工作,实现了各模块的内在联系,应用层面上采用软件进行原理图设计和仿真。该自动窗帘系统硬件电路主要由光

4、敏检测电路,红外控制电路,温度检测电路,步进电机驱动电路构成。该设计则主要讨论了自动窗帘系统的设计过程,硬件电路设计,软件调试过程,以及利用软件实现红外线遥控信号的编码及解码方式。通过本系统可以实现通过光照强度实现窗帘开关自动控制,通过温度检测电路实现窗帘开关自动控制,同时实现红外遥控的半自动控制。关键词:自动控制,自动窗帘,单片机,步进电机第1章 绪论1.1 系统设计的背景及意义智能家居以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,尽显便捷将家中的各种设备(如音视频设备、照明设备、窗帘控制、空调控制、网络家电等

5、)通过家庭网络连接到一起。与普通家居相比,不仅具有传统的居住功能,提供安全舒适的家庭生活空间,还能提供全方位的信息交互功能,优化人们的生活方式。随着社会信息化的加快,人们的工作、生活和通讯、信息的日益紧密。信息化社会在改变人们生活方式与工作习惯的时候,也对传统的住宅提出了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。人们对家居的要求早已不是物理空间,更为关注的是一个安全、方便、舒适的居家环境。随着技术产业结构的调整,生产工艺的飞速发展,人们的生活水平不断提高,家用电气逐渐普及。高精度、多功能、低功耗是现代科技发展的趋势。在这种趋势下,窗帘的数字化、智能化已经成为现代生产研究的主导设计方

6、向。单片机在电子产品中的应用已经越来越广泛,在很多电子产品中也用到了红外控制。结合感光系统和红外遥控系统的智能窗帘系统具有较好的发展前景。1.2 设计的基本内容本智能家居自动窗帘控制系统以STC89S51单片机为控制核心,由电源模块、光敏感应模块、温度监测模块、红外遥控模块等几个环节组成本系统的主要框架,与此同时可外扩一些其他的控制功能。系统可以实现对外界光线强度的实时监测,从而来控制窗帘的自动开启和关闭,并可对室内的温度进行检测和显示,可由用户随时设定温度阈值,当实际的温度超过或低于设定温度后,通过窗帘的开闭,使室内的光线和温度达到一个较为理想的条件。为了更体现人性化,本设计通过红外线的发送

7、和接收,可根据用户的意愿实现对窗帘开闭的远距离遥控。该设计主要分为以下几个章节:(1) 绪论:介绍介绍系统设计的背景及意义。(2) 总体方案设计:介绍自动窗帘控制系统总体方案,及总体结构设计。(3) 硬件系统分析:介绍主要硬件系统。(4) 软件分析:介绍软件设计。(5) 总结:对该设计的不足和扩展进行分析。1.3 实现的基本功能自动窗帘控制系统具有以下几个基本功能:(1) 光照控制:根据光照强度值,通过感光器采集,自动打开或关闭窗帘。即当早晨光照强度增强到设定值,通过感光器采集,单片机控制步进电机打开窗帘;当夜晚光照强度减弱到设定值,通过感光器采集,单片机控制步进电机关闭窗帘。(2) 温度控制

8、:通过红外遥控器设定给定温度,通过温度监测系统,检测环境温度,当温度高于或低于给定值时,单片机控制步进电机打开或关闭窗帘。(3) 红外控制:当光照强度未达到设定值,手动操作红外遥控器,由红外接收系统接收信号,单片机控制步进电机打开或关闭窗帘。第2章 总体电路设计与原理说明2.1 方案介绍方案:基于光照检测及温度检测的自动控制原理框图如下:图 2-1 原理框图2.2总体方案设计自动窗帘控制系统总体方案的设计是基于满足设计要求的前提下,根据理论上的可实现性和硬件电路的经济实用型,进行设计。本设计从人们对系统设计功能的需求出发,综合考虑各种因素的情况下,设计出自动控制系统的整体框架,并且在整体功能实

9、现的基础上,尽可能考虑系统的可扩展性。2.2.1 自动控制窗帘基本功能自动窗帘控制系统具有以下几个模块:(1) 感光控制模块:本模块首先通过光敏电阻在外界光线强度的变化下阻值的改变,使得输出电压发生变化。变化的电压信号传送到PFC8591八位的AD/DA转换芯片,将模拟量转化为数字量,进而输入到单片机处理器。经处理器的运算与处理,控制电机的正反转,达到窗帘开闭的目的。(2) 温度监测模块:模块通过温度传感器DS18B20采集室内的温度值,经过单总线的传输方式将采集到的温度信号传送给单片机,并由LCD显示器显示当前的温度。其中,温度的阈值可由用户通过红外线来遥控设定。当室内温度超过或低于设定值时

10、,伴随着着电机的正反转。(3) 红外遥控模块:本模块利用HT6221芯片组成的遥控器发射红外信号,接收头接收后先解码,并用液晶显示每个按键对应的用户码值。利用遥控器上的按键,软件中设置可供用户随时控制电机正反转的程序,实现可在任意时刻控制窗帘的打开和关闭。此处,红外遥控另外一个功能是在进入温度设定模式下设置初始的温度值,并可借用红外遥控外扩一些较为实用的家庭简单控制电路,为人们的日常生活带来方便。2.2.2 总体结构设计系统设计的总体框图如下: 图2-2 总体框图第3章 硬件分析与设计3.1 单片机及相关电路设计3.1.1 89C51单片机概述AT89C51是一种带4K字节闪烁可编程可擦除只读

11、存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要参数:(1) 片内震荡器和时钟电路(2) 4K字节可编程闪烁存储器;(3) 128*8位内部RAM(4) 32可编程I/O线(5) 两个16位定时器/计数器(6) 5个中断源 (7) 全静态工作:0HZ-24MHZ(8) 低功耗

12、闲置和掉电模式3.1.2 晶振电路图3-1 单片机内部晶振电路连接图单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部都有一个时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。图4-3就是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外界振荡源,本设计就采用这种外接晶振的方法。电路中的两个电容的作用有两个:一是帮助振荡器起振(C1 C2的值大,起振的速度慢;反之,速度快。);二是对振荡器的频率起到微调的作用(C1 C2的值大,频率略有减少,反之,频率略有提高)。C1 C2的值采用30pF。3.1.3 复位电路图3-

13、2 复位电路在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。如图4-2所示。这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST端就会出现一定时间的高电平信号,从而使单片机实现复位。3.1.4 显示电路按照电路图链接电路即可,需要说明的是在这个电路图中,LCD的第三脚VEE没有接,这个脚是控制屏幕对比度的。可以将电位器的两端分别接VCC和GND,中间端接LCD的第三脚。图3-3 1602液晶电路3.2 光敏传感器电路光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管、光电倍增管、光敏电阻等。光敏电阻又

14、称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。图3-4 光敏传感器当光敏电阻受到脉冲光照射时,光电流要经过一段时间才能达到稳定值,而在停止光照后,光电流也不立刻为零,这就是光敏电阻的时延特性。由于不同材料的光敏,电阻时延特性不同,所以它们的频率特性也不同,硫化铅的使用频率比硫化镉高得多,但多数光敏电阻的时延都比较大,所以,它不能用在要求快速响应的场合。3.3 A/D转换

15、电路PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I²C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I²C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的址、控制和数据信号都是通过双线向I²C总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由I²C总线的最大速率决定。图3-5 A/D转换电路P

16、CF8591 特性:单独供电;PCF8591的操作电压范围2.5V-6V;低待机电流;通过I2C总线串行输入/输出;PCF8591通过3个硬件地址引脚寻址;PCF8591的采样率由I2C总线速率决定;4个模拟输入可编程为单端型或差分输入;自动增量频道选择;PCF8591的模拟电压范围从VSS到VDD;PCF8591内置跟踪保持电路;8-bit逐次逼近A/D转换器;通过1路模拟输出实现DAC增益。3.4 步进电机电路步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个

17、脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。图3-6 步进电机电路3.5 温度检测电路 DS18B20外形及引脚说明:图3-7 温度传感器引脚说明:GND:地;DQ:单线运用的数据输入/输出引脚;VD:可选的电源引脚。单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。图3-8 DS18B20接线原理图DS18B20时序图:主机使用时间隙来读写DS18B20的数据位

18、和写命令字的位。初始化时序如下图: 图3-9 DS18B20初始化时序 DS18B20读写时序:图3-10 DS18B20读写时序3.6 红外控制电路红外通信基本原理:红外通信是利用950nm近红外波段作为传递信息的媒体,即通信信道。发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射信号。接收端将接收到的信号装成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制信号后输出。常用的有通过脉冲宽度来实现信号调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进

19、行传输;红外通信接口就是针对红外信道的调制解调。红外遥控系统主要由遥控发射器、一体化接收头、单片机、接口电路组成。遥控器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号,遥控接收头来完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。遥控编码脉冲是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部CPU完成对遥控指令解码,并执行相应的遥控功能。红外遥控控制过程:本系统以89C51单片机为核心,由发射和接受两部分组成,发射部分主要完成编码和调制,接收部分完成调解和解码。其发射部分主要由89C51单片机完成编码,然后由红外发射管发射红外线,接收部分主要由光电转换,放大

20、,解调,解码组成。其中光电转换,放大调解由红外线一体化接头来完成,接收单片机主要完成解码功能。遥控器发射及其编码:红外线遥控采用自定义编码方式,由发送单片机来完成。遥控发射器专用芯片很多,根据编码格式可以分为脉冲宽度调制和香味调制两大类。当发射器案件按下后,即有遥控码发出,所按的键不同遥控编码也不同,这码具有以下特征:采用脉宽调制的串行码,以脉宽为0.26ms、间隔0.26ms、周期为0.52ms的组合表示二进制的“1”(如图3-11A),其特征是脉冲中高电平的宽度等于0.26ms,相当于10个26s的宽度;以脉宽为0.26ms、间隔为0.52ms、周期为0.78ms的组合表示二进制的“0”(

21、如图3-11B),其特征是脉冲中而低电平的宽度是高电平的二倍,等于0.52ms,相当于20个26s的宽度。可以根据传输数据的不同来调节脉冲的宽度。 表示1 表示0 0.26mm 0.26mm 0.52mm 0.26mm A B图3-11 二进制信号 二进制信号的调制:二进制信号的调制由发送单片机来完成,它把编码后的二进制信号调制成频率为38KHz的间断脉冲串,相当于用二进制信号的编码乘以频率为38KHz的脉冲信号得到的间断脉冲串,即是调制后用于红外发射二极管发送的信号。如图3所示,A是二进制信号的编码波形,B是频率为38KHz(周期为26s)的连续脉冲串,C是经调制后的间断脉冲串(相当于C=A

22、×B),用于红外发射二极管发送的波形。 1 0 A 编码后的二进制信号 10个脉冲 20个脉冲 B 单个脉冲 26us 10个脉冲 C=A*B 调制后的二进制信号(发送) 图3-12 二进制信号的调制 二进制信号的解调:二进制信号的调制仍由发送单片机来完成,它把编码后的二进制信号调制成频率为38KHz的间断脉冲串,相当于用二进制信号的编码乘以频率为38KHz的脉冲信号得到的间断脉冲串,即是调制后用于红外发射二极管发送的信号。如图3.3所示,是二进制信号的编码波形,B是频率为38KHz(周期为26s)的连续脉冲串,C是经调制后的间断脉冲串(相当于C=A×B),用于红外发射二极

23、管发送的波形。二进制信号的解码:二进制信号的解码由接收单片机来完成,它把红外接收头送来的二进制编码波形通过解码,还原出发送端发送的数据。 D 红外接收头接收的波形(输入) 表示1 表示0 表示1 E 红外接收头调解后输出的波形 图3-13 HS0038的输入输出波形基于字节传输的红外遥控数据格式:在发送字节的开始先通过单片机发送20个脉冲宽度(每个脉冲周期26s)的高电平作为传输开始,接着发送8位数据(字节高位在前,低位在后),最后发送10个脉冲宽度的低电平作为传输结束,如图3-14所示。 传输开始 8位数据 传输结束 20个脉冲 高位在前,低位在后 10个脉冲 图3-14 基于字节传输的红外

24、遥控数据格式第4章 程序分析设计4.1 主程序程序流程为:当清晨是阳光较强,此时光敏二极管呈现低电阻,相当于接入单片机为低电平,可以通过程序控制步进电机正转,来打开窗帘,单片机输出停止,电动机M停转。当傍晚时光线比较弱,此时光敏电阻呈现高电阻,相当于接入单片机为高电平,可以通过程序输出负相脉冲控制步进电机反转,来关闭窗。帘单片机输出停止,电动机M停转。4.2 重要子程序设计 主要包括:光敏传感程序,红外控制程序,温度检测程序,步进电机程序,液晶显示程序等,参照附录二。第5章 总结该设计通过分析自动窗帘系统的现状和人们对自动窗帘系统功能的需求,对自动窗帘系统控制器进行总体设计。总体设计采用步进电

25、机为单片机控制元件,执行窗帘开闭的主要任务;以光敏电阻为检测元件,提供单片机外界光照变化;以红外检测电路,实现手动控制;以89C51单片机为主控制芯片,控制整个系统运行;此外辅助以按键和显示电路,在各模块的配合下,最终实现自动窗帘控制系统的智能化要求。自动窗帘控制系统具有以下几个基本功能:光照控制:根据光照强度值,通过感光器采集,自动打开或关闭窗帘。即当早晨光照强度增强到设定值,通过感光器采集,单片机控制步进电机打开窗帘;当夜晚光照强度减弱到设定值,通过感光器采集,单片机控制步进电机关闭窗帘。温度控制:通过红外遥控器设定给定温度,通过温度监测系统,检测环境温度,当温度高于或低于给定值时,单片机

26、控制步进电机打开或关闭窗帘。红外控制:当光照强度未达到设定值,手动操作红外遥控器,由红外接收系统接收信号,单片机控制步进电机打开或关闭窗帘。参考文献1阎石.数字电子技术基础(第五版) 北京:高等教育出版社,20062李哲英.电子技术及其应用基础(数字部分)北京:高等教育出版社,20033郭天祥.十天学会单片机和C语言编程 北京;电子工业出版社,2009 附录1 :原理图附录 2 :部分子程序unsigned int LowTime,HighTime; unsigned char i,j; for(i=0;i<10;i+) for(j=0;j<33;j+) ; void delay(

27、unsigned char n) unsigned char i;for(i=0;i<n;i+) delay1ms(); void DelayDelay(unsigned int num) while( -num ) ;void delay11(unsigned char x) /x*0.14MS unsigned char i; while(x-) for (i = 0; i<13; i+) void beep()/蜂鸣器响一声函数 unsigned char i; BEEP=1; for (i=0;i<100;i+) delay1ms(); /BEEP取反 BEEP=0;

28、 /关闭蜂鸣器 delay(250); /延时 void motor_ffw(unsigned char ii) /unsigned char num, unsigned char i; unsigned int j;/while(num-)/ for (j=0; j<64; j+) /转1*n圈 for (i=0; i<8; i+) /一个周期转30度 if(ii=1) P1 = FFFi; /取数据 ii控制电机的正反转ii=0 或者 ii=1 if(ii=2) P1 = FFZi; delay(1); /调节转速 / void iic_start(void) /时钟保持高,数

29、据线从高到低一次跳变,I2C通信开始SDA = 1; SCL = 1;delayNOP(); / 延时5us SDA = 0;delayNOP(); SCL = 0;void iic_stop(void) SDA = 0; /时钟保持高,数据线从低到高一次跳变,I2C通信停止SCL = 1;delayNOP();SDA = 1;delayNOP(); SCL = 0; void iicInit(void) SCL = 0; iic_stop(); void slave_ACK(void)SDA = 0; SCL = 1;delayNOP();SCL = 0;void slave_NOACK(v

30、oid) SDA = 1;SCL = 1;delayNOP();SDA = 0; SCL = 0; void check_ACK(void) SDA = 1; / 将p1.1设置成输入,必须先向端口写1SCL = 1;askflag = 0;delayNOP(); if(SDA = 1) / 若SDA=1表明非应答,置位非应答标志askflag askflag = 1; SCL = 0;void IICSendByte(unsigned char ch) unsigned char idata n=8; / 向SDA上发送一位数据字节,共八位while(n-) if(ch&0x80)

31、= 0x80) / 若要发送的数据最高位为1则发送位1 SDA = 1; / 传送位1SCL = 1; delayNOP();/SDA = 0;SCL = 0; else SDA = 0; / 否则传送位0SCL = 1;delayNOP(); SCL = 0;ch = ch<<1; / 数据左移一位uchar IICreceiveByte(void)uchar idata n=8; / 从SDA线上读取一上数据字节,共八位uchar tdata=0;while(n-) SDA = 1; SCL = 1; tdata =tdata<<1; /左移一位 if(SDA =

32、1) tdata = tdata|0x01; / 若接收到的位为1,则数据的最后一位置1else tdata = tdata&0xfe; / 否则数据的最后一位置0 SCL = 0; return(tdata);void ADC_PCF8591(uchar controlbyte) uchar i=0; /idata: 单片机间接访问的片内RAM区,允许访问全部片内RAMiic_start();IICSendByte(PCF8591_WRITE);/控制字check_ACK();if(askflag = 1)SystemError = 1;return;IICSendByte(cont

33、rolbyte);/控制字check_ACK();if(askflag = 1)SystemError = 1;return; iic_start(); /重新发送开始命令 IICSendByte(PCF8591_READ);/控制字check_ACK();if(askflag = 1)SystemError = 1;return; IICreceiveByte(); /空读一次,调整读顺序 slave_ACK(); /收到一个字节后发送一个应答位/读四次,如果只启动一个通道,读一次就行读出值是16进制的/*while(i<4) receive_da=IICreceiveByte();

34、receivebufi+=receive_da; slave_ACK(); /收到一个字节后发送一个应答位*/ /读一次写法receivebuf=IICreceiveByte();slave_NOACK(); /收到最后一个字节后发送一个非应答位iic_stop(); unsigned char BusyTest(void) bit result;RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=BF;

35、 /将忙碌标志电平赋给resultE=0; return result; void WriteInstruction (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置"0" _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 P0=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(

36、); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /显示位置的确定方法规定为"80H+地址码x" void WriteData(unsigned char y) while(BusyTest()=1); RS=1; /RS为高电平,

37、RW为低电平时,可以写入数据 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置"0" P0=y; /将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 void LcdInitiate(void) delay(15);

38、 /延时15ms,首次写指令时应给LCD一段较长的反应时间 WriteInstruction(0x38); /显示模式设置:16×2显示,5×7点阵,8位数据接口delay(5); /延时5msWriteInstruction(0x38);delay(5);WriteInstruction(0x38);delay(5);WriteInstruction(0x0c); delay(5);WriteInstruction(0x06); delay(5);WriteInstruction(0x01); delay(5); Init_DS18B20(void) DQ = 1 ; DelayDelay(8) ; DQ = 0 ; DelayDelay(90) ; DQ = 1 ; DelayDelay(8) ; presence = DQ ; /如果=0则初始化成功 =1则初始化失败 DelayDelay(100) ; DQ = 1 ; return(presence) ; /返回信号,0=presence,1= no presence Disp_Temperature() display4=temp_data0&0x0f ; display0=ditabdisplay4+0x30 ;/查表得小数位的值 display4=(t

温馨提示

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

评论

0/150

提交评论