本科论文--锅炉温度监控系统.doc_第1页
本科论文--锅炉温度监控系统.doc_第2页
本科论文--锅炉温度监控系统.doc_第3页
本科论文--锅炉温度监控系统.doc_第4页
本科论文--锅炉温度监控系统.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学士学位论文 摘 要锅炉是人类供热,取暖的主要来源,随着生产力的发展和对锅炉容量,参数要求的不断提高,锅炉容量和技术得到迅速发展,越来越智能化。本课题的设计正是基于智能化这个目的,在本设计中利用铂电阻采集锅炉房内的各个点的温度给单片机,由单片机通过led显示屏直观准确的进行显示,并且把采集到的数据通过rs485传输到上位机,使人在电脑面前就能观测到锅炉房内的温度情况,而且监测人员可以通过电脑把监测时间内任意时刻的温度曲线调出,便于前后对照,为以后的维修提供了数据保障。而且在本设计中使用了ds1302时钟芯片,使检测人员可以在现场知道准确的时间,时钟的调节可以通过上位机进行实现。上位机传送给单片机的修正值存储在e2prom 93c46中,单片机每次开机时便读取其中数据修改pt100所测得的温度值,减少环境和仪器造成的误差,为监测人员提供更准确的温度数据。通过本设计监测人员可以远程监控锅炉房内的温度,为锅炉管理提供了方便。关键词:铂电阻; 单片机;温度采集abstractboiler is used to supply heat for people. with automatic technology and information technologys development, the management of boiler will be more and more intelligent.in our designing ,basis on the object of intelligent. we use platinum resistance to collect some pointss temperature of stokenhold, then microcontroller receives the temperature and show it by led, and microcontroller send the temperature to monitoring computer by rs-485 communication protocol. so the manager can watch boilers condition from monitoring computer,and the watcher can check every times temperature at every moment. and we used ds1302 as time chip, the watchers can know time in locale, even we can adjust time through monitoring computer. monitoring computer send a correct number to the microcontroller, and the microcontroller save this number to 93c46.while the microcontroller start up again ,it will read the correct number from 93c46 to redress the temperature get by pt100 to reduce error worked by environment and instrument. it will supply more correct temperature number to the managers.through our designing, the watcher can watch and control stokenhold in long-distance, it provide convenience to managers.key words: platinum resistance; microcontroller ;temperature collection目录引 言11 系统硬件组成31.1 系统各部分工作原理31.1.1 总体硬件架构31.1.2 硬件电路工作原理41.2 芯片选型及功能简介41.2.1 sm8952内部结构41.2.2 12位a/d转换器mcp320491.2.3 串入并出显示芯片74hc595141.2.4 通信结构151.2.5 led显示屏161.2.6 时钟芯片ds1302171.2.7 存储芯片93c46182 软件设计212.1 软件开发平台212.2 软件设计时序解析232.3 主程序流程图242.4 串行通讯流程图252.5 t0中断流程图和74hc595串入并出温度显示程序流程图262.6 74hc595串入并出时间显示程序流程图272.7 时间调节程序流程图283 软件调试313.1 调试过程概述313.2 程序调试中出现的问题及改进方案33总 结35致 谢36参考文献37附 录38附录a38附录a.1 英文原文38附录a.2 汉语翻译44iv沈阳理工大学学士学位论文引 言在自动控制领域中,温度检测与控制占有很重要地位。温度测控系统在工农业生产、科学研究和人们的生活领域,也得到了广泛的应用。在大多数测控系统中,温度都是必不可少的检测量,温度传感器也是测控系统中十分重要的传感器件。随着数字化传感器技术的不断发展,出现了各种类型的数字温度传感器。数字温度传感器可以直接将被检测的温度信息以数字化形式输出,与传统的模拟式温度传感器相比,具有测量精度高、功耗低、稳定性好、外围接口电路简单特点。而且单片机微处理器越来越丰富的外围功能模块,更加方便了数字式温度传感器输出信号的处理。本设计正是用单片机微处理器来实现对温度的检测。尽管目前市场上针对温度测量的检测仪器不在少数,而且,其制作的水平无论在工艺还是在测量的精度上都不断的在提高,但要得到高精度、宽量程以及多通道的温度检测仪,价格都十分昂贵,本文的立足点是,运用比较常规的温度传感器以及价格低廉的电子元件构成低成本、高性能的智能系统。本系统是为北方的供暖锅炉设计的回水温度检测系统。在我国北方绝大部分地区冬天要靠供暖锅炉来解决供暖问题,在供暖锅炉车间需要知道从用户返回来的水的温度,从而对锅炉的运作进行相应的调整。本系统在锅炉车间安装了大的led显示屏,用来给操作工人提供可以参考的信息。同时数据也可以传送给计算机,使得决策者可以不用到车间就能够知道锅炉的回水温度情况。在本次毕业设计中,我严格按照毕业设计任务书的要求,在指导教师的引导下,按时完成了设计。用pt100与辅助测量电路将-40100温度信号转换成05v的电压信号,12位a/d转换器将模拟信号转换成04095的数字信号,经过查表分段插值转换成温度,总计可以采集现场的8路温度,测得温度的精度可以达到0.1。通信模块部分将温度值通过rs485通信的方式上传给上位机。本设计基于铂电阻测温原理,以sm89c52单片机为控制核心,利用串行接口12位a/d转换器mcp3204等芯片组成来实现铂电阻测温过程,并通过led数码管来实现字符的显示, ,顺利的完成单片机软件部分的设计,并结合硬件电路原理图根据所要实现的功能利用其程序设计经过调试之后做成了有实用价值的铂电阻测温显示屏,从而实现了从理论与实践相结合的这一过程。 本系统软件采用单片机c程序设计,因为随着市场竞争的日趋激烈,电子工程师需要能在短时间内编写出执行效率高、运行可靠的代码。同时,由于实际系统的日趋复杂,使得代码的规范性、模块化的要求越来越高,以方便多个工程师以软件工程的形式进行协同开发,而c语言的结构化和高效性满足了这样的需要所以选用c语言进行嵌入式系统的开发。第1章 硬件原理1.1 系统工作原理1.1.1 硬件结构本设计主要以sm8952单片机为控制核心, 利用三线制电桥设计铂电阻测温电路,通过桥式电路转换为电压信号,再经过放大及a/d转换后送单片机进行处理。系统主要由铂电阻测温电路、放大电路,时钟电路,复位按扭,电源组成。并通过led数码管来实现字符的显示,用12位a/d转换器mcp3204以实现模数转换。测温仪的系统硬件结构框图如图1.1所示。考虑到功耗及整机的精度和价格等问题,测温仪的单片机控制器采用51系列单片机。测温系统采用不平衡电桥测量铂电阻随温度变化的电压信号,经过放大、a/d转换后,送到单片机中进行处理和显示。采集时显示最值温度,超过设定值则报警。本测温仪通过rs485通信方式与计算机进行通信,上位机负责设置采集开始时间、采集间隔时间等参数,并读取下位机数据,进行数据分析和处理。 时钟电路铂电阻测温电路放大电路a/d转换电路at89c52单片机led显示计算机通信(rs485) 图1.1 系统硬件结构框图1.1.2 硬件工作原理铂电阻是将0.050.07的铂丝绕在线圈骨架上封装在玻璃或陶瓷管等保护管内构成。温度范围在-40650以内,铂电阻一般是三线制,其中一端接一根引线另一端接二根引线,主要为远距离测量消除引线电阻对桥臂的影响(近距离可用二线制,导线电阻忽略不计。)。由pt100温度传感器采集到锅炉的回水温度电压信号,经过运算放大器、a/d转换器,得到相应的数字信号,由单片机对数据进行处理,经通信电路实现对计算机的通信,以及由led数码管组成的显示电路显示所测温度。由于铂电阻传感器的非线形特性易产生测量误差,本设计通过采用查表线性化法得出温度各点对应的a/d转换值,并且利用软件算法实现了电路中各参数的自适应调整选取,在尽可能提高分辨率的情况下使设计的电路在给定的温度范围内各点的分辨率近似相等,从而方便了硬件电路的设计和电阻的选取,也减小了铂电阻测温电路的非线性误差。1.2 芯片选型及功能简介1.2.1 sm8952内部结构sm8952是 内含8 k内存 的8 位单片机。它所具有的硬件特性和一套强大的指令集使它成为一种通用并且经济的处理器。这是我们在本设计中选择它的原因。并且它拥有的 32 个i o口以及8k 内存使它适合于混合运算和复数运算。特性:* 工作电压:3.0 3.6 v 在 l 版本中; 4.5 5.5v 在c 版本中;* 与其他 8952 系列单片机兼容;* 一个机器周期包含 12 个时钟周期;* 8k 的内部存储空间;* 256 bytes 数据储存空间;* 3 个 16 bit定时记数器;* 4 组 8 bit i o 口;* 全双工串行通讯;* 位操作指令集;* 内存空间页跳跃; * 8 bit 无符号乘法;* bcd 算法;* 直接寻址;* 间接寻址* 嵌套中断;* 两个中断优先集;* 1 个 串行通讯接口;* 省电模式* 代码保护模式;* 1 个看门狗系统;* 低电磁干扰;芯片结构图:图1.2 8952 的结构图单片机内部结构图:图1.3 单片机内部结构图看门狗( wdt )系统描述:看门狗系统( wdt )是一个一旦溢出便会产生重启信号的16 位自由执行计数器。看门狗经常用于易受噪声干扰,电源故障,放电影响而产生程序死循环或是失控的系统中。它可以帮助系统使用者将程序从失控状态恢复到正常状态。看门狗不同于8952系统的定时器1,定时器2,和定时器3 。为了防止看门狗由于溢出发出重启信号可以周期性的将看门狗系统的计数器清零7。sm8952a 的看门狗系统拥有可选择源时钟的输入。可以通过设置看门狗控制寄存器( wdtc )的 ps2 ps0 进行控制。看们狗系统的执行可以通过将( wdtc )的第 7 个bit( wdte ) 置 1 实现。当wdte置 1 后,16位计数器便从ps2 ps0选择的基数开始计时。如果溢出出则产生重启信号。当sm8951a sm8952a重启后wdte被置 0。硬件重启或wdt重启也会使wdte置0;重启wdt可以通过将wdtc的第5位(clear )置 1。这可以清空16 位计数器并且让其从起始点开始计数。wdtc:图1.4 wdtc 内部结构ps2 ps0 :图 1.5 ps2至 ps0 不同值时的选择结果看门狗系统系统控制寄存器( scnof,$bf):图 1.6 看门狗系统系统控制寄存器( scnof,$bf)内部结构wdr:看门狗系统重启位,当系统由于看门狗计数器溢出而重启时wdr置1;alei:ale输出抑制位,减少电磁干扰;scnof的第 7 位是看门狗系统重启位。当看门狗系统因为溢出产生重启信号时这一位便置 1 ;用户可以通过查看这一位检查是否有不可预知的重启产生。减少电磁干扰功能:sm8952a 允许用户通过将scnof 的第 0 位( alei )置 1 来实现减少电磁干扰功能。此项功能会将ale 口的时钟信号抑制成fosc 6hz 。但此项功能只有在无外部程序存储器或外部数据存储器的情况下才可以使用。1.2.2 12位a/d转换器mcp3204mcp3204是逐步求近的12位模拟数据(a/d)转换器,带有片内采样和保持电路,mcp3204经编程可以提供两对伪差分输入通道或者四条单端输入通道,与器件的通信可以使用与spi协议兼容的简易串行接口进行,器件的转换率可达100ksps, mcp3204在宽电压范围内(2.7v5.5v)工作,低电流设计使器件可在典型值分别为500na和320ua的待机电流和有效电流条件下工作8。mcp3204同时提供数字与模拟接地连线,这样可以提供另外的方法来减少噪声,模拟与数字电路相对于器件在内部是各自分开的。这样减少了从器件的数字部分耦合到器件模拟部分的噪声。这两条地线通过电路板基低在内部连接,基底电阻为5-10。如果不使用接地层,则这两条地线必须连接到电路板上的vss。如果有接地层,则数字与模拟接地引脚都要连接到模拟接地层。如果同时具模拟与数字接地层,则数字与模拟接地引脚也应连接到模拟接地层。采取这些步骤可以减少数字噪声的数量,这些数字噪声从电路板其他部分出发将耦合到a/d转换器。mcp3204的引脚说明如图名称 功能 vdd +2.7v到5.5v供电电源 dgnd 数字接地agnd 模拟接地ch0-ch7 模拟输入clk 串行时钟din 串行数据输入dout 串行数据输出/cs/shdn 片选/关断输入vref 基准电压输入图1.7 mcp3204引脚说明由于我们所要测量的温度为-40100,精度要求为0.1。所以mcp3204的12位精度足以满足系统的要求。该芯片的参考电压选择+5v。mcp3204可以编程配置为2路伪差分输入偏置或4路单端输入。其差分非线性度(dnl)和整体非线性度(inl)为1lsb。该系列工作原理和操作方简单灵活,下面介绍一下mcp3204芯片的 a/d转换器的特点:(1)单电源工作,工作电压范围宽,可在2.7v5.5v电压间工作;(2)功耗低,激活工作电流仅为400a,而维持工作电流仅0.5a;(3)工作方式灵活,单端输入工作方式和准差分输入工作方式可通过命令设置,其中准差分输入工作方式能有效抑制输入端共模干扰的影响;(4)与微处理器采用spi接口总线通讯,为微处理器节约了口线,同时也使数据采集更加方便;(5)几乎无外围器件,从而减少了由于外围器件而引入的干扰和误差,同时也提高了可靠性;(6)有esd保护,所有管脚均能随4kv静电释放;(7)转换速度可达100khz;(8)适应温度范围宽,可在-4085摄氏度之间工作;(9)性价比高,现时零售价低于30元人民币,且性能较好。由于这些特点能够满足系统的要求,因此它成为了本次设计a/d部分的首选器件。 mcp3204主要由输入通道选通开关、采样保持单元、数据转换器(dac)、比较器、12位逐次逼近寄存器(sar)、控制逻辑单元和移位寄存器等部分组成,如图1.5所示。其转换原理是:通过比较器,利用已知的标准电压与被测电压进行比较,当被测电压与标准电压相等时,则该标准电压即为a/d转换的结果。标准电压是按照二进制编码变化的可变量,通常它是由逐次逼近寄存器sar和dac产生的。sar用于产生一个二进制编码的数字量,dac将这个数字量转换成模拟电压即为标准电压,sar的位数决定了a/d转换器的分辨率,同时sar的位数又决定了a/d转换器完成一次转换过程中标准电压与被测电压比较的次数,也就是说决定了完成一次a/d转换的所需要的时间。每次进行a/d转换的通道号,通过控制逻辑选取。而转换后的二进制数据,则通过移位寄存器串行口输出。转换输出数据: (1.1)式中:从ch0ch3输入的模拟电压; :输入5v参考电压。 图1.8 mcp3204内部结构图a/d转换的计算公式简介:对所用芯片mcp3204的引脚来说,指的是ad输出的最大值表示的电压,agnd指的是ad输出最小值表示的电压,因为该芯片的精度为12,所以其分辨率为即4096,所谓的分辨率就是可在和agnd之间分成的最小区间的个数,所以每个区间的大小的电压值为 (1.2)则已知的电压=ad值 (1.3)所以可以得到经过ad转换器后的ad值。需要指出的是:(1)当mcp3204接收命令数据时,时钟clk的上升沿有效;当mcp3204输出转换后的数据时,时钟clk的下降沿有效。(2)当采样结束后,读取所有12位转换数据必须在1.2ms时间内完成,否则将影响转换精度。(3)当mcp3204所在电路板有一地线层时,模拟地agnd管脚与数字地dgnd管脚应当连接到模拟地线层;当所在电路板有模拟地线层和数字地线层时,agdn管脚和dgnd管脚将连接到模拟地线层;当所在电路板没有地线层时,必须将agnd管脚和dgnd管脚一起连到电路板的地线上,这将有效减少数字噪声耦合到a/d转换器上的机会。l a/d转换原理分析模数转换是将模拟入信号转换为n 位二进制数字输出信号的技术。模数转换包括采样、保持、量化和编程四个过程。采样就是将一个连续变化的信号x (t) 转换成时间上离散的采样信号x (n) 。通常采样脉冲的宽度tw 是很短的,故采样输出是断续的窄脉冲。要把一个采样输出信号数字化,需要将采样输出所得的瞬时模拟信号保持一段时间,这就是保持过程。量化是将连续幅度的抽样信号转换成离散时间、离散幅度的数字信号,量化的主要问题就是量化误差。编码是将量化后的信号编码成二进制代码输出。这些过程有些是合并进行的。例如,采样和保持就利用一个电路连接完成,量化和编码也是在转换过程同时实现的,且所用时间又是保持时间的一部分。l 逐次逼近式a/d转换原理2本设计采用mcp3204逐次逼近型adc,逐次逼近型adc 包括1个比较器、1个数模转换器、1个逐次逼近寄存器( sar) 和1个逻辑控制单元,如图1.13 所示。转换中的逐次逼近是按对分原理,由控制逻辑电路完成的。其大致过程如下:启动转换后,控制逻辑电路首先把逐次逼近寄存器的最高位置1 ,其它位置0 ,逐次逼近寄存器的这个内容经数模转换后得到约为满量程输出一半的电压值。这个电压值在比较器中与输入信号进行比较。比较器的输出反馈到数模转换器,并在下一次比较前对其进行修正。在逻辑控制电路的时钟驱动下,逐次逼近寄存器不断进行比较和移位操作,直到完成最低有效位(lsb)的转换。这时逐次逼近寄存器的各位值均已确定,逐次逼近转换完成。由于逐次逼近型模数adc在1个时钟周期内只能完成1位转换。n位转换需要n个时钟周期,故这种模数转换器采样速率不高,输入带宽也较低。它的优点是原理简单,便于实现,不存在延迟问题,适用于中速率而分辨率要求较高的场合。l a/d转换器的性能指标(1)转换速度(conversion rate)转换速度是指完成一次a/d转换所需时间的倒数,是一个很重要的指标。adc型号不同,转换速度差别很大。通常,8位逐次比较式adc的转换时间为100us左右选用adc型应实现场需要而定。在控制时间允许情况下,应尽量选用便宜的逐次比较式a/d转换器。(2)转换精度(conversion accuracy)adc的转换精度有模拟误差和数字误差组成。模拟误差是比较器、解码网络中电阻值以及基准电压波动等引起的误差。数字误差主要包括丢失码误差和量化误差,前者属于非固定误差,由器件质量决定,后者和adc输出数字量位数有关,位数越多,误差越小。在a/d转换过程中,模拟量是一种连续变化的量,数字量是断续的量。因此,a/d转换位数固定后,并不会所有模拟电压都能用数字量精确表示的。例如:假定三位二进制a/d转换器的满量程值为vfs为7v,即输入电压为0v、1v、2v、3v、4v、5v、6v、7v时,三位数字量恰好只能有8种组合。如果模拟输入电压为其余值就会产生量化误差,输入模拟电压为0.5v、1.5v、2.5v、3.5v、4.5v、5.5v、6.5v时量化误差最大,应当是0.5v。顾量化误差的定义是分辨率之半,其计算公式为: (1.4)硬件系统中pt100的a/d值与温度的关系如下表:表1.1 pt100的a/d值与温度的对照表a/d值温度值a/d值温度值a/d值温度值a/d值温度值360-1111275-5223235320075407-4013720235640332680502-3514975247545344085627-30162010260050355890752-25174615272055368095875-201866202842603799100998-1519892529606540001011123-102112303084701.2.3 串入并出芯片74hc59574hc595是个8位的、带8位输出锁存器、三态输出的串行输入/串行或并行输出的移位寄存器。三态输出是指带有8个三态门具有三态输出功能。串行端没有三态输出功能。该器件与74hc164相比,突出的优点是:由于有输出锁存器,当串行数据移入移位寄存器的过程中,8位并行输出端(q0q7)的数据不变化。只有当锁存时钟来时,才把移位寄存器中的数据并行地送入8位输出锁存器中。因此74hc595中的移位寄存器接收串行的数据输入,同时提供了一个串行的数据输出,移位寄存器还提供并行的数据输出到8位输出锁存器,而且移位寄存器和输出锁存器各有自己的时钟输入脚,所以可互不影响。移位寄存器还有一个复位控制输入脚,以便复位(清零)移位寄存器的内容。74hc595的主要特性:(1) 输出驱动能力:15个lsttl负载;(2) 输出脚可直接与cmos、nmos和ttl电路相连;(3) 工作电压范围:2v6v;(4) 工作温度范围:对于陶瓷封装(后缀为j)、塑料封装(后缀为n)和扁平封装(后缀为的d)的产品,均为 -55+125;(5) 低的输入电流:1a;(6) 高的噪声抑制能力。74hc595可在串行外围接口上扩展并行输出口,除了可允许再扩展其他串行接口外,还有一个优点,就是在 执行串行数据传送时,输出口上的数据不会产生脉动,它们在rclk上跳时才一次性的改变为新的输出值。1.2.4 通信电路本系统采用rs485接口芯片max487作为通讯口。max487是maxim公司生产的用于rs485和rs422通信的差分总线小功率收发器,它含有一个驱动器和一个接收器,具有驱动器接收器使能功能,输入阻抗为14负载(48kw),节点数为128,即每个max487的驱动器可驱动128个标准负载。max487的驱动器设计成限斜率方式,使输出信号边沿不至于过陡,以避免在传输线产生过多的高频分量,从而有效扼制了干扰现象。max487的接收灵敏度为200mv,即接收端的差分电压200mv时,接收器输出为高电平,200mv时接收器输出为低电平,介于200mv之间时接收器输出为不确定状态,因此,一旦某个节点的接收器在总线空闲、传输线开路或短路时产生低电平,将使串行接收器找不到起始位,从而引起通信异常,为此,本系统在硬件上作了处理:将max487的a、b输出端加接上拉、下拉电阻,保证在发出有效数据时所有接收器能接收到完整的数据。max487静态工作电流为120a,5v单电源工作,在本系统中,max487采用半双工通信方式,各节点间的通信通过一对双绞线作为传输介质,因双绞线的特性阻抗为120,因此系统在max487的始端和末端各接一个120电阻以减少线路上传输信号的反射。由于主机与分机相隔较远,而分机系统上电或复位又常常不在同一时刻完成,如在此时某个max487处于发送状态,将占用通信总线而使其它分机无法与主机进行通信,本系统在89c52与max487之间加接光耦,保证了系统上电复位时max487的de端为“0”,有效解决了这个问题。rs-485收发器分别采用平衡发送和差分接收,即在发送端驱动器将ttl电平信号转换成差分信号输出,在输出端将差分信号变成ttl电平。因此,具有将强的电平信号转换成差分信号的能力,与此同时,提高接收器的灵敏度,能检测至200mv的电压,所以数据传输可达千米以外,rs-485许多电器规定与rs-485相仿,例如,都采用平衡传输方式,都需要在传输线上连接终接电阻等。最简单的rs-485通信电缆有两条信号线路组成,通信电缆必须接大地参考点,这样的连接线路能支持32对发送/接收端,为了避免地面电流,每个设备一定要接大地,另外,通信电缆应包括第三信号参考线,连接到每个设备的电缆地,若用屏蔽电缆,屏蔽应接到电缆设备的机壳。rs-485可采用二线制或四线制连接方式,二线制连接方式能实现真正的多点双向通信,采用四线制连接方式时,只能实现一对多点的通信,即只能有一个主设备,其余为从设备。无论采用那种方式总线上可连接多达32个设备。rs-485驱动器输出电压在-7+12v之间,rs-485接受器最小输入阻抗为12k。rs-485的最大传输速率为10mb/s,当波特率为1200b/s时,最大传输距离理论上可达15km。平衡双绞线的长度与传输速率成反比,在100kb/s速率下,才可能使用规定最长的电缆长度。用51单片机实现与pc机之间的通讯时,必须使用电平转换接口芯片,因为单片机输出的是ttl电平,必须经过电平转换才能和pc机的一致。本文中采用的是rs485协议,所以单片机需要采用rs485接口;而在本设计中pc机侧使用的是rs232与rs485的电平转换接口。1.2.5 led显示屏led显示器是用发光二极管构成的显示器,为了适应不同电路的需要,根据构成led显示器的发光二极管公共极的极性,有共阴极和共阳极两种形式。对共阴极数码管,公共阴极接地,当各段阴极上的电平为高电平时,该段接通亮,电平为0时,该段关断不亮。对共阳极数码管则刚好相反,高电平不亮,低电平时亮。这种器件根据显示数位分类,可以分为一位,双位和多位led显示器,一位led显示器就称作led数码管,两位以上的一般就称作led显示器。在本设计中采用的是共阳极led显示器。要驱动led显示器显示相应字符,必须通过接口向其提供字符的笔段字型码和数位代码。当led 显示器用于微处理器或微控制器应用系统时,利用微处理器的强大功能通过软件查表方式对所需要显示的字符到笔段字型码的变换实现译码不是一件困难的事,所以目前大多数嵌入式系统应用都是采用这种软件译码方式。led显示器驱动方式可以分为静态驱动和动态驱动两种。静态显示驱动一般是通过数字集成电路对所需要显示的字符笔段连续施加电压;而动态显示驱动则是利用矩阵扫描方式间断向需要显示的字符笔段轮流施加电压。静态显示,就是当显示器显示某一字符时,相应段的发光二极管恒定地导通或截止,并且显示器的各位可同时显示。静态显示时,较小的驱动电流就能得到较高的显示亮度。当led显示器工作于静态显示驱动方式时,不同数位的led数码管的公共极(共阳极或共阴极)将被连接在一起并接地或+5v,而每个数位的8根笔段线分别与一个8位锁存器相连。不同数位的数码管相互独立,分别用不同的驱动器件进行驱动,它们的显示字符一旦确定,只要不改变显示字符,相应的锁存器的输出就将一直维持不变。这种驱动方式的优点是编程容易、管理简单、显示亮度高、稳定性好、占用cpu时间较少,其缺点是占用硬件电路和微处理系统接口资源较多、引线多、印刷板布线复杂,硬件投入成本高。动态显示就是一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一位而言,每隔一端时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和时间间隔的比例有关,当led显示器工作于动态显示驱动方式时,通常把不同数位的同名笔段互连起来,共用一个显示驱动器。每一个数位上的字符显示都需要靠笔段字形驱动和数位驱动相结合,如果需要在不同数位上显示不同的字符,可以依次传送需要显示字符笔段的字形码,接着选通相应数位显示该位字符,利用人眼的视觉暂留现象,只要扫描间隔时间恰当,就会感觉到不同数位上在同时稳定地显示不同的字符。动态显示驱动方式的优点是引线少,结构简单,硬件成本相对较低。其缺点是需要不断刷新,当采用软件扫描时,占用cpu的时间较多,当采用硬件扫描时,又会增加硬件成本,led显示数位越多,显示亮度越低,若处理不好或数位太多将会引起显示闪烁。显示板设计单片机将采集的温度信号转化成显示码,传送到显示板,经由移位寄存器74hc595芯片控制共阳极led数码管显示。图1.9 显示板设计1.2.6 时钟芯片ds1302ds1302是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。ds1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd 码形式。此外,ds1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与ram相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。ds1302 与ram 相关的寄存器分为两类,一类是单个ram单元,共31个,每个单元组态为一个8位的字节,其命令控制字为cohfdh,其中奇数为读操作,偶数为写操作;再一类为突发方式下的ram寄存器,此方式下可一次性读写所有的ram 的31 个字节,命令控制字为feh(写)、ffh(读)。ds1302在测量系统中的硬件电路如图,ds1302与cpu的连接仅需要三条线,即sclk(7)、i/o(6)、rst(5)。vcc2在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。vcc在双电源系统中提供主电源,在这种运用方式下b1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。ds1302由b1或vcc两者中的较大者供电。当vcc大于b1+0.2v时,vcc给ds1302供电。当vcc小于b1时,ds1302由b1供电。 图1.10 ds1302的电路设计ds1302在应用中注意的几个问题:1 ds1302每次上电时自动处于暂停状态,必须将秒寄存器的d7位改置为0始终电路才开始记时工作。2 解除写保护寄存器的禁止状态,使之内容为00。3 用多字节模式对时钟/日历寄存器进行写操作时要求必须写满8个数据否则无效。4 当/rst被驱动到1态时,sclk必须保护在0电平。5 在元件的上电过程中,在电源电压达到2.5之前,/rst必须保持低电平,这可通过单片机先上电,ds1302后上电的次序或其他附加电路解决。1.2.7 存储芯片93c4693c46 是一种存储器,可以定义为16 位org 引脚接vcc,或者定义为8 位org 引脚接gnd 的1k 位的串行e2prom,每一个的存储器都可以通过di 引脚或do 引脚进行写入或读出,每一片93c46 都是采用先进的cmos e2prom 浮动门工艺加工器件。可以经受1,000,000 次的写入/擦除操作,片内数据保存寿命达到100 年,器件可提供的封装有dip-8 ,soic-8 ,tssop-8。器件特性:高速度操作;93c46 1mhz;低功耗工艺;电源电压宽1.8 伏到6.0 伏;存储器可选择8 位或者16 位结构;写入时自动清除存储器内容;硬件和软件写保护;慢上电写保护;1,000,000 次写入/擦除周期;100 年数据保存寿命;商业级工业级和汽车级温度范围;图1.11 93c46引脚图说明当注意:org 接vcc 时存储器为16 位结构,当org 接gnd 是存储器为8 位结构;当org引脚悬空时内部的上拉电阻把存储器选择为16 位结构。图1.12 93c46管脚说明第2章 软件设计2.1软件开发平台及c介绍keil51是德国keil公司开发的单片机c语言编译器,其前身是franklin c51,现在的最新版本v7功能已经相当不错,特别是兼容ansi c后又增加很多与硬件密切相关的编译特性,使得在8051系列单片机上开发应用程序更为方便和快捷。u vision2是一种集成化的文件管理编译环境,本设计使用的编译环境keil51,集成了文件编辑处理、编译链接、项目管理、窗口、工具管理和软件仿真调试等多种功能,是相当大的c51开发工具。在keil的仿真功能中,有两种仿真模式:软件模拟方式和目标板调试方式。在软件模拟方式下,不需要任何8051单片机硬件即可完成用户程序仿真调试,极大地提高了用户程序开发效率。在目标板调试方式下,用户可以将程序装到自己的8051单片机系统版上,利用8051的串口与pc机进行通信来实现用户程序的实时在线仿真。6在国内,汇编语言仍然是比较流行的开发工具。长期以来对编译效率的偏见,以及不少程序员对使用汇编开发硬件系统的习惯性,使c语言在不少地方遭到冷落。诚然,优秀程序员写出的汇编语言程序的确有执行效率高的优点,但其可移植性和可读性差,使其开发出来的产品在维护和功能升级方面都有极大的困难,从而导致整个系统的可靠性和可维护性也比较差。而使用c语言进行嵌入式系统的开发,有着汇编语言编程所不、可比拟的优势1 编程调试灵活方便c语言编程灵活,同时,当前几乎所有嵌入式系统都有相应的c语言级别的仿真调试系统,调试十分方便。生成的代码编译效率高当前较好的c语言编译系统编译出来的代码效率只比直接使用汇编低20%如果使用优化编译选项甚至可以更低。2 模块化开发目前的软硬件开发都向模块化、可复用性的目标集中。不管是硬件还是软件,都希望其有比较通用的接口在以后的开发中如果需要实现相同或者相近的功能,就可以直接使用以前开发过的模块,尽量不做或者少做改动,以减少重复劳动。如果使用c语言开发,数据交换可方便地通过约定实现,有利于多人协同进行大项目的合作开发。同时,c语言的模块化开发方式使开发出来的程序模块可不经修改,直接被其他项目所用,这样就可以很好地利用已有的大量c程序资源与丰富的库函数,从而最大程度地实现资源共享。3 可移植性好由于不同系列的嵌入式系统的c语言编译工具都是以ansi-c作为基础进行开发的,因此,一种c语言环境下所编写的c语言程序,只需将部分与硬件相关的地方和编译连接的参数进行适当修改,就可方便移植到另外一种系列上,例如,c51下编写的程序通过改写头文件以及少量的程序行,就可方便移植到196或pic系列上。也就是说,基于c语言环境下的嵌入式系统能基本达到平台的无关性。c语言允许直接访问物理地址,可以直接对硬件进行操作因此既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。4 便于项目维护管理用c语言开发的代码便于开发小组计划项目、灵活管理、分工合作以及后期维护,基本上可以杜绝因开发人员变化而给项目进度、后期维护或升级所带来的影响。从而保证整个系统的品质、可靠性以及可升级性。2.2 软件编程时序解析1 a/d转换芯片mcp3204的时序串行通讯:与mcp3204的读写可以利用标准的spi兼容串行接口来实现。通过将cs线拉低可以启用通信。如果器件已上电而cs引角为低,则要将其拉高再拉低以启动通信。接受到第一个时钟并且cs为低din高时,将构成一个开始位。开始位之后跟随的是sgl/diff位,它决定转换是采用单端还是差分输入模式进行。接下来的三位(d0、d1、d2)用于选择输入通道的配置。在接收到开始位以后,器件将在时钟的第四个上升沿开始对模拟输入进行采样。采样周期在紧跟着开始位的第五个时钟的下降沿结束。一旦输入d0位,则还需要一个时钟来完成采样与保持周期(din不必考虑该时钟)。在下一个时钟的下降沿,器件将输出一个低空位(null bit).接下来的12个时钟将输出转换结果,从第七个时钟的下降沿开始开始(见图2.3)。数据总是在时钟的下降沿从器件输出。如果12个数据位全部被发送而且器件在cs保持低电平时继续接收时钟,则器件将从lsb开始输出转换结果。如果在cs仍为低时还有时钟输入器件(在lsb先行数据发送以后),器件则会无限制地按时钟输出零。时钟芯片mcp3204的结构见图2.1,引脚功能见表2.2所示,通道选择见图2.4.。图2.1 mcp3204引脚图引脚名称功能说明vcc+2.7v 到 5.5v电源输入gnd数字接地sgnd模拟接地ch0-ch3模拟量输入clk串行时钟din串行数据输入dout串行数据输出/shdn芯片选择/关闭模拟量输入vref参考电压输入图2.2 mcp3204引脚说明图2.3 mcp3204时序图control bit selections inputconfiguration channel selectionsingle/diff d2 d1d0 1 x 0 0 single-ended cho 1 x 0 1 single-ended ch1 1 x 1 0 single-ended ch2 1 x 1 1 single-ended ch3 0 x 0 0 differentialcho=in+ ; ch1=in- 0 x 0 1 differential cho=in- ; ch1=in+ 0 x 1 0 differential ch2=in+ ; ch3=in- 0 x 1 1 differential ch2=in- ; ch3=in+图2.4 mcp3204通道选择mcp3204程序流程图:图 2.5 mcp3204程序流程图2 移位寄存器74hc595时序 74hc595具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。下面将就图 74hc595的时序图具体说明其时钟的时序,数据在srclk(串行移位时钟输入)的上升沿输入,在rclk(同步输

温馨提示

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

评论

0/150

提交评论