已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机at89c52的轴温报警器设计专业(年级、班) 设 计 人 指 导 教 师 辅 导 教 师 2009 年 01 月 01 日(设计结束日)目 录第一章 绪 论研究背景及现状1.1 研究背景1.1.1 国内研究现状1.1.2 国外研究现状1.2 研究方案1.2.1 单片机选择1.2.2 集成传感器的选择第二章 主要硬件介绍2.1单片机at86c52介绍2.1.1 主要性能参数2.1.2 功能特新概述2.1.3 引脚功能说明2.2 ds18b20介绍2.2.1 ds18b20内部结构2.2.2 ds18b20温度传感器的存储器2.3 lcd显示器2.3.1 单色液晶显示器的原理2.3.2 1602lcd的引脚功能2.4 “看门狗”电路2.4.1 “看门狗”的工作原理第三章 软件开发环境介绍集成开发环境 keil1. u vision2 ide2. c51编译器和a51汇编器3. lib51库管理器4. bl51链接器定位器5. vision2 软件调试器6. vision2硬件调试器7. 利用keil开发系统软件流程第四章 系统设计软件部分设计4.1温度部分软件设计4.2 显示部分程序设计4.3 报警部分程序设计4.4 本章小结结语参考文献附录摘 要以旅客列车的轴温作为控制对象,探讨了一种基于at89c52单片机的轴温报警系统方案。该系统利用软件对采集的数据进行比较、处理,使得系统易于实现。便于维护。能满足当前铁路提速的要求 ,对保障列车的安全运行具有重要作用。关键词:温度传感器ds18b20;单片机at89c52;abstractthe temperature in the passenger train control object is discussed, as a kind of at89c52 single chip based on temperature alarm system solutions. this system using the software of the data collected in comparison, processing, the system is easy to realize. easy maintenance. to meet the demands of the railway, the speed of train operation safety guarantee plays an important role.key words: ds1820; single chip microcomputer at89c52;第一章 绪论l 研究背景及现状客车用集中轴温报警器(以下简称轴温报警器)作为保障旅客列车运行安全重要设备,广泛应用于各类旅客列车车轴温度的实时监测,以避免列车运行过程中因温度过高引起切轴造成的行车事故。l 1.1研究背景在现代化的工农业生产和日常生活中,温度、电流、电压、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、农业生产、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉、锅炉和温室中的温度进行检测,来达到有效的测量、控制和调节作用。现阶段全路广泛使用的集中式轴温报警器是由传输线路、轴温传感器及控制显示器组成 ,是监测铁路列车轴温 ,预报热轴 ,防止切轴 ,保证列车运行安全的重要设备. 自轴温报警器使用以来 ,在预报热轴 ,防止切轴方面发挥了重要作用 ,准确预报了大量热轴故障. 但随着全路范围内的大规模提速 ,传统的轴温监测装置由于温度检测以热敏电阻为温度敏感元件 ,虽然热敏电阻成本低 ,但需要后续信号处理电路 ,使传感器连线太多,干扰大 , 由于热敏电阻本身的可靠性相对较差 ,测量温度的准确度低 ,所以使检测系统的精度低 ,可靠性差. 而且由于以往系统数据分析单一等原因使之已不能满足现阶段及将来铁路运输安全保障的要求 ,需要对其进行改进。l 1.1.1国内研究现状我国在轴温报警系统方面,在客车检测上用到的较频繁。国内多采用的热敏电阻器。热敏电阻的电阻温度系数较高,室温电阻通常也较高,因此其自身发热较小,信号调节较为简单。热敏电阻的缺点是互换性差,温度与输出阻值之间呈非线性关系。热敏电阻分为正温度系数热敏电阻和负温度系数热敏电阻两种,但在温度测量应用中,正温度系数热敏电阻较少得到采用,更多采用的是负温度系数热敏电阻。l 1.1.2国外研究现状美国、德国、日本等发达国家,涉及其领域较早,在温控方面取得了很大的发展,并且现在处于了较成熟的发展阶段。而我国的温控起步较晚,但是在引进、借鉴、吸收和消化了发达国家先进技术的基础上,研制了属于自己适合自己的微温控系统。虽然和发达国家还有一定的差距,但是在关于微处理器的智能温控系统在国内已形成一种良好的发展趋势,技术日趋完善,在诸多领域都引领了现代科技的潮流。特别是近几年,含微处理器的智能化数字测温仪及智能化温度测控仪系统脱颖而出,以其精度高、准确、可靠、体积小、操作方便灵活等优点,大有取代传统测控系统的趋势。1.2 研究方案此次轴温报警器设计是一套基于单片机的综合控制系统,包括很多方面。本次设计由于时间等各方面的限制只完成了其中的测量和显示该部分的内容。l 1.2.1单片机的选择根据控制系统所要求的控制精度,响应速度,开发环境,i/o点数,输入/输出通道数等情况,我们选择了mcs51系列的8位单片机89c52。at89c52是一种带8k字节闪速可编程可擦除只读存储器(eeprom)的低电压、高性能cmos8位为制器 。该器件采用atmel非易失存储器制造技术制造,与工业标准的80c51和80c52输出管相兼容。由于将多功能8位cpu和闪速存储器组合在单个芯片中,atmel的at89c52是一种高性能控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。l 1.2.2集成传感器的选择传感器是实现测量与控制的首要环节,是测控系统的关键部件。传感器亦称换能器、变换器,它是将被测的某一物理量(信号)按一定规律转换成与其对应的另一种(或同种)物理量(或信号)的输出装置。传感器的种类繁多,分类方法也很多。例如,按构成原理来分,可分为结构型和物性型两类;按信号转换效应来分,可分为物理型、化学型及生物型传感器等;按构成传感器敏感元件材料分,又可分为半导体传感器、陶瓷传感器、光纤传感器、高分子膜传感器等;按能量观点分类,则又可分为有源传感器和无源传感器等。这里,我们重点介绍一下温度传感器。广义来讲,一切随温度变化而物体性质亦发生变化的物质均可作为温度传感器,例如,我们平常使用的各种材料、元件,其性质或多或少地都会随其所处的环境温度变化而变化,因而它们几乎都能作为温度传感器使用。但是,一般真正能作为实际中可使用的温度传感器的物体一般需要具备下述条件:(1)物体的特性随温度的变化有较大的变化,且该变化量易于测量;(2) 对温度的变化有较好一一对应的关系,即对除温度外其他物理量的变化不敏感;(3) 性能误差及老化小、重复性好,尺寸小;(4) 有较强的耐机械、化学及热作用等的特点;(5) 与被检测的温度范围和精密度相适应;(6) 价格便宜,适合于批量生产。符合上述条件的常用温度传感器有热电偶、热电阻、光辐射温度计、玻璃温度计、半导体集成温度传感器等。而ds18b20 是美国dallas 公司继ds1820 之后推出的增强型单总线数字式温度传感器,它在转换速度、转换时间、传输距离、分辨率等方面较ds1820 有了很大的改进,给用户带来了更方便、更令人满意的效果。第二章 主要硬件介绍l 2.1单片机at89c52介绍at89c52是美国atmel公司生产的低电压,高性能cmos 8位单片机,片内含8k bytes 的可反复擦鞋的只读程序存储器(perom)和256 bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度,非易失性存储技术生产,与标准mcs-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(cpu)和flash存储单元。l 2.1.1主要性能参数:l 与mcs-51产品指令和引脚完全兼容l 8k字节可重复擦写flash闪速存储器l 1000次擦写周期l 全静态操作:0hz-24mhzl 三级加密程序存储器l 2568字节内部raml 32个可编程i/o线口l 3个16位定时/计数器l 8个中断源l 可编程串行uart通道l 低功耗空闲和掉电模式l 2.1.2功能特性概述:at89c52提供以下标准功能,8k字节flash闪速存储器,256字节内部ram,32个i/o口线,3个16位定时/计数器,一个6向量两集中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,at89c52可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存ram中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。l 2.1.3 引脚功能说明:vcc:电源电压gnd:地p0口:p0 口是一组 8 位漏极开路型双向 i/o 口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 ttl逻辑门电路,对端口 p0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 flash 编程时,p0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p1 口:p1 是一个带内部上拉电阻的 8 位双向 i/o 口, p1 的输出缓冲级可驱动(吸收或输出电流)4 个 ttl 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。与 at89c51 不同之处是,p1.0 和 p1.1 还可分别作为定时/计数器 2 的外部计数输入(p1.0/t2)和输入(p1.1/t2ex)。flash 编程和程序校验期间,p1 接收低 8 位地址。p2 口:p2 是一个带有内部上拉电阻的 8 位双向 i/o 口,p2 的输出缓冲级可驱动(吸收或输出电流)4 个 ttl 逻辑门电路。对端口 p2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 movx dptr 指令)时,p2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 movx ri 指令)时,p2 口输出p2 锁存器的内容。flash 编程或校验时,p2亦接收高位地址和一些控制信号。p3口:p3 口是一组带有内部上拉电阻的 8 位双向 i/o 口。p3 口输出缓冲级可驱动(吸收或输出电流)4 个 ttl 逻辑门电路。对 p3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 p3 口将用上拉电阻输出电流(iil) 。此外,p3 口还接收一些用于flash 闪速存储器编程和程序校验的控制信号。rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。ale/prog: 当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ale 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ale 脉冲。对 flash 存储器编程期间,该引脚还用于输入编程脉冲(prog) 。如有必要,可通过对特殊功能寄存器(sfr)区中的 8eh 单元的 d0 位置位,可禁止 ale 操作。该位置位后,只有一条movx 和movc指令才能将 ale 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ale 禁止位无效。psen:程序储存允许(psen)输出是外部程序存储器的读选通信号,当 at89c52 由外部程序存储器取指令(或数据)时,每个机器周期两次 psen 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 psen信号。ea/vpp:外部访问允许。欲使 cpu 仅访问外部程序存储器(地址为 0000hffffh) ,ea 端必须保持低电平(接地) 。需注意的是:如果加密位 lb1 被编程,复位时内部会锁存 ea端状态。如 ea端为高电平(接 vcc端) ,cpu 则执行内部程序存储器中的指令。flash 存储器编程时,该引脚加上+12v 的编程允许电源 vpp,当然这必须是该器件是使用 12v 编程电压 vppxtal1:振荡器反相放大器的及内部时钟发生器的输入端。xtal2:振荡器反相放大器的输出端l 2.2 ds18b20介绍ds18b20是美国dallas半导体公司继ds1822之后最新推出的一种数字化单总线器件,属于新一代的适配微处理器的改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位数字值读书方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从ds18b20读出的信息或写入ds18b20的信息仅需要一根口线读写,温度变换功率拉源于数据总线,总线本身也可以向所挂接的ds18b20供电,而无需额外的电源。因而使用ds18b20可使系统结构更趋向于简单,可靠性更高。ds18b20 支持“一线总线”接口,测量温度范围为 -55c+125c ,在-10+85c 范围内,精度为0.5c 。ds1822 的精度较差为 2c现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,与前一代产品不同,新的产品支持 3v5.5v 的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 ds18b20可以程序设定912位的分辨率,精度为0.5c。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在eeprom 中,掉电后依然保存。ds18b20 的性能是新一代产品中最好的!性能价格比也非常出色! ds1822 与 ds18b20 软件兼容,是ds18b20 的简化版本。省略了存储用户定义报警温度、分辨率参数的eeprom,精度降低为2c,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,ds18b20开辟了温度传感器技术的新概念。ds18b20使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。 l 2.2.1 ds18b20的内部结构 ds18b20 内部结构主要由四部分组成:64 位光刻rom、温度传感器、非挥发的温度报警触发器th和tl、配置寄存器。ds18b20 的管脚排列 如下: dq 为数字信号输入/输出端;gnd 为电源地;vdd 为外接供电电源输入端(在寄生电源接线方式时接地)。 l 2.2.2 ds18b20温度传感器的存储器 ds18b20 温度传感器的内部存储器包括一个高速暂存ram 和一个非易失性的可电擦除的e2ram,后者存放高温度和低温度触发器th、tl和结构寄存器。 暂存存储器包含了8 个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是th、tl 的易失性拷贝,第五个字节是结构寄存器的 易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。 该字节各位的意义如下: tm r1 r0 1 1 1 1 1 低五位一直都是1 ,tm 是测试模式位,用于设置ds18b20 在工作模式 还是在测试模式。在ds18b20 出厂时该位被设置为0,用户不要去改动。 r1 和r0用来设置分辨率,如下表所示:(ds18b20 出厂时被设置为12 位) 根据ds18b20的通讯协议,主机控制ds18b20 完成温度转换必须经 过三个步骤:每一次读写之前都要对ds18b20进行复位,复位成功后发送一条rom 指令,最后发送ram 指令,这样才能对ds18b20 进行预定的 操作。复位要求主cpu 将数据线下拉500 微秒,然后释放,ds18b20 收到信号后等待1660 微秒左右,后发出60240 微秒的存在低脉冲,主cpu 收到此信号表示复位成功。l 2.3 lcd显示器在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、led数码管、液晶显示器。发光管和led数码管比较常用,软硬件都比较简单,在此不作介绍,本节重点介绍1602字符型液晶显示器。1602 字符型lcd模块的应用非常广泛,而各种液晶厂家均有提供几乎都是同样规格的 1602 模块或兼容模块,尽管各厂家的对其各自的产品命名不尽相同;1602 字符型 lcd模块最初采用的 lcd控制器采用的是 hd44780,在各厂家生产的 1602 模块当中,基本上也都采用了与之兼容的控制 ic,所以从特性上基本上是一样的;当然,很多厂商提供了不同的字符颜色、背光色之类的显示模块。l 2.3.1 单色液晶显示器的原理 lcd技术是把液晶灌入两个列有细槽的平面之间。这两个平面上的槽互相垂直(相交成90度)。也就是说,若一个平面上的分子南北向排列,则另一平面上的分子东西向排列,而位于两个平面之间的分子被强迫进入一种90度扭转的状态。由于光线顺着分子的排列方向传播,所以光线经过液晶时也被扭转90度。但当液晶上加一个电压时,分子便会重新垂直排列,使光线能直射出去,而不发生任何扭转。 lcd是依赖极化滤光器(片)和光线本身。自然光线是朝四面八方随机发散的。极化滤光器实际是一系列越来越细的平行线。这些线形成一张网,阻断不与这些线平行的所有光线。极化滤光器的线正好与第一个垂直,所以能完全阻断那些已经极化的光线。只有两个滤光器的线完全平行,或者光线本身已扭转到与第二个极化滤光器相匹配,光线才得以穿透。 lcd由这样两个相互垂直的极化滤光器构成,所以在正常情况下应该阻断所有试图穿透的光线。但是,由于两个滤光器之间充满了扭曲液晶,所以在光线穿出第一个滤光器后,会被液晶分子扭转90度,最后从第二个滤光器中穿出。另一方面,若为液晶加一个电压,分子又会重新排列并完全平行,使光线不再扭转,所以正好被第二个滤光器挡住。总之,加电将光线阻断,不加电则使光线射出。 然而,可以改变lcd中的液晶排列,使光线在加电时射出,而不加电时被阻断。但由于计算机屏幕几乎总是亮着的,所以只有“加电将光线阻断”的方案才能达到最省电的目的。 从液晶显示器的结构来看,采用的lcd显示屏都是由不同部分组成的分层结构。lcd由两块玻璃板构成,厚约1mm,其间由包含有液晶(lc)材料的5m均匀间隔隔开。因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。背光板发出的光线在穿过第一层偏振过滤层之后进入包含成千上万水晶液滴的液晶层。液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素。在玻璃板与液晶材料之间是透明的电极,电极分为行和列,在行与列的交叉点上,通过改变电压而改变液晶的旋光状态,液晶材料的作用类似于一个个小的光阀。在液晶材料周边是控制电路部分和驱动电路部分。当lcd中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来。l 2.3.2 1602lcd的引脚功能1602lcd采用标准14脚或者16脚接口。vl位液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高。若对比度过高会产生“鬼影”,使用时可以通过一只10k电阻来调整对比度。rs为寄存器选择端,rs为高电平时选择数据寄存器,为低电平时选择指令寄存器。r/w为读写信号线,为高电平时进行读操作,为低电平时为写操作。当rs和r/w同为低电平时可以写入指令或者显示地址;当rs为低电平、r/w为高电平时可以读忙信号;当rs为高电平可以写入数据。e为使能端,当e端有高电平跳变低电平时,液晶模块执行命令。d0d7为8为双向数据线。l 2.4“看门狗”电路随着近代超大规模集成电路的出现, 微处理技术及外围芯片有了飞速的发展。8051系列单片机,得到越来越多研制微机工控系统的科技人员和开发人员的亲睐, 但同时也带来了单片机芯片的抗干扰问题:许多应用系统在进行仿真调试和实验室内的联机试运行时都是成功的,然而,一旦进入现场使用,系统则会产生难以预料的干扰,可能导致一些智能型仪器仪表单片机工业控制系统发生“死机”。所以我们就需要一直“看门狗”。l 2.4.1“看门狗”工作原理在程序运行时,看门狗需要程序每隔一段时间给它个信号,用以清空它的计数器,如果没有这个信号,计数器溢出,则会给处理器一个复位信号,使处理器强制复位,这样可以避免死机。以 max705监控电路来说明“看门狗”硬件电路的工作过程。我们知道,max705是一种性能优良的低功耗cmos监控电路芯片,其内部电路由上电复位、可重触发“看门狗”定时器及电压比较器等组成。max705只要在1.6 s时间内检测到wdi引脚有高低电平跳变信号,则“看门狗”定时器清零并重新开始计时;若超出 1.6 s 后,wdi引脚仍无高低电平跳变信号,则“看门狗”定时器溢出,wdo引脚输出低电平,进而触发 mr手动复位引脚,使mac705复位,从而使“看门狗”定时器清零并重新开始计时,wdo 引脚输出高电平,max705的rst复位输出引脚输出大约200 ms宽度的低电平脉冲,使单片机控制系统可靠复位,重新投入正常运行。max705/706/813l是一组cmos监控电路,能够监控电源电压、电池故障和微处理器(mpu或mp)或微控制器(mcu或mc)的工作状态。将常用的多项功能集成到一片8脚封装的小芯片内,与采用分立元件或单一功能芯片组合的电路相比,大大减小了系统电路的复杂性和元器件的数量,显著提高了系统可靠性和精确度。reset/reset操作复位信号用于启动或者重新启动mpu/mcu,令其进入或者返回到预知的循环程序并顺序执行。一旦mpu/mcu处于未知状态,比如程序“跑飞”或进入死循环,就需要将系统复位。对于max705和max706而言,在上电期间只要vcc大于1.0v,就能保证输出电压不高于0.4v的低电平。在vcc上升期间reset维持低电平直到电源电压升至复位门限(4.65v或4.40v)以上。在超过此门限后,内部定时器大约再维持200ms后释放reset,使其返回高电平。无论何时只要电源电压降低到复位门限以下(即电源跌落),reset引脚就会变低。如果在已经开始的复位脉冲期间出现电源跌落,复位脉冲至少再维持140ms。在掉电期间,一旦电源电压vcc降到复位门限以下,只要vcc不比1.0v还低,就能使reset维持电压不高于0.4v的低电平。max705和max706提供的复位信号为低电平reset,而max813l提供的复位信号为高电平reset,三者其它功能完全相同。有些单片机,如intel的80c51系列,需要高电平有效的复位信号。看门狗定时器max705/706/813l片内看门狗定时器用于监控mpu/mcu的活动。如果在1.6s内wdi端没有收到来自mpu/mcu 的触发信号,并且wdi处于非高阻态,则wdo输出变低。只要复位信号有效或wdi输入高阻,则看门狗定时器功能就被禁止,且保持清零和不计时状态。复位信号的产生会被禁止定时器,可一旦复位信号撤消并且wdi输入端检测到短至50ns的低电平或高电平跳变,定时器将开始1.6s的计时。即wdi端的跳变会清零定时器并启动一次新的计时周期。一旦电源电压vcc降至复位门限以下,wdo端也将变低并保持低电平。只要vcc升至门限以上,wdo就会立刻变高,不存在延时。典型的应用中是将wdo端连接到mpu/mcu的非屏蔽中断(nmi)端。当vcc下降到低于复位门限时,即使看门狗定时器还没有完成计时周期,端也将输出低电平。通常这将触发一次非屏蔽中断,但是reset如果同时变低,则复位功能优先权高于非屏蔽中断。如果将wdi脚悬空,wdo脚可以被用作电源跌落检测器的一个输出端。由于悬空的wdi将禁止内部定时器工作,所以只有当vcc下降到低于复位门限时,wdo脚才会变低,从而起到电源跌落检测的作用。人工复位低电平有效的手动复位输入端(mr)可被片内250ma的上拉电流源拉到高电平,并可以被外接cmos/ttl逻辑电路或一端接地的按钮开关拉成低电平。不需要采用外部去抖动电路,理由是最小为140ms的复位时间足以消除机械开关的抖动。简单地将mr端连接到wdo端,就可以使看门狗定时器超时产生复位脉冲。当需要高电平有效的复位信号时,应该选用max813l。电源故障比较器max705/max706/max813l片内带有一个辅助比较器,它具有独立的同相输入端(pfi)和输出端(pfo),其反相输入端内部连接一个1.25v的参考电压源。为了建立一个电源故障预警电路,可以在pfi脚上连接一个电阻分压支路,该支路连接的监视点通常在稳压电源集成电路之前。通过调节电阻值,合理地选择分压比,以便于使稳压器+5v 输出端电压下降之前,pfi端的电压刚好下降到低于1.25v。使用为mpu/mcu提供中断信号,以便使其能够对即将到来的电源掉电作好充分地准备第三章 软件开发环境介绍集成开发环境 keilkeil ide vision2集成开发环境是keil software inc/keil elektronik gmb开发的基于80c51内核的微处理器软件开发平台。它内嵌多种复合当前工业标准的开发工具,可以完成从工程建立和管理,编译连接目标代码的生成,软件仿真,硬件仿真等完整的开发流程。尤其他的c编译工具在产生代码的准确性和效率方面达到了很高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。keil ide vision2集成开发环境主要是由以下部分组成:1. u vision2 idevision2 ide包括:一个工程管理器,一个功能丰富并有交互式错误提示的编程器选项设置生成工具,一级在线帮助。使用vision2创建源文件并组成应用工程加以管理。vision2可以自动完成编译汇编链接程序的操作;2. c51编译器和a51汇编器由vision2 ide创建的源文件可以被c51编译器或a51汇编处理生成可重定位的object文件。keil c51编译器遵循ansi c语言标准支持c语言的所有标准特性,另外还增加了几个可以直接支持80c51结构的特性。keil a51宏汇编器支持80c51及其派生系列的所有指令集:3. lib51库管理器lib51 库管理器可以从由汇编和编译器创建的目标文件建立目标库,这些库是按规定格式排列的目标模块,可在以后被链接器所使用当链接器处理一个库时仅仅使用了库中程序使用了的目标模块而不是全部加以引用;4. bl51链接器定位器bl51链接器使用从库中提取出来的目标模块和由编译器汇编器生成的目标模块创建一个绝对地址目标模块,绝对地址目标文件或模块包括不可重定位的代码和数据所有的代码和数据都被固定在具体的存储器单元中。绝对地址目标文件可以用于:编程eprom或其他存储器设备;由vision2 ide调试器对目标进行调试和模拟;使用在线仿真器进行程序测试。5. vision2 软件调试器vision2软件调试器能十分理想地进行快速可靠地程序调试。调试器包括一个高速模拟器,可以使用它模拟整个80c52系统包括片上外围器件和外部硬件;6. vision2硬件调试器vision2 调试器向您提供了几种在实际目标硬件上测试程序的方法。安装mon51目标监控器到目标系统并通过monitor-51 接口下载程序,使用高级gdi接口将vision2调试器同tks系列仿真器的硬件系统相连接,通过vision2 的人机交互环境指挥连接的硬件完成仿真操作。vision2 操作界面 vision2 调试界面7. 利用keil开发系统软件流程利用keil开发和调试系统软件流程大致如下:1. 启动vision2,进入keil软件的集成开发环境;2. 利用keil内置的文本编辑器进行程序源文件的编辑,因为keil集成的文本编辑器对中文支持不是很好,可以选择其他的编辑器,vision2能够自动识别外部改变了的源文件;3. 建立工程指定针对那种单片机进行开发,指定对源程序的编译,链接参数,指定调试方式,然后对工程进行相关设置;4. 设置好的工程后即可进行编译,链接。连接仿真器对软件进行调试。也可以生成下载到单片机存储器上的hex文件。第四章 系统设计轴温报警器是以单片机at89c52为核心的系统进行设计的。主要分为测量输入模块,运算处理模块,显示模块,键盘设置模块和报警模块。其系统框图如下:测量输入模块键盘设置模块单片机运算处理模块显示模块报警模块系统框图软件部分设计用c语言进行单片机程序设计,采用结构化程序设计思想:在总体设计中采用“自顶而下”(top-down)的方法,在程序设计中采用模块化编程。把整体任务分成一个个子任务,子任务再分子任务,逐层细分,每个子程序都完成其规定的功能,明确输入输出。将这些程序连接起来就构成整体流程图。模块化编程,每个模块结构完整,相互独立的程序段。如液晶模块的写控制指令、写显示数据、清屏;数据处理中的工程量转换,均值滤波等。这些程序可以任意调用、修改,使整个程序结构清晰,组合灵活,维护调试方便。主程序流程图如图所示,其功能是完成系统的初始化,循环不断地查询个按键值,将显示缓冲区的内容送到液晶显示器,以维持对按键的及时响应和数据显示,并即时对轴温信号进行比较判断,当轴温超过指定温度是启动警报程序。开始系统初始化开中板键1是否按下?键2是否按下?键3是否按下?轴温显示程序轴温指定温度外温采集处理平动切换采集轴温跟踪比较程序报警程序nnnnyyyy主程序流程图4.1温度部分软件设计开始初始化启动ds18b20读温度计算温度显示器显示温度部分系统程序流程图dsl8b20的一线工作协议流程是:初始化一rom操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前都要对dsl8b20进行复位。复位成功后发送一条rom指令,最后发送ram指令,这样才能对dsl8b20进行预定的操作。复位要求主cpu将数据线下拉500微秒,然后释放dsl8b20收到信号后等待16-60微秒左右。后发出60-240微秒的存在低脉冲,主cpu收到此信号表示复位成功。初始化函数readonechar(void)unsigned char i=0;unsigned char dat=0;for(i=8;i0;i-)dq=0;/给脉冲信号dat=;dq=l;/给脉冲信号 if(dq) dat=0x80;delay(4); return(dat); /写一个字节函数 writeonechar(unsigned char dat)unsignedchar i=0;for(i=8;i0;i-)dq=0;dq=dat&0x01;delay(5);dq=1;dat=1;4.2 显示部分程序设计开始lcd初始化延时ds18b20设第一行显示位置显示第一行内容设第二行显示位置显示第二行内容显示流程图#ifndef _lcd1602_h_#define _lcd1602_h_#include#define uchar unsigned char#define uint unsigned int#define lcd_data p1sbit lcd_en=p35;sbit lcd_rs=p36;sbit lcd_rw=p37;#endifvoid lcd_init(void);/初始化void lcd_cmd(uchar cmd);/写入控制命令void lcd_string(char *s);/写入要显示的字符串void lcd_char(char str);/写入要显示的字符void setxy(char x,char y);/设定显示位置,行x=1/2,列y=116的任意整数void wait_until_ready(void);/检测忙标志,忙则等待void delay(void);#includelcd1602.hsbit bflag=acc7;void lcd_init(void)lcd_cmd(0x38);/8位数据,2行显示lcd_cmd(0x08);/显示关闭lcd_cmd(0x01);/清屏 lcd_cmd(0x06);/写入数据后光标右移lcd_cmd(0x0c);/显示开,不显示光标void lcd_cmd(uchar cmd)/*写入控制命令lcd_rs=0;lcd_rw=0;lcd_data=cmd;en_toggle(); wait_until_ready();void lcd_char(char str)/写入要显示的字符 lcd_rs=1; lcd_rw=0; lcd_data=str;en_toggle();wait_until_ready();void setxy(char x,char y) /*设定显示位置,行x=1/2,列y=116的任意整数*/char temp;if(x=1)temp=0x80+y-1;lcd_cmd(temp);elsetemp=0xc0+y-1;lcd_cmd(temp);void lcd_string(char *s)for(;*s!=0;s+)lcd_char(*s);void wait_until_ready(void) /检测忙标志,忙则等待lcd_rs=0;lcd_rw=1;lcd_data=0x0ff;lcd_en=1;delay();doacc=lcd_data;while(bflag=1);lcd_en=0;4.3 报警部分程序设计本设计中,报警电路选用蜂鸣器+发光二极管实现声光报警,他们性能稳定,工作可靠及时。现在应用较为广泛。部分程序如下:设定当温度大于45或者小于5时,开始报警。unsigned chari=0;unsigned int m,n;while(1)i=readtemperature();/读温度if(i0&i=45&m=5)%(m=5)/判断温度的取值范围,如果大于45或小于5度,则蜂鸣器叫,发光二极管闪烁inta,b;q1=1;/蜂鸣器叫for(a=0;a1000;a+)/发光二极管闪烁for(b=0;b1000;b+)q2=1;for(a=0;a1000;a+)for(b=0;b1000;b+)q2=0;4.4 本章小结用c语言进行单片机程序设计,采用结构化程序设计思想:在总体设计中采用“自顶而下”(top-down)的方法,在程序设计中采用模块化编程。把整体任务分成一个个子任务,子任务再分子任务,逐层细分,每个子程序都完成其规定的功能,明确输入输出。将这些程序连接起来就构成整体流程图。模块化编程,每个模块结构完整,相互独立的程序段。如液晶模块的写控制指令、写显示数据、清屏;数据处理中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土承包合同
- 森林防火安全隐患排查整改报告(30篇)
- 《发票管理办法》课件
- 联合生产合同范本模板
- 房子维修协议书
- 合同实质性内容具体理解
- 四年级下册第22的教育课件
- 写生闹钟美术课件
- 高一第一学期期末考试英语试卷含答案(共5套-文本版)
- 《脑血管病康复治疗》课件
- 信息安全意识培训课件
- Python试题库(附参考答案)
- 政协提案关于加强企业诚信建设的建议
- SPC&CPK 超全EXCEL模板
- 化工设计说明书
- 部编本语文八年级上全册文言文课下注释
- 德力西系列变频器说明书
- UleadGifAnimator教程
- 烟草专卖(公司)内部专卖管理监督工作制度
- CFG桩施工中常见问题及处理措施
- 医疗废物处置流程图
评论
0/150
提交评论