




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 概述11.1 目前温度监控系统的发展现状11.2 课题研究的目的和意义21.3 课题设计任务32 开发环境简介42.1硬件设计环境42.1.1如何进行原理图设计42.1.2 pcb设计62.2 软件设计环境63系统方案设计93.1 温度控制系统的要求93.2 控制方案的确定93.3 硬件和软件功能划分103.3.1 硬件系统组成103.3.2 软件功能103.4 系统结构框图104 系统硬件设计124.1处理器的选择和主机系统设计124.1.1主机系统设计124.1.2 采用总线一线连接方式134.1.3引脚说明144.1.4 cpu154.2 输入通道设计154.3温度显示电路设计204.3.1 温度显示电路204.3.2 本系统8255的工作方式和控制字244.4 报警电路设计255 系统软件设计275.1软件设计的要求275.2 软件总体设计275.2.1 程序结构设计275.2.2程序模块划分275.3 各模块程序设计285.3.1 主程序285.3.2 定时中断0服务程序315.3.3定时中断1服务程序325.3.4 显示子程序345.3.5温度巡回检测程序365.3.6蜂鸣器启动子程序406 总结41致谢43参考文献441 绪论1.1 温度监控系统的发展现状温度的感知是很常见的事,也有很多种办法,比如,试水温时,手放入水中,觉得很凉时,表示在体温以下,觉得太热时,表示在体温以上。但这都是人体的直接感知,不便于用来处理和监控,应用传感器来感知温度,标志着温度控制的发展已经进入了一个新的时代。目前而言,温度监控已经由单一的人力读表控制迈向了运用单片机、各种传感器等器件所组成的智能监控系统时代,大量节省了人力、物力、财力。另外在一些人类无法接触到的地方,或者对温度要求极高的地方,单一的人为控制,已经不能适应实际的要求。而以单片机为主要部分,组成的智能监控系统适应了时代的需要,在国民经济各部门发挥着重要的作用。新的监控系统层出不穷,有在线红外温度连续监控系统、多点多段温度监控系统、热网温度监控系统等等。如在线红外温度连续监控系统,它就是将非接触无源高精度红外温度传感器irt/c安装在接电设备内部。 如变电站开关柜,配电柜和变压器等,通过完善的硬件系统和软件系统可以完成在线连续的实时温升检测,达到温度连续监控。可以说,这些温度监控系统的功能非常强大,它们的出现满足了生产和生活的需要。但是也存在一些不尽如人意的地方,例如:体积大、功耗高,在一些场合中造成了浪费。多路温度监控是近年来极受欢迎的技术,应用极为广泛。在日常生活中多路温度监控系统已用于包装电冰箱、空调、电炊具、电暖器等电加热、电致冷类家电产品,也用于汽车、火车、轮船、飞机驾驶室,候车厅,宾馆,病房,实验室等对温度有一定要求的室内温度控制和显示;在农业方面可以用温度监控系统控制花期及植物的成熟期,植物栽培、育种试验的专用恒温设备,尤其在粮仓库区粮堆温度分布的应用方面显得更为重要;在工业方面石油化工、食品酿造、冶金、橡塑注塑机料筒温度控制、机械车轴温度控制,奔跑的列车的轴承温度监控、柴油机燃油温度控制、电镀生产线温度控制,实际工程防止裂缝温度控制、对冻土层不同深度进行监控,合成树脂、电子部件和精密仪器的耐寒的检测及航空、航天等都离不开温度监控。1.2 课题的目的和意义系统有实时、快速的外部响应,能讯速采集到大量数据,做出逻辑与推理后实现对被控制对象的参数调整与控制,又由于其体积小、速度快、功耗低、性能可靠等特点,因此在工业生产、科技教育以及日常生活等诸多领域,得到了广泛应用,使经典电子系统讯速进化为全盘智能化的现代电子系统。而过程控制是对生产过程中各种工艺参数实施的控制,这是单片机控制系统的重要就用领域,温度监控系统是最常见的过程控制系统,温控系统在大量工农业应用环境中发挥作用,实际上有很多应用环境对温度监测对象的监测、控制要求雷同,这样就造成大量的重复开发,而且传统的温控办法费时费力,精度差,白白浪费人力物力及宝贵的时间。因此设计一个价格低廉、通用性较强的可编程温度控制器就成了当务之急,随着新技术的不断开发与应用,近年来,单片机发展十分迅速,为了满足多种多样检测控制对象的要求,构成各种专用控制器,单片机发展了各种传感器接口、工业对象的电气接口伺服驱动的功率接口、人机对话接口、中断处理、模/数、数/模转换的速度和精度、位操作能力、功率驱动能力、程序运行监控能力和信号实时处理能力,上述性能的出现使得温度的采集和处理能够得到很好的解决,选用好的单片机和温度传感器,前端处理电路可以精确的采集数据,后端进行实时的处理,并能实时的进行监控,使温度监控成为一种智能化的实时控制。1.3 课题设计任务 系统采用微机检测系统对八路温度进行巡回检测并实时显示温度,每隔15s检测一路,每一路连续检测4次,温度检测由温度传感器转换成电信号,再经过放大到合适的幅度送a/d转换器转换成数字量,取其平均值经标度变换转为bcd码后送led显示,同时检测温度是否超出要求温度范围(温度范围045 c),当不能保证所要求温度范围时,发出声光报警信号。具体的实际内容包括:1、 单片机的主机系统及硬件接口设计。2、 温度测量电路,包括传感器、放大器、a/d转换及接口。3、 led显示器硬件设计及软件设计。4、 单片机检测系统中数据巡检、a/d转换、数字滤波、标度变换等程序的设计和调试方法。5、 protel进行原理图设计及印制电路板设计。6、 能根据原理图连接线路并进行调试。2 开发环境简介2.1硬件设计环境 硬件的设计在整个设计过程中起着关键性的作用,在这个系统的设计过程中,电路原理图的绘制、pld的设计、pcb的设计,我都是利用protel99软件设计和制作的,protel99采用全新的管理方式,即数据库的管理方式。protel99 是在桌面环境下第一个以独特的设计管理和团队合作技术为核心的全方位的印制板设计系统。所有protel99设计文件都被存储在唯一的综合设计数据库中,并显示在唯一的综合设计编辑窗口1。protel99软件沿袭了protel以前版本方便易学的特点,内部界面与protel98大体相同,新增加了一些功能模块。protel公司引进了德国incases公司的先进技术,在protel99中集成了信号完整性工具,精确的模型和样板分析,帮助你在设计周期里利用信号完整性分析可获得一次性成功和消除盲目性。protel99容易使用的特性就是新的“这是什么” 帮助。按下任何对话框右上角的小问号,然后选择你所要的信息。现在可以很快地看到 特性的功能,然后用到设计中,按下状态栏末端的按钮,使用自然语言帮助顾问。2.1.1如何进行原理图设计(1)新建设计数据库文件在windows 95/98或nt界面下双击protel 99 图标,点击file(文件)中new项,新建设计 数据库。 在browse选项中选取需要存储的文件夹,然后点击ok即可建立自己的设计数据库。(a)设计组(design team) 可以先在design team 中设定设计小组成员,protel 99可在一个设计组中进行协同 设计,所有设计数据库和设计组特性都由设计组控制。定义组成员和设置他们的访问权 限都在设计管理器中进行,确定其网络类型和网络专家独立性不需要求助于网络管理员 。(b)回收站( recycle bin)相当于windows 中的回收站,所有在设计数据库中删除的文件,均保存在回收站中,可 以找回由于误造作而删除的文件(c)设计管理器(documents) 所有protel99设计文件都被储存在唯一的综合设计数据库中,并显示在唯一的综合设计 编辑窗口。在protel99中与设计的接口叫设计管理器。使用设计管理器,可以进行对设计文件的管理编辑、设置设计组的访问权限和监视对设计文件的访问。 组织设计文件:过去组织和管理40个或更多的原理图、pcb、gerber、drill、bom和drc文件,要花费几天的时间,而protel99把设计文件全部储存在唯一的设计数据库。(2)打开和管理设计数据库(3)观看多个设计文档(4)多图纸设计(5)原理图连线设计(6)检查原理图电性能可靠性(7)同步设计:在protel99中使得原理图与pcb同步是容易的。protel99包含一个强大的设计同步工具, 使得非常容易地在原理图和pcb之间转移设计信息。同步设计是更新目标文件的过程,它基于参考文件中上一次的设计信息。当你执行同步时,通过以下选择告诉它要转换的方向:从原理图到pcb的更新;从pcb到原理图的更新;同步设计执行设计信息的初始化转移,还有正向和反向标注处理、替换创建的网络表-加载网络表顺序、反向标注-在pcb设计中习惯使用的重标注顺序。(8)建立材料清单。(9)原理图仿真。(10)在原理图上标注汉字或使用国标标题栏。(11)生成网络表:当我们设计好原理图,在进行了erc电气规则检查正确无误后,就要生成网络表,为pcb布线 做准备。网络表生成非常容易,只要在design下选取create netlist对话框,设置为 那种格式的网络表。网络表生成后,就可以进行pcb设计了。2.1.2 pcb设计具体步骤如下:(1)板框导航。(2)建立pcb文件。(3)布局设计。(4)布线设计。(5)电气规则检查。(6)信号完整性分析。(7)建立新的pcb器件封装。(8)生成gerber文件。2.2 软件设计环境软件是系统的灵魂,没有软件的支持,所设计的电路就不能按我们设计好的思路工作。因此,编制一段好的程序对系统的运行效果有着至关重要的作用,它直接影响系统的运行速度和工作的效率。在公司,里我和同事采用的单片机开发系统软件,是由上海航虹高科技有限公司提供的aedk51w单片机开发软件。aedk51w单片机开发系统(也称为aedk51w仿真机)是新一代单片机开发与实验系统。它由51w仿真器和exp51实验板两部分组成,整机采用模块化设计,外围芯片丰富,功能完善,可进行mcs51系列单片微机系统开发和实验。exp51实验板自带cpu和监控,具有独立运行和仿真功能。aedk51w仿真器的主要性能特点是:(1)全空间仿真和仿真ram出借,直接对带有rom的芯片(如8751,8752,89c51,89c52,89c1051,89c2051,w77e58,w78e58,ds87c520等)仿真,所有功能一箱化设计,仿真开发功能较强切价格低廉,是mcs-51系列单片微机开发的良好工具。(2)可仿真mcs-51/320系列单片机(包括rom/eprom型如8751,8762,80c552,89c51,89c52,89c1051,89c2051,w77e58,w78e58,de87c520等),可仿真intel/philips/atmel/dallas/winbond等51/320系列的单片机。(3)采用专用仿真cpu的双cpu仿真机。(4)全空间仿真:程序空间0ffffh,数据空间0ffffh全空间都可仿真。全空间仿真ram出借:0ffffh,能满足一般用户系统开发和教学实验的需要。(5)采用64k全空间硬件断点。单步使用仿真cpu提供的专用断点技术,而不使用外部中断。某些仿真机使用外部中断执行单步,虽称不占用,实际延长用户中断响应时间。(6)具有夭折处理功能,即执行用户程序后,按暂停热键能保存用户现场后返回监控,帮助查找程序走飞,死循环的原因。(7)采用零地址仿真,即程序起始地址0000h和中断入口地址都由用户使用,使之一次性仿真,脱机无须更改程序。(8)所有单片机资源向用户开放,即使reset引脚也对用户开放,便于调试含看门狗的用户系统。(9)支持高速cpu的仿真,普通型的可支持到16mhz,高速型的可支持到40mhz(51)/25mhz(320)。(10)有操作与aedk系列其他机型兼容,便于用户更新使用aedk系列中的高档机。可以使用菜单窗口的lca51源语句级调试汇编、c51、pl/m51程序,使单片机真正实用高级语言及支持高级语言教学。(11)仿真头有故障隔离措施,用户系统硬件故障不影响仿真器工作,可调试用户系统硬件。(12)可联ibm pc及其兼容机,可使用编辑、汇编、pl/m51、c51及嵌入式定点浮点运算库等软件。(13)支持符号化调试。可对欲移植的程序反汇编后自动加上标号形成汇编文件,帮助用户仿制,修改样机。(14)上采用高速串口,自动检测适配波特率(2400115200)。不占用仿真cpu串口,支持单片机串口与系统机连接调试串口通讯程序。(15)箱化设计,封闭式机箱,可靠性高。(16)供电要求:工作电源直流+5v,开关机瞬间及正常工作时电源毛刺必须小于0.8v。+5v工作电流小于400ma。(17)外型尺寸:约19112727(毫米)(18)重量小于350克。(含仿真头)3系统的总体分析和设计3.1 温度控制系统的要求整个系统所包含的内容主要有以下几个部分,每个部分的要求具体如下:(1)温度测量:要有温度测量电路,被测量为模拟量,要求微机具有相应的数据采集通道,每个通道能够对不同的数据进行采集和记录。微机能够准确迅速的采集到数据信号,为数据转化和处理做准备。 (2)模数转换:要有模数转换装置,转化电路,将温度测量电路采集到的温度模拟量准确无误的转化为数字量,为下一步的进行做好准备(3)温度显示:按设计要求和实际要求,实时的、准确的显示各路通道号及其温度值。(4)报警:要有报警装置,当温度超过要求的范围时,迅速发出声报警信号。3.2 控制方案的确定(1)系统要求:设计单片机检测系统,每隔15s巡回检测一次,并检测是否超过要求温度范围,如超过温度范围给出声报警信号。(2)确定输入通道结构和选择检测元件:本系统为8路巡检,输入通道需由a/d转换器和多种模拟开关组成,现采用a/d的结构。由于检测精度不高,因此可以选择通用廉价的8位a/d转换器adc0809。该芯片总的非调整误差为1lsb,相对值为0.39%,加上其量化误差以及测量电路的误差,能满足检测误差1%r 要求。(3)15s定时的实现方法:采用硬件和软件相结合的方法。设t0为定时方式1,定时15s中断方式。在中断服务程序中设置一记数器,初值为150(96h),每次减1,减到零时就实现了定时15s。在主程序中,即设置为每隔15s调用温度检测子程序 ,实现15秒定时。(4)2s定时的实现方法:采用硬件和软件相结合的方法。设t0为定时方式1,定时15s中断方式。在中断服务程序中设置一记数器,初值为20(14h),每次减1,减到零时就实现了定时2s。3.3 硬件和软件功能划分3.3.1 硬件系统组成硬件系统主要的作用包括:采集模拟温度量、进行模拟数字转变2、对温度进行显示或报警。因此硬件系统主要由三个部分的电路组成:(1)温度测量电路,包括传感器、放大器、a/d转换及接口。(2)温度显示电路(3)报警电路。3.3.2 软件功能(1)温度检测,包括定时采样和软件滤波。(2)定时器实现15s定时,以满足温度检测的要求。(3)定时器实现2s定时,以满足显示温度显示的需要。(4)显示温度。(5)输出报警信息。3.4 系统结构框图根据应用系统的要求及软硬件功能的划分,确定应用系统硬件结构和软件部分结构。用单片机作为系统的核心,传感器用来采集温度模拟信号3,单片机再对采集到的温度模拟信号进行模数转换,将在控制温度内的信号显示在led显示器上,将超出温度范围的温度信号,报警装置将做连续30秒的报警。如图3.1所示。微机温度检测 传感器报 警温度显示数据采集图3.1 系统结构框图4 系统硬件设计4.1处理器的选择和主机系统设计4.1.1主机系统设计图4.1 主机系统如图4.1所示,根据本系统对控制精度和控制功能的要求,选择mcs-51系列的单片机中的89c51作为cpu。采用内部方式在xtal1和xtal2引脚上接定时元器件构成自激振荡电路,将外接石英晶体和微调电容与89c51片内的振荡器定时反馈回路连接,石英晶振起振后,片内的振荡器电路按相同频率自激振荡4,在xtal2线上输出一个正弦波,电容器主要起频率微调作用5。为了系统可靠的工作,cpu应在系统所有芯片都已初始化后再开始对芯片的读写。因此,硬件电路应保证所有外围器件复位之后,单片机才最后复位,采用上电复位与外部复位相结合的复位方试对外部扩展接口电路复位,从而满足系统的同步复位。4.1.2 采用总线一线连接方式系统采用的89c51组成框图如图4.2所示,各功能部件由内部总线联接在一起。频率基准源记数脉冲 振荡器及定时电路程序存储器数据存储器2个16位定时器/计数器64k字节总线扩展空间 可编程 串行口 可编程i/o cpu中 断控 制 并行i/o口串行输入串行输出图4.2 89c51单片机组成框图其内部包含下列一些部件:(1)一个8位cpu。(2)一个片内振荡器及时钟电路。(3)rom程序存储器。(4)ram数据存储器。(5)两个16位定时器/计数器。(6)可寻址64k外部数据存储器和64k外部程序存储器空间的控制电路。(7)32条可编程的i/o口线(4个8位并行i/o端口)6。(8)一个可编程全双工串行口。(9)具有5个中断源、2个优先级的中断结构。4.1.3引脚说明用hmos工艺制造的89c51单片机采用双列直插式40脚封装,这40脚大至可分为:电源;时钟;i/o口;数据总线;地址总线和控制总线等几部分.它们的功能简述如下:(1)电源vcc(引脚号40)芯片电源,接5v。vss(引脚号20)电源接地端。(2)时钟xtal1(引脚号19)内部振荡电路反相放大器的输入端,是外接晶体的一个引脚, xtal2(引脚号18)内部振荡器的反相放大器输出端,是外接晶体的另一端。(3)控制总线ale/(引脚号30)正常操作时为ale功能(允许地址锁存),用来把地址的低字节锁存到外部锁存器。ale引脚以不变的频率(振荡器频率的1/6)周期性地发出正脉冲信号。因此,它可用作对外输出的时钟信号或用于定时。但要注意,每当访问外部数据存储器时,将跳过一个ale脉冲。ale端可以驱动(吸收或输出电流)8个lsttl电路。(4)i/o线p0口(引脚号3239)单片机的双向数据总线和低8位地址总线。在访问外部存储器进分时操作,p0.0、p0.1、p0.2先用作地址总线,检测输入通道的地址,在ale信号的下降沿,地址被锁存,然后用作为数据总线。p2.6(引脚号27)连接8255的片选端,用于选通8255,并与a1、a2决定8255各端口的地址。p2.0(引脚号21)连接报警电路,当为高电平时,启动报警电路,发出声报警信号。(引脚号13)连接adc0809的eoc,根据eoc的信号执行中断。4.1.4 cpucpu是整个系统的灵魂,协调控制整个系统的运行。可以分为运算器和控制器两部分。运算器功能部件包括算术逻辑运算部件alu、累加器a、寄存器b、暂存器tr、程序计数器pc、程序状态字寄存器psw、堆栈指针sp、数据指针寄存器dptr以及布尔处理器等。控制器功能部件包括指令寄存器、指令译码器、定时控制逻辑电路等。cpu性能的好坏直接影响计算机的运行速度暂无4.2 输入通道设计系统的输入通道根据系统要求,主要包括温度传感器、放大器和a/d转换器三部分。(如图4.3所示)图4.3 输入通道电路图系统的温度检测范围属于低温,适用于低温的检测元件有热电偶、热敏电阻、集成温度传感器等7。这里采用集成温度传感器ad590。这种传感器是一个双端元件,其工作温度范围为-55+150,要求工作电源为直流+4+30v。它能把温度信号变为与绝对温度成比例的电流信号,比例因子为1ua/k。其稳定性高,线性度好,测温误差有1、0. 和0.3几种等级。ad590本身产生的是电流信号,通过运算放大器op07对电流作加法运算,在运放输出端可得到合适的电压信号,作为a/d转换器的输入。电阻r1、r2和电位器rp1、rp2的选择原则是使运放输出电压与被测温度有一个合适的对应关系。系统中的a/d转换器采用adc0809。adc0809是8通道、8位逐次逼近式a/d转换器,其性能指标良好,应用十分广泛。adc0809的结构和转换原理如图4.4所示。adc0809由三部分组成:8路模拟量选通开关、8位a/d转换器和三态输出数据锁存器。adc0809允许8路模拟信号输入,由8路模拟开关选通其中一路信号。模拟开关受通道地址锁存和译码电路控制。当地址锁存信号ale有效时,3位地址码cba进入地址锁存器,经译码后使8路模拟开关选通某一路信号。8位a/d转换器为逐次逼近式,由256r电阻分压器、树状模拟开关、电压比较器、逐次逼近寄存器、逻辑控制和定时电路组成。其基本工作原理是采用对分搜索方法逐次比较,找出最逼近于输入模拟量的数字量。8路模拟量开关通道地址锁存与译码三态输出数据锁存器逻辑控制和定时电路逐次逼近寄存器sar树状模拟开关阵译码器256r电阻分压器a图4.4 adc0809的结构框图startcolck启动时钟vref(-)输出有效vcc gnd vref(+)8路模拟信号输入3位地址码输入地址锁存有效ale位数据输出控制eoc8位a/d转换器电压比较器 转换结束电阻分压器需外接正负基准电源vref(+)和vref(-)。clock端外接时钟信号。a/d转换器的启动由start信号控制。转换结束时控制电路将数字量送入三态输出锁存器锁存,并产生转换结束信号eoc。三态输出锁存器用来保存a/d转换结果,当输出允许信号oe有效时,打开三态门,输出a/d转换结果。(因输出三态门,便于与微机总结连接)电路中信号连接情况说明如下:(1)输出数据线的连接:adc08089的输出部分有三态锁存器,因此其输出数据线能直接与89c51的数据线相连。(2)控制信号的连接:图中将a/d转换器作为89c51的一个扩展i/o口,用高位地址线p2.7(结合或)经二输入或非门驱动后选通芯片。模拟输入通道地址的译码输入信号a、b、c,由低位地址线p0.0p0.2经过锁存器后提供。启动信号start由p2.7结合经或非逻辑驱动后提供。ale直接与start相连。当89c51执行外部ram写操作时,就能启动a/d转换。转换结束信号eoc接到89c51的,当转换结束eoc变高时,用来申请中断。输出允许信号oe由p2.7结合经或非逻辑驱动后提供,当89c51执行外部ram读操作时,就能读取a/d转换结果。(3)时钟的连接:这个电路中,a/d的时钟信号clock借用89c51的ale,clock由ale经二分频后提供,ale的频率为单片机时钟频率的1/6,即2mhz,经分频处理后为1mhz。adc0809引脚图如图4.5所示:1 282 273 264 255 246 237 228 219 2010 1911 1812 1713 1614 15in3in4in5in6in7starteocd3oeclkvccvef(+) gndd1in2in1in0addaaddbaddcaled7d6d5d4d0vref(-)d2图4.5 adc0809的引脚图 各引脚功能说明如下: in0in78路模拟信号输入端。ale地址锁存器允许信号输入端。当它为高电平时,地址信号进入地址锁存器中。clock外部时钟输入端。由ale经分频后提供为1mhzstarta/d转换信号输入端。有效信号为一正脉冲。在脉冲上升沿,a/d转换器内部寄存器均被清零,在其下降沿开始a/d转换。eoca/d转换结束信号。在start信号上升沿之后0(2us+8个时钟周期)时间内,eoc变为低电平。这一点在启动a/d转换后查询eoc信号时须加注意。当a/d转换结束后,eoc立即输出一正阶跃信号,可用来作为a/d转换结束的查询信号或中断请求信号。oe输出允许信号。当oe端输入高电平信号时,三态输出锁存器将a/d转换结果输出。 d0d7数字量输出端。d0为最低有效位(lsb),d7为最高有效位(msb)。ref(+)、ref(-)正负基准电压输入端。基准电压的中心值即1/2(vref(+)+vref(-)应接近于1/2vcc,其偏差值不应超过0.1v。正负基准电压的典型值分别为+5v和0v。vcc、gnd电源电压(+5v)输入端。dgnd数字地。agnd模拟地。4.3温度显示电路设计4.3.1 温度显示电路图4.6 温度显示电路温度显示电路:通道号及温度值采用led显示。由于显示器位数较多,为了简化电路,降低成本,采用动态显示方式。即将所有位的字段线对应并联,由一个8位i/o口控制,而共阴极点由相应的i/o口线控制。这样用两个8位i/o口能控制多位led显示器。如图4.6所示:led显示器所需的工作电流很大。在静态显示方式下,一般每段需要几ma。在动态显示方式下,为了要达到足够的亮度,瞬时电流约为静态方式的n倍(n是显示器的倍数即为4倍),共阴极点外的电流因要考虑4段同是导通其数值就更大,因此在led接口电路中常接有驱动器。这里采用7406(六反相缓冲/驱动器,oc门)、75452(双与非驱动器)。图3.6中4位led由8255的2个8位i/o口控制。pb口经过驱动器后作为led的字段线,即字段码口。pa口经过驱动器后作为led的字位线,即为字位码口。由于4位led的字段码都由一个i/o口控制,因此,如果其字位控制允许各位led都导通,则4位led只能显示相同的字符。要想每位显示不同的字符,必须采用扫描显示方式。即在某一瞬间,只让某一位的字位线处于选通状态(共阴极的为低电平,共阳极的为高电平),其它各位的字位线处于开断状态;同时字段线上输出相应位要显示字符的字段码8。这样在每一瞬时,4位led中只有选通的那一位led显示出字符,而其它位则是熄灭的。同样,在下一瞬时,只显示下一位led。如此继续,等4位led都依次显示完毕后,循环进行。本系统所用的接口电路是可编程并行输入/输出接口8255,8255是intel公司生产的一种可编程并行输入/输出接口芯片。它的通用性强,可以方便地和mcs-51系列单片机相连接,以扩展mcs-51系列单片机的输入/输出口。8255有3个8位并行端口,根据不同的初始化编程9,可分别定义为输入或输出方式,以完成cpu与外设的数据传送。8255与mcs-51系列单片机的连接:8255的数据线d0d7接mcs-51的数据总线p0口,读写控制信号线、和复位信号线reset对应相接,端口选择线a1、a0和片选信号线接到mcs-51系列单片机的地址总线。 a1a0 resetd0d7a组控制a组a口(8位)读/写控制逻辑b组控制a组c口(高4位)b组c口(低4位)b组b口(8位)数据总线缓冲器图4.7 8255内部结构框图pb0pb7pc0pc3pc4pc7pa0pa7cs8255的内部结构框图如图4.7所示,它由下列几部分组成:(1)并行i/o端口a、b、c这3个端口都是8位的,都可以选择作为输入或输出,但在结构和功能上有所不同10。a口含有一个8位数据输出锁存/缓冲器和一个8位数据输入锁存器。在本系统中,经过驱动器后,用来控制字位的选择。b口含有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)。在本系统中,经过75452后,用来确定显示字符。c口含有一个8位数据输出锁存/缓冲器和一个8位数据输入缓冲器(不锁存)当数据传送不需要联络信号时,这三个端口都可以用作输入或输出。当a口、b口工作在需要联络信号的输入或输出方式时,c口可以分别为a口和b口提供状态和控制信息。(2)a级和b组控制电路 8255的三个端口在使用时分为a、b两组。a组包括a口8位和c口的高4位,b组包括b口8位和c口的低4位。两组的控制电路中有控制寄存器,根据写入的控制字决定两组的工作方式,也可以对c口的每一位置位或复位11。(3)数据总线缓冲器 这是三态双向8位缓冲器,是8255与cpu数据总线的接口。数据的输入/输出,控制字和状态信息的传送,都是通过这个缓冲器进行的。(4)读/写控制逻辑 8255的读/写控制逻辑的作用是从cpu的地址和控制总线上接受有关信号,转变成各种控制命令送到数据缓冲器以及a组、b组控制电路,从而管理三个端口、控制寄存器与数据总线之间的传送操作。图4.8 8255封装图8255采用40线双列直插式封装,如图4.8所示。40根引脚按照8255结构可分为与cpu连接的数据线、地址和控制信号以及与外设相连的三个端口。下面分别说明其功能。(1)d0d7双向三态的数据总线。用来接收采集的数据。 (2)reset复位信号,输入。在本系统中接到89c51 reset以实现同步复位,当reset端得到高电平后,8255复位。复位状态是控制寄存器被清 零,所有端口被置为输入方式。 (3)片选信号,输入。接到89c51的p2.6,当为低电平时,该芯片被选中。 (4)读信号,输入。当该信号为低电平时,允许cpu从8255读取数据或状态信息。 (5)写信号,输入。当该信号为低电平时,允许cpu将控制字或数据写入8255。(6)a1、a0端口选择信号,输入。在本系统中a1、a0接到锁存后的p0.0、p0.1, 接到89c51的p2.6上,所以8255的各端口地址为:a口:bffchb口:bffdhc口:bffeh控制口:bfffh(7)pa0pa7a口数据线,双向。在本系统中经过驱动器后作为led的字位线。(8)pb0pb7b口数据线,双向。在本系统中经过驱动器后作为led的字段线。(9)pc0pc7c口信号线,双向。当8255工作于方式0时,pc0pc7分为两组并行i/o数据线。当8255工作于方式1或方式2时,pc0pc7为a口、b口提供联络和中断信号,这时每根线的功能有新的定义12。4.3.2 本系统8255的工作方式和控制字8255有三种工作方式:方式0基本输入/输出方式方式1选通输入/输出方式方式2双向传送方式。8255各端口的工作方式,由写入8255控制口的工作方式控制字来确定。工作方式控制字的格式如图所示。在工作方式控制字中,d7这一位是工作方式控制字的标志,置1为有效;d3d6确定a组(包括a口和c口高半字节)的工作方式;d0d2确定b组(包括b口和c口低半字节)的工作方式。本系统用工作方式为方式0,这是一个基本的输入/输出方式,在这种工作方式下,三个端口可以用程序规定为输入或输出方式,但不能既做输入又作输出,也没有提供固定的联络信号。各端口在输出方式下有锁存功能,本系统工作方式0输出时,cpu执行一条指令,为有效,将数据送到8255的某个端口,然后由外部设备取走。4.4 报警电路设计图4.9 报警电路报警电路:如图4.9所示,报警电路只需一位开关量输出控制即可,这里采用光耦合器集电极输出形式,在微机输出通道中,光耦合器除了起隔离作用还具有电平转换和驱动功能。微机信号经过i/o口输出,经ttl非门接到光耦合器的发光二极管负端。这样是为了利用ttl门输出低电平时吸收电流较大的特性,以利于与发光二极管相匹配。从而驱动声响报警装置。声响报警装置采用蜂鸣器。蜂鸣器内有振荡电路,能发出长声或短声。蜂鸣器的工作电压一般为直流515v,工作电流较小。5 系统软件设计5.1软件设计的要求 根据以上具体化的硬件设计,确定软件设计要求如下: (1)温度巡回检测:定时启动adc0809进行a/d转换,以检测温度值。为了保证数据的可靠性,采用四点均值滤波法进行软件滤波,即每次测温都使adc0809进行4次采样,取其平均值作为这一次的温度检测值。(2)定时:利用mcs-51系列单片机的片内定时器t0和t1进行定时,t0定时15s,以满足采样周期的要求;t1定时2s以满足每路持续2s的要求。(3)温度显示:在每次检测温度后,进行一次温度显示更新,即将新的温度检测值及通道号经过标度变换后输出给led显示器。(4)报警:将每次温度检测值与设定值比较,如果超出允许范围时,输出报警信号并且延时30ms。5.2 软件总体设计5.2.1 程序结构设计应用程序结构采用中断方式,由定时器发出定时中断申请,主程序进行系统初始化,包括定时器、i/o口和中断系统的初始化,等待定时中断。在中断服务程序中,先判断是否到15s。若不到,则返回,若到,则进行以下操作:检测通路号,进行温度检测、标度变换、温度显示,并根据温度检测值决定是否报警。据此设计出应用程序总体流程结构如图5.1、图5.2、图5.3、图5.4所示。5.2.2程序模块划分在应用程序总体结构中,将以下几个功能程序作为模块程序:(1) 主程序:a 完成定时器t0、t1和8255的初始化;b 开放cpu、t0、t1中断;c 循环调用显示子程序,等待定时中断。(2)定时中断0服务程序:计数,每隔15s调用温度检测子程序。(3)定时中断1服务程序:计数,每隔2s更换显示缓冲区地址指针13。(4)温度检测子程序:选择通道,进行a/d转换,温度检测程序的功能是连续进行4次a/d转换,求取转换结果的平均值,存入存储单元,并与设定值比较,判断是否超出范围,若超出设定范围,启动报警装置。八路循环检测一遍,将转换结果处理后,送显示缓冲区。(5)显示子程序:显示通道号和温度。(6)蜂鸣器延时子程序:蜂鸣器鸣叫延时30ms。5.3 各模块程序设计5.3.1 主程序根据系统的要求,主程序的功能应该包括如下几点:(1)完成定时器t0、t1和8255的初始化;(2)开放cpu、t0、t1中断;(3)循环调用显示子程序,等待定时中断。主程序流程图如图5.1所示。根据主程序的设计思想,设计的主程序部分代码如下:主程序: org 0100h;程序定位main: clr ea;关闭总中断 mov dptr,bfffh movx dptr,a mov a,#80h movx dptr,a ;8255初始化为基本输出方式 mov tmod,#11h ;t0和t1初始化为方式1 mov th0,#3ch ;设置时间常数,t0和t1定时100ms mov tl0,#0b0h mov th1,#3ch ;设置时间常数,t0和t1定时100ms mov tl1,#0b0h mov 70h,#96h ;t0中断次数计数单元 mov 71h,#14h ;t1中断次数计数单元,计数20次 mov r1,#00h mov r2,#00h mov r0,#4ch ;显示缓冲单元起始地址inidisp:mov r0,#00h ;显示缓冲单元清洗 inc r0 cjne r0,#6ch,inidisp mov 50h,#01h ;通道号的显示缓冲单元 mov 54h,#02h mov sp,#30h;重新定义堆栈指针 mov r7,#4ch mov 73h,#4ch setb et0;开t0中断 setb et1;开t1中断 setb ea ;开总中断 setb tr0 ;启动定时器t0 setb tr1;启动定时器t1mc: mov r7,73h acall disp ;调用显示子程序ajmp mc;主程序循环14开 始 循环调用显示子程序、等待中断 启动t0、t1 开放cpu中断 允许t0、t1中断 预置显示缓冲区 置通道号初值00h置15s、2s计数单元初值设t0、t1定时100ms的时间常数设t0、t1工作方式控制字 8255初始化 设置程序入口表图5.1 温度监控系统主程序流程图5.3.2 定时中断0服务程序根据系统的总体要求,定时中断0服务程序的主要任务是计数,即每隔15s调用温度检测子程序。设计时,当15秒计数值为0是重置15秒计数单元初值并且调用调温度检测子程序。开 始 重置t0时间常数 15s计数值-1=0 yy 重置15s计数单元初值计数单元初值 调温度检测子程序返 回 图5.2 定时中断0服务程序流程图流程图如图5.2根据流程图,设计的中断0服务程序部分代码如下:t0:mov th0,#3ch;重置时间常数mov tl0,#0b0hdjnz 70h,fh0;计数150次即定时15smov 70h,#96h;重装计数值push 0e0h;保护a中的值push 03h;保护r3中的值acall dtctpop 03h;恢复r3中的值pop 0e0h;恢复a中的值fh0: reti15;定时器0中断返回5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桥头抗震支架施工方案
- 注浆机200米施工方案
- 小区改造路面施工方案
- 阐述税务师考试的多角度分析法试题及答案
- 永年县第二中学高二上学期期中考试语文试题
- 育婴服务行业发展趋势考题试题及答案
- 用药咨询测试题及答案
- 知识产权培训与发展方向的试题及答案
- 设计管理与创新的有效实践试题及答案
- 金融经济师试题及答案
- 《高层建筑结构设计》课件 第5、6章 高层建筑结构有限元计算、高层框架结构设计
- 中国特色社会主义理论与实践复习资料-研究生
- 除湿防潮施工方案
- 基于PLC的自动化立体仓库控制系统设计
- 高速公路施工安全培训课件
- 压力容器年度自查表
- 23CG60 预制桩桩顶机械连接(螺丝紧固式)
- -发育性髋关节脱位课件
- 小学数学-《图形的拼组》教学课件设计
- 读书与教师专业成长
- sat数学考试试题
评论
0/150
提交评论