版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 华北理工大学轻工学院 qinggong college,north china university of science and technology毕业设计说明书设计(论文)题目:基于单片机的多点温度检测系统软件设计学生姓名: 学 号: 专业班级:11q电气6班 学 部:信息科学与技术部指导教师: 2015年6月16日摘 要 随着人类社会的不断发展,温度在人们的生产生活中扮演着越来越重要的角色,大到工业冶炼、物质分离、环境监测、电力机房、医疗卫生等方面,小到家庭冰箱、空调、电热水器等,可以说温度与我们的生活息息相关。电子技术的发展使得单片机得到了迅速的发展,智能化温度测量技术的应用范围越
2、来越广,但是温度的检测和控制还有许多问题要去完善,如何更好的控制温度性能以满足不同行业的要求,是我们要研究的一个重要课题。在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。 本课题以stc89c52rc单片机系统为核心,能对多点温度进行实时检测。ds18b20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻
3、松的组建起传感器网络,并可使多点温度测量电路变得简单、可靠关键词: 单片机;温度传感器;ds18b20abstract with the continuous development of human society, temperature in peoples production and life plays more and more important role, to smelting industry, substance separation, and environmental monitoring, power room, health and other aspects,
4、 to household refrigerator, air conditioning, electric water heaters and other can be closely linked temperature and our lives.the development of electronic technology, the mcu has been the rapid development, intelligent temperature measurement technology application more and more widely, but there
5、are many problems in the detection and control of temperature to improve, how to better control the temperature performance to meet the requirements of different industries, is an important issue that i have to study. in traditional temperature measurement system design, often using simulation techn
6、ology to carry on the design, it will inevitably encounter such as lead error compensation, multi-point measurement error switch and signal conditioning circuit error problem; and a part of a deal with them improperly may cause a decline in the performance of the whole system.with the rapid developm
7、ent of modern science and technology, especially the development of large-scale integrated circuit design technology, miniaturization, integration and digitalization are becoming an important direction of sensor development.this thesis takes the stc89c52rc microcontroller system as the core, and can
8、 detect the temperature of multi points.ds18b20 is a network of high precision digital temperature sensor, because of its unique advantages of single bus can users easily establishing a sensor network, it can also make the net simple and reliable with its special 1-wire interface.keywords: mcu tempe
9、rature sensor ds18b20目录摘 要iabstractii目录iii第1章 绪论11.1 课题背景11.2 课题研究意义11.3 温度智能测控系统的工作原理2第2章 单片机简介32.1单片机的基本结构32.1.1微处理器(cpu)32.1.2 内部数据存储器(ram)32.1.3内部程序存储器(rom)32.1.4定时器/计数器42.1.5 并行i/o口42.1.6串行口42.1.7中断控制系统42.1.8时钟电路42.1.9 特殊功能寄存器(sfr)42.2单片机执行指令的过程52.3单片机的特点5第3章 方案论证与选择63.1 传感器连接方案设计73.1.1 设计方案一73
10、.1.2 设计方案二73.2 方案的比较与选择8第4章 硬件电路设计94.1 单片机最小系统94.2 按键以及显示电路104.3 温度检测电路114.4超温报警电路124.5 整体电路13第5章 系统软件设计145.1 软件开发工具的选择145.2 软件设计的原则155.3 系统主程序流程图155.4 温度检测程序设计165.4.1 dsl8b20编程简介175.4.2 dsl8b20的rom命令175.4.3 dsl8b20时序185.4.4 温度检测程序流程图215.5 液晶显示程序设计225.5.1 1602指令说明及时序235.5.2 1602的ram地址映射255.5.3 液晶显示流
11、程图265.6按键程序设计265.7 报警程序设计28第6章 调试与总结306.1 proteus软件简介306.1.2 proteus软件所提供的元件资源306.2 硬件调试316.3软件调试326.4仿真软件运行结果326.5总结33结 论34参考文献35谢 辞36附录a 电路原理图37附录b仿真图38附录c程序39第1章 绪论1.1 课题背景随着人类社会的不断发展,温度在人们的生产生活中扮演着越来越重要的角色,大到工业冶炼、物质分离、环境监测、电力机房、医疗卫生等方面,小到家庭冰箱、空调、电热水器等,可以说温度与我们的生活息息相关。电子技术的发展使得单片机得到了迅速的发展,智能化温度测量
12、技术的应用范围越来越广,但是温度的检测和控制还有许多问题要去完善,如何更好的控制温度性能以满足不同行业的要求,是我们要研究的一个重要课题。温度是生产过程和科学实验中普遍而且重要的物理参数。在工业生产过程中为了高效地进行生产,必须对生产工艺过程中的主要参数,如温度,压力,流量,速度等进行有效的控制。其中温度的控制在生产过程中占有相当大的比例。准确测量和有效控制温度是优质,高产,低耗和安全生产的重要条件。在工业的研制和生产中,为了保证生产过程的稳定运行并提高控制精度,采用微电子技术是重要的途径。它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益在传统的温度测量系
13、统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。目前先进国家各种炉窑自动化水平较高,装备有完善的检测仪表和计算机控制系统。其计算机控制系统已采用集散系统和分布式系统的形式,大部分配有先进的控制算法,能够获得较好的工艺性能指标。单片微型计算机是随着超大规模集成电路的技术的发展而诞生的。由于它具有体积小,功能强,性价比高等优点,所以广泛应用于电子仪表,家用
14、电器,节能装置,军事装置,机器人,工业控制等诸多领域,使产品小型化,智能化,既提高了产品的功能和质量又降低了成本,简化了设计。1.2 课题研究意义随着科学技术的不断进步与发展,温度控制在工业控制、电子测温计、医疗仪器、家用电器等各种温度控制系统中广泛应用,且由过去的单点测量向多测量发展。目前温度传感器有模拟和数字两类传感器,为了克服模拟传感器与微处理器接口时需要信号调理电路和ad转换器的弊端,大多数多点测温控制系统采用数字传感器,并大大方便了系统的设计。比较有代表性的数字温度传感器有ds18b20、max6575、ds1722、max6635、smt160-30等。在传统的温度测量系统设计中,
15、往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国dallas半导体公司推出的数字温度传感器ds18b20,具有独特的单总线接口,仅需要占用一个通用i/0端口即可完成与微处理器的通信;在-10+85 温度范围内具有05 精度;用户可编程设定912位的分辨率。以上特性使得ds18b20非常适用于构建高精度、多点温度测量系统。1.3 温度智能测控系统的工作原理课题
16、采用由dallas公司生产的智能数字温度传感器ds18b20和atmel公司推出的单片机at89c51以及相关外围电路实现高精度、多点温度测量系统。同时本设计在单片机系统设计主流eda软件proteus环境下完成,能够及时观察效果和修改软硬件。本课题主要是实现对温度进行多点测量并实时显示。整个系统由单片机控制,要能够接收温度传感器的数据并在液晶上显示出来,并且通过串口向上位机发送数据,在上位机显示温度,还可以从键盘设定报警上下限,当温度超过设定范围后,发出声光报警。第2章 单片机简介单片微型计算机自20世纪70年代问世以来,以对人类社会产生了巨大的影响。尤其是美国intel公司生产的mcs-5
17、1系列单片机,由于其具有集成度高、处理功能强、可靠性高、系统结构简单、价格低廉、易于使用等优点,在世界范围内已经得到广泛的普及和应用。而且随着以mcs-51单片机基本内核为核心的各种扩展型、增强型的新型单片机不断推出,mcs-51系列仍是我国单片机应用领域的主流机型。目前在工业控制、智能仪器仪表、办公室自动化、家用电器等诸多领域,到处都可看见单片机的踪影,单片机技术开发和应用高水平已成为一个国家工业化水平的标志之一。2.1单片机的基本结构2.1.1微处理器(cpu)mcs-51单片机中有1个8位的cpu,包括运算器和控制器两大部分,不仅可处理字节数据,还可以进行位变量的处理。例如:位处理、查表
18、、状态检测、中断处理等。2.1.2 内部数据存储器(ram)单片机芯片共有256个ram单元,其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部ram。地址范围为00hffh(256b)。片外最多可外扩64kb。ram是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。2.1.3内部程序存储器(rom)单片机内部有4kb的rom,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部ram。地址范围为0000hffffh(64kb)。片外最多可外扩64kb。2.
19、1.4定时器/计数器单片机共有2个16位的定时器/计数器,具有4种工作方式,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对p3.4(t0)或p3.5(t1)端口的低电平脉冲计数。2.1.5 并行i/o口mcs-51单片机共有4个8位的i/o口(p0、p1、p2、p3)以实现数据的输入输出。2.1.6串行口mcs-51单片机有一个全双工的串行口,具有4种工作方式,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。rxd( p3.0)脚为接收端口,txd(p3.1)脚为发送
20、端口。2.1.7中断控制系统mcs-51单片机的中断功能较强,以满足不同控制应用的需要。共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。2.1.8时钟电路mcs-51单片机芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12mhz等。2.1.9 特殊功能寄存器(sfr)特殊功能寄存器共有21个,用于cpu对片内各功能部件进行管理、控制、监视。实际上是片内各功能部件的控制寄存器和状态寄存器,是一个具有特殊功能的ram区。2.2单片机执行指令的过程 单片机执行程序的过程,实际上就是执行所编制程序
21、的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-分析指令-执行指令。取指令的任务是:根据程序计数器pc中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。2.3单片机的特点单片机应用在检测控制领域中,具有如下特点:1.小巧灵活、成本低、易于产品化。可靠性好,适应温度范围宽。易扩展,很容易构成各种规模的应用系统,控制功能强。2.可以很方便的实现多机和分布式控制系统,具
22、有优异的性能价格比。3.存储器rom和ram是严格分工的,采用面向控制的指令系统,输入/输出(i/o)端口引脚通常设计有多种功能。4.品种规格的系列化,功率消耗低。所以从工业自动化、智能仪器仪表、消费类电子产品、通信方面、家用电器方面等,直到国防尖端技术领域,单片机都发挥着十分重要的作用。综观单片机几十年的发展历程,单片机今后将向多功能、高性能、高速度、低电压、低功耗、低价格、外围电路内装化以及片内存储器容量增加和flash存储器化方向发展。可以预言,今后的单片机将是功能更强、集成的和可靠性更高而功耗更低,以及使用更方便。此外,专用化也是单片机的一个发展方向,针对单一用途的专用单片机将会越来越
23、多。第3章 方案论证与选择温度测量是通过ds18b20对温度进行采集,并存储在可擦写的eprom中,但接受到主控机的命令后,将采集的温度送至51单片机的p1口,再通过串口送至液晶显示器上将温度显示出来,并达到轮循的效果由于该温度控制采用数字输出形式,因此不需要a/d转换器。单片机主要是对温度传感器ds18b20进行编程,由于at89系列单片机与mcs一51系列单片机兼容,所以,本系统中的单片机选用at89c51。以at89c51单片机系统作为核心,对多点的温度进行实时控制巡检。各检测单元能对温度进行实时或定时采集,测量结果利用单片机的串行口,总线和通信协议将采集到的数据传送至主控机,通过主控机
24、把传送到的数据进行分析、存档、处理。主控机控制各个检测单元进行温度采集,同时收集测量数据,并对测量结果(包括历史数据)进行整理、显示和打印。主控机与各检测单元之间相互作用、相互联系,相互协调,从而使系统具有整体统一和谐的控制效果。主控系统主要由单片机实施功能。其包括的功能有:温度值的读取与存储、时钟芯片时间值的读取与存储、led液晶的显示以及关于是否进行声光报警的判断。还有就是单片机与pc机之间的通信、数据的传输也是靠单片机实现的。从机系统的主要功能就是将外界的模拟信号变为可以传输的数字信号。而温度传感器ds18b20本身包括寄生电源、温度传感器,64位激光rom单线接口、存放中间数据的高速暂
25、存器(内含便笺式ram)、存储与控制逻辑、用于存储用户设定的温度上下限值的th和tl触发器、结构寄存器,8位循环冗余校验码(crc)发生器等八部分。它通过程序语言可实现9位至12位的数字值读数方式,并在环境为93.7ms和750ms之间内,将温度值转化9位和12位的数字量。而且ds18b20与单片机之间的通信是利用 one wire方式,只要在编程方面多注意这个传感器的时序问题,能大大简化这个系统的硬件规模,并且能准确地读取温度信号,进而进行后续处理。所以ds18b2o就作为一个从机系统完成其重要的功能,其可使系统结构更趋简单,同时可靠性更高。温度测量的方案有多种,比如热敏电阻和集成温度传感器
26、等。本课题采用集成温度传感器ds18b20测量温度,输出信号全数字化,便于单片机处理及控制,省去传统的测温方法的很多外围电路。对于控制系统可以采用计算机、单片机等。课题要求是对温度进行多点测量,本课题以四点温度测量为例。3.1 传感器连接方案设计3.1.1 设计方案一 多i/o口连接方案,就是一个i/o口连接一个ds18b20,这种方案虽然占用单片机的四个i/o口,但采用这种方案大大地简化了编程难度,缩短了设计周期,同时也能保证系统的稳定,方案一的框图如图3.1所示: 单片机ds18b20ds18b20ds18b20ds18b203.1 ds18b20多i/o口连接方案3.1.2 设计方案二
27、单总线连接方案,就是四个ds18b20连接到单片机的一个i/0口上,这种方案只用到单片机的一个i/o口,大大的节约了单片机i/o口资源。缺点是在时序上比较复杂,ds18b20的编程增加了读rom程序和匹配rom程序。方案二的框图如图3.2所示: 单片机ds18b20ds18b20ds18b20ds18b20图3.2 ds18b20单总线连接方案3.2 方案的比较与选择方案一是把ds18b20的四个dq端分别接到单片机的四个不同的i/o口,这种接法虽然占用的i/o口比较多,但是它的时序比较简单,不需要读取rom序列号程序和匹配rom序列号程序,软件上简化了很多。方案二是把ds18b20的四个dq
28、端接到单片机的一个i/o口,这种接法节省了三个i/o口,在硬件上简化了不少,同时扩展方便,如需增加ds18b20的个数,可直接连在该i/o口。但是在软件上时序就增加了难度,需要添加读rom序列号程序和匹配rom序列号程序。本课题以四点的温度检测为例,同时考虑到扩展的方便,决定选用方案二。第4章 硬件电路设计单片机多点温度测试系统底层电路的功能主要包括:多点温度检测及其相关处理,实时显示温度信息,与单片机传输温度数据。硬件设计主要包括以下几个模块:单片机最小系统,按键以及显示电路,温度检测电路,超温报警电路。下面对电路模块分别进行说明。4.1 单片机最小系统本课题采用的单片机为at89c51,其
29、最小系统电路包括复位电路和时钟电路。复位电路:无论哪种单片机,都会涉及到复位电路。如果复位电路不可靠,在工作中就有可能出现“死机”,“程序走飞”等现象。所以,一个单片机复位电路的好坏,直接影响到整个系统工作的可靠性。复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行。当at89c51单片机的复位引脚rst出现5ms以上的高电平时,单片机就完成了复位操作,如果rst持续为高电平,单片机就处于循环复位状态,而无法执行程序,因此要求单片机复位后能脱离复位状态。复位操作通常有上电和开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如
30、果发生死机,用按钮开关操作使单片机复位。上电后,由于电容充电,使rst持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使rst持续一段时间的高电平,从而实现上电且开关复位的操作。时钟电路:at89c51单片机的时钟信号通常用内部振荡和外部振荡方式。在引脚xtal1和xtax2外接晶体振荡器,就够成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选用6mhz、12mhz或24mhz,本课题选择11.0592mhz的晶振。电容c2、c3起稳定振荡频率、快速起振的作用,电容值一般为5-30pf。内部振荡方式所得的时钟信号比较
31、稳定。外部振荡方式是把已有的时钟信号引入单片机内,这种方式适于用于用来使单片机的时钟与外部信号保持一致。最小系统电路原理图如图4.1所示。图4.1 单片机最小系统4.2 按键以及显示电路 单片机应用系统中除了复位按键有专门的复位电路,以及单一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。键盘可以分为两种:非编码式键盘和编码式键盘。非编码式键盘是利用按键直接与单片机进行连接而成的,这种键盘通常使用的按键数量较少,使用这种键盘,系统的功能通常比较简单,需要完成的任务较少,同时可以降低系统的成本、简化电路的设计。非编码式键盘的接口电路需要根据设计者的需要自行决定,按键信息是通
32、过单片机的接口软件来获取。编码式键盘是较多按键和专用驱动芯片组合而成的,当某个按键按下时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件的干预。本系统采用可复位按键来控制。3个独立按键,设置、加、减,按下设置按键进入上下限设置界面,加、减按键设置当前参数。1个按键控制是否报警。具体电路如图4.2所示。 图4.2 按键电路在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、led数码管、液晶显示器。
33、发光管和led数码管比较常用,软硬件都比较简单,液晶显示器的主要有lcd12864和lcd1602,由于本系统设计不需要显示过多的字符,所以用lcd1602足以,显示电路图如图4.3所示。图4.3 显示电路4.3 温度检测电路ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚to92小体积封装形式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。单片机只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。本课题中采用四个温度传感器ds18b20与单片机at
34、89c51连接,如图4.4所示。图4.4 温度检测电路4.4超温报警电路为了实现多点温度检测报警系统,本课题采用at89c51单片机作为主控制器,通过按键设定温度报警值,采用扫描的方式对多点ds18b20温度传感器获取对应该位置的温度值,经处理后与设定的报警值比较,低于下限报警,高于上限报警,每路ds18b20单独指示灯报警,警报声共用,按键可关闭、启用警报声。报警电路如图4.5所示 图4.5 报警电路4.5 整体电路见附录a(电路原理图)单片机多点温度测试整体功能介绍:(1)4路ds18b20温度采集电路。(2)采集测温范围为-55+120.(3)温度精度在0.1;误差0.2以内.(4)显示
35、采用1602液晶模块,开机显示每路当前温度自动判断是否接上传感器。当接入的传感器少于3个时,第一行显示当前传感器的温度值,第二行显示设置上下限参数,如果接入的传感器在3个以上, 液晶显示每路测温度值,按下设置按键进入上下限设置界面。(5)3个独立按键,设置、加、减,按下设置按键进入上下限设置界面,加、减按键设置当前参数。(6)报警设置0-99度。低于下限报警,高于上限报警,每路ds18b20单独指示灯报警,警报声共用,按键可关闭、启用警报声。第5章 系统软件设计5.1 软件开发工具的选择要使单片机系统按照人的意图办事,需设法让人与计算机对话,并听从人的指挥。程序设计语言是实现人机交换信息的最基
36、本工具,可分为机器语言、汇编语言和高级语言。机器语言用二进制编码表示每一条指令,是计算机能直接识别和执行的语言。用机器语言编写的程序成为机器语言程序或者指令程序(机器码程序)。因为机器只能识别和执行这种机器码程序,所以又称它为目标程序。用机器语言编写程序不易记忆、不易查错、不易修改。为了克服机器语言的上述缺点,可采用有一定含义的符号,即指令助记符来表示,一般都采用某些有关的英文单词的缩写。这样就出现了另一种程序语言汇编语言。汇编语言是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的。汇编语言不像高级语言(如basic)那样通用型强,而是属于某种计算机所独
37、有,与计算机的内部硬件结构密切相关。用汇编语言编写的程序称为汇编语言程序。以上两种语言都是低级语言。尽管汇编语言有不少优点,但它仍存在着机器语言的某些缺陷:与cpu的硬件结构密切相关,不同的cpu其汇编语言是不同的。这使得汇编语言程序不能移植,使用不便;其次,要使用汇编语言进行程序设计必须了解所使用cpu硬件的结构与性能,对程序设计人员有较高的要求。为此,又出现了对单片机进行编程的高级语言,如plm,c等。keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言
38、后再使用c来开发,体会更加深刻。 keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。经分析综合得知,本课题采用c语言进行编程。5.2 软件设计的原则在单片机应用开发中代码使用效率、单片机的抗干扰性以及软件可靠性是实际工程设计的重点。单片机应用软件系统设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。我们依据系统的功能要求,将整体软件系统分割成若干个独立的程序模块
39、。这些程序模块可以是几条语句的集合、功能函数或程序文件。随后,根据个程序模块的实现功能写出流程,一般需要写出具体的实现功能描述。程序代码通常采用汇编语言或高级语言(c语言)编写。本课题采用c语言编程,在此必须注意以下问题:(1)提高程序代码效率必须熟悉当前使用的c语言编译器,试验每条c语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道代码效率。(2)减少程序错误我们在编写程序时,要注重考虑如下方面:物理参数,资源参数,应用参数,过程参数。(3)单片机的抗干扰性防止干扰最有效的方法是去除干扰源、隔离干扰路径。单片机干扰最常见的现象就是复位,导致程序运行异常。设计系统是一般需要添加一个“
40、看门狗”监控模块,在系统出现不可逆转的干扰时,监控模块将重启系统,并从断点处继续执行。(4)系统的可靠性:要测试单片机软件功能的完善性。上电、掉电测试。系统耗损测试。5.3 系统主程序流程图系统软件设计主要包括系统程序和流程图,根据整个系统的要求,完成温度的测量与控制必须经过以下几个步骤:单片机接收传感器的温度信号,并在液晶上显示出来,同时通过串口向上位机发送温度信号,单片机扫描键盘,设定报警温度上下限,若温度不在范围内则发出报警。系统上电后,首先进行一系列的初始化程序,如液晶初始化和串口初始化,然后运行温度检测程序,依次读取各个ds18b20的温度值,之后进行液晶显示程序,将接收到的温度传感
41、器的温度数据在液晶上显示出来,然后通过串口程序向上位机发送数据,在计算机上显示温度以及相应的数据处理,然后键盘程序检测是否有按键按下,对应地设定报警上下限,当温度超过设定范围后,发出报警信号。主程序的流程图如图5.1所示。串口发送或接收数据串口启动关闭中断开始液晶初始化串口初始化检测温度液晶显示温度键盘扫描报警检测图5.1 系统主程序流程图5.4 温度检测程序设计ds18b20内部结构主要是由四部分组成:64位光刻rom、温度传感器、非挥发的温度报警触发器th和tl以及配置寄存器。ds18b20在出厂时的默认设置为12位,最高位为符号位,温度值共11位。单片机在读取数据时可以一次读取2个字节共
42、16位,前5位为符号位,当前5位为1时,当读取的温度为负值时,读到的数值要取反加1再乘以0.0625才是它的实际温度值。而当前5位为0时,读取的温度为正值,读到的数值直接乘以0.0625便是实际的温度值。根据ds18b20的通讯协议,主机控制ds18b20完成温度转换必须经过三个步骤:在每一次的读写之前都需要对ds18b20进行复位;并且在复位成功后还要发送一条rom指令;最后再发送ram指令。只有这样才能够对ds18b20进行预定的操作。复位成功后会要求主cpu将数据线下拉500微秒左右,然后将会释放,ds18b20在收到信号后将会等待1660微秒左右,然后将发出60240微秒的存在低脉冲,
43、此时主cpu收到此信号才能够表示复位成功。5.4.1 dsl8b20编程简介过匹配每个芯片的rom编码(id),来搜寻该路的温度。ds18b20有9个可擦写的内部寄存器,称为便笺式ram。所有的串行通讯,读写每一个bit位数据都必须严格遵守器件的时序逻辑来编程,同时还必须遵守总线命令序列,对单总线的ds18b20芯片来说,访问每个器件都要遵守下列命令序列:首先是初始化;其次执行rom命令;最后就是执行功能命令(r0m命令和功能命令后面以表格形式给出)。如果出现序列混乱,则单总线器件不会响应主机。当然,搜索rom 命令和报警搜索命令,在执行两者中任何一条命令之后,要返回初始化。基于单总线上的所有
44、传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机设备,且准备就绪。每次访问任何单总线器件,必须严格遵守这个命令序列;如果出现序列混乱,则单总线器件不会响应主机。但是这个准则对于搜索rom命令和报警搜索命令例外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。在主机发出rom命令,以访问某个指定的ds18b20,接着就可以发出ds18 b20支持的某个功能命令。这些命令允许主机写人或读出ds18b20暂存器,启动温度转换以及判断从机的供电方式。5.4.2 dsl8b20的rom命令前面提及单总线器件的
45、rom命令,在主机检测到应答脉冲后,就可以发出rom命令。这些命令与各个从机设备的唯一64位rom代码相关。允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。这些命令还允许主机能够检测到总线上有多少个从机设备,以及其设备类型或者有没有设备处于报警状态。从机设备可能支持5种rom命令(实际情况与具体型号有关),每种命令长度为8位。主机在发出功能命令之前,必须发送合适的rom命令。(1)搜索rom当系统初始上电时,主机必须找出总线上所有从机设备的rom代码,这样主机就能够判断出从机的数目和类型。主机通过重复执行搜索rom循环(搜索rom命令跟随着位数据交换)以找出总线上所有的从机设备。如
46、果总线只有一个从机设备,则可以采用读rom命令来替代搜索rom命令。在每次执行完搜索rom循环后,主机必须返回至命令序列的第一步(初始化)。(2)读rom(仅适合于单节点)该命令仅适用于总线上只有一个从机设备。它允许主机直接读出从机的64位rom代码,而无须执行搜索rom过程。如果该命令用于多节点,系统则必然发生数据冲突,因为每个从机设备都会响应该命令。(3)匹配rom匹配rom命令跟随64位rom代码,从而允许主机访问多节点系统中某个指定的从机设备。仅当从机完全匹配64位rom代码时,才会响应主机随后发出的功能命令。其它设备将处于等待复位脉冲状态。(4)跳过rom(仅适合于单节点)主机能够采
47、用该命令同时访问总线上的所有从机设备,而无须发出任何rom代码信息。例如,主机通过在发出跳过rom命令后跟随转换温度命令44h,就可以同时命令总线上所有的ds18b20开始转换温度,这样大大节省了主机的时间。值得注意的是,如果跳过rom命令跟随的是读暂存器beh的命令(包括其它读操作命令),则该命令只能应用于单节点系统,否则将由于多个节点都响应该命令而引起数据冲突。(5)报警搜索(仅少数1一wire器件支持)除那些设置了报警标志的从机响应外,该命令的工作方式完全等同于搜索rom命令。该命令允许主机设备判断那些从机设备发生了报警(如最近的测量温度过高或过低等)。同搜索rom命令一样,在完成报警搜
48、索循环后,主机必须返回至命令序列的第一步。5.4.3 dsl8b20时序ds18b20在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求,只有严格遵守通讯协议才能保证数据传输的正确性和完整性。所有时序均以主机为master,单总线器件为slave,每次数据的传输均从主机启动写时序开始,如果要求单总线器件回送数据,则在写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(1)ds18b20的复位时序ds18b20的复位时序如图5.2所示:单片机拉低总线480us950us,然后释放总线拉高电平。这时ds18b20会拉低信号,大约60240us表示应答。ds18b2
49、0拉低电平的60240us之间,单片机读取总线的电平,如果是低电平,那么表示复位成功。图5.2 ds18b20复位时序(2)ds18b20的读时序ds18b20的读时序分读0时序和读1时序两个过程,如图5.3所示。读时序是主机先把单总线拉低,在之后的l5us内必须释放单总线,以便将数据传输到单总线上。ds18b20完成一个读时序至少需要60us。ds18b20读逻辑0的步骤如下:在读取的时候单片机拉低电平大约1us。单片机释放总线,然后读取总线电平。这时候ds18b20会拉低电平。读取电平过后,延迟大约4045us。ds18b20读逻辑1的步骤如下:在读取的时候单片机拉低电平大约1us。单片机
50、释放总线,然后读取总线电平。这时候ds18b20会拉高电平。读取电平过后,延迟大约4045us。图5.3 ds18b20读时序 (3)ds18b20的写时序ds18b20的写时序也分为写0时序和写1时序两个过程,如图5.4所示。写0时序和写1时序的要求不同,写0时单总线要被拉低至少60us,保证ds18b20能够在1545us之间正确采样i/o总线上的“0”电平。写1时单总线被拉低,在之后的15us内必须释放单总线。ds18b20写逻辑0的步骤如下:单片机拉低电平大约1015us。单片机持续拉低电平大约2045us的时间。释放总线。ds18b20写逻辑1的步骤如下:单片机拉低电平大约1015u
51、s。单片机拉高电平大约2045us的时间。释放总线。图5.4 ds18b20写时序程序代码:void write_bit(char bitval) dq = 0; / 将dq 拉低开始写时间隙_nop_();_nop_();if(bitval=1) dq =1; / 如果写1,dq 返回高电平delay(8); / 在时间隙内保持电平值,dq = 1; / delay函数每次循环延时13s,因此delay(8) = 105svoid write_byte(char val)unsigned char i;unsigned char temp;for (i=0; ii; temp &= 0x01
52、; write_bit(temp); delay(5);5.4.4 温度检测程序流程图ds18b20复位后,就可以编程控制读到其内部ram所采集到的温度值,读取数据低位在前,高位在后。读出数据后,需判断对应的温度是正值还是负值,当温度值为正值时,直接将二进制数转换为十进制温度值;当温度值为负值时先将二进制补码变为原码,再转换为十进制温度值。温度检测程序流程图如图5.5所示。开始复位ds18b20跳过rom启动温度转换转换完毕?复位ds18b20匹配rom发送ds18b20序列号读温度存入ram第4个ds18b20处理完?下一个ds18b20nyny图4.5 温度检测程序流程图dsl8b20编程
53、注意事项:(1) 温度换时间设置为750ms时,灵敏度会大大提高,在需要较高精度要求下建议使用,而且回复性很好;(2) dsl8b20的读写时序须经仔细调整,在反复的调试中找出合适的延时时间;(3) 在程序等待ds18b20发出的存在信号时,最好设置一个有限的等待时间,否则一旦有温度传感器损坏时,程序将进人无限等待的死循环中。5.5 液晶显示程序设计根据系统的要求,单片机不仅要能接收到温度信号,还要将温度信号显示出来,使系统一目了然。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式lcd,目前常用1602和12864等的模块。本课题采用1602字符型液晶。5.5.1 1602指令说
54、明及时序1602液晶模块内部的控制器共有11条控制指令,如表5.6所示表5.6 控制命令表序号指令rsr/wd7d6d5d4d3d2d1d01清显示00000000012光标返回000000001*3置输入模式00000001i/ds4显示开/关控制0000001dcb5光标或字符移位000001s/cr/l*6置功能00001dlnf*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01bf计数器地址10写数到cgram或ddram)10要写的数据内容11从cgram或ddram读数11读出的数据内容1602液晶模块的读写操作、屏幕和
55、光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01h,光标复位到地址00h位置。指令2:光标复位,光标返回到地址00h。指令3:光标和显示模式设置 i/d:光标移动方向,高电平右移,低电平左移 s:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 d:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 c:控制光标的开与关,高电平表示有光标,低电平表示无光标 b:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 s/c:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 dl:高电平时为4位总线,低电平时为8位总线 n:低电平时为单行显示,高电平时双行显示 f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钻石琢磨工班组考核竞赛考核试卷含答案
- 工艺美术品设计师岗前理论知识考核试卷含答案
- 玻璃钢模具工安全理论竞赛考核试卷含答案
- 公路养护工岗前安全应急考核试卷含答案
- 美甲师创新思维模拟考核试卷含答案
- 化工过滤工安全实践知识考核试卷含答案
- 数控刨工安全技能测试强化考核试卷含答案
- 瓦楞纸箱成型工安全宣传竞赛考核试卷含答案
- 制粉工健康知识测试考核试卷含答案
- 水文勘测船工变更管理评优考核试卷含答案
- 2026秋季开学教师大会政教(德育)副校长讲话:立德树人守初心笃行实干启新程
- 2026广东佛山市顺德区(家电)知识产权快速维权中心招聘事业编制人员3人笔试题库(培优)附答案详解
- 2026年二级建造师水利水电工程真题及答案(完整版)
- 2025年卫生高级职称面审答辩(儿童保健)副高面审综合能力测试题及答案
- 2026广西南宁市邕宁区中医医院第二次岗位招聘21人笔试参考题库及答案详解
- T∕CHCIA 014-2023 液体香氛安全要求
- 2026浙江衢州市江山市文旅投资集团有限公司招聘劳务派遣人员3人笔试历年典型考点题库附带答案详解
- 企业防灾减灾安全培训课件
- 农村污水基础工程监理质量评估报告
- 2025广东食品药品职业学院教师招聘考试题目及答案
- 2026年中国急性缺血性脑卒中指南
评论
0/150
提交评论