《基于单片机的多点温度检测系统毕业设计说明.doc》由会员分享,可在线阅读,更多相关《基于单片机的多点温度检测系统毕业设计说明.doc(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于STC89C52单片机的多点温度检测系统设计摘 要随着社会进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度围要求严格,而目前市场上存在的温度检测仪器普遍都是单点测量,同时有温度信息传递不与时、精度不够的缺点,不利于工业控制者根据温度变化与时做出决定。在这样的形势下,开发一种可以同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。本文详细阐述了以单片机为核心的温度控制系统。它是利用热敏电阻采集温度信号,将阻值变化转换为电压信号,经放大电路放大、A/D转换后送到单片机中,并将与其设定温度限值比较,控制温度在一定围,从而构成了一个多路温度控制系统。最后针
2、对温度控制系统进行了Proteus实验仿真,通过对仿真的分析表明本文所述的基于单片机的多路温度采集系统的设计的合理性和有效性。关键词:单片机;温度显示;多路数据采集;热敏电阻49 / 54Based on the STC89C52 MCU multipoint temperature measurement system designAbstractAs the industry and the society developing, the temperature becomes more and more important and a lot of products are sensit
3、ive 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 great of troubles for the industry-controllers to make decision.
4、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 application, this paper talks about The Multiple-Points temperature Measurin
5、g System.In this paper, it detailed temperature control system with the core single chipmicrocomputer. It is a collection of temperature using temperature sensor signal, the signal into voltage signal amplification by the amplifier circuit, A/D conversion tothe signal chip and compared with the set
6、temperature. Finally, temperature control system for the experimental simulation, the analysis of simulation described in this article shows that the design of temperature control system based on Microcontroller is availability and rationality. Keywords: Microcontroller;Temperaturecontrol system;Dat
7、e Acquisition;Thermistor目 录摘要IAbstractII目 录III第一章绪论11.1 本课题研究意义11.2 本课题研究现状11.3 本课题设计任务与要求1第二章 Proteus仿真软件32.1 proteus 单片机仿真软件简介32.2 Proteus仿真过程说明4第三章系统总体方案设计73.1系统总体设计73.2方案原理说明83.3总体设计方案论证8第四章硬件电路的设计94.1 测温电路的设计94.1.1热敏电阻的选择94.1.2测温电路的方案论证104.2 A/D转化电路的设计124.2.1 方案论证124.2.2 ADC0809芯片的引脚功能134.2.3 A
8、DC0809与单片机的连接144.3 主控模块STC89C52154.3.1 STC89C52简介154.3.2单片时钟电路的设计164.3.3单片机复位电路设计164.4 扩展I/O接口芯片174.4.1方案论证174.4.2芯片引脚功能介绍174.4.3 8255A与单片机连接184.5显示电路的设计184.5.1方案论证与选择184.6 报警电路的设计194.7 按键控制电路的设计204.7.1方案论证与选择20第五章系统软件设计225.1 程序总体设计225.2 主程序流程图225.3温度检测子程序流程图235.4 温度显示子程序流程图245.5定时子程序流程图255.6 外部中断调节
9、温度限值子程序流程图265.7 外部中断选择查看子程序流程图275.8 求平均值子程序和BCD转换子程序流程图28第六章硬件电路调试和软件测试296.1 测温电路调试296.2主电路调试316.3 错误分析与解决方案36总结与展望37致38参考文献39附录40元件清单40热敏电阻温度/阻值表41程序清单42第一章 绪 论1.1 本课题研究意义单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并
10、且正在逐步取代现有的多片微机应用系统。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度围大,抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用围,也进一步促使单片机性能的发展。而现在的单片机在数据采集上也有了很多的应用。温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到得测量温度的工具是各种各样的温度计,例如:水银玻璃温度计、酒精温度计、热电偶或热电阻温度计等。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。利用单片机和温度传
11、感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。1.2 本课题研究现状随着科学技术的快速发展,特别是现代仪器的发展,微型化、集成化、数字化成为传感器发展的一个重要方向。基于单片机检测温度的传感元件也不断更新如:DALLAS公司生产的一种新型温度传感器DS18B20,其优点集温度测量、A/D转换于一体,极大的简化了整体电路,使得系统更加小型化、低功耗。NS 公司生产的LM35,是电压型集成温度传感器的典型代表。是今年以来最广泛运用的,它具有很高的工作精度和摄氏温度线性成比例且无需外部校准或微调。与传统的温度传感器相比,新型的集成温度传感器具有使用方便、线性
12、度好、精度高、体积小、反应快、校准方便等特点。因而被广泛应用于温度测量、 恒温控制、温度补偿等要求较高环境中。在温度传感器中使用得比较普遍的元件,除了集成温度传感器外,在汽车、家用电器等领域, 使用得最多的, 还是价格低廉、精度较高、可靠性好的NTC 热敏电阻器。特别是-50+300围, 在温度补偿、抑制浪涌电流、温度检测方面热敏有不可替代的作用。热敏电阻与单片机相结合即能弥补传统元件缺陷又能实现智能控制还具有很高的性价比,基于单片机的热敏电阻温度检测技术具有广阔应用前景和巨大经济价值。1.3 本课题设计任务与要求设计任务:本课题主要实现对多点温度进行测量并同时准确显示。整个系统由单片机STC
13、89C52控制,要能够接收传感器的数据并显示出来,从键盘输入命令,系统根据命令,选择执行相应的程序,并由驱动电路驱动LED显示温度。设计一种合理、可行的单片机监控方案,完成多点测量、显示和控制的任务,并编写软件程序,进行Proteus仿真。具体设计要求:以一定时间间隔对8个温度通道进行巡回采集,温度检测围0 99;可用键盘单独显示通道情况;数码管显示,同时显示通道号;对8个温度求平均值,并显示;键盘设置温度的上、下限值;具有超限报警功能;实现用Proteus的仿真;图1-1 课题设计框图第二章 Proteus仿真软件2.1 proteus 单片机仿真软件简介Proteus ISIS是英国Lab
14、center公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机与其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以与各种外围芯片。提供软件调试功能。在硬件仿真系
15、统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Kevil C51 uVision2等软件。支持大量的存储器和外围芯片。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,篇幅有限本文主要介绍基本的操作。其仿真界面如图2-1所示:图2-1 proteus仿真界面2.2 Proteus仿真过程说明选取元件,单击如图2-2的元件选取按钮“P”出现如图2-3的窗口。图2-2 选取元件库按钮在图2-3中选择所需的元件的关键字,元件选取可参考附录元件清单。图2-3 选
16、取元件放置元件,元件列表如图2-4,用鼠标选取元件放置在原理图编辑窗口。鼠标的右键可以选择放置虚拟仪器和对元件方向调整,按照原理图布线。图2-4 放置元件在编辑窗口添加仿真程序如图2-14,元件放置好,按照原理图开始连接。连接并检查无误后,选择单片机编程软件所生成的HEX文件添加到仿真软件里,操作如图2-5,在单片机上右击鼠标,点击“编辑属性”。图2-5 编辑单片机属性图 2-6 添加HEX文件在如图2-6的Program File里添加KEIL所生成的HEX文件,点击确定,完成了单片机所要执行的程序,同时在Clock Frequency一栏选择单片机晶振的频率为12MHz开始仿真,点击如图2
17、-1的仿真按钮,Proteus开始仿真。其结果如图2-7所示,显示通道3的温度为11。图2-7 仿真结果第三章 系统总体方案设计3.1系统总体设计方案一:利用锁存器,触发器扩展P0口图3-1系统总体设计框图一方案二:利用8255A扩展I/O口图3-2 系统总体设计框图二3.2方案原理说明方案一如图3-1所示,采用单片机的P0口连接ADC0809,P1口连接按键对单片机实时控制,用D数据锁存器74HC373将P0口的低三位值传送给A/D转换器的地址选择端口,同时用两个D 型触发器74HC273将P0口输出的值显示在LED上。为了不影响相互之间的工作,选用逻辑器件或非门和或门来控制P0口选择哪一个
18、器件进行读写操作。其工作原理以STC89C52单片机作为主控芯片,利用热敏电阻设计成测温电路。热敏电阻电压信号经放大电路进行放大处理后满足 A /D转换器的要求 ,然后在A/D转换程序控制下经 A /D转换器转换成数字信号。此信号送人单片机系统,将最后的测量结果送入 L E D数字显示模块显示温度数据。通过按键设定温度控制围。方案二如图3-2所示,利用8255A扩展单片机的I/O口,其工作原理大致与方案一一样,不同的是用P2口控制ADC0809,测温电路测得的电压值送至A/D转换电路,转换后的数字量送给8255A的A口,A口有输入锁存功能。单片机指针转向A口将数字量送入单片机片RAM。单片机的
19、指针转向B口和C口,将转换后的值在LED显示。3.3总体设计方案论证方案一采用锁存器和触发器扩展I/O口,通过逻辑器件选择相应的模块,是简单易行的方法,也是目前设计中主要考虑的方法主要存在以下方面的缺点:芯片种类多,更换复杂,且不易查找出错芯片。 由于芯片多所造成连线交叉,产生干扰信号。 逻辑器件增加程序的编译难度。 器件多不易于模块调试和出错检查。方案二主要是解决方案一所存在的问题。既解决芯片问题又使得接线清晰。同时预留单片机的I/O口,可以扩展系统的功能,方案二也是存在缺点的,如果系统实现的功能太简单,就存在浪费I/O资源。不能发挥单片机集成度高、功能强、速度快、体积小、功耗低、使用方便、
20、价格低廉等特点。通过以上方案论证,方案二是最佳选择。第四章 硬件电路的设计4.1 测温电路的设计4.1.1热敏电阻的选择 热敏电阻是利用半导体的阻值随温度变化这一特性而制成的,分为NTC(负温度系数Negative Temperature Coefficient)热敏电阻、PTC(正温度系数Positive Temperature Coefficient)热敏电阻两大类10。PTC热敏电阻的电阻值随着温度的升高而增大。PTC热敏电阻的制造材料是以BaTiO3或SrTiO3或PbTiO3为主要成分的烧结体,并掺入微量的Nb、Ta、Bi、Sb、Y、La等氧化物进行原子价控制而使之半导体化,常将这种
21、半导体化的BaTiO3等材料简称为半导(体)瓷;同时还添加增大其正电阻温度系数的Mn、Fe、Cu、Cr氧化物,采用一般瓷工艺成形、高温烧结而使钛酸铂等与其固溶体半导化,从而得到正温度特性的热敏电阻材料。PTC热敏电阻一般用于电冰箱压缩机起动电路、彩色显像管消磁电路、电动机过流过热保护电路、限流电路与恒温控制电路等10。NTC热敏电阻是指电阻值随温度上升而减小,具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体瓷,可制成具有负温度系数(NTC)的热敏电阻其电阻率和材料常数随材料成分比例、烧结气氛、烧结温
22、度和结构状态不同而变化现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系NTC热敏电阻材料NTC热敏电阻一般用于各种电子产品中作微功率测量、温度检测、温度补偿、温度控制等。所以选用NTC热敏电阻是本设计的最佳温度传感元件10。NTC热敏电阻的电阻值和温度变化的关系式为: (4-1):在温度 T ( K )时的 NTC 热敏电阻阻值。:在额定温度 TN ( K )时的 NTC 热敏电阻阻值。T:规定温度( K ) K=273.15+T 。 K:开尔文温度B:NTC 热敏电阻的材料常数,又叫热敏指数。Exp:以自然数 e 为底的指数( e = 2.71828 )。关系式(4-1)是经验公式,
23、只在额定温度 TN 或额定电阻阻值 RN 的有限围才具有一定的精确度,因为材料常数 B 本身也是温度 T 的函数。根据市场所供应的热敏电阻选用LT502/3470A,,工作温度-50125、稳定性好、良好的耐热循环能力、精确度达0.1,适合制作高精度的温度传感器。4.1.2测温电路的方案论证方案一:恒压式测温系统恒压式测温系统框图如图4-1所示,主要由恒压源、NTC热敏电阻测温电桥、差分放大电路1。图 4-1 恒压式测温系统框图输出端V2的电压为:(4-2)当RT发生变化时,输出电压为:(4-3)输出端V2的误差:(4-4)若则:(4-5)当=5% 时,误差=1.22%.差分放大电路的电压增益
24、为:(4-6)若,(是RT为0度值),V=5v。输出电压(4-7)方案二:恒流式测温系统恒流式测温系统框图如图4-2所示,主要由恒流源、NTC热敏电阻RT、取样电阻R、A/D转换电路构成。该测温系统工作原理除前段从热敏电阻取压方式和A/D转换器获取的基准电压方式不同,其他工作的原理一样1。图 4-2 恒流式测温系统框图NTC热敏电阻输出电压为:(4-8)经放大器输出的电压为:(4-9)取样电阻的输出电压为:(4-10)A/D转换器输出数字量Code公式为:(4-11)AIN为输入A/D转换器电压的模拟量。将式(4-9)和(4-10)代入式(4-11)中得,(4-12)由式4-12得知,由于采用
25、了恒压源I和取样电阻R为A/D转换器提供参考电压,与所测热敏电阻电压构成了比值测量系统,这样就消除了由于恒流飘逸给系统带来的误差,同时该系统选用了精密电阻R作为取样电阻,使整个系统的测量精度主要取决于A/D转换器的分辨率。该系统精度达0.011。方案论证:两种方案比较得知:恒流式测温系统由于需要很溜源提供恒定电流且使用了精密电阻,较恒压式测温系统成本更高。测温系统的要求温度精度为1,仪用放大器的输入端采用同相放大器,输入阻抗高,可以忽略阻的影响,其输出端采用差分输出,抑制共模信号,使得前向通路输出更稳定。所以选择方案一是可行的1。4.2 A/D转化电路的设计4.2.1 方案论证A/D转换器的种
26、类很多,就位数来说,可以分为8位、10位、12位和16位等。位数越高其分辨率就越高,价格也就越贵。A/D转换器型号很多,而其转换时间和转换误差也各不一样。方案一:采用逐渐逼近式A/D转换器:它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间,常用最典型的为ADC0809、AD1674。方案二:双积分式A/D转换器:它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统,常用最典型的为ADC-EK8B、ADC-EK10B。方案三:采用并行式A/D转换器:它又被称为flash(快速)型,它的转换数度很高,但它采用
27、了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域,常用有AD7846等。双积分型 AD 转换器若与逐次逼近型 AD 转换器相比较,因有积分器的存在,积分器的输出只对输入信号的平均值有所响应,所以,它突出优点是工作性能比较稳定且抗干扰能力强,由于逐次渐进式A/D转换器的转换时间多数在10s100s,而双积分式A/D转换器多数在10ms至数百毫秒之间,所以双积分式A/D转换器转换时间要多。鉴于上面三种方案,在价格、转换速度等多种标准考虑下,本次设计选用的是逐渐逼近式A/D转换器ADC0809。ADC0809是TI公司生产
28、的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。对于该八路通道输入信号,八位A/D转换器,其精度为:输入为05V时,分辨率为:其中: A/D转换器的满量程值 ADC的二进制位数量化误差为:上述ADC0809误差和分辨率满足多点温度测量的设计要求。4.2.2 ADC0809芯片的引脚功能图 4-3(a) ADC0809引脚图ADC0809各引脚功能如下:IN0IN7(Pin1Pin5,Pin26Pin28):8路模拟量输入端。ADD-A、ADD-B、ADD-C(Pin23Pin25):3位地址输入,3个
29、地址输入端的不同组合选择八路模拟量输入。ALE(Pin22):地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到部的地址锁存器。D0D7(Pin18Pin21,Pin13Pin15, Pin8):八位数据输出线,A/D转换结果由这8根线传送给单片机P0口。OE(Pin9):允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。OE为低电平时,表示正在转换。START(Pin6):启动信号输入端,START为正脉冲,其上升沿清除ADC0808的部的各寄存器,其下降沿启动A/D开始转换。EOC(Pin7):转换完成信号,输出,当EOC上升为高电平时,表明部A/D转换已完成
30、。CLK(Pin10):时钟输入信号端,ADC0809的时钟频率围在101200kHz,典型值为640kHz。引脚工作过程:当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存并译码,在START上升沿时所有的部寄存器清零,在下降沿时,开始进入A/D转换,此期间START应保持低电平。在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,在高电平时,表示转换结束,ADC0809的工作时序如下图 4-3(b)所示:图 4-3(b) ADC0809工作时序图4.2.3 ADC0809与单片机的连接图 4-4 ADC0809与单片机的连接示意图ADC0
31、809与51单片机的接口:利用8255A使得单片机P0口的工作得到了极大简化,ADC0809的启动主要用P2口来控制。ADC0809的模拟通道的地址线连接P2.0-P2.2 。ADC0809的启动信号START和ALE接P2.7。ADC0809的结束信号接 P3.0ADC0809的输出允许信号可以接在单片机P2.4上也可直接接高电平。由于ADC0809无片时钟,时钟信号时可由单片机的ALE信号经D触发器二分频后获得。ALE引脚得脉冲频率是8051时钟频率的1/6.该题目中单片机时钟频率采用6MHz,则ALE输出的频率是1MHz,二分频后为500KHz,符合ADC0809频率的要求。4.3 主控
32、模块STC89C524.3.1 STC89C52简介本次设计采用的主控芯片是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机。如图 4-5:图4-5 STC89C52芯片引脚图STC89C52引脚具体介绍如下:主电源引脚(2根)VCC(Pin40):电源输入,接5V电源。GND(Pin20):接地线。外接晶振引脚(2根)XTAL1(Pin19):片振荡电路的输入端。XTAL2(Pin18):片振荡电路的输出端。控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信
33、号。PSEN(Pin29):外部存储器读选通信号。EA/VPP(Pin31):程序存储器的外部选择,接低电平时从外部程序存储器读指令,如果接高电平则从部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7,与8255A的D0D7口相连,作为数据传送端口,选择A口时读ADC0809的数字量,选择B、C口时输出温度值。P1口(Pin1Pin8): 8位准双向I/O口线,名称为P1.0P1.7,作为控制端,低3位控
34、制报警器和灯,P1.7为中断入口,P1.3P1.6可上下调节温度限值。P2口(Pin21Pin28):8位准双向I/O口线,名称为P2.0P2.7,作为控制端,低3位选择ADC0809的模拟通道的入口地址。P2.5,P2.6与8255A的地址线A0、A1相连控制选择A、B、C口。P2.8控制8255A芯片选择和ADC0809的启动和数据锁存。P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7,P3.1判断ADC0809是否转换结束,P3.2、P3.3中断入口,P3.6、P3.7与8255A的RD、WR相连。控制对8255A的读和写功能。4.3.2单片时钟电路的设计ST
35、C89C52单片机部没有振荡电路,需要外加振荡器提供标准时钟,单片机的时钟产生方式有两种,分别为:部时钟方式和外部时钟方式。在STC89C51单片机一般常用部时钟方式,就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激振荡器。晶体和电容决定了单片机的工作时间精度为1微秒。晶体可在1.2-12MHz之间选择。STC898C51单片机在通常应用情况下,使用振荡频率为6MHZ的石英晶体,而12MHZ频率的晶体主要是在高速串行通信情况下才使用,在这里使用的是6MHZ石英晶体。电容C1和C2可在20-100PF之间取值,一般情况取30PF。外部时钟方式是把外部振荡信号源直接接入XTAL1
36、或XTAL2。由于XTAL2逻辑电平不是TTL的,所以还要接一个上拉电阻。其原理图如图4-6(b)。图4-6 振荡器设计电路4.3.3单片机复位电路设计复位操作有上电自动复位、按键电平复位和外部脉冲复位三种。上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图4-7(a)所示。只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位。按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图4-7(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如图4-7(c)所示2:(a)上电复位 (b)按键电平复位 (c)按键脉冲复位图4-7 复位电路本系统的
37、复位电路采用图4-7(b)上电复位方式。4.4 扩展I/O接口芯片单片机有4个并行I/O口,但在实际的使用中单片机的I/O口不能完全满足设计要求,可以简单地通过锁存器或触发器扩展I/O口,也可以使用专门为单片机开发的I/O接口芯片,如8255A,8155等。如图4-8,图4-9所示。使用专用芯片,操作简单,扩展口多。图4-8 8255A 引脚图 图4-9 8155引脚图4.4.1方案论证8255A具有3个8位并行I/O口,其部集成锁存、缓冲与与CPU联络的控制逻辑,通用性强、可通过对其编程实现不同的功能,8155芯片包含256个静态RAM,2个8位,1个6位的可编程并行I/O口,和14位定时计
38、数器。比较两种芯片,8155芯片比8255A芯片实现的功能要多,但本系统只需要扩展3个8位并行I/O口满足LED显示器,对扩展芯片的要求简单。所以8255A是最佳选择。4.4.2芯片引脚功能介绍D0D7:数据线,三台双向8位缓冲区。RESET:复位信号,输入高电平有效。复位后控制寄存器清零,A,B,C口均为输入。:片选端,输入,低电平有效。A1,A0:地址线,0 0 为A口,0 1 为B口,1 0为C口,1 1为控制寄存器。:读控制线,输入,低电平有效,有效时,允许CPU通过8255AD0D7读数据。:写控制线,输入,低电平有效,允许CPU将数据或控制字写入8255A。PA0PA7:端口A的输
39、入输出线。PB0PB7:端口B的输入输出线。PC0PC7:端口C的输入输出线。 4.4.3 8255A与单片机连接单片机的P0口连接8255A的D0D7。单片机的P2.5P2.6与8255A的地址线A0,A1相连。P2.7连接8255A的。单片机的,RES分别连接8255A的,RESET端口。4.5显示电路的设计显示电路需使用4个LED数码管来显示数据, LED数码显示器成本低廉, 使用寿命长, 配置灵活, 与单片微机接口方便。 从译码驱动方式看, LED显示驱动电路有并行译码方式、 串行译码方式、 专用译码驱动。从显示方式来看有静态显示和动态显示4。所以要选择哪一种方式要切合实际生产生活的需
40、要。本系统采用8255A扩展单片机的I/O口,I/O满足显示电路的设计要求,所以采取并行译码方式。以下就不同显示方式提出方案论证。 4.5.1方案论证与选择方案一:并行驱动动态显示图4-10 并行驱动七段共阴红色数码管动态显方案二:并行驱动BCD数码管静态显示图4-11 并行驱动BCD数码管静态显示方案一如图4-10,采用四个七段共阴极红色数码管。此数码管比单个七段数码管所占用I/O数目要少的多。8255A的PB0PB7控制数码管的段,PC0PC3控制LED数码管位的选择。方案二如图4-11所示,采用BCD数码管8255A的PB、PC口各控制两个数码管。采用静态显示方式,较小的电流即可获得较高
41、的亮度,且占用CPU时间少,编程简单,但由于每位LED显示器均要配置一个并行输出口,占用了较多的I/O口资源,硬件成本高,故在显示位数较少时采用。采用动态显示方式比较节省I/O口,精简电路也比较简单,但其亮度不如静态显示方式,而且早显示位数较多时,CPU要依次扫描,占用CPU较多的时间。所以动态显示的实质是以牺牲CPU时间来换取硬件的较少。本设计兼顾软件设计的难度度和本次选用的数码管较少的缘故选择方案二。4.6 报警电路的设计单片机除了对多点温度的实时显示还要对温度进行判断,这样才能实现智能化的控制。本设计采用如下报警方案:当温度高于设定围则红灯亮、扬声器响提示温度过高,当温度低于设定值时蓝灯
42、亮、扬声器响提示温度过低。温度在控制围,灯不亮、扬声器保持静默。图 4-12 报警电路4.7 按键控制电路的设计4.7.1方案论证与选择方案一:矩阵式键盘图4-13 矩阵式键盘方案二:独立式键盘图4-14 独立式键盘键盘分编码键盘和非编码键盘,编码键盘适用于PC机,以上方案为适用于单片机的非编码键盘,有独立式和矩阵式两种如图4-13和图4-14所示。独立式键盘连接简单,但占用I/O口多,适用于按键较少的电路。矩阵键盘占用I/O口少,且按键多满足电路多功能要求。本设计中要用到的按键数为8个,如果P1口使用矩阵键盘会加大软件难度,外部中断难实现。兼顾设计中要使用中断和复位不可能都在矩阵键盘上完成。
43、所以采取方案二。第五章 系统软件设计5.1 程序总体设计本系统软件要现每隔一段时间(5秒),对8路温度信号循环检测并显示,显示采用8路温度循环显示的方式。温度正常时用红色LED显示温度值,绿色LED显示通道。温度异常时,红色LED显示“AA”或“BB”代表温度低于下限值或高于上限值。同时用绿色LED显示通道并报警。按键电路可以设置温度的控制围,进入调节时温度的上限值用红色LED显示,温度的下限值用蓝色LED显示。每个通道的温度可通过按键进行单独查看。对8路温度求平均值且保留两位小数,最后显示,红色LED代表整数,绿色LED代表小数。系统采用模块化程序设计方法,将一个复杂的应用程序分成若干个具有
44、明确任务的程序模块,对每个模块单独设计,编程和调试。然后组合起来为一个完整的程序。5.2 主程序流程图主程序对数据进行初始化,包括温度限值初始化、8255A初始化、堆栈指针初始化、报警电路的初始化、键盘控制电路的初始化。然后调用各个子程序完成温度的检测和显示。采用循环的方式运行。如图5-1:图5-1 主程序流程图5.3温度检测子程序流程图温度检测子程序如图5-2所示,首先要将指针指向8255A的A口,ADCO809的启动采用P2.7口产生一个正脉冲信号,脉冲的上升沿将部的寄存器全部清零,在其下降沿开始转换。图5-2 温度检测子程序流程图5.4 温度显示子程序流程图温度显示子程序显示前对温度进行
45、判断,如果温度正常,则显示温度和通道,如果温度小于温度围显示“AA”,温度大于温度围显示“BB”,同时显示异常通道并报警。流程图如下图5-3所示:图5-3 显示子程序流程图5.5定时子程序流程图本系统软件要求有3个定时子程序,定时时间分别为:5S、1S、20ms。所以一个定时子程序难以满足系统要求,采用两种定时方法,单片机部定时器T0/T1,指令周期循环。单片机部定时器最大定时时间要根据单片机的晶振频率大小,采用6M晶振一次定时最多为131ms,12M晶振最多定时65ms。指令周期也与单片机采用的晶振有关,采用6M晶振的指令周期为28us,采用12M晶振的指令周期为14us。所以达到所要求的时
46、间还要对以上的方法进行一定次数的循环。5S、1S采用定时器T0如图5-4,20ms采用指令循环如图5-5。 图5-4 定时器流程图 图5-5 指令循环流程图5.6 外部中断调节温度限值子程序流程图外部中断0是对温度上下限值进行设定,当外部中断响应,转中断服务程序开始对外部键盘进行扫描。当有按键按下,延时一段时间去抖动后执行相应程序。执行时要对限值进行判断是否能够继续执行加一或减一指令。如果不能则显示“EE”代表不能再进行相应操作转入等待,如果可以则执行相应操作,显示并延时一段时间后,继续判断按键是否按下和是否退出中断程序。流程图如图5-6所示:图5-6 按键设定限值流程图5.7 外部中断选择查看子程序流程图系统要求对八路温度循环显示,由于LED显示器暂停时间短、不可随意查看,造成记录数据不便,当温度超过限度值时就对数据不可读,不能与时知晓温度值。外部中断1可以随时查看当前温度,方便数据记录和显示查看温度。图5-7 外部中断