基于单片机的高精度温度检测与控制系统


     [基于单片机的高精度温度检测与控制系统的设计与实现] [基于单片机的高精度温度检测与控制系统的设计与实现] 摘 要 温度的检测与控制的系统渐渐在我们的日常生活中愈发重要,在我们的日常生活的领域还有各个国家和地方的都大量涉及单片机对温度的检测与其控制,比如温度计,酒店的紧急火灾报警温度感应器等等。我现在主要研究的第一个课题就是主要针对基于单片机的温度检测与控制系统的应用进行设计与其实现,主要的难题就是如何使单片机实现高精度。 这个研究的课题主要是采用一个stc89c51单片机传感器作为数字温度主控制器的检测芯片,因为ds18b20相对来说较为经济且检测精度相对较高,所以我们采用了数字温度传感器对ds18b20进行了温度的检测和报警,用一个lcd1602液晶来显示我们所检测的温度。所有的数据都保存在我们单片机的一个eeprom中,这样就可以达到了断电后数据存储的最佳效果。如图所示当数字温度传感器中所采集的数字温度检测值超过我们的单片机设定值的时候,系统将通过控制蜂鸣器和一个ledrom发出的光声来进行报警。我们所做的这个传感器设计相对来说价格低廉且最大的程度上也达到了高的检测精度。 关键字:DS18B20温度传感器;高精度;温度预警 [Design and Implementation of High Precision Temperature Detection and Control System Based on Single Chip Computer] ABSTRACT The temperature detection and control system is gradually becoming more and more important in our lives. There are many places in our life that are involved in temperature detection and control, such as thermometers, hotel fire alarm sensors, etc. The subject of my research is mainly for the design and implementation of temperature detection and control system based on single chip microcomputer, the main problem is how to achieve high precision. This subject mainly uses STC89C51 single-chip microcomputer as the main control chip. Because DS18B20 is relatively economical and has relatively high precision, it uses digital temperature sensor DS18B20 for temperature detection alarm and LCD1602 liquid crystal to display the detected temperature. All data is stored in the EEPROM of the single-chip microcomputer, so as to achieve the effect of power-off storage. When the temperature collected by the sensor exceeds our set value, the system will control the buzzer and an LED to emit a photo-acoustic alarm. The design I made is relatively inexpensive and achieves maximum precision Keywords: DS18B20 temperature sensor; high precision; temperature warning 目 录 1 前言 1 1.1 设计的选题背景 1 1.2 设计研究的现状分析 1 1.3 设计研究的主要内容 2 2 系统硬件方案选择 1 2.1 硬件方案的选择 1 2.1.1 主控芯片的选择 1 2.1.2 显示器件的选择 2 2.1.3 温度传感器的选择 2 2.1.4 报警模块的选择 3 2.2 系统总体方案 3 3 系统硬件电路设计 5 3.1 STC89C51单片机系统设计 5 3.1.1 STC89C51的概述 5 3.1.2 STC89C51的引脚说明 5 3.1.3 STC89C51单片机的最小系统 7 3.2 LCD1602液晶显示的介绍 9 3.2.1 LCD1602的概述 9 3.2.2 LCD1602的引脚说明 10 3.2.3 LCD1602的工作原理 11 3.3 DS18B20温度传感器的设计 12 3.3.1 DS18B20的概述 12 3.3.2 DS18B20的工作原理 13 3.4 蜂鸣器电路的设计 16 3.5 独立按键电路的设计 16 3.6 原理图绘制软件的介绍 17 4 系统软件部分设计 18 4.1 软件开发环境的介绍 18 4.2 系统重要函数的介绍 18 4.2.1 主函数的设计 18 4.2.2 LCD1602显示函数的设计 19 4.2.3 DS18B20温度采集函数的设计 20 4.3 系统软件测试 21 5 结论 23 参考文献 24 1 前言 1.1 设计的背景 温度检测与控制系统目前非常广泛的存在于人们的生产以及生活。现在很多人都手动用简单的温度计来检测和控制加热或者冷却温度。但是这样不仅仅控制精度很低,实时性也差,而且操作人的工作量也加大了。即使现在有些用户将半导体和二极管当作温度传感器,但是因为互换性很差,所以它们也不是理想的温度检测与控制系统。因此,在世界的一些行业里,对温度的要求非常高,而且也经常会发生一些不适宜的工作环境温度而导致的事故。对我们的工业生产和生活还有人员的安危都是一个不能忽视的问题。所以为了处理这些潜在隐患,我们要设计一个高精度的温度检测与控制系统。这个设计采用了一个较为新兴的单片机和温度传感器来设计一个简单的温度检测与控制系统。它价格低廉,操作简单,而且测量精度较高,可操作性也很强。这些优点可以作为一些类似于生活,医疗或者工业生产等等一些方面作为参考,来进行温度检测与控制。可以测量机柜中的温度,并可以在超出限制的情况下进行控制,调节和报警。确保环境保持在有限的温度下。 1.2 设计研究的现状分析 目前全世界各地对于温度检测与控制系统的要求越来越强烈,因为我们的生活和生产时时刻刻都离不开温度检测与控制系统,而且温度检测的精度要求愈发的高。所以,全世界都已经非常重视温度检测。并且在全世界范围内都非常广泛的被使用。目前全世界的温度控制系统发展都非常迅速,效果也很显著。但由于单片机等一些微处理器性能的日益提高,以及现在单片机的价格越来越低,所以它的性能价格比的优势就非常明显。因此,怎么样才能更好的将单片机技术应用于测试温度自动控制的领域已经吸引了非常多的制造商。目前,先进发达国家的各种窑炉都使单片机具有很高的测试自动化温度控制水平,并且还配备了完整的测试温度控制仪器和先进的计算机自动控制的系统。超大规模的集成电路技术的进步和发展导致了单片机的诞生。因为它的产品具有本身体积较小,强大的温度控制功能,以及高性价比等诸多优点,所以非常广泛的被应用于各种类似于计算机的电子仪器,家用电器,军事设备,机器人,工业过程控制等各种应用领域,让我们的单片机产品更小巧,更符合智能,从而大大改善了产品的温度控制功能和提高产品质量,从而大大降低了制造的成本并且大大简化我们的产品设计。 1.3 设计研究的主要内容 单片机如何通过单条总线与温度传感器传输数据。将收集的数据转换为实际温度后,进行相应的处理。 2 系统硬件方案选择 本章主要介绍系统中使用的设备的选择和比较。 进行了全面比较,以考虑选择最适合此设计的一组解决方案。 2.1 硬件方案的选择 在构建硬件电路之前,必须明确定义设计计划,并且通过比较各个模块来选择最适合该设计的硬件,以最大程度地提高器件的效率。 2.1.1 如何选择主控芯片 方案一: 选择用STC89C51单片机作为本设计的主控制芯片。 STC89C51是宏景科技有限公司生产的低功耗,高性能八位CMOS微处理器,具有8k在线编程片上闪存。 STC89C51微控制器的内核使用MCS-51内核,并且指令与MCS-51完全兼容。 但是,该微控制器已经升级,以使芯片具有传统的51微控制器所没有的许多功能。 例如,该芯片还具有4K EEPROM存储。 当需要使用断电存储数据时,可以直接使用单片机的内部存储,而无需将其存储在外部存储芯片中。 STC89C51微控制器具有简单的开发,可以下载在线编程,低成本的优点,是非常好的选择。 方案二: 选择用PIC16F877A单片机作为本设计的主控芯片。 PIC16F877A是Microchip生产和开发的新产品。 它属于PICmicro系统8位单片机。 它具有闪存程序存储功能,可以重复擦除和写入程序。 但是,开发成本高,难度较大。 基于以上描述,考虑到资源的合理利用和成本以及开发难度,最终决定采用宏景科技的STC89C51微控制器作为本设计主控制芯片。 2.1.2 如何选择显示器件 方案一: 选择用LED数码管动态扫描显示。 LED数码管价格适中不会很贵,更适合显示数字或简单字母。 但是,当我们使用动态扫描方法连接到单片机时,它会占用更多的CPU I / O端口,并且因为我们单片机IO端口的输出电流不足,因此需要驱动器在放大通过驱动电路的电流之后,需要使用电路来控制数字管。如果显示管,则显示的内容会更多。 电路的焊接机会增加了。 也就极少出现焊接错误。 方案二: 选择用LCD1602液晶显示器。 LCD1602液晶也叫做为LCD1602字符液晶。 液晶显示器功能很强大,可以同时显示16 * 2或32个字符,其中可以包括数字,字母,符号或者自定义字符。 LCD1602液晶显示器中的每个字符都由5 * 7点矩阵组成。 LCD1602采用并行数据传输或串行数据传输。 控制简单,基于HD44780液晶的控制原理在市场上基本差不多。 方案三: 选择用LCD12864液晶显示器。 带有汉字库的128X64是4位/ 8位并行,2线或3线串行的多接口模式,其显示分辨率为128×64,内置8192个汉字,具有16 * 16点, 和128 16 * 8点ASCII字符集。 使用该模块灵活的界面模式和简单方便的操作说明,就可以形成完整的中文人机交互图形界面。 它可以显示8×4行和16×16点矩阵的汉字,还可以完成图形显示。 低电压和低功耗是另一个重要特征。 尽管LCD12864液晶显示器功能强大,但是显示内容太大,造成显示空间的浪费,进而导致液晶成本高。 从以上数据表明,LCD1602最符合我们本设计的实验要求。 2.1.3 如何选择温度传感器 方案一: 选择用热敏电阻传感器作为本设计的温度传感器,利用热敏电阻的特性使分压值随传感器的温度发生变化,收集这两个热敏电阻的温度和分压值,并对其进行相应的a/d转换。这种简单的设计方式需要一个基于a/d的转换集成电路,这会大大增加设计的硬件和成本,并且热敏电阻的特性和温度敏感电阻特性的曲线不是严格线性的,这会容易引起较大的测量误差。 方案二: 选择用模拟温度传感器AD590作为本设计的温度传感器,传感器的输出电流会随温度的变化而变化,因此需要将设计电路转换成电压的变化,然后经过A / D转换后连接到单片机。 这种方法非常麻烦而且成本也很高,会在电流-电压转换和A / D转换中产生误差。 方案三: 选择用数字温度传感器DS18B20作为本设计的温度传感器。 这种类型的传感器是数字传感器,只需要一条数据线就可以进行数据传输。 比较容易就可以跟我们的单片机连接起来。 它可以卸下A / D模块,减少硬件成本,还可以简单化系统电路。 另外,数字温度传感器具有测量精度高,测量范围广的优点。 所以,我选择用DS18B20作为本设计的温度传感器。 2.1.4 如何选择报警模块 方案一: 使用主动脉冲蜂鸣器。这种有源信号在蜂鸣器内部工作的理想脉冲信号是直流电,通常的标记脉冲信号为vdc,vdd等。由于主动蜂鸣器内部有一个简单的振荡电路,它的振荡器可以将恒定的直流电信号转换为一定电压和频率的脉冲交流电信号,并且从蜂鸣器表面交变的磁场也可以在蜂鸣器驱动钼振动。但是,某些有源的蜂鸣器也允许它可以在特定的交流脉冲信号下正常工作,交流脉冲信号的理想脉冲电压和振荡频率很高。通常不适合使用这种蜂鸣器工作的方法。 方案二: 使用被动蜂鸣器。 被动蜂鸣器没有内部驱动电路。 一些公司和工厂称它们为蜂鸣器,而国家标准称它们为蜂鸣器。 被动蜂鸣器操作的理想信号方波。 如果蜂鸣器不响应直流前信号,则由于磁路恒定,因此钼板无法振动。 最后我们推荐采用有源信号输入位置比较固定而且方便我们日常操作的一种有源信号蜂鸣器。 2.2 本设计系统总体方案 根据以上的统计数据分析以及大家的讨论,所以我们最终决定采用温度传感ds18b20,单片机采用stc89c51,lcd1602显示屏采用有源的蜂鸣器作为电源进行报警,led灯光传感器实现灯光的报警,按键传感器用于自动设置传感器报警的上限和传感器的下限来检测温度,并将我们检测得到的报警数据和设置的温度值存储在单片机stc89c51的eeprom中(传感器具有自动断电保护的功能)。 本设计的具体的系统方案如下图2.1所示。 图2.1 系统方案 3 系统硬件电路设计 本书第一个章节主要是介绍了本系统设计中各个模块以及部分集成电路的结构以及设计工作原理。通过各个集成模块的电路以及功能结构描述可以了解其设计工作的原理以及在基本系统设计的中发挥作用。 3.1 STC89C51单片机系统设计 3.1.1 STC89C51的概述 stc89c51是一款由由美国戴尔stc仪器公司开发生产的一种低功耗成本的小功耗,高性能的cmos8位闪存微控制器,带有8k节的系统内以外和可编程的8位闪存。一个非常经典的stmcs51内核已经开始装载到现在了新的stc89c51,而且新的内核已经基本开始对它有很大的更新发展和重大改进,让这个芯片上具有很多其他的可编程单片机没有的类似于51单片机所没有具备的功能。stc89c51只需要具有以下标准的功能:8k字4节可编程闪存,512字节闪存ram,325位i/o线,看门狗中断定时器,内置4kbeeprom,max810复位中断电路,36个16位看门狗定时器/中断计数器,47个外部中断,a7向量4k级中断结构(与市场上传统的51向量59级2中断计数器结构兼容),全双工串行中断端口。此外,stc89c51可以自动降低频率到0hz进行静态的逻辑中断操作,并且可以支持2*软件选择的省电保护模式。在自动空闲掉电保护模式下,cpu自动停止所有卫星中断工作,从而可以允许ram,计时器/中断计数器,串行中断端口以及外部中断电路继续同时工作。在自动掉电保护模式下,会自动保存下来的ram,然后自动冻结主机和振荡器,停止主机和微控制器的所有逻辑中断工作,直到下一次串行中断计数器或硬件的复位结束为止。最大的工作频率可选择为356mhz,6t/12t,这是完全可选的。 3.1.2 STC89C51的引脚说明 STC89C51采用PDIP(40pin)和PLCC(44pin)封装。 在此设计中,使用了DIP40串联封装。 封装焊接时,可以先使用IC插座焊接,然后再焊接,然后将芯片插入IC插座。 这样方便了更换芯片,也避免了使用芯片。 高温焊接时损坏。 STC89C51共有40个引脚,其中32个可用于控制的引脚为P0,P1,P2和P3。 这些引脚可以单独或同时控制到IO端口的某个位。 在控制期间定义输入和输出非常方便。 分配IO值时,IO端口将自动更改为输出,而读取IO端口时,IO端口将自动更改为输入。 STC89C51单片机所以引脚的作用如下表3-1所示。 表3-1 STC89C51单片机引脚功能对照表 引脚 引脚名称 对应功能与作用 1~8引脚 P1.0~P1.7(P1) P1端口是一个带有内部上拉电阻的8位双向I / O端口。 P1端口缓冲器可以接收和输出4个TTL门电流。 将“ 1”写入P1端口引脚后,内部将其上拉至高电平并可用作输入。 当外部将P1端口下拉至低电平时,由于内部上拉,将输出输出电流。 在闪存编程和验证期间,端口P1被接收为第八个地址。 9引脚 RST 复位输入引脚,在振荡器复位是需要保持两个机器周期的高电平。 10-17引脚 P3.0~P3.7(P3) P3端口引脚是带有内部上拉电阻的8个双向I / O端口,可以接收和输出4个TTL栅极电流。 当P3端口写“ 1”时,它们在内部被拉高到高电平并用作输入。 作为输入,由于外部下拉电阻较低,因此P3端口将输出电流(ILL)。 这是由于上拉引起的。 P3端口用作51单片机的某些特殊功能端口。 18引脚 XTAL2 内部时钟电路的输入、反向振荡放大器的输入口 19引脚 XTAL1 反向振荡器的输出 20引脚 GND 单片机电源地 21~28引脚 P2.0~P2.7(P2) P2端口是一个带有内部上拉电阻的8位双向I / O端口。 P2端口缓冲器可以接收和输出4个TTL门电流。 当P2端口写为“ 1”时,其引脚由内部上拉电阻High下拉,并作为输入。 并且作为输入,P2端口的引脚从外部下拉,这将输出电流。 这是由于内部上拉引起的。 29引脚 PSEN 改引脚为外部程序存储器的一个选通信号口。平时一般没有要用到。 30引脚 ALE 本设计没有使用到就不做解释了 31引脚 EA/VPP 我们设计中直接该引脚截至VCC让其处于一直高电平的状态。让其工作在内部程序存储器。 32~39引脚 P0.7~0.0(P0) P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P0口的管脚第一次写“1”时,被定义为高阻输入。 40引脚 VCC 单片机电源4.5~5.5V正极 STC89C51单片机P3口第二功能对照表如下表3-2所示。 表3-2 STC89C51单片机P3口第二功能对照表 引脚 引脚名称 对应的功能作用 10 RXD 该引脚的特殊功能为串行输入口,在单片机下载程序时需要使用到。 11 TXD 该引脚的特殊功能为串行输出口,同样单片机下载程序时需要使用到。 12 INT0 该引脚作为单片机外部中断0触发引脚,触发方式可以进行配置相对应的寄存器来实现。 13 INT1 该引脚作为单片机外部中断1触发引脚,触发方式可以进行配置相对应的寄存器来实现。 14 T0 该引脚可作为单片机外部计数器0触发引脚。 15 T1 该引脚可作为单片机外部计数器1触发引脚。 16 WR 该引脚可作为单片机外部数据写选通口。 17 RD 该引脚可作为单片机外部数据读选通口。 3.1.3 STC89C51单片机的最小系统 单片机最小操作系统中最为人熟悉、最容易理解的一个词是使一个单片机以最少的能量控制元件正常工作的最小系统。其次,介绍了51单片机最小系统的必要组成及其基本功能。第一,电子产品最缺一不可的两部分就是变压器和电源,电源振荡器是系统的主要能量和动力来源。在我们的系统设计中,由于我们目前选用的是单片机振荡器可以在4.5~5.5v之间正常的电压下工作,所以我们直接通过采用usb电源输出线插头连接普通的电源数据线插头或5v的移动电源为我们的系统进行供电。接下来,xtal1和或者xtal2是独立的两个输入正相版和独立的输出反相版的信号放大器。独立的两个石英晶体振荡器都可以用它们配置为片上定时振荡器,或者也可以由外部的时钟直接放大器来驱动。在我们的图3.1中,我们的晶振电路采用内部的时钟驱动模式,这也就是说内部的振荡器完全可以直接利用时钟驱动芯片的内部振荡电路,在芯片上的xtal1和或者xtal2的两个引脚上分别连接定时振荡元件(一个串联的石英晶体和两个并联的电容器),产生一个自激以防止振荡。我们的实验时钟驱动装置是采用12米的石英晶体振荡器。对于振荡器尺寸和频率的影响微乎其微,它是与晶体振荡器并联的两个晶体电容器的最大尺寸,它的功能和作用主要是对频率的微调。采用石英晶体时,电容可选择在0.20~40pf(本设计采用30pf)之间;采用陶瓷谐振器时,电容应适当增大,在0.30~50pf之间。通常我们可以考虑选择30pf的小型陶瓷谐振电容器。 图3.1 晶振电路 复位自动控制电路大致可以再细分为:电源上下供电自动控制复位输出电路控制z和电源开关自动控制复位。图3.2所示的自动快速复位开关控制电路主要功能包括这x和x两种自动快速复位的控制模式。通电时,电容器两端的电流正极和负电压不能突然发生变化。此时,电容器的正和负极通过漏电连接自动进行复位,电压全部施加到电阻上。复位输入高,芯片复位。然后+50V电源对电容器开始充电,电阻上的复位电压渐渐的降低。最后,它的数值等于00,芯片的复位电路工作正常。并联复位器是连接电容器两端的第一个复位电阻和按钮。因此当按下复位按钮时,电路两端就可以实现上电复位了。而在芯片正常地工作后,按下复位按钮,使得vrst引脚在电路上出现一定的高电平,达到手动上电复位的理想效果。一般来说,只要电容器的brst引脚在电路上保持010ms以上的一定高电平,就使读写器可以有效地实现上电复位nmcu。如下图中所示两个经典的数值是读写器的复位电阻和按钮的电容为,可以用同一两个数量级的电阻和复位电容在实际的生产中进行代替。同时读写器还可自行地计算如何在arc充电的时间或在正常工作的环境中进行测量,可以有效地确保整个单片机复位电路的可靠。 图3.2 复位电路 完整的STC89C51单片机系统最小系统电路图如图3.3所示。 图3.3 单片机STC89C51最小系统 3.2 LCD1602液晶显示的介绍 3.2.1 LCD1602的简单概述 lcd1602液晶显示模块其实是一种液晶模块, 它采用了点阵字符位,它专门的模块来显示字母、数字、符号,是由几个05x7或5x911等的点阵字符位模块组成。一个点阵字符可以分别很好的由各个点阵字符显示。一个点阵字符空间都存在于各个点阵的自字符间,每个点阵一行之间都有一个点阵行空间。它的功能和作用主要是显示字符串的点空间和行的点空间。因此它不能很好的用于显示点阵图形。lcd1602液晶的显示模块主要搭载hd44780控制器。hd44780具有简单而强大的指令集,它的指令控制功能主要是控制点阵字符的移动、闪烁。lcd16023与液晶液晶单片机之间的视频通信数据可以选择采用q8位或4位并行传输。hd44780控制器由两个8位的数据寄存器、指令寄存器(eir)和一个数据显示寄存器(rdr)忙显示标志(tbf)、显示标志和数据寄存器ram(ddram)、字符和数据发生器roma(cgorom)字符和数据发生器cgram(cgram)、地址计数器cgram(ac)模块组成。pir分别用于临时存储指令码,指令码数据只能临时读写,不能进行临时读出。bdr分别用于临时存储指令码数据,内部的操作自动分别写入选临时从ddram和临时从cgram,或临时分别存储从ddram和临时从cgram模块读出的指令码数据。另外,当pir和bf为1时,液晶显示控制器模块仍然处于内部工作模式,不自动响应外部操作的指令和自动接收数据。ddtam可以用于同时存储显示的字符,可以同时存储80个字符的代码。cgrom从5×7点阵的字符160和5×10点阵的字符分别生成432种8位点阵字符的编码,cgram可以用于为每一个用户的地址码编写特殊字符。它的地址码容量通常只有664字节。您的用户可以选择自定义48个5*7点阵的字符或34个5*10点阵的字符。ac可以同时存储gddram和cgram的用户地址。如果您的地址码随指令自动写入ir,ir寄存器会自动将您的地址码加载到ac中,同时您可以选择ddram或cgram, LCD1602液晶实物图如图3.4所示。 图3.4 fLCD1602液晶实物图 3.2.2 LCD1602的引脚说明 lLCD1602液晶显示器引脚功能描述表3-3。 表3-3 LCD1602引脚 排号 名称 定义 排号 名称 定义 1 Vss 工作电压负极 9 D2 数据端 2 Vcc 工作电压正极 10 D3 数据端 3 VL 液晶调节端 11 D4 数据端 4 RS 数据/命令端(H/L) 12 D5 数据端 5 R/W 读/写端(H/L) 13 D6 数据端 6 E 使能信号端 14 D7 数据端 7 D0 数据端 15 Bla 背景灯正端 8 D1 数据端 16 Blk 背景灯负端 2组电源:一组为液晶背光灯的电源;另一组是液晶工作的电源;这两个都是由5V供电。 rs:读出输入数据命令/端口输出输入数据的一个选择端。当引脚为低或高电平时则可进行数据写入读出数据的命令传输;同时当引脚为低或高电平时则可进行读入写出的数据传输命令。 RW:读/写选择端。当端口为高时液晶向外围执行读操作;当引脚为低时单片机向液晶执行写操作。 vo:它的主要功能作用也就是作为显示颜色对比度的一个调节端。硬件用户可以直接通过一个可以调节显示对比加速度显示电位器的一个硬件接口来自行手动控制调节软件显示对比电位器的软件对比度在一个硬件显示电位器接口上接一个可以调节显示电位器的软件对比度自动调节端。 e:这个引脚通常是提供数据处理使用功能的一个终端。e引脚通过电路接收外部高功率脉冲将一个数据信号传送出来给一个大的液晶电视显示。 D0—D7:为8位数据总线。 3.2.3 LCD1602的工作原理 lcd1602一共单片机具有11条字符指令,想要完成一些特定的显示功能可以利用这11条字符指令借用单片机发送就可以达成目的,比如开关,清屏或显示等。lcd1602自己带有的字库指令在需要进行显示的时候我们就可以直接调用自己的字库指令进行显示,假如字母库中没有的自定义字符的话,也可以自己直接将自定义的字符写入cgrom中来满足单片机的需要,自定义字符的分辨率为5*8,而由于自定义字符的数量有限,需要合理的空间进行安排和使用,最多单片机就可以在字库中自定义8个字符,加入我们将自定义的字符通过字模写入lcd的字符写入cgrom中,我们就已经可以随意的进行调用了,调用的字符操作方式和之前的显示字符操作的方式是一摸一样的。 控制器LCD1602液晶显示器只要会对LCD1602进行写入读写数据指令的操作状态写入操作、写读入数据读读指令操作状态写入操作、读数据读写指令操作状态写入操作、写读读数据指令操作读读即可具体各群体的数据状态读读操作及其对应的引脚及其工作状态电平如下图表3-4所示。 。 表3-4 LCD1602操作指令对应的引脚电平 读状态 写指令 读数据 写数据 输入 RS=L,R/W=H,E=H RS=L,R/W=L,D0-D7=指令码,E=高脉冲 RS=H,R/W=H,E=H RS=H,R/W=L,D0-D7=数据,E=高脉冲 输出 D0-D7=状态 无 D0-D7=数据 无 上表中e为寄存器的使能端;rs为指令寄存器的选择,当寄存器rs=h时,h表示选择相应的数据寄存器,rs=l时表示选择指令寄存器;r/w为寄存器的信号线,r/w=h时信号线执行读指令写操作,r/w=l时信号线执行指令写操作。lcd1602具体的指令读操作时序如下表图3.5,写操作的时间序列表如图3.6所示。 图3.5 LCD1602读操作时序图 图3.6 LCD1602写操作时序图 在单片机使用的时候将d0~d7连接到51单片机的p0上方便单片机进行信号和数据的存储和传输,而单片机的vl口则需要连接一个可调节的电位器,当进行调节电器位器的改变时接入vl的电压也随之发生变化进行电压显示的时候可清晰度也随之发生变化,所以在实际时采用固定电位器而不是采用固定阻值器的方式调节电阻,这样就是为了使电阻能够不方便的进行调节以使用在信号和电压不同的应用场合。具体电路olcd1602电路结构图设计如图3.7所示。 图3.7 LCD1602电路图 3.3 DS18B20温度传感器的设计 3.3.1 DS18B20的简单概述 ds18b20温度传感器是一种由美国达拉斯加半导体公司自主开发的一种新型的智能高温度传感器。ds18b20的主要性能设计特点主要是:唯一的单调数据线接口只需要一个端口引脚就可以进行数据通信;多个端口vds18b20可以在三十条单调数据线上实现多点并行通信和连接,它具备多点同时组网的功能;不需要外部设备;单调数据线可以为温度计进行供电,电压范围一般为3.0~5.5v,待机功耗一般为零,设计9位或12位二进制的数字温度量来表示温度,用户可定义温度报警搜索命令设置,报警搜索命运令可以识别并自动标记具有超过温度报警程序定义的温度(温度报警其必要条件)的报警设备,当温度计电源的负电压特性和非负电压极性发生颠倒,温度计不能正常的工作,但温度计不会因电源发热而损坏。DS18B20温度传感器的引脚图如图3.8所示。 图3.8 DS18B20温度传感器引脚图 3.3.2 DS18B20的工作原理 表3-5 DS18B20 ROM指令表 指令 约定代码 功能 读ROM 33H 读DS1820温度传感器ROM中的编码(即64位地址) 符合ROM 55H 发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。 搜索ROM 0FOH 用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。 跳过ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。 告警搜索命令 0ECH 执行后只有温度超过设定值上限或下限的片子才做出响应。 表3-6 DS18B20 RAM指令表 指 令 约定代码 功 能 温度变换 44H 启动DS1820进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。 读暂存器 0BEH 读内部RAM中9字节的内容 写暂存器 4EH 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器 48H 将RAM中第3、4字节的内容复制到EEPROM中。 重调 EEPROM 0B8H 将EEPROM中内容恢复到RAM中的第2、3字节。 读供电方式 0B4H 读DS1820的供电模式。寄生供电时DS1820发送“0”,外接电源供电 DS1820发送“1”。 DS18B20单总线控制时序图如图3.9所示。 图3.9 DS18B20单总线操作时序图 表3-7 DS18B20输出的温度值 温度值 二进制输出 十六进制输出 +125℃ 0000 0111 1101 0000 07D0h +85℃ 0000 0101 0101 0000 0550h +25.0625℃ 0000 0001 1001 0001 0191h +10.125℃ 0000 0000 1010 0010 00A2h +0.5℃ 0000 0000 0000 1000 0008h 0℃ 0000 0000 0000 0000 0000h -0.5℃ 1111 1111 1111 1000 FFF8h -10.125℃ 1111 1111 0101 1110 FF5Eh -25.0625℃ 1111 1110 0110 1111 FF6Fh -55℃ 1111 1100 1001 0000 FC90h 在使用时候的DS18B20的I/O引脚接一个10K的上拉电阻。电路图如图3.10所示。 图3.10 DS18B20电路图 3.4 蜂鸣器电路的设计 黄蜂式轰鸣器一般主要采用5v以上高频电磁波或有源的高频蜂鸣器。由于产生电磁波的有源器和蜂鸣器的两个工作输出电流一般非较大,单片机的两个i/o口通常缺点是不能直接全被开关电路板来驱动。因此,应该优先考虑直接使用三极晶体管开关电路控制元件或或来直接使用驱动产生电磁波或有源电的蜂鸣器,这里一般建议选用08550三极体导管,是PNP型三极管。当一个1K电阻与底座串联连接到MCU的I/O端口时。当I/O端口低功率时,三极管不打开,蜂鸣器开始鸣响;当I/O端口输出高功率时,三极管关闭,停止鸣响。蜂鸣器电路如下文2.11所示。 图2.11 蜂鸣器电路 3.5 独立按键电路的设计 在这个电路的设计里面,有一个钥匙按键接地电路,人机交互的操作就是通过几个独立的钥匙按键接地电路来交互进行的。每个钥匙通过一个单片机的一个i/o口进行接地。这种电路的设计主要是因为一个单片机在不需要输出任何空气的情况下,其I/O默认为高电平。如果未来按下该键,则相当于I/O处于空气状态。按下后,I/O端口的电平K就被拉低了。这样,只需要循环检查I/O口是否有低电平,就可以判断单片机是否有按键了。当然,关键之处在于金属如何释放,所以会有抖动纹波,所以我们很有必要的在程序中加入一个短延时来起到消除抖动的效果。具体电路如图2.12所示。 图2.12 独立按键电路 三个按键的功能分别为: 第一个简单的设置按键:按上一下后你就可以直接进入手动设置设定上限时的值,“hxxx“在整个数码管上进行设置和自动显示;再一次按下后你就可以直接进入手动设置设定下限时的值,“lxxx“在整个数码管上进行设置和自动显示;再按退出恢复正常显示。 第二个工作按键:在系统设置的工作模式下,对应的按键参数是二加一。 第三个就是按键:在系统设置的按键模式下,对应的按键参数同样可以是减一加二或者减一。 3.6 原理图绘制软件的介绍 Altiumdesigner该软件是基于altiumc公司2004年推出的一款物理电路设计软件的版本。实际上该软件的电路设计功能非常全面,可以帮助用户实现从概念说明书的设计、顶层系统架构设计到小数据的输出生产再到大数据的所有不分析、验证和设计以及大数据的采集和管理。protel98、protel99se和gnerproteldxp都实际上是以前的电路设计版本,但是现在也非常的流行。Altiumdesigner2004不仅该软件是一个用于pcupcb(嵌入式印刷电路板)系统设计的工具,而且该软件还是一个由多个物理电路模块设计软件组成的系统工具,包括sch(嵌入式原理电路图只)的设计、sch(嵌入式原理电路图)的仿真、pcb(嵌入式印刷电路板)的设计、版自动路由器、FPGA的设计和嵌入式软件的开发,覆盖的范围包哦了以pca和pcb软件为设计核心的整个物理电路设计。这个同步设计软件主要结合了项目管理、原理图与pcb电路结构图双向同步设计技术、多通道电路设计、拓扑自动电路布线和集成电路仿真,它为电路设计和开发提供了有力的技术支持。与现有的protel99的早期同步设计版本软件相比,altiumdesigner2004不仅它的软件外观豪华,强大,而且也非常的提高了电路设计的双向同步性,集成了先进的VHDL和FPGA设计管理系统,它的结构和功能因此被大大改善和增强了。 4 系统软件部分设计 4.1 软件开发环境的介绍 4.2 系统重要函数的介绍 4.2.1 主函数的设计 main是一个函数maivoidmain()是应用程序的入口这个函数,必须将它包含在完整的应用程序中。在这个函数的开始,我们通常需要进行初始化并重新分配一些完整的变量入口给mcu和一些其它需要进行初始化的外围设备,然后它们这样才能正常投入使用。初始化之后,我们将进入一个死的循环,如果我们退出了,意味着我们不进入一次死的循环。如果我们继续循环,意味着我们已经加入了死的执行循环,这样就使得我们可以直接达到实时地检测和控制程序执行的目的。在基于主程序的操作系统设计中,在一个主程序函数中需要留下太多的执行代码可能是不被主程序所允许的。具体的执行代码通常由主程序函数进行封装,然后在相应的主程序函数中进行调用,我们读取和修改,报错才比较方便。具体流程图如下4.1所示。 图4.1 主函数流程图 4.2.2 LCD1602显示函数的设计 LCD1602的各项液晶电视显示设备程序工作只能严格按照我国液晶电视显示设备厂家的规定工作进行时序和技术要求严格进行及其编程程序才能正常完成。lcd602液晶电视显示器的执行程序管理需要把我们的执行时序和所有命令行数据重新写入我们现实要重新重复显示的所有数据执行位置和文件地址,然后按照我们现实的时序命令的执行顺序重新再次写入我们要重复显示的所有数据。地址写入后显示第一个内容后,它的地址将会自动增加一个。函数名为 lcd1602﹐write﹐character(ucharx,uchary,uchar*p),参数为x,y,*s,其中x,y分别表示要在液晶屏上的位置和坐标,*s表示要在屏幕上显示的字符数组。显示软件可以根据用户的需要设定所显示的位置坐标和计算地址。显示软件函数的流程图如4.2所示。 图4.2 显示子函数的流程图 4.2.3 DS18B20温度采集函数的设计 第一,温度传感器DS18b20需要在一台电脑主板上的多功能传感器开始时进行初始化。传感器初始化的工作目的主要是通过配置多功能传感器的寄存器,使得ds18b20的转换精度可以达到12位。这样进行初始化后,寄存器就已经可以直接读取传感器的ds18b20的转换温度了。我们如果开始时需要直接读取传感器的ds18b20的转换温度,第一步需要复位DS18B20,第二步如果总线上只有一个传感器,可以跳过读取序列号开始温度转换,复位后跳过序列号的匹配,然后发送读取温度指令,第三步就是读取写入数据温度的寄存器。数据读取后,它的寄存器会将写入数据的温度转换为实际的温度。具体的流程图所示如图4.3所示。 图4.3 DS18B20温度采集流程图 4.3 系统软件测试 系统软件调试中我主要遇到以下问题:(1)向LCD1602液晶发送清屏 命令时,LCD1602没有成功清屏。解决方案:参照LCD1602说明书,发现清屏指令确实是0x01,与程序上几乎一摸一样,但显示屏可以显示内容,说明程序发送的指令没有错误,但没有显示清楚。所以,在发送清屏指令后是否进入下一个内容显示是值得我们去怀疑的,并且lLCD1602的处理速度不够,所以清屏 指令没有实际执行。添加40毫秒的延迟后,然后我发现下载程序后再次执行了清除屏幕命令。思来想去,然后我仔细翻阅了说明书,发现LCD1602清屏确实需要1.64ms的执行时间,最终我的程序就采用4ms的延时。(2) EEPROM存储错误。解决方案:一开始,在读写数据之前,我没有进行任何操作。我以为这样可以完成数据存储,然后我通过查阅数据得知,在写入数据之前,STC MCU内部的EEPROM必须擦除扇区,不然的话程序里面写入的数据就会被擦除,这个结果是因为自身数据匹配。然后在我将数据写入程序之前添加擦除扇区后,数据就可以正常存储了。 参考文献 [1] 赵丽芬,张学超,陈文娟,“传感器技术及其应用”课程教学改革,铜仁学院大数据学院,2017.09. [2] 马须敬,朱义彪,传感器的研究现状与发展趋势,青岛科技大学材料科学与工程学院,2017.08. [3] 李军,韩波,李振杰,传感器技术实践教学改革与实践,阜阳师范学院计算机与信息学院,2017.05. [4] 郭玉霞,李志杰,基于ADS1256和STM32的数据采集装置设计,甘肃工业职业技术学院电信学院,2018.12. [5] 吴忠伟,何显,山岳彤,基于51单片机的无线防丢器的设计研究,吉林建筑大学城建学院,2018.12. [6] 张幼麟,简介51单片机的定时器/计数器,乐山师范学院物理与电子信息系,2018.12. [7] 王昱言,基于单片机的智能窗帘系统设计,江苏省淮阴中学,2018.12. [8] 张皓博,基于GSM技术的家用防盗硬件系统设计,黑龙江工业学院电气与信息工程系,2018.12. [9] 王冠龙,崔靓,朱学军,基于数字PID算法的温度控制系统设计,宁夏大学机械工程学院,2018.12. [10] 李雪等,智能温度模糊控制PID系统设计,大连民族大学信息与通信工程学院,2018.11. [11] 王莹,黄梅王等,基于GSM技术的病房环境监测系统设计,河南理工大学医学院,2018.12. [12] 潘言全,智能手环的设计与制作,湖北师范大学物理与电子信息科学学院,2018.12. [13] 徐越,徐志龙,陈萱,基于AT89C52的多功能数字钟设计,华北理工大学电气工程学院,2018.12. [14] 王维佳,基于单片机的温度控制系统设计,郑州大学物理工程学院,2018.12. [15] 张欢欢,王冰玲,智能停车收费管理系统设计,安徽三联学院,2018.12. [16] 刘佳乐,基于单片机的电子密码锁设计,兰州工业学院电气工程学院,2018.12. [17] 许雪梅等,基于单片机的交通灯控制系统设计,甘肃农业大学信息科学技术学院,2018.12. [18] 吴玉玉等,基于单片机的电子万年历设计,甘肃农业大学信息科学技术学院,2018.12. [19] 张娟等,基于51单片机的智能电风扇设计,太原工业学院工程训练中心,2018.11. [20] 彭建英,刘雨丽,郭杰荣,一款单片机智能烟雾报警系统的设计,湖南文理学院物理与电子科学学院,2018.11. [21] 谈敏,温湿度监控系统设计,江阴职业技术学院电子信息工程系,2018.11. [22] 王松林,基于单片机的防酒驾控制系统设计,安徽商贸职业技术学院电子信息工程系,2018.11. [23] 王沁等,一种智能门禁管家系统的设计,西安工业大学机电工程学院,2018.11. [24] 周皓冉,基于K60的汽车内环境监测与报警系统设计,湖南科技大学物理与电子科学学院学院,2018.11. [25] 杨秋贤,基于单片机的汽车倒车测距系统设计,吉林化工学院,2018.12. [26] 成晋军,基于热释电技术的家庭防盗报警器设计,办公自动化,2018年21期. [27] 马须敬,徐磊,气体传感器的研究现状与发展趋势,青岛科技大学材料科学与工程学院,2018.06. [28] 李志瑞,申庆超,智能家用PM2.5环境检测仪设计,安阳工学院电子信息与电气工程学院,2017.09. [29] 李鑫,自动气象监测系统设计控制软件设计,东南大学,2016.05. [30] 马玉琼,基于单片机的气压检测系统的设计,沧州师范学院机械与电气工程学院,2018.03. [31] 屠彬彬等,轮胎气压表性能检测装置的研制,浙江省计量科学研究院,2014.04. [32] 韩焱,张艳花,王康谊.电子技术基础.北京:电子工业出版社,2009.6. [33] Zaliva, V. , Franchetti, F.,Barometric and GPS altitude sensor fusion,Acoustics, Speech and Signal Processing (ICASSP), 2014 IEEE International Conference on,2014. [34] Minh-Dung, N. , Takahashi, H. , Matsumoto, K. , Shimoyama, I.,Barometric pressure change measurement,Solid-State Sensors, Actuators and Microsystems Conference (TRANSDUCERS), 2011 16th International,2010. [35] Tanigawa, M. , Luinge, H. , Schipper, L. , Slycke, P.,Drift-free dynamic height sensor using MEMS IMU aided by MEMS pressure sensor,Positioning, Navigation and Communication, 2008. WPNC 2008. 5th Workshop on,1996. [36] Leuenberger, K. , Gassert, R.,Low-power sensor module for long-term activity monitoring,Engineering in Medicine and Biology Society,EMBC, 2011 Annual International Conference of the IEEE,2011. 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 5 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于单片机的空调温度控制系统设计毕业设计

     毕业设计  题 目 基于单片机的空调温度控制系统设计 学生姓名 学 号 学 院 计算机与信息工程系 专业班级 指导...

    2年前   
    1733    0

    基于单片机的温度控制系统设计毕业论文

    职业学院毕业论文 题目:单片机温度控制系统研制 系 院:工程技术学院 学生姓名: 学 号: 专 业:机电一体化 ...

    2年前   
    3551    0

    论文:基于单片机的温度控制系统

    本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、...

    2年前   
    929    0

    论文:基于单片机的温度控制系统

    本设计以AT89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。

    2年前   
    1740    0

    基于PID的温度控制系统设计论文

     (20XX届) 毕业设计 题  目:   基于PID的温度控制系统设计  学  院:             专  业:     电气工程及其自动...

    2年前   
    1380    0

    基于AT89C51单片机的鸡舍温度控制系统

    基于AT89C51单片机制作一个温度控制器,用于自动接通电加热或制冷设备,从而使鸡舍内温度达到设想温度的要求,并能实时显示室内温度。当室内温度低于设定下限温度时,控制器连通电加热设备,当室内温度...

    3年前   
    14079    0

    基于FPGA的温度检测系统设计

    XX学院信息工程学院数字系统与Verilog设计报告题 目: 基于FPGA的温度检测系统设计 姓 名: 学 号: ...

    4个月前   
    120    0

    基于单片机的数字温度计设计课程设计

    基于单片机的数字温度计设计引言随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需...

    1年前   
    427    0

    基于51单片机的数字温度计毕业设计

    数字测温计设计摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制...

    10个月前   
    638    0

    基于单片机的数字温度计课程设计

    摘要 本文提出了关于MCS-51系列单片机的数字温度计的制作电路方法和编程思想。设计一直灌输着电子电路制作软硬结合,以硬件为主的理念。采用模块化的设计思想。硬件模块分为温度的感应模块、时钟...

    1年前   
    317    0

    基于51单片机数字温度计设计课程设计

    课 题: 基于51单片机数字温度计设计专 业: 电子信息工程班 级: 班学 号: 姓 名: ...

    9个月前   
    385    0

    基于单片机的温度控制外文文献及中文翻译

    Temperature Control Using a Microcontroller: An Interdisciplinary Undergraduate Engineering Desi...

    2年前   
    857    0

    基于51单片机的智能窗帘控制系统

     毕业论文(设计) 学 院: 工学院 ...

    10个月前   
    503    0

    基于51单片机的教室智能照明控制系统

    目 录绪论1 教室灯光自动控制整体描述 1.1 灯光控制总体思想 ................................................................

    4个月前   
    134    0

    基于单片机的自动窗帘控制系统毕业论文

     题目 自动窗帘控制系统 年 月 日 摘 要 自动控制属于电子及信息科学的一个重要分支,并且在现代家居中有着较好的目前发展前景。目前,...

    2年前   
    1364    0

    基于单片机的自动门控制系统设计毕业论文

     职业技术学院 毕业设计(论文) 作 者: 学 号: 系 部: 电气工程系 班 级: ...

    2年前   
    1308    0

    基于单片机的红绿灯智能控制系统设计

    随着社会经济的快速发展以及人们生活水平的提高 ,机动车数量也在急剧增加 ,交通问题逐渐成为人们关注的重点对象,因城市发展所带来的交通拥堵等问题,利用智能交通来解决传统交通日渐出现的问题成为大势所趋。

    1个月前   
    164    0

    基于51单片机红外迎宾及人数检测报警系统

    红外感应式门铃如今常用于店铺门口用于迎接顾客。它可依据顾客的进出状况作出有所差别的反应。主要研究了红外感应技术在我们日常生活中的应用,即感应式门铃。通过对它的研究,学会红外接近开关的原理、电路设...

    2个月前   
    89    0

    基于51单片机压力检测系统设计毕业设计

     学号: xx 大 学 毕业设计(论文) (xxxx届) 题 目 ...

    2年前   
    1385    0

    开题报告-基于单片机的路灯稳压控制系统设计

    开题报告电气工程及自动化基于单片机的路灯稳压控制系统设计一、综述本课题国内外研究动态,说明选题的依据和意义随着工业的发展,电力设备的老化,电力紧张已是社会普遍现象。而城市化的加快又需要更多的照...

    1年前   
    475    0

    文档贡献者

    爱***享

    贡献于2021-09-17

    下载需要 5 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档