信息工程专业毕业论文基于单片机的空调温度控制系统设计

上传人:仙*** 文档编号:84599660 上传时间:2022-05-04 格式:DOC 页数:50 大小:72.50KB
收藏 版权申诉 举报 下载
信息工程专业毕业论文基于单片机的空调温度控制系统设计_第1页
第1页 / 共50页
信息工程专业毕业论文基于单片机的空调温度控制系统设计_第2页
第2页 / 共50页
信息工程专业毕业论文基于单片机的空调温度控制系统设计_第3页
第3页 / 共50页
资源描述:

《信息工程专业毕业论文基于单片机的空调温度控制系统设计》由会员分享,可在线阅读,更多相关《信息工程专业毕业论文基于单片机的空调温度控制系统设计(50页珍藏版)》请在装配图网上搜索。

1、信息工程专业毕业论文-基于单片机的空调温度控制系统设计 摘 要在自动控制领域中,温度检测与控制占有很重要地位。温度测控系统在工农业生产、科学研究和在人们的生活领域,也得到了广泛应用。因此,温度传感器的应用数量居各种传感器之首。目前,温度传感器正从模拟式向数字集成式方向飞速开展。本论文概述了温控器的开展及根本原理,介绍了温度传感器的原理及特性。分析了DS18B20温度传感器的优劣。在此根底上描述了系统研制的理论根底,温度采集等局部的电路设计,并对测温系统的一些主要参数进行了讨论。同时在介绍温度控制系统功能的根底上,提出了系统的总体构成。针对测温系统温度采集、接收、处理、显示局部的总体设计方案进行

2、了论证,进一步介绍了单片机在系统中的应用,分析了系统各局部的硬件及软件实现。利用Proteus7.6进行了可行性的仿真,利用单片机开发板验证在实际电路中能起到的效果。试验证明,这套温度控制器具有较强的可操作性,很好的可拓展性,控制简单方便。课题初步方案是在普通环境下的测温,系统的设计及器件的选择也正是在这个根底上进行的。关键词:DS18B20 单片机 温度控制 1602液晶显示AbstractIn the automatic control area,temperature monitoring and controling have a very important position. Th

3、e temperature monitoring system has a wildly applying in industry, agriculture, science reasearching and daily life of people. Therefore, the number of applying of the temperature monitoring comes first of all kinds of sensor. At present, the temperature monitoring is transformed from analog type to

4、 digital integrated type with a very fast speed.This paper introduces the developing and fundamental of the temperature monitoring, including the character of this kind of sensor. It also analyses the advantage and disadvantage of the temperature monitoring which named DS18B20. On that basis, the pa

5、per also has a further analysis of the theoretical basis of the system developing and the circuit design of temperature monitoring. Besides, some discussions about the important parameters also took on desk. At the same time, the auther of this paper also puts forward the composition of totality abo

6、ut this system, which including the different function of the thermometer system. Then a detailed analysis which is about the applying of Microcontrollers and the applying of different parts made by different hardwares and softwares in the system. In order to check the maneuverability and the expans

7、ibility of the Microcontrollers system, the auther used Proteus 7.6 to do the testing and got a pretty good result.This system puts the temperature measured in normal situation as a confirm condition. All design and selection of component is also based on this suppose.keywords: DS18B20, Microcontrol

8、lers, Temeperature Controling, 1602 Liquid Crystal Display目 录摘要IAbstractII目录III前言11 系统总体设计方案及功能21.1 温度传感器产品分类与选择2 常用的测温方法2 温度传感器产品分类2 温度传感器的选择41.2 总体方案确实定61.3 系统实现框图62 系统单元电路设计72.1 系统工作原理72.2 系统相关硬件及模块介绍7 温度采集电路7 信号处理与控制电路8 温度显示电路9 按键功能设置电路10 继电器控制电路11 存储数据电路11 报警、音乐电路12 电动机电路123 仿真软件介绍143.1 Keil uV

9、ision2软件143.2 Proteus软件154 系统硬件设计175 系统软件设计195.1 DS18B20数据通信概述195.2 LCD1602液晶数据显示概述21 接口信号说明21 控制器接口说明21 控制接口时序说明235.3 存储器24C02数据存储概述24 I2C 总线的定义24 I2C 总线的时序24 数据传送255.4 软件程序设计256 仿真及实验结果286.1 程序调试过程中遇到的问题及解决方法286.2 调试结果28总结30致谢31参考文献32附件1 系统硬件电路图33附件2 系统软件程序34前 言现代信息技术的三大根底是信息采集控制 即温度控制器技术 、信息传输 通信

10、技术 和信息处理 计算机技术 。温度控制器属于信息技术的前沿尖端产品,尤其是温度控制器被广泛用于工农业生产、科学研究和生活等领域,数量日渐上升温度控制器是一种温度控制装置它根据用户所需温度与设定温度之差值来控制中央空调末端之水阀风阀及风机,从而到达改变用户所需温度的目的。实现以上目的的方法理论上有很多,但目前业界主要有机械式温度控制器及智能电子式两大系列。普通风机盘管空调温控器根本上是一个独立的闭环温度调节系统,主要由温度传感器、双位控制器、温度设定机构、手动三速开关和冷热切换装置组成。其控制原理是空调温控器根据温度传感器测得的室温与设定值的比拟结果发生双位控制信号,控制冷热水循环管路电动水阀

11、两通阀或三通阀的开关,即用切断和翻开盘管内水流循环的方式,调节送风温度供冷量。第一代空调温控器主要是电气式产品,空调温控器的温度传感器采用双金属片或气动温包,通过“给定温度盘调整预紧力来设定温度,风机三速开关和季节转换开关为泼档式机械开关。这类空调温控器产品普遍存在“温度设定分度值过粗、“时间常数太大、“机械开关易损坏等问题。?第二代空调温控器为电子式产品,温度传感器采用热敏电阻或热电阻,局部产品的温度设定和风速开关通过触摸键和液晶显示屏实现人机交互界面,冷热切换自动完成,运算放大电路和开关电路实现双位调节。这类智能空调温控器产品改善了人机交互界面,解决了“温度设定分度值过粗等问题,但仍存在“

12、控制精度不高、“时间常数大、“操作较复杂等问题。?目前国内外生产厂家正在研究开发第三代智能型室温空调温控器,应用新型控制模型和数控芯片实现智能控制。现在已有国内厂家生产出了智能型室温空调温控器,并已应用于实际工程。图1 单片机控制温度调节系统结构图2 系统单元电路设计2.1 系统工作原理该空调控制系统用到89C52单片机作为系统的CPU进行控制控制,由数字传感器DS18B20进行数据采集,89C52对采集到的数据进行处理,得到各种信号。而这些信号将分别作为1602液晶显示的信号输入、启动报警装置的信号输入和启动制冷设备、电暖设备的输入。同时将利用单片机的其它使能端口实现系统的复位,手动调节和自

13、动调节。2.2 系统相关硬件及模块介绍 温度采集电路本系统中采集温度使用的是DS18B20数字温度传感器。DS18B20一般为三极管型封装,其引脚图如图4所示。这三个引脚分别为:GND电源地;QD数字信号输入/输出端图2.1 DS18B20引脚图在该系统中,DS18B20的数字信号输入/输出端连接到89C52的P2.3中,作为89C52的数据输入。 信号处理与控制电路信号处理与控制采用5单片机根本电路。图2.2 89C52引脚图在该系统中,要使单片机实现信号处理与控制,那么要使单片机的20脚GND接地,40脚Vcc和31脚/EA接正5V电源。18、19脚XTAL2、XTAL1接12MHz的晶振

14、和两个电容,组成片内振荡电路,为单片机提供时钟脉冲。9脚RST接按键复位电路,提供复位信号给单片机。89C52芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。两个电容通常取30pF左右,稳定频率并对震荡频率有微调作用。如图2.3所示。图 2.3 时钟电路手动复位是通过接通一按钮开关,使单片机进入复位状态。系统上电运行后,假设需要复位,那么通过手动复位来实现的。如图2.4所示。图2.4 复位电路 温度显示电路本系统中,温度显示硬件由lcd1602液晶和上拉电阻构成。1602采用标准14脚接口

15、,其中:包括8根数据线 D0-D7 ,三根控制线rs,rw,e电源地,电源以及液晶驱动电压引脚 VSS,VDD,VEE 。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA图2.5 液晶显示电路 按键功能设置电路温度调节由三个不锁按键电路实现。电路图如图2.6所示。按键K1一端与单片机的外部中断0/INT0,12脚相连,另一端接地。其功能是当按键按下一次时,给单片机一个低电平,进入温度设定状态;再次按下时,进入风速设

16、计状态,再次按下时那么退出温度设定状态。按键K2、K3,一端接地,另一端与单片机的13脚、14脚相连,其功能是每按下一次按键,显示设定值加1或减1。图2.6 温度设置电路 继电器控制电路继电器控制电路由两个继电器构成,由单片机P3.0、P3.1输出控制信号,控制继电器。在该系统中,当温度超过设定值,单片机P3.1输出高电平,驱动制冷电路继电器,启动制冷设备。当温度低于设定值时,单片机P3.0输出高电平,驱动供暖继电器,启动电暖设备。当不满足条件时,不工作。继电器是一种电控制器件。它具有控制系统又称输入回路和被控制系统又称输出回路之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去

17、控制大电流运作的一种“自动开关。故在电路中起着自动调节、平安保护、转换电路等作用。串行E2PROM基于I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便,体积小,数据掉电不丧失等特点,在仪器仪表及工业自动化控制中得到大量的应用。蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、 机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。输出方波,这个方波输入进蜂鸣器就会产生声音,通过控制方波的频率、时间,还能产生简单的音乐图2.8 蜂鸣器报警电路 电动机电路步进电机是将电脉冲信号转变为角

18、位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而到达准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而到达调速的目的。通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。每输

19、入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。图2.9 步进电机工作原理图3 仿真软件介绍3.1 Keil uVision2软件Keil c51开发工具提供数个十分有用的特性,可以帮助你快速地成功开发嵌入式应用。这些工具使用简单并保证你到达你的设计目的uVision2 IDE 是一个基于Window的开发平台,包含一个高效的编辑器,一个工程管理器和一个MAKE工具。uVision2支持所有的KEIL 8051工具,包括C编译器,宏汇编

20、器,连接/定位器,目标代码到HEX的转换器。uVision2通过以下特性加速你的嵌入式系统的开发过程:全功能的源代码编辑器。器件库用来配置开发工具设置。工程管理器用来创立和维护你的工程。集成的MAKE工具可以汇编,编译和连接你的嵌入式应用。所有开发工具的设置都是对话框形式的。真正的源代码级的对CPU和外围器件的调试器。高级GDIAGDI接口用来在目标硬件上进行软件调试,以及和Monitor-51进行通信。与开发工具手册和器件数据手册和用户指南有直接的链接。uVision2 界面提供一个菜单,一个工具条以便你快速选择命令按钮,另外还有源代码的显示窗口,对话框和信息显示。uVision2允许同时翻

21、开浏览多个源文件。图3.1 keil uVision2软件界面3.2 Proteus软件Proteus是英国Labcenter公司开发的电路及单片机系统设计与仿真软件。Proteus可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能。Proteus是目前唯一能对各种处理器进行实时仿真、调试与测试的EDA工具,真正实现了在没有目标原形时就可对系统进行调试、测试和验证。Proteus软件大大提高了企业的产品开发效率,降低了开发风险。Proteus主要由两个设计平台组成:ISISIntelligent Schematic Input Sy

22、stem原理图设计与仿真平台,它用于电路原理图的设计以及交互式仿真。ARESAdvanced Routing and Editing Software高级布线和编辑软件平台,它用于印制电路板的设计,并产生光绘输出文件。在Proteus中,从原理图设计、单片机编程、系统仿真到PCB设计可以一气呵成,具有从概念到产品的完整设计能力。Proteus ISIS的工作界面是一种标准的Windows界面,如下图。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图3.2 Proteus ISIS软件界面4 系

23、统硬件设计确定了相关模块功能、功能以及用到的器件后,系统做如下连接设计:图4.1 总体硬件电路图其中各引脚对应的端口如下表所示:表4.1 单片机引脚与各器件对应表接口对应器件引脚接口对应器件引脚P0.0接LCD1602的D0端P2.4空置P0.1接LCD1602的D1端P2.5接LCD1602的RS端P0.2接LCD1602的D2端P2.6接LCD1602的R/W端P0.3接LCD1602的D3端P2.7接LCD1602的E端P0.4接LCD1602的D4端P3.0接warm继电器端接口对应器件引脚接口对应器件引脚P0.5接LCD1602的D5端P3.1接cool继电器端P0.6接LCD160

24、2的D6端P3.2接S1按键P0.7接LCD1602的D7端P3.3接S2按键P1.0空置P3.4接S3按键P1.1空置P3.5接24C02的SCK端P1.2空置P3.6接24C02的SDA端P1.3空置P3.7接蜂鸣器报警电路P1.4接步进电机A极XTAL1接晶振时钟电路P1.5接步进电机B极XPAL2接晶振时钟电路P1.6接步进电机C极RST接复位电路P1.7接步进电机D极空置P2.0空置ALE空置P2.1空置空置P2.2空置VCC接电源P2.3接DS18B20的DQ端GND接地5 系统软件设计5.1 DS18B20数据通信概述和DS18B20通信,其命令序列有3步:初始化、ROM命令跟随

25、需要交换的数据和功能命令跟随需要交换的数据。每次访问DS18B20,必须严格遵守这个命令时序,如果出现序列混乱,那么单总线那么单总线器件不会响应主机。这个准那么对于搜索ROM命令和报警搜索命令例外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,而必须返回至第一步。单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成,应答脉冲使主机知道总线上有从机设备且准备就绪。在主机检测到应答脉冲后,就可以发出ROM命令。ROM命令与各个从机设备的唯一64位ROM代码相关,允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。ROM命令还允许能够检

26、测到总线上有多少个从机设备及其设备类型,或者有没有设备处于报警状态。 1 搜索ROMF0h当系统初始上电时,主机必须找出总线上所有从机设备的ROM代码,这样主机才能够判断出从机的数目和类型。主机通过重复执行搜索ROM循环搜索ROM命令跟随着位数据交换,以找出总线上所有的从机设备。如果总线只有一个从机设备,那么可以采用读ROM命令来替代搜索ROM命令。在每次执行完搜索ROM循环后,主机必须返回至命令序列的第一步:初始化。 2 读ROM33h仅适合于单节点该命令仅适用于总线上只有一个从机设备,它允许主机直接读出从机的64位ROM代码,而无须执行搜索ROM过程。如果该命令用于多节点,系统那么必然发生

27、数据冲突,因为每个从机设备都会响应该命令。 3 匹配ROM55h匹配ROM命令跟随64位ROM代码,从而允许主机访问多节点系统中某个指定的从机设备。仅当从机完全匹配64位ROM代码时,才会响应主机随后发出的功能命令,其他设备将处于等待复位脉冲状态。 4 跳跃ROMCCh 仅适合于单节点 主机能够采用该命令同时访问总线上的所有从机设备,而无须发出任何ROM代码信息。例如,主机通过在发出跳越ROM命令后,跟随转换温度命令44h就可以同时命令总线上所有的DS18B20开始转换速度,这样大大节省了主机的时间。注意:如果跳越ROM命令跟随的是读操作命令,那么该命令只能应用于单节点系统,否那么将由于多个节

28、点都响应该命令而引起数据冲突。 5 报警搜索Ech 除那些设置了报警标志的从机响应外,该命令的工作方式完全等同于搜索ROM命令,该命令允许主机设备判断哪些从机设备发生了报警如最近的测量温度过高或过低等。同搜索ROM命令一样,在完成报警搜索循环后,主机必须返回至命令序列的第一步。在主机发出ROM命令,以访问某个指定的DS18B20,接着就可以发出DS18B20的某个功能命令。这些命令允许主机写入或读出DS18B20的存储器,启动温度转换以及判断从机的供电方式。 1 读RAM存储器BEh 此命令读RAM存储器的内容,开始读字节0,并继续读到第九个字节CRC。如果不是所有位置均可读,那么主机可以再任

29、何时候发出一复位命令以中止读操作。 2 复制RAM存储器48hI2C 总线的定义1、是 PHLIPS 公司推出的一种两线制串行总线,简单地说,就是用于连接到总线的器件间传递信息的通道。2、是一个多主机的总线,具备多主机系统所需的包括总线裁决和上下速器件同步功能的高性能串行总线。3、是一种双向两线总线,包括一条串行数据线SDA,一条串行时钟线SCL,总线空闲时这两条线路都是高电平。 I2C总线上所有外围器件都有标准的器件地址,器件地址由7位组成。主机发送地址时,总线上的每个从机都将这7 位地址码与自己的地址进行比拟,如果相同,那么认为自己正被主机寻址,根据R/W位将自己确定为发送器或接收器。其格

30、式如下:表5.6 D7D6D5D4D3D2D1D0DA3DA2DA1DA0A2A1A0R/W其中DA3DA0是器件地址为厂家设置,A2A0为引脚地址,最多可连8个,R/W位为数据传输方向控制位。 I2C 总线的时序1、只有在总线空闲时才允许启动数据传送。图5.3 I2C总线时序图2、在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变。时钟线为高电平时,数据线的任何电平变化将被看做总线的起始或停止信号。起始信号:时钟线保持高电平期间,数据线电平从高到低的跳变作为I2C总线的起始信号。 停止信号:时钟线保持高电平期间,数据线电平从低到高的跳变作为I2C总线的停止信号。 数据

31、传送 I2C总线上数据传送的每一帧数据均为一字节。但启动I2C总线后,传送的字节数没有限制,只要求每传送一字节后,对方答复一个应答位。相关的响应时钟脉冲由主机产生,在响应的时钟脉冲期间发送器释放SDA 线拉高。作为响应,在时钟脉冲期间接收器必须将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。图5.4 数据传送时序5.4 软件程序设计1、模块流程图1.1主程序模块流程图图5.51.2 DS18B20通讯模块流程图图5.61.3 键扫描模块流程图图5.7图5.5 主程序流程图图5.6 DS18B20通讯模块流程图图5.7 键扫描模块流程图6 仿真及实验结果6.1 程序调试过程中遇

32、到的问题及解决方法1.较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否那么将无法读取测温结果。2.在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。3.编程时要注意,在程序开始时,要写入各定时器中断的入口地址。4.编程过程中要注意加注释或分割线,否那么,在程序过长时容易变得很

33、乱,不便于查找或更改。5.程序的结构要设计的合理,防止上下乱调用的现象,这样会使程序更加清晰化。6.编程前要加流程图,这样会使思路清晰。 6.2 调试结果图6.1 开发板上的显示结果图6.2 仿真电路及结果图6.3 开发板上的实验结果总结近三个月的毕业设计即将结束,这意味着我们的大学生活也要结束了,但我的学习没有结束,在本次设计中,我所学过的理论知识接受了实践的检验,增强了我的综合运用所学知识的能力及动手能力,为以后的学习工作打下了良好的根底。本设计使用AT80C52作为主控芯片进行控制,单片机具有集成度高,通用性好,功能强,特别是体积小,重量轻,耗能低可靠性高,抗干扰能力强和使用方便等独特优

34、点,在数字、智能化方面有广泛的用途。其中的温度控制系统采用DS18B20 “一线总线数字化温度传感器,支持“一线总线接口,大大提高了系统的抗干扰性测量温度范围为 -55到+125,在-10到+85范围内,精度为。而且体积小价格实惠,温度设定采用按键设定,风速控制那么由步进电机的转速控制得以实现,软件算法采用设定值和测量值相比拟的算法。在单片机应用的根底上,实现了一种用带有EEPROM的AT89C52单片机控制传感器的自动化温度监控系统。最后敬请各位专家、老师和同学对论文和今后的研究工作提出珍贵的指导意见和建议。致 谢感谢。参考文献姜志海,黄玉清,刘连鑫. 单片机原理及应用第2版M. 电子工业出

35、版社, 2021.魏泽鼎. 单片机应用技术与实例M. 电子工业出版社, 2005.宋亚伟. 基于DS18B29的温度控制采集系统J. 机电工程技术, 2021, 37 09 :89-91.齐建家,胡天明. 基于DS18B20的数字温度设计及其应用J. 黑龙江工程学院学报,2001, 22 2 :59-62.张洪润,张亚凡. 单片机原理及应用M. 清华大学出版社,2005.李玉峰. MCS-51系列单片机原理与接口技术M. 人民邮电出版社, 2004.马忠梅. 单片机的C语言应用程序设计M. 北京航空航天大学出版社, 2007.附件1 系统硬件电路图附件2 系统软件程序/*描述:实现用温度传感器

36、DS18B20对温度的采集 并用1602液晶显示*创立人:杨耀武*老师:黄 宇*/#include #include #define uchar unsigned char#define uint unsigned int#define jump_ROM 0xcc#define start 0x44#define read_EEROM 0xbesbit scl P35; /24c02 SCLsbit sda P36; /24c02 SDAsbit DQ P23;/DS18B20数据口sbit E P27;/1602使能引脚sbit RW P26;/1602读写引脚sbit RS P25;/16

37、02数据/命令sbit beep P37;/蜂鸣器报警sbit s1 P32;/功能选择按键sbit s2 P33;/温度加sbit s3 P34;/温度减sbit warm P30;/升温继电器sbit cool P31;/降温继电器uchar TMPH,TMPL,Count1,Count2,T,xie,s1num,s2num,s3num,BusyC;uint temp,speed;uchar code table1 SETTING T:22C ;uchar code table2 SP:L T:-.-C ;uchar code distab 0x00,0x01,0x01,0x02,0x03

38、,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09 ;uchar data display 0x00,0x00,0x00,0x00,0x00 ;uchar code F_Rotation 0x20,0x60,0x40,0xc0,0x80,0x90,0x10,0x30 ;/正转表格uchar x24c02_read uchar address ;void x24c02_write uchar address,uchar info ;void keyscan void ;/软件延时/* 名称 : flash * 功能 : 延时大概为2U

39、S* 输入 : 无* 输出 : 无*/void flash void _nop_ ;_nop_ ; /*名称:delay_16usuint A单位us us,每次计数耗时约为16us*输入:要延时的时间A x 16*输出:无*/void delay_16us uint N int i;for i 0;i N;i+ ; /*名称:delay_1msuint A单位us*输入:要延时的时间a ms*输出:无*/void delay_1ms uint a int i,j;for i a;i 0;i- for j 110;j 0;j- ; /定时器延时/* 名称 : Time1_Init * 功能 :

40、 定时器的初始化,11.0592MZ晶振,10ms* 输入 : 无* 输出 : 无*/void Time1_Init TMOD 0x10;IE 0x88;TH0 0xb8;TL0 0x00; /* 名称 : Time1_Int * 功能 : 定时器中断,中断中实现 Count 加一* 输入 : 无* 输出 : 无*/void Time1_Int interrupt 3 TH0 0xb8;TL0 0x00;Count2+;if Count2 50 Count2 0;xie 1;/20ms写一次 /DS18B20测温显示/*名称:Reset *功能:复位DS18B20*输入:无*输出:无*/uch

41、ar Reset void uchar receive_data;DQ 0;/把DQ拉低delay_16us 29 ;/持续480usDQ 1;/使DQ回高delay_16us 3 ;/等存在脉冲receive_data DQ;/得存在脉冲delay_16us 25 ;return receive_data ;/返回时隙信号 /*名称:read_bit 读一位*功能:从DS18B20读一个位值*输入:无*输出:一位的位值*/uchar read_bit void uchar i;DQ 0;/读开始DQ 1;for i 0;i 3;i+ ;/延时约15usreturn DQ ; /*名称:wri

42、te_bit 写一位*功能:向DS18B20写一个位值*输入:bitval 要对DS18B20写入的位值 *输出:无*/void write_bit uchar bitval DQ 0;/拉低DQ开始写时隙if bitval 1 /假设写1就拉高DQ,否那么反之DQ 1;delay_16us 5 ;/延时采样DQ 1; /*名称:read_byte 读一字节*功能:从DS18B20读一个字节的值*输入:无*输出:读到的一个字节的值*/uchar read_byte void uchar i,j,receive_data8;j 1;receive_data8 0;for i 0;i 8;i+ i

43、f read_bit receive_data8 receive_data8+ j i ; delay_16us 6 ; return receive_data8 ; /*名称:write_byte 写一字节*功能:向DS18B20写一个字节的值*输入:val要对DS18B20写入的命令值*输出:无*/void write_byte uint val uchar i,temp;for i 0;i 8;i+ temp val i;/分8次实现写操作temp temp&0x01;/只保存末位,实现bit输入write_bit temp ;delay_16us 5 ; /*名称:tmp *功能:获得

44、十进制温度值*输入:无*输出:display*/void tmp void uchar n;n 0; Reset ;write_byte jump_ROM ;write_byte start ;Reset ;write_byte jump_ROM ;write_byte read_EEROM ;TMPL read_byte ;TMPH read_byte ;if TMPH 127 TMPH 255-TMPH ;TMPL 255-TMPL+1 ;n 1; display4 TMPL&0x0f;display0 distabdisplay4;display4 TMPL&0xf0 4 | TMPH&

45、0x0f 4 ;display3 display4/100 ;display2 display4%100 /10;display1 display4%100 %10;if n display3 0x2d; /1602液晶显示/*名称:enable_1602 *功能:1602的命令输入*输入:命令值*输出:无*/void enable_1602 uchar a P0 a;RS 0;RW 0;E 0;delay_1ms 20 ;E 1;delay_1ms 20 ; /*名称:write_1602 *功能:1602的数据写入*输入:写入的数据*输出:无*/void write_1602 uchar

46、a P0 a;RS 1;RW 0;E 0;delay_1ms 20 ;E 1;delay_1ms 20 ; /*名称:L1602_init *功能:初始化1602*输入:无*输出:无*/void L1602_init void uchar num,i;enable_1602 0x01 ;/清屏enable_1602 0x38 ;/初始化5x7的显示enable_1602 0x0c ;/开或关光标设置enable_1602 0x06 ;/地址指针加1enable_1602 0x80 ;for num 0;num 14;num+ write_1602 table1num ;delay_1ms 5

47、; enable_1602 0xc0 ;for num 0;num 7;num+ write_1602 table2num ;delay_1ms 5 ; for i 3;i 0;i- write_1602 0x30+displayi ;delay_1ms 5 ; write_1602 table210 ;delay_1ms 5 ;write_1602 0x30+display0 ;delay_1ms 5 ;for num 12;num 14;num+ write_1602 table2num ;delay_1ms 5 ; /*名称:L1602_char uchar hang,uchar lie

48、,uchar sign *功能:改变液晶中某位的值,如果要让第一行,第五个 字符显示b ,调用该函数如:L1602_char 1,5,b *输入:行,列,要输入1602的数据*输出:无*/void L1602_char uchar hang,uchar lie,uchar sign uchar a;if hang 1 a 0x80;if hang 2 a 0xc0;a a+lie-1;/设置数据指针enable_1602 a ;write_1602 sign ; /*名称:L1602_string uchar hang,uchar lie,uchar *p *功能:改变液晶中某位的值*输入:行

49、,列,要输入1602的数据*输出:无*/void L1602_string uchar hang,uchar lie,uchar date uchar a;uchar shi,ge;shi date/10;ge date%10;if hang 1 a 0x80;if hang 2 a 0xc0;a a+lie-1;enable_1602 a ;write_1602 0x30+shi ;write_1602 0x30+ge ; /*名称:write_display *功能:显示当前温度*输入:无*输出:无*/void write_display void enable_1602 0xc0+7 ;

50、write_1602 0x30+display3 ;write_1602 0x30+display2 ;write_1602 0x30+display1 ;enable_1602 0xc0+7+4 ;write_1602 0x30+display0 ; /24C02数据储存/* 名称 : x24c02_init * 功能 : 24c02初始化子程序* 输入 : 无* 输出 : 无*/void x24c02_init void scl 1;flash ;sda 1;flash ; /* 名称 : start_24c02 * 功能 : 启动I2C总线* 输入 : 无* 输出 : 无*/void s

51、tart_24c02 void sda 1;flash ;scl 1;flash ;sda 0;flash ;scl 0;flash ; /* 名称 : stop_24c02 * 功能 : 停止I2C总线* 输入 : 无* 输出 : 无*/void stop_24c02 sda 0;flash ;scl 1;flash ;sda 1;flash ; /* 名称 : write_24c02 * 功能 : 写一个字节* 输入 : 写入的值* 输出 : 无*/void write_24c02 uchar j uchar i,k;k j;for i 0;i 8;i+ k k 1;scl 0;flash

52、 ;sda CY;flash ;scl 1;flash ; scl 0;flash ;sda 1;flash ; /* 名称 : read_24c02 * 功能 : 读一个字节* 输入 : 无* 输出 : 读出的值*/uchar read_24c02 void uchar i,j,k 0;scl 0;flash ;sda 1;for i 0;i 8;i+ flash ;scl 1;flash ;if sda 1 j 1;else j 0;k k 1 |j;scl 0; flash ;return k ; /* 名称 : I2C_clock * 功能 : I2C总线时钟* 输入 : 无* 输出 : 无*

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!