版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、shandong毕业设计说明书多点温度巡检系统设计学 院: 电气与电子工程学院 专 业: 电子信息工程 学生姓名: 学 号: 0911043049 指导教师: 2013 年 5 月摘要摘 要随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。本课题以at89c51单片机系统为核心,能对多点的温度进行实时巡检。ds18b20
2、是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,分别介绍了ds18b20数字温度传感器温度检测电路、键盘输入控制电路、蜂鸣器报警电路和串口通信电路与单片机的硬件连接。通过软件编程实现将检测电路检测到的信号传到数码管电路显示以及可以实现对温度的实时报警,而且通过串口通信电路可以传至上位机实现通信。关键词: 温度检测 单片机 多点温度巡检iabstractabstractas the industry and the society developing, the temperature
3、 becomes more and more important and a lot of products are sensitive to temperature. however, temperature measuring apparatus in the market now only can check and measure the temperature of one point, at the same time, the temperature information is not real time and the precision is low. it takes a
4、 great of troubles for the industry-controllers to make decision .in this situation, design and implement one applicable system which can watch measure and control the temperature and the measuring results is real time and the precision is great is more essential. in order to meeting this applicatio
5、n, this paper talk about the multiple-points temperature measuring system.this system based on single chip computer, can inspect and control multiple temperatures in real time. as a kind of high-accuracy digital net temperature sensor,ds18 b20 can be used building a sensor net easily. it can al
6、so make the net simple and reliable with it's special 1-wire interface .this paper introduces the application of ds18b20 with single chip processor.keywords: temperature detection single chip microcomputer multipoint temperature checkingii目录目 录摘 要iabstractii目 录iii第一章 引言11.1 课题背景11.1.1 国外研究背景11.1
7、.2 国内研究背景11.1.3 发展方向11.2 本课题任务21.3 方案选择21.3.1 方案一21.3.2 方案二31.3.3 方案三31.4 方案比较4第二章 硬件电路设计12.1 电源电路12.2 单片机电路12.2.1 硬件特性22.2.2 单片机引脚功能介绍22.2.3 时钟电路42.2.4 复位电路52.3 温度采集电路62.4 显示电路92.4.1 数码管92.4.2 max7219串行驱动显示器102.5 键盘电路112.6 报警电路132.7 串行口通信模块142.7.1 rs232接口简介142.7.2 max232简介152.7.3 串行口通信电路16第三章 软件部分1
8、3.1 软件语言和编译工具的选择13.2 软件设计的原则23.3 软件的实现23.3.1 传感器程序33.3.2 显示电路编程83.3.3 键盘程序设计103.3.4 报警电路程序123.3.5 串口通讯程序13第四章 调试与总结1参考文献1致谢及声明1附录:整机电路1iv第一章 引言第一章 引言1.1 课题背景21世纪,科学技术的发展日新月异,科技的进步带动了测量技术的发展。温度时国际单位制七个基本量之一,也是在生产、科研、生活中必不可少的重要的测量和控制的物理量。自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的
9、工业部门都不得不考虑着温度的因素。在我们的日常生活、生产中带来重大影响,因此,对于温度的检测就十分重要。随着科学技术的发展,对于温度的测量,一般使用各式各样的温度传感器对温度进行采集。因此,温度传感器也成为自动检测、总动控制系统和计量检测系统等不可或缺的器具,且应用遍及各个领域。1.1.1 国外研究背景国外对温度检测技术研究较早,始于20世纪70年代。先是采用模拟式的组合仪表,采集现场信息并进行指示、记录和控制,80年代末出现了分布式控制系统,目前正开发和研制计算机数据采集控制系统的多因子综合控制系统。现在世界各国的温度检测技术发展很快,一些国家在实现自动化的基础上正向着完全自动化、无人化的方
10、向发展。1.1.2 国内研究背景我国对于温度检测技术的研究较晚,始于20世纪80年代。近年来,我国引进了多达16个国家和地区的工厂环境控制系统,在总体上,正从消化吸收、简单应用阶段向实用化、综合性应用阶段过渡和发展,对推动工厂温度自动检测产生了积极的作用。与此同时,我国的温度测控设施计算机应用以单片机控制的单参数单回路系统居多,尚无真正意义上的多参数综合控制系统。在生产实际中仍然有许多问题困扰着我们,比如环境控制水平落后,软硬件资源不能共享和可靠性差等缺点。与发达国家相比,还存在较大的差距。1.1.3 发展方向随着电子技术、计算机技术的飞速发展,对现场温度的测量也由过去的刻度温度计、指针温度计
11、向数字显示的智能温度计发展,而且,对测量的精度要求也越来越高。下面来简单介绍一下温度检测的发展趋势。第一,检测范围扩大。现在工业上通用的温度检测范围为-2003000,而今后要求能测超高温与超低温。尤其是液化气体的极低温度检测更为迫切,如10k以下的温度检测是当前重点研究课题。第二,测温对象扩大。温度检测技术将会由点测温发展到线、面,甚至立体的测量。应用范围己经从工业领域延伸到环境保护、家用电器、汽车工业及航天工业领域。第三,新材料及工艺的开发。近来已经开发的炭化硅薄膜热敏电阻温度检测器,厚膜、薄膜铂电阻温度检测器,硅单晶热敏电阻温度检测器等都是新型的温度检测产品。第四,向智能化方向的发展。新
12、型产品不仅要具有检测功能,又要具有判断和指令等多功能,采用微机向智能化方向发展,向机电一体化方向发展。1.2 本课题任务本课题灵感来自于日常生产实际中对温度巡检的需要,整个系统由单片机控制,要能够接收传感器的数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的传感器,并由驱动电路驱动温度显示。设计具有多个测温点检测的温度巡检电路,能够循环数字显示不同的测温点的温度值,对不同的测温点的一定时间内的温度值可以查询并数字显示出来,当温度越限时,能够实现自动报警。温度测量范围为0100,温度测量精度为0.5,各测量点温度值显示到0.5,时间显示到分钟。1.3 方案选择温度测量的方案多种多样,在
13、温度采集方面,大致有传统的分立式传感器、模拟集成传感器以及新兴的智能型传感器。对于控制系统可以采用单片机、arm、pc等等。1.3.1 方案一方案一采用模拟分立元件,如电容、电感或晶体管等非线形元件,实现多点温度的测量及显示,该方案设计电路简单易懂,操作简单,且价格便宜,但采用分立元件分散性大,不便于集成数字化,而且测量误差大。同时也不便于建立通讯机制,不便于同其他主机进行信息交流。1.3.2 方案二方案二采用at89c51单片机,以其为核心,通过ad590温度传感器采集温度信号,硬件设计成本低,但需多个a/d转换电路,采集的信号为模拟信号,经放大电路放大后,送到a/d转换器转换成数字信号,然
14、后传送到单片机进行处理,如下图。此技术虽已成熟,但a/d转换电路的设计比较繁琐,而且对a/d转换的要求高,处理速度慢,而且使用ad590温度传感器进行温度检测必须对冷端进行温度补偿,以减少误差。总之,此技术相当成熟,但硬件电路设计相对复杂。方案二系统框图如图1-1:图1-1 方案二系统框图1.3.3 方案三此方案采用分布式的思想,由一台上位机(pc计算机),下位机(at89c51单片机)组成,下位机采用多个ds18b20温度传感器实现对多点温度的多点检测,组成两级分布式的多点温度巡回检测系统。ds18b20检测到的信号直接就是数字信号,无需进行处理,抗干扰性好、设计灵活、方便,而且适合在恶劣的
15、环境下进行现场温度测量。该系统采用 rs-232串行通讯标准,通过上位机(pc)控制下位机(单片机)进行现场温度采集。温度值既可以送回主控pc进行数据处理,由显示器显示。也可以由下位机单独工作,实时显示当前各点的温度值,对各点进行控制。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械等。系统框图如图1-2:图1-2 方案三系统框图1.4 方案比较通过上方几个方案的介绍。基于数字式温度计ds18b20的温度测量仪的硬软件开发过程,ds18b20将温度信号直接转换为数字信号,实现了与单
16、片机的直接接口,从而省去了信号调理电路。该仪器电路简单、功能可靠、测量效率高,很好地弥补了传统温度测量方法的不足。与方案一相比,在功能、性能、可操作性等方面都有较大的提升。而且方案一不便于通信。与方案二相比,硬件电路简单,易于操作,而且直接侧得数字信号,无需再处理,测量较精确,适于在恶劣情况下工作,具有更高的性价比,更大的市场。所以本设计采用第三种方案。第 1 页第二章 硬件电路设计第二章 硬件电路设计本课题研究的多点测温系统是以单片机和单总线数字温度传感器ds18b20为核心,充分利用单片机优越的内部和外部资源及数字温度传感器ds18b20的优越性能构成一个完备的测温系统,实现对温度的多点测
17、量。整个系统由单片机控制,能够接收传感器的温度数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的温度传感器,并由驱动电路驱动温度显示。本课题设计了一种合理、可行的单片机监控软件,完成测量和显示的任务。由于单片机具有强大的运算和控制功能,使得整个系统具有模块化、硬件电路简单以及操作方便等优点。2.1 电源电路要使单片机工作首先要有电源电路给单片机提供合适的电源。如图2-1:图2-1 单片机电源电路先将220v 50hz的交流电源经变压器降压变为9v的交流电源,然后经过由四个二极管组成的全桥整流电路变为直流电源,经过全桥整流的电源不稳定,需要进行稳压。所以采取集成电路元件三端稳压器lm7
18、805稳压,得到符合要求的5v直流电源。2.2 单片机电路单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300m的高速单片机。首先,先系统介绍一下单片机的硬件特性、引脚功能。2.2.1 硬件特性1、主流单片机包括cpu、4kb容量的rom、128 b容量的ram
19、、 2个16位定时/计数器、4个8位并行口、全双工串口行口、adc/dac、spi、i2c、isp、iap。2、系统结构简单,使用方便,实现模块化;3、单片机可靠性高,可工作到106 107小时无故障;4、处理功能强,速度快。5、低电压,低功耗,便于生产便携式产品6、控制功能强7、环境适应能力强。2.2.2 单片机引脚功能介绍stc89c51单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出i/o引脚,如图2-2。下面按引脚功能分为4个部分叙述个引脚的功能。(1)电源引脚vcc和vssvcc(40脚):接+5v电源正端;vss(2
20、0脚):接+5v电源正端。(2)外接晶振引脚xtal1和xtal2图2-2 单片机引脚图xtal1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于hmos单片机,该引脚接地;对于choms单片机,该引脚作为外部振荡信号的输入端。xtal2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于hmos单片机,该引脚作为外部振荡信号的输入端。对于chmos芯片,该引脚悬空不接。(3)控制信号或与其它电源复用引脚 控制信号或与其它电源复用引脚有rst/vpd、ale/p、psen和ea/v
21、pp等4种形式。(a)rst/vpd(9脚):rst即为reset,vpd为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当vcc发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源vpd(+5v)为内部ram供电,以保证ram中的数据不丢失。(b)ale/ prog(30脚):当访问外部存储器时,ale(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在p0口的低(c)psen(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个
22、机器周期pesn两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,pesn信号将不出现。(d)ea/vpp(31脚):ea为访问外部程序储器控制信号,低电平有效。当ea端保持高电平时,单片机访问片内程序存储器4kb(ms52子系列为8kb)。若超出该范围时,自动转去执行外部程序存储器的程序。当ea端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有eprom的单片机,在eprom编程期间,该引脚用于接21v的编程电源vpp。 (4)输入/输出(i/o)引脚p0口、p1口、p2口及p3口(a).p0口(39脚22脚):p0.0p0.7统称为p0口。当不接
23、外部存储器与不扩展i/o接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展i/o口时,p0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有eprom的单片机,当eprom编程时,从p0口输入指令字节,而当检验程序时,则输出指令字节。(b).p1口(1脚8脚):p1.0p1.7统称为p1口,可作为准双向i/o接口使用。对于mcs52子系列单片机,p1.0和p1.1还有第2功能:p1.0口用作定时器/计数器2的计数脉冲输入端t2;p1.1用作定时器/计数器2的外部控制端t2ex。对于eprom编程和进行程序校验时,p0口接收输入的低8位地址。(c).p2口(21
24、脚28脚):p2.0p2.7统称为p2口,一般可作为准双向i/o接口。当接有外部程序存储器或扩展i/o接口且寻址范围超过256个字节时,p2口用于高8位地址总线送出高8位地址。对于eprom编程和进行程序校验时,p2口接收输入的8位地址。(d).p3口(10脚17脚):p3.0p3.7统称为p3口。它为双功能口,可以作为一般的准双向i/o接口,也可以将每1位用于第2功能,而且p3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。p3口的第2功能见下表1:引脚第2功能p3.0rxd(串行口输入端0)p3.1txd(串行口输出端)p3.2int0(部中断0请求输入端,低电平有效)p3.3i
25、nt1(中断1请求输入端,低电平有效)p3.4t0(时器/计数器0计数脉冲端)p3.5t1(时器/计数器1数脉冲端)p3.6wr(部数据存储器写选通信号输出端,低电平有效)p3.7rd(部数据存储器读选通信号输出端,低电平有效)表1 单片机p3.0-p3.7管脚含义2.2.3 时钟电路单片机在工作时通常用内部振荡和外部振荡方式对电路提供稳定的时钟信号。在引脚xtal1和xtax2外接晶体振荡器,就够成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选用6mhz、12mhz或24mhz。内部振荡器方式如下。电容器c1、c2起稳定振
26、荡频率、快速起振的作用,电容值一般为5-30pf。内部振荡方式所得的时钟信号比较稳定。外部振荡方式是把已有的时钟信号引入单片机内,这种方式适于用于用来使单片机的时钟与外部信号保持一致。本次设计采用了内部震荡的方式。时钟电路如图2-3:图2-3 时钟电路2.2.4 复位电路单片机在工作的时候,总会有自身因素、外界条件或者是编程漏洞和失误造成单片机“死机”或者是“程序飞走”等现象,这就需要对单片机进行复位重启。复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行。当89c51单片机的复位引脚rst出现5ms以上的高电平时,单片机就完成了复位操作,如果rst持续为高电平,单片机就处于
27、循环复位状态,而无法执行程序,因此要求单片机复位后能脱离复位状态。复位操作通常有上电和开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。当单片机已在运行之中时,按下复位键也能使rst持续一段时间的高电平,从而实现上电且开关复位的操作。单片机的复位操作使单片机进入初始化过程,其中包括是程序计数器pc=0000h,p0-p3=ffh,sp=07h,其他寄存器处于零,程序从0000h地址单元开始执行,单片机复位后不改变片内ram区中的内容。单片机复位电路如下页图2-4:图2-4 复位电路图2-4 复位电路2
28、.3 温度采集电路ds18b20独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯。测温范围 55+125,固有测温误差0.5。支持多点组网功能,多个ds18b20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。在使用中不需要任何外围元件,测量结果以912位数字量方式串行传送。ds18b20的三种测温电路:寄生电源供电方式图2-5 寄生电源供电方式在寄生电源供电方式下,ds18b20从单线信号线上汲取能量:在信号线dq处于高电平期间把能量储存在内部 电容里,在信号线处
29、于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。独特的寄生电源方式有三个好处:进行远距离测温时,无需本地电源;可以在没有常规电源的条件下读取rom;电路更加简洁,仅用一根i/o口实现测温。要想使ds18b20进行精确的温度转换,i/o线必须保证在温度转换期间提供足够的能量,由 于每个ds18b20在温度转换期间工作电流达到1ma,当几个温度传感器挂在同一根i/o线上进行多点测温时,只靠4.7k上拉电阻就无法提供足够的 能量,会造成无法转换温度或温度误差极大。寄生电源供电方式如图2-5。因此,寄生电源供电方式只适应于单一温度传感器测温情况下使用,不适宜采用电池供电系统中
30、。并 且工作电源vcc必须保证在5v,当电源电压下降时,寄生电源能够汲取的能量也降低,会使温度误差变大。寄生电源强上拉供电方式图2-6 寄生电源强拉供电方式改进的寄生电源供电方式如图2-6。为了使ds18b20在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 e2存储器操作时,用mosfet把i/o线直接拉到vcc就可提供足够的电流,在发出任何涉及到拷贝到e2存储器或启动温度转换的指令后,必须在最 多10s内把i/o线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根i/o口线进行强上拉切换。ds18b20的外部电源供电方式图2
31、-7 外部电源供电方式在外部电源供电方式下,ds18b20工作电源由vdd引脚接入,此时i/o线不需要强上拉,不存在电源电流不足的问题,可以保证 转换精度,同时在总线上理论可以挂接任意多个ds18b20传感器,组成多点测温系统。注意:在外部供电的方式下,ds18b20的gnd引脚不能悬空 ,否则不能转换温度,读取的温度总是85。外部电源供电方式如图2-7。外部电源供电方式是ds18b20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。站长推荐大家在开发中使用外部电源供电方式,毕竟比寄生电源方式只多接一根vcc引线。在外接电源方式下, 可以充
32、分发挥ds18b20宽电源电压范围的优点,即使电源电压vcc降到3v时,依然能够保证温度量精度。外部供电方式的多点温度电路图如图2-8.图2-8 外部供电方式的多点测温电路图本设计采用一线制数字温度传感器ds18b20来作为本课题的温度传感器。主要考虑到以下几个方面:系统的特性:测温范围为-55+125 ,测温精度为士0.5;温度转换精度912位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。一
33、支ds18b20的体积与普通三极管相差无几,价格只有十元人民币左右。系统复杂度:由于ds18b20是单总线器件,微处理器与其接口时仅需占用1个i/o端口且一条总线上可以挂接几十个ds18b20,测温时无需任何外部元件,因此,与模拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少电路的复杂程度。系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为ds18b20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。2.4 显示电路本设计采用max7219驱动6个数码管显示器,组成显示电路。2.4.1 数码管图2-9 数码管按发光二极管单
34、元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管,共阳数码管在应用时应将公共极com接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管,共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。数码管图示如图2-9。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据
35、数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的i/o端口进行驱动,或者使用如bcd码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用i/o端口多,如驱动5个数码管静态显示则需要5×8=40根i/o端口来驱动,要知道一个89s51单片机可用的i/o端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f
36、,g,dp"的同名端连在一起,另外为每个数码管的公共极com增加位选通控制电路,位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通com端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的com端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显
37、示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o端口,而且功耗更低。2.4.2 max7219串行驱动显示器本设计采用max7219串行led驱动显示器,此显示器具有接口简单占用资源少、控制灵活方便、led级联扩展便利的优点。max7219是串行输出共阴极显示驱动芯片,每片可驱动8个led,具有级联功能可控制更多的led 。max7219为24引脚芯片,除与led显示相连的线外,与微控制器只需3根连线相接:芯片端管脚分别为clk.dinload,其中clk为时钟输入端,din为数据输入端,load为锁存信号。max7219的工作时序为:时钟的上升沿max7219把d
38、in引脚数据移入内部移位寄存器, 在时钟下降沿max7219把数据移向dout端, 而load的上升沿则锁存最后移入的16位串行数据。对max7219的控制操作很方便,其片内具有8个位寄存器和6个控制寄存器位寄存器对应led的具体内容,控制寄存器决定led的工作方式。控制寄存器分别为:不工作方式寄存器、译码方式寄存器、亮度控制寄存器、扫描个数寄存器、关闭寄存器显示测试寄存器寄存器的操作格式为2字节的串行数据,第一个字节为寄存器地址,第二个字节为控制命令或待显示数据。寄存器的地址分配及功能如下所示:不工作寄存器(0x00):用于max7219级联控制。位寄存器(0x01-0x08):8位led待
39、显示内容。译码方式寄存器(0x0g):决定译码方式,分b码和不译码两种。亮度控制寄存器(0x0a):led段电流控制。扫描个数寄存器(0x0b):决定显示多少个led 。关闭寄存器(0x0c):决定正常工作方式或关闭led显示。显示测试寄存器(0x0d):决定正常工作方式或显示测试。max7219是在脉冲控制下工作的,因此其抗干扰就更为重要。一般在其电源和地之间接一十几f 的电容。另外,当max72l9和其他串行芯片共用i/o引脚时,最好在其外边加一上拉电阻。p1口内部有上拉电阻,如不在其外部接上拉电阻,有时出现驱动能力不足的现象。要用max7219控制多于8个的led时,可以将多个max72
40、19级联使用。各芯片的clk和load端并接在一起。上一级max7219的dout端接下一级的d 端。级联显示时,如欲控制次级的max7219,只需向前几级的max7219的不工作方式寄存器送空操作数:本级则送欲显示的数据。另外,需注意,load信号只需执行一次清o和置位,分别在整个过程的始末。即:级联调用wrtwobyte()程序时,应将程序里的load清o和置位语句屏蔽掉。只在级联显示的开始和最后分别将load置o和1。显示电路电路图如图2-10所示:图2-10 显示电路电路图2.5 键盘电路键盘是电子设备常见的输入装置,作为人们与电子设备交流的重要途径,一旦出错,将影响到电子设备的整体使
41、用,所以键盘电路虽然简单,但键盘的稳定性、可靠性,应引起足够的重视。键盘是计算机系统中不可缺少的输入设备。单片机的键盘电路主要有矩阵扫描和单键电路两种,其中以使用 + 条l/0 线实现× 的矩阵扫描式键盘电路最为常用,4×4的矩阵扫描式键盘如图所示。当按键少时可接成线性键盘;当按键较多时,可以将键盘接成矩阵形式,这种形式节省口线。矩阵键盘按键的状态同样需要变成数字量1和0。开关的一端通过电阻接vcc,开关另一段的接地是通过程序输出数字0实现的。矩阵键盘每个按键都有它的行值和列值,行值和列值的组合就是这个这个按键的编码。矩阵行线和列线分别通过两个并行接口和cpu通信,其中,一
42、个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态。由行扫描值和列回馈信号共同形成键编码。键盘一般采用行列扫描方式来设计。行列扫描是指:把键盘按键排列成n行×m列的n×m行列点阵,使用软件或硬件的方法对其行、列分别进行扫描,从而判断是否有键按下,并获得扫描码。当无键按下时,行线与列线断开,所有列线均为高电平。当有一个键按下时,则与此键对应的行线与列线接通。如此行线为低电平,则此列线也为低电平。为确定是否有键按下,cpu先通过并行输出口使所有的行线为低电平,然后通过并行输入口读入列信号,若为全“1”,则没有键按下,若有一个为“0”,则表示有一个键已按下。若有一个为“0
43、”,则表示有一个键已按下。为消去按下时的抖动现象,程序延迟20ms后再判断具体是哪一个键按下先将第一行置为低电平,然后读入列信号,若有一个为“0”,则按下的键在此行;若为全“1”,则按下的键不在此行,再将下一行置为低电平,并测试列信号。如果在最后一行也为低电平时仍未找到按下的键,则认为刚才有键按下的情况为误动作。对找到的键,进行分析并处理。当按键时间较为短促时,系统判断不到有键按下。经测试,按键在按下或释放时,通常伴随着几ms到十几ms的触点抖动,然后才能稳定下来。在触点抖动期间检测按键的通断状态,会导致一次按键或释放被错误地认为是多次操作。所以,当检测到有键按下或释放时,应通过软件延时20
44、ms左右,避开触点抖动的影响。去抖时间既不能太短也不能太长:如果时间太短,无法起到去抖作用;如果时间太长,超过了键按下的持续时间,则会判不到按键。软件去抖时间不宜太短也不宜太长,定为20ms 。本设计使用行列扫描方式,其电路原理图如图2-11所示:图2-11 键盘电路本课题使用行列扫描方式,在单片机的p1口上连接上4*4的键盘,单片机扫描键盘,如果有键按下,单片机会根据键码执行相应的程序,使整个系统的功能更加完善。2.6 报警电路图2-12 报警电路为了实现多点温度检测报警系统,本课题采用at89c51单片机作为主控制器,采用扫描的方式对多点ds18b20温度传感器获取对应该位置的温度值,经处
45、理后通过串口可以立即发送到上位机,如温度不在设定的范围内,给出报警信号。如图2-12所示:2.7 串行口通信模块2.7.1 rs232接口简介rs232是目前异步串行通信中应用最广泛的标准总线,适用于数据中断设备(dte和数据通信设备(dec)ela rs232是目前最常用的串行接口标准,用于计算机与计算机之间,计算机与单片机的数据通信。此标准的目的是定义数据终端设备(dte)之间的电气特性。rs232提供了单片机与单片机、单片机与pc机之间串行数据通信的标准接口。但rs232规定的逻辑电平与单片机的逻辑电平是不一致的。因此在应用中,必须把微处理器的信号电平(ttl电平)转换为rs232电平,
46、或者对二者进行逆转换。选用电平转换芯片max232来实现的。(1)rs-232通讯协议特性由于mcs51单片机的串口采用ttl电平,信号幅值低易受干扰,只能在很近的距离内实现通讯鉴于mcs51单片机串行接口的弱点,在单片机系统串行通讯中广泛采用标准接口许多仪器仪表出厂时配有串行接口或附件模块销售在标准串行接口中rs-232由于使用方便、线少而得到广泛地应用,多年来不但没有被淘汰,相反使用更加广泛rs-232c接口引脚信号定义如表2。引脚号(9针)引脚号(25针)信号方向功能18dcdin数据载波检测23rxdin接收数据32txdout发送数据420dtrout数据终端装置(dte)就绪57g
47、nd信号公共参考地66dsrin数据通讯装置(dce)就绪74rtsout请求发送85ctsin清除发送922riin振铃指示表2 rs-232c接口引脚信号定义由于pc机串行口使用的是rs- 232c逻辑电平,而at89c51单片机串行口的输入输出均为ttl电平,因此,当pc机与单片机通信时必须进行电平转换。常见的电平转换方法有以下3种:使用mc1488和mc1489电平转换器。由于mc1488和mc1489需要15v或12v供电,所以使用不方便,而且工作稳定性和可靠性也不高。使用2个三极管构成准rs- 232c电平转换器。采用此方法串行通信只能工作于半双工状态,而且程序设计复杂。使用双向电
48、平转换集成芯片。此方法优点是只需单一个+5v 电源供电,可靠性高,无需增加程序设计的复杂性,常用的芯片有icl232,max232,tsc232等。本文采用最后一种方法,芯片选用max232。2.7.2 max232简介max232芯片是maxim 公司生产的,包含两路接收器和驱动器的ic片max232芯片内部有一个电源电压转换器,可以把输入的+5v 电压变换为rs-232输出电平所需的一1o+ 10v 电压所以采用此芯片接口串行通信系统只需单一的+5v电源就可以了对于没有一12+12v 的场合,其适应性更强加之其价格适中,硬件接口简单,所以被广泛采用max232芯片的引脚结构如图2-13-1
49、和图2-13-2所示 图2-13-1 max232 组成框图 图2-13-2 max232引脚图图中上半部分电容c1,c2,c3,c4及v+,v-是电源变换电路部分在实际应用中,器件对电源噪声很敏感,因此vcc必须对地加去耦电容,其值为0.1f。电容c1,c2,c3,c4取同样数值的胆电解电容取10f/16v。用于提高抗干扰能力,在连接时必须尽量靠近器件图中下半部分为发送和接收部分实际应用中,t1in,t2in 可直接连接ttl/cmos电平的mcs51的单片机的串行发送端txd;r1out,r2out 可直接连接ttl/cmos电平的mcs51的单片机的串行接收端rxd/txd;t1out,
50、t2out可直接连接pc机的rs-232串口的接收端rxd/txd;riin,r2in可直接连接pc机的r 232串口的发送端txd2.7.3 串行口通信电路在设计硬件接口电路时,应充分考虑到电路的电气特性、逻辑电平以及驱动能力的匹配问题,若匹配得不好,将会导致通信失败。如前所述,本文采用max232作为pc机与单片机的串行通信接口芯片。硬件连接时,可从max232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图2-14所示。图2-14 串行口通信电路第 38 页第三章 软件部分第三章 软件部分3.1 软件语言和编译工具的选择程序设计语言是实现人机交换信息的
51、最基本工具,可分为机器语言、汇编语言和高级语言。机器语言用二进制编码表示每一条指令,是计算机能直接识别和执行的语言。用机器语言编写的程序成为机器语言程序或者指令程序(机器码程序)。因为机器只能识别和执行这种机器码程序,所以又称它为目标程序。用机器语言编写程序不易记忆、不易查错、不易修改。为了克服机器语言的上述缺点,可采用有一定含义的符号,即指令助记符来表示,一般都采用某些有关的英文单词的缩写。这样就出现了另一种程序语言汇编语言。汇编语言是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的。汇编语言不像高级语言(如basic)那样通用型强,而是属于某种计算机
52、所独有,与计算机的内部硬件结构密切相关。用汇编语言编写的程序称为汇编语言程序。以上两种语言都是低级语言。尽管汇编语言有不少优点,但它仍存在着机器语言的某些缺陷:与cpu的硬件结构密切相关,不同的cpu其汇编语言是不同的。这使得汇编语言程序不能移植,使用不便;其次,要使用汇编语言进行程序设计必须了解所使用cpu硬件的结构与性能,对程序设计人员有较高的要求。为此,又出现了对单片机进行编程的高级语言,如plm,c等。 keil c51是美国keil software公司出品的51系列兼容单片机c语言软件开发系统,与汇编相比,c语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇
53、编语言后再使用c来开发,体会更加深刻。 keil c51软件提供丰富的库函数和功能强大的集成开发调试工具,全windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到keil c51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。经分析综合得知,本课题采用c语言进行编程。3.2 软件设计的原则在单片机应用开发中代码使用效率、单片机的抗干扰性以及软件可靠性是实际工程设计的重点。单片机应用软件系统设计包括功能模块划分、程序流程确立、模块接口设计以及程序代码编写。我们依据系统的功能要求,将整体软件系统分割成若干个独立的程
54、序模块。这些程序模块可以是几条语句的集合、功能函数或程序文件。随后,根据个程序模块的实现功能写出流程,一般需要写出具体的实现功能描述。程序代码通常采用汇编语言或高级语言(c语言)编写。本课题采用c语言编程,在此必须注意以下问题:(1)提高程序代码效率必须熟悉当前使用的c语言编译器,试验每条c语言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道代码效率。(2)减少程序错误我们在编写程序时,要注重考虑如下方面。1物理参数 2资源参数 3应用参数 4过程参数(3)单片机的抗干扰性防止干扰最有效的方法是去除干扰源、隔离干扰路径。单片机干扰最常见的现象就是复位,导致程序运行异常。设计系统是一般需
55、要添加一个“看门狗”监控模块,在系统出现不可逆转的干扰时,监控模块将重启系统,并从断点处继续执行。(4)系统的可靠性1要测试单片机软件功能的完善性。2上电、掉电测试。3系统耗损测试。3.3 软件的实现系统软件设计主要包括系统程序和流程图,根据整个系统的要求,完成温度的测量与控制必须经过以下几个步骤:单片机接受传感器的温度信号,并通过max7219驱动显示出来,单片机扫描键盘,接受控制信号,并将温度显示出来,若温度不在范围内则发出报警。系统主程序框图如图3-1.图3-1 系统主程序流程图3.3.1 传感器程序(1)dsl8b20编程简介每一片单总线芯片内部都有一个全球惟一的64 位编码,在多路测
56、温时就是通过匹配每个芯片的rom编码(id),来搜寻该路的温度。ds18b20有9个可擦写的内部寄存器,称为便笺式ram。所有的串行通讯,读写每一个bit位数据都必须严格遵守器件的时序逻辑来编程,同时还必须遵守总线命令序列,对单总线的ds18b20芯片来说,访问每个器件都要遵守下列命令序列:首先是初始化;其次执行rom 命令;最后就是执行功能命令(r0m命令和功能命令后面以表格形式给出)。如果出现序列混乱,则单总线器件不会响应主机。当然,搜索rom 命令和报警搜索命令,在执行两者中任何一条命令之后,要返回初始化。基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机设备,且准备就绪。每次访问任何单总线器件,必须严格遵守这个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康技术虚拟护理行业市场调研分析报告
- 动物清洁行业相关项目经营管理报告
- 汽车发动机冷却用散热器水管产品供应链分析
- 医疗咨询行业经营分析报告
- 快递服务信件或商品行业经营分析报告
- 婴儿用驱蚊贴产品供应链分析
- 外科器械的消毒行业营销策略方案
- 健康监测设备行业相关项目经营管理报告
- 反不正当竞争法法律服务行业营销策略方案
- 医用足底按摩拖鞋产品供应链分析
- 四川省地震灾区重大地质灾害治理工程资料全套表格
- 销售技术-迅达3000ap产品介绍
- 三维晶格的振动
- 我国油菜生产机械化技术(-119)
- 2022年广西南宁市八年级上学期期末语文试卷
- 6.20.1遗传和变异的现象-2022-2023学年北师大版生物八年级上册同步课堂检测(word版 含答案)
- 卡培他滨消化道肿瘤用药策略ppt课件(PPT 35页)
- 三重一大流程图53872
- 护理查房-急性肾小球肾炎患儿护理
- 郁病(广泛性焦虑障碍)中医诊疗方案
- 孤独的小螃蟹ppt
评论
0/150
提交评论