课程设计多点粮库温度测量显示系统设计.doc_第1页
课程设计多点粮库温度测量显示系统设计.doc_第2页
课程设计多点粮库温度测量显示系统设计.doc_第3页
课程设计多点粮库温度测量显示系统设计.doc_第4页
课程设计多点粮库温度测量显示系统设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第一章 系统方案设计1.1 概述科学储粮是粮食生产的一个重要环节,若管理不当,粮食发霉或生虫会造成极大浪费。粮库管理中最重要的问题是监测粮堆中的温度变化。粮库一般由几十个甚至上百个由水泥或钢板构成的圆型仓组成,仓高2030m。现在,我国在粮仓建设上已经实现规范化,但是监测手段一直未能实现同步现代化。我国许多储备粮库每年都因测控设备的不完善而导致部分粮食霉变,许多大型储备粮库的测控设备仍需高价进口,因此国家准备在未来的几年内对全国所有的粮库进行翻新和改造工作,要求规范粮库管理,实现粮库管理现代化。利用单片机技术对粮仓进行检控,用户可以方便地够造自己所需要的数据采集系统,在任何时候把粮仓现场的信息实时地传到控制室,管理人员不进入现场就可以按照所需的温度要求对粮仓内的温度情况进行控制,提高了生产效率,增强了粮仓内存储安全,获得了粮仓的实时管理,实现自动化,智能化。1.2 系统方案框图该方案使用了AT89S52单片机作为控制核心,以智能温度传感器DS18B20为温度测量元件,采用多个温度传感器对多点温度进行检测,通过键盘模块对温度上限设置,超过其温度值就报警。显示电路采用LCD1602模块,使用单片机直接驱动蜂鸣器构成报警电路。它直接输入数字量,精度高,电路简单,只需要模拟DS18B20的读写时序,根据DS18B20的协议读取转换的温度。此方案硬件电路简单,但程序设计复杂。如图1.1所示:温度传感器温度传感器温度传感器温度传感器键盘单 片机LCD液晶显示电路报警电 路图1.1温度测量系统方案框图第二章 工作原理2.1 检测原理 本温度计大体分三个工作过程。首先,由DS18B20温度传感器芯片测量当前的温度,并将结果送入单片机。然后,通过AT89S52单片机芯片对送来的测量温度读数进行计算和转换,井将此结果送入液晶显示模块。最后,SMC1602A芯片将送来的值显示于显示屏上。本电路主要由DSl8B20温度传感器芯片、SMCl602A液晶显示模块芯片和AT89S52单片机芯片组成。其中,DSI8B20温度传感器芯片采用“一线制”与单片机相连,它独立地完成温度测量以及将温度测量结果送到单片机的工作。首先LCD初始,写入报警温度的上下值。如果DS18B20运行良好,能正常工作,那么在LCD液晶显示屏上就能显示出四路传感器所在位置的实时温度,如果DS18B20不能正常工作,那么LCD液晶显示屏上就不会发亮光;读取温度数据,在液晶屏上显示温度值,如果某一点的温度值超过上限值,那么就会自动报警,如果所有点的温度全部超过上限值,那么就会启动全部报警系统。最后进行键盘扫描。如图2.1所示:图2.1 系统原理图2.2 单片机AT89S522.2.1单片机AT89S52介绍单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。为了设计此系统,采用了MCS-51兼容单片机AT89S52单片机作为控制芯片。2.2.2单片机AT89S52基本知识AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k BytesISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。2.2.3 单片机AT89S52产品特点AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。内部数据存储器的高128个单元是为专用寄存器提供的,因此该区也称作特殊功能寄存器(SFR),它们主要用于存放控制命令、状态或数据。除去程序计数器PC外,还有21个特殊功能寄存器,其地址空间为80HFFH。这21个寄存器中有11个特殊功能寄存器具有位寻址能力,它们的字节地址刚好能被8整除。下面将对部分专用寄存器作简要介绍。2.2.4单片机AT89S52的使用 AT89S52单片机是一种低功耗高性能的CMOS8位微控制器,内置8KB可在线编程闪存。该器件采用Atmel公司的高密度非易失性存储技术生产,其指令与工业标准的80C51指令集兼容。片内程序存储器允许重复在线编程,允许程序存储器在系统内通过SPI串行口改写或用同用的非易失性存储器改写。通过把通用的8位CPU与可在线下载的Flash集成在一个芯片上,AT89S52便成为一个高效的微型计算机。它的应用范围广,可用于解决复杂的控制问题,且成本较低。2.2.5 AT89S52引脚功能与封装图2.2是AT89S52引脚图。图2.2 AT89S52引脚图按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O口、控制和复位等。2.3 温度传感器的选择2.3.1传感器的选择原则要进行一个具体的测量工作,首先要考虑用何种原理的传感器,这需要分析多方面的因素之后才能确定。因为,即使是测量同一物理量,也有多种原理的传感器可以选用,哪一种原理的传感器更为适合,则需要根据被测量的特点和传感器的使用条件考虑以下具体问题:量程的大小;被测位置对传感器体积的要求;测量方式是接触式的还是非接触式的;信号的引出方法;传感器的来源,国产还是进口,价格是否能承受。在考虑上述问题之后就能确定选用何种类型的传感器,然后再考虑传感器的具体性能指标。传感器的具体指标有灵敏度,频率响应特性,线性范围,稳定性,精度等。这些参数并不是要求越高越好,因为要求越高不仅会带来成本的提高,也会带来信号处理的难度,噪音等问题。在满足检测系统要求的前提下我们一般选择价格便宜和简单的传感器。2.3.2温度传感器的选择美国DALLAS半导体公司的数字化温度传感器DS18B20 是世界上第一片支持 一线总线接口的温度传感器,而新的“一线器件”DS18B20体积更小、适用电压更宽、更经济。单线数字温度传感器,可以直接将被测温度转化成串行数字信号, 以供单片机处理,克服了传统的模拟式温度传感器不仅需要设计信号调理电路,还要经过复杂的校准和标定过程,测量精度难以保证的缺点,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。另外,DS18B20一线总线数字化温度传感器同DS18B20一样,DS18B20也支持一线总线接口采用单根信号线,既可以传输时钟,又能传输数据,而且数据传输是双向的。与其他数字温度传感器相比具有线路简单硬件开销少,成本低、便于扩展等优点。DS18B20的测量温度范围为 -55+125,在-10+85 范围内,精度为0.5。DS1822 的精度较差为 2。现场温度直接以一线总线的数字方式传输,与前一代产品不同,新的产品支持3V5.5V 的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。DS18B20 可以程序设定912 位的分辨率,精度为0.5。分辨率设定及用户设定的报警温度存储在EEPROM 中,掉电后依然保存。DS18B20 的性能是新一代产品中最好的,性能价格比也非常出色。DS1822 与DS18B20 软件兼容,是DS18B20 的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2,适用于对性能要求不高,成本控制严格的应用,是经济型产品。继一线总线的早期产品后,DS18B20开辟了温度传感器技术的新概念。DS18B20 和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。2.3.3 DS18B20简介DS18B20是智能温度传感器,它的输入、输出采用数字量,通过单总线,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度数值以串口形式发给主机,主机按照通讯协议用一个I/O口模拟DS18B20时序,发送命令(初始化命令、ROM命令、功能命令)给DS18B20,并读取温度值,在内部进行相应的数据处理,用字符型液晶显示模块显示各点的温度值。在系统启动之时,可以通过按键设置各点温度的上限值和下限值,当某点温度超过设置值时,报警器开始报警,从而实现了对各点温度实时监控。每个DS18B20有自己的序列号,因此本系统可以在一根总线上接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20才作出响应,接收足迹命令,向主机发送转换的温度。采用这种DS18B20寻址技术,使系统硬件电路更加简单。DS18B20虽然有测温简单的特点,单在实际应用中应注意一下几点:(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20 操作部分最好采用C语言实现。(2) 在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20 超过8个时钟,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(3) 连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。(4) 在DS18B20 测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20 的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环。这一点在进行DS18B20 硬件连接和软件设计时也要给予一定的重视。2.3.4 DS18B20 的性能特点(1) 独特的单线接口仅需要一个端口引脚进行通讯;(2) 在DS18B20中的每个器件上偶有独一无二的序列号,因此多个DS18B20可以并联在唯一的三线上,实现多点组网功能;(3) 实际应用中不需要任何外部器件即可实现;(4) 可通过数据线供电,电压范围为3.05.5V;(5) 零待机功耗;(6) 数字温度计的分辨率用户可以从9位到12位选择;(7) 用户可定义的非易失性温度报警设置;(8) 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;(9) 负温度特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2.3.5 DS18B20的外形和内部结构DS18B20 内部结构主要由四部分组成:64 位光刻ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。DS18B20 的管脚排列如图2.3所示:引脚定义:(1) DQ 为数字信号输入/输出端;(2) GND 为电源地;(3) VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。 图2.3 DS18B20 的管脚排列图DS18B20采用3角PR-35封装或8角SOIC封装,其内部结构如图2.4所示:64位ROM 和单线接口电流检测存储器和控制器 高速 缓存存储器8位CRC生成器温度敏感元件低温触发器TL高温触发器TH配置寄存器图2.4 DS18B20 内部结构图DS18B20 有4 个主要的数据部件:(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码CRC=X8+X5+X4+1。光刻ROM 的作用是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB 形式表达,其中S 为符号位。 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 LS Byte Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit 9 Bit 8MS Byte 2223 21 202-1 2-2 2-4 SS S S S 262524表2.5 DS18B20 温度值格式表这是 12 位转化后得到的12 位数据,存储在18B20 的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1 再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。(3)DS18B20 温度传感器的存储器DS18B20 温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL 和结构寄存器。TEMPERATURE DIGITAL OUTPUT (Binary) DIGITAL OUTPUT (Hex) +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 00008h 0 0000 0000 0000 0000 00000h -0.5 1111 1111 1111 1000 FFF8h -10.125 1111 1111 0101 1110 FF5Eh -25.0625 1111 1110 0110 1111 FE6Eh -551111 1100 1001 0000 FC90hThe power on reset value of the temperature resister is +85 THE 表2.6 DS18B20 温度数据表(4)配置寄存器该字节各位的意义如表2.7所示:111R0R1TM11 表 2.7 配置寄存器结构低五位一直都是1 ,TM 是测试模式位,用于设置DS18B20 在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1 和R0 用来设置分辨率,如下表所示:(DS18B20 出厂时被设置为12 位)分辨率设置如表2.8所示:R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750ms表2.8 温度值分辨率设置表由表4.5可见,DS18B20温度转换时间比较长,而且设定的分辨率越高,所需要的温度转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。2.4 测量电路介绍2.4.1 DS18B20与单片机接口电路设计DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1管脚接地,2脚作为信号线接单片机的I/O口,电源与数字输入管脚间需接一个4.7K的电阻,3管脚接电源,如图4.3所示。另一种是寄生电源方式,如图2.9所示。单片机端口接单片机总线,为保证在有效的DS18B20 时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。单片机AT89S52VC DS18B20DQGNDVcc4.7K图2.9 DS18B20采用电源供电方式的电路图单片机AT89S52VccVcc DS18B20DS18B20DS18B204.7 K图2.10 DS18B20采用寄生电源的电路图DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线上可以挂很多这样的数字温度计,十分方便。本次试验采用电源供电方式的供电方式。具体的实物硬件连接图如图2.11所示图2.11传感器DB18B20与单片机AT89S52实物硬件连接图显示电路设计2.4.2 1602LCD液晶显示屏显示容量为162个字符;芯片工作电压为4.55.5V;工作电流为2.0mA(5.0V);模块最佳工作电压为5.0V;字符尺寸为2.954.35(WH)mm。2.4.3 LCD1602的引脚说明LCD1602采用标准的14脚接口,其中:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:V0为液晶显示器对比度调整端。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。 第1516脚:空脚LCD液晶显示屏与单片机接口电路设计本系统的显示部分采用LCD1602字符显示模块,与采用数码管相比,硬件连接和软件调试上都由优势。只要把要显示的内容放进液晶模块的显示存储器里面就可以直观的显示出指定的内容,操作方便。LCD1602与单片机的连接图,如图2.12所示:图2.12 LCD液晶显示屏与单片机接口硬件连接图其中,单片机的P0.0P0.2引脚与LCD1602的46引脚相连,因为AT89S52单片机的P0口没有上拉电阻,所以在它们中间接一个5.1千欧姆的电阻,它们数据的读写功能。单片机的P2.0P2.8引脚与LCD1602的714引脚相连,进行数据的通讯传输。2.4.3 键盘电路设计本系统的操作接口采用独立式按键结构,独立式按键是指直接用I/O口线构成的单个按键电路,每个独立式按键单独有一根I/O口线,每根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。由于独立式按键电路配置灵活,软件结构简单但每个按键必须占用一根I/O口线,在按键数量较多时,I/O 口线的浪费较大,故在按键数量不多时,常采用这种按键电路。本系统提供三个按键:复位键,上限值加一键,上限值加一键。上限值加一键和上限值加一键的电路图如图2.13所示,按键分别由AT89S52的P0.3, P0.4, RST键检测这三个开关量输入。图2.13 键盘硬件连接图按键的操作说明:若按下上限值加一键,程序中的报警温度设定值就会增加一摄氏度,若按下上限值减一键,程序中的报警温度设定值就会减少一摄氏度,如果按下复位键,程序中的报警温度设定值就会自动返回到原来初始的设定值。2.4.4报警电路设计本系统采用单片机与蜂鸣器相连来显示当前系统所处的状态来报警。如图图2.14所示,其中P3.0口与蜂鸣器相连,在P3.0与蜂鸣器中间接一个200欧姆的电阻起到防止电流过大,保护器件的作用。图2.14 报警硬件连接图 报警电路说明:当实际温度值低于温度下限值时,蜂鸣器不响报警(绿)灯亮,表示当前温度值低于上限值,系统处于安全状态;相反,当实际温度值高于温度上限值时,蜂鸣器响报警(绿)灯亮,系统需要报警。 第三章 系统软件设计3.1 软件设计方法整个软件包括温度采集和数据传输两个主要部分组成。其中温度采集又是由单总线协议和注册码组成的,因此,软件设计主要任务是实现1-Wire总线协议。3.1.1 温度处理子程序设计计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。3.1.2按键处理子程序设计按键处理子程序通过扫描按键情况,主要完成温度上下限的查看和对其进行设置。3.1.3 系统温度阈值设定子程序设计此次毕设试验设有报警功能,程序中首先设定了报警的温度为26摄氏度,即粮仓内的温度超过了26摄氏度,就自动会启动报警系统,在本次试验中的报警设备选用了蜂鸣器与小灯相结合的报警方式,具体说明为:如果粮仓内仅有一个或几个监测点的温度值超过了设定温度值,小灯会发出一闪一闪的灯光,蜂鸣器会断断续续的发出报警的声音,如果粮仓内所有的监测点都超过了设定温度值,那么小灯会一直发光,蜂鸣器会发出长鸣的报警声。3.1.4 温度显示子程序设计读出温度子程序的主要功能是读出RAM中的9字节,在读出是需进行CRC校验,校验有错误时不进行温度数据的改写。3.1.5显示数据刷新程序子程序设计显示数据刷新程序子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示移入下一位。3.2 测试系统总流程图初始化读取温度数据显示是否超过阈值?NY短鸣报警长鸣报警NY温度是否全部超过阈值?不报警读取键盘数据开始结束第四章 系统安装与调试4.1 系统仿真仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。单片机系统开发中的仿真包括软件仿真和硬件仿真。(l)软件仿真这种方法主要是使用计算机软件来模拟实际的单片机运行,因此仿真与硬件无关的系统具有一定的优点。用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最后的设计;(2)硬件仿真使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能。使用了附加硬件后用户就可以对程序的运行进行控制,例如单步、全速、查看资源断点等。在单片机应用系统的开发过程中,程序的设计是最为重要的但也是难度最大的工作,一种最简单和原始的开发流程是:编写程序,烧写芯片并验证功能,这种方法对于功能简单的小系统是可以对付的,但在比较大的系统中使用这种方法则是完全不可能的。此时就需要用到仿真器。在本系统软件设计调试的过程中使用的是PROTEL DXP型仿真软件。4.2 系统硬件调试系统软硬件调试的目的是通过控制程序和硬件电路的配合工作,进行一些操作,以验证系统的软、硬件是否能够完成设计的功能。调试的过程是按照系统的设计功能来划分的。硬件电路系统测试首先是保证各个元件之间以及各个模块之间的连接正确并且接触良好,这是整个硬件电路系统正常工作的前提。接着分别测试各个硬件模块的性能。按照测试性质的不同可分为电压测试和信号测试两种。单片机输入输出接口主要是信号测试。根据理论计算和软件仿真的预期结果,再通过对响应的信号进行测试。测试结果与预期结果基本一致,保证了系统按照设计的思路正常运行。通过测试硬件电路系统中的几个测试点,确保关键的电压信号满足要求,确保各个引脚连接正确,确保系统正常运行。4.3 系统软件调试系统的软件调试借助于PROTEL DXP99型仿真软件,在进行系统软件的连续调试之前要先进行软件的初调,就是要使各个子程序模块运行正确,程序的运行流程正确。(1) 原理图连线设计确定起始点和终止点,Protel99就会自动地在原理图上连线,从菜单上选择Place/Wir e后,按空格键切换连线方式,自动连线、任意角度、45连线、90连线,使得设计 者在设计时更加轻松自如。只要简单地定义AutoWire方式。自动连线可以从原理图的任 何一点进行,不一定要从管脚到管脚。(2) 检查原理图电性能可靠性检查原理图电性能可靠性主要是查看程序运行的步骤是否正确,在某时刻程序运行所处的位置是否正确,是否能正确运行各个中断服务程序。打开LCD Controller.ddb 设计数据库,点取LCD Controller 文件夹下的LCD Cont roller.prj原理图设计窗口,Protel99可以帮助我们进行电气规则检查选择Tools下面 的ERC,在Rule Matrix种选择要进行电气检查的项目,设置好各项后,在Setup Ele ctrical Rlues Check对话框上选择OK即可运行电气规则检查,检查结果将被显示到 界面上。 Protel 99采用全新的管理方式,即数据库的管理方式。Protel 99 是在桌面环境下第一个以独特的设计管理和团队合作技术为核心的全方位的印制板设计系统。所有Protel99设计文件都被存储在唯一的综合设计数据库中,并显示在唯一的综合设计编辑窗口。Protel 99软件沿袭了Protel以前版本方便易学的特点,内部界面与Protel 98大体相同,新增加了一些功能模块。Protel公司引进了德国INCASES公司的先进技术,在Protel99中集成了信号完整性工具,精确的模型和板分析,帮助你在设计周期里利用信号完整性分析可获得一次性成功和消除盲目性。Protel99容易使用的特性就是新的“这是什么” 帮助。按下任何对话框右上角的小问号,然后选择你所要的信息。现在可以很快地看到 特性的功能,然后用到设计中,按下状态栏末端的按钮,使用自然语言帮助顾问。第五章 课程设计体会与总结本文所研究的粮仓温度控制系统系统由单片机、数字温度传感器、液晶显示模块、键盘设置模块和报警模块组成。该测温系统应用测温传感器DS18B20,通过DS18B20把温度值转换成数字量,把数字量送给单片机,并在液晶显示器上显示出来。通过键盘设置温度报警上下限,可以对系统状态进行监控。通过多个DS18B20并联在一起,可以解决粮仓内多点温度分布测量问题。该测温系统应用智能温度传感器DS18B20,大大减弱了传统模拟信号在传输过程中衰减、干扰问题的影晌。使测试系统具有更好的可靠性和精度。实现了一 种在非极端条件下(-50125)的温度测量方法。而且在硬件电路的设计上面更加简洁,不需要太多的外围电路,也降低了电路设计的要求。该系统存在着一些不足:一般环境的测量仪器完全可以采用数字式的传感器,DS18XX是一款非常优秀的数字式温度传感器,在测量速度要求不高的情况下,将来可以实现更多点的温度测量。而且系统需要结合机械结构设计,方便多个DS18B20的安装和更换。数字式传感器使用中最大的缺点就是软件复杂,所以需要更加优化通用软件包的代码,提高代码效率和可移植性,这也是将来的工作重点。如果说在过去四年里,我们的学习是一个知识的积累过程,那么现在的设计就是对过去所学知识的综合运用,是对理论进行深化和重新认识的时间活动。首先,学习能力得到了提高。在设计过程中,遇到许多困难,但通过书籍或网络查阅了很多相关文章和向导师请教后终于解决了。通过这次设计,我不仅对理论有了更深一步的认识,增强了和外界技术的沟通,还培养了自学能力和分析解决问题的能力,更重要的是,培养了克服困难的勇气和信心。其次,培养了自己的市场观念。一个商品是否能够抢占市场,除了必须的功能和质量要求外,其价格是最大的竞争优势。如何在保证质量和完成同等功能的情况下,把产品的成本降到最低并符合用户的实际使用习惯。是每个设计人员在作出方案时首要考虑的因素。设计产品时要联系实际,不能闭门造车,实际情况有时候和我们的理解差距很大!总之,我相信我会把自己的热情和所学奉献到自己的工作中,不断努力,不断进取!附录:1、参考资料1 沈德金, 陈粤初. MCS-51系列单片机接口电路与应用程序实例北京航空航天大学出版社,19902 胡汉才. 单片机原理及接口技术.清华大学出版社,19963 李志全等. 智能仪表设计原理及应用.国防工业出版社,1998.64 何立民. MCS-51系列单片机应用系统设计. 北京航空航天大学出版社, 19905 李建民. 单片机在温度控制系统中的应用.江汉大学学报,19966 张毅刚, 彭喜元, 姜守达, 乔立岩. 新编MCS-51系列单片机应用设计. 哈尔滨工业大学出版社, 20037 潘其光.常用测温仪表技术问答. 国防工业出版社, 19892、程序清单#include #define uchar unsigned char #define uint unsigned int #define comm 0 #define dat 1 #define lcddata P2 sbit e = P02; /input enable; sbit rw = P01; /H=read; L=write; sbit rs = P00; /H=data; L=command; sbit DQ=P33; sbit DQ1=P34; sbit DQ2=P35; sbit DQ3=P36; uchar tab1= . c . c . c . c ; uchar tab210=0123456789; uint dd=26; union uchar c2; uint x; temp; void delay10ms(void) unsigned char a,b; for(a=20;a0;a-) for(b=248;b0;b-); void delay(uint useconds) for(;useconds0;useconds-); uchar ow_reset0(void) uchar presene; DQ=0; delay(50); DQ=1; delay(3); presene= DQ; delay(25); return(presene); uchar read_byte0(void) uchar i; uchar value=0; for(i=8;i0;i-) value=1; DQ=0; DQ=1; delay(1); if( DQ)value|=0x80; delay(6); return(value); void write_byte0(uchar val) uchar i; for(i=8;i0;i-) DQ=0; DQ=val&0x01; delay(5); DQ=1; val=val/2; delay(5); uchar read_temperature0(void) ow_reset0(); write_byte0(0xcc); write_byte0(0xbe); temp.c1=read_byte0(); temp.c0=read_byte0(); delay(2); ow_reset0(); write_byte0(0xcc); write_byte0(0x44); return temp.x/2; / / / uchar ow_reset1(void) uchar presene; DQ1=0; delay(50); DQ1=1; delay(3); presene=DQ1; delay(25); return(presene); uchar read_byte1(void) uchar i; uchar value=0; for(i=8;i0;i-) value=1;DQ1=0; DQ1=1;delay(1);if(DQ1)value|=0x80;delay(6); return(value); void write_byte1(uchar val) uchar i; for(i=8;i0;i-) DQ1=0;DQ1=val&0x01;delay(5);DQ1=1;val=val/2; delay(5); uchar read_temperature1(void) ow_reset1(); write_byte1(0xcc); write_byte1(0xbe); temp.c1=read_byte1(); temp.c0=read_byte1(); delay(2); ow_reset1(); write_byte1(0xcc); write_byte1(0x44); return temp.x/2; / / / / / uchar ow_reset2(void) uchar presene; DQ2=0; delay(50); DQ2=1; delay(3); presene= DQ2; delay(25); return(presene); uchar read_byte2(void) uchar i; uchar value=0; for(i=8;i0;i-) value=1; DQ2=0; DQ2=1; delay(1); if( DQ2)value|=0x80;delay(6); return(value); void write_byte2(uchar val) uchar i; for(i=8;i0;i-) DQ2=0; DQ2=val&0x01;delay(5);DQ2=1;val=val/2; delay(5); uchar read_temperature2(void) ow_reset2(); write_byte2(0xcc); write_byte2(0xbe); temp.c1=read_byte2(); temp.c0=read_byte2(); delay(2); ow_reset2(); write_byte2(0xcc); write_byte2(0x44); return temp.x/2; / / /uchar ow_reset3(void) uchar presene; DQ3=0; delay(50); DQ3=1; delay(3); presene=DQ3; delay(25); return(presene); uchar read_byte3(void) uchar i; uchar value=0; for(i=8;i0;i-) value=1;DQ3=0;DQ3=1;delay(1); if(DQ3)value|=0x80;delay(6); return(value); void write_byte3(uchar val) uchar i; for(i=8;i0;i-) DQ3=0;DQ3=val&0x01; delay(5);DQ3=1;val=val/2; delay(5); uchar read_temperature3(void) o

温馨提示

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

评论

0/150

提交评论