收藏 分享(赏)

基于8086的温度测控系统课程设计.doc

上传人:精品资料 文档编号:10716226 上传时间:2019-12-31 格式:DOC 页数:18 大小:744.79KB
下载 相关 举报
基于8086的温度测控系统课程设计.doc_第1页
第1页 / 共18页
基于8086的温度测控系统课程设计.doc_第2页
第2页 / 共18页
基于8086的温度测控系统课程设计.doc_第3页
第3页 / 共18页
基于8086的温度测控系统课程设计.doc_第4页
第4页 / 共18页
基于8086的温度测控系统课程设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、1中南大学微机应用系统设计与综合实验设计报告设计题目 温度测控系统的设计 指导老师 * 设 计 者 * 专 业 班 级 测 控 140* 班 *号 设 计 日 期 2016年 7月 5号 目 录一、系统设计要求1二、系统总体设计方案22.1 温度检测的基本原理22.2 温度数据采集 22.3 显示方案 22.4 系统组成 3三、系统硬件设计 103.1 8086 与 A/D 转换器及显示器的硬件连接 103.2 温度检测及放大电路 11四、系统软件设计 124.1 I/O 资源分配 124.2 功能模块软件设计 13五、课程设计及调试中遇到的问题及解决方法 145.1 系统设计中遇到的问题及解

2、决方法 145.2 系统调试中遇到的问题及解决方法 14六、收获与体会 15参考文献 161一、系统设计要求设计并制作出具有如下功能的温度测控系统。设计一个温度测控系统,温度测量部分采用 ADC0809, 控制输出部分采用 8255 控制加热器加热/冷却,系统实现一路温度信号的测控,在 3 位 LED 显示器上显示当前温度。控制温度范围 076.5 CO,每隔 0.2s 检测一次,每点连续采集 5 次,取其中值,经标度变换,转为 BCD 码后送显示器显示,每 1s 刷新一次显示。设定温度为 0时,变换放大电路送出的模拟量为 0.0V,此时 A/D 输出的数字量为 00H;温度为 76.5时变换

3、器送出对应电压 4.98V,此时 A/D 输出的数字量为 FFH,即每 0.3对应 1LSB 的变化量,对应电压值为 19.5mV。报警温度设定为 76.5,此时,输出电压约为 5.0V 左右。显示方式为: 例:温度:45.0 C O设计要求:设计相应的 A/D 转换器、I/O 接口、显示、键盘等微机接口电路,可在线键盘参数设置、检测、显示、报警。并设计出电路原理图,说明工作原理,编写程序及程序流程图。2二、系统总体设计方案2.1 温度检测的基本原理系统设计采用温度传感器 AD590 构成测温系统。AD590 是一种电压输入、电流输出型集成温度传感器。测温范围是-55150,非线性误差在0.3

4、0,其输出电流与温度成正比,温度每升高 1 开尔文,输出电流就增加 1A,其输出电流 I=(273+T)A。另外,为满足系统输入模拟量进行处理的功能,对其再扩展一片 ADC0809,以进行模拟数字量的转化。2.2 温度数据采集系统采用 ADC0809 做 A/D 转换实验 。ADC0809 是一种 8 路模拟输入、8 位数字输出的逐次逼近法 A/D 器件,转换时间 100s,转换精度1/512,适用于多路数据采集系统。系统只采用 IN0 这一路进行模拟量采集转化为数字量输出。数字量 00-FF 经过标度变换为温度值 076.8。比例关系为 0.3/1bit。2.3 显示方案本系统采用六位七段字

5、符显示器 LED 灯进行显示,前三位显示温度期望值,后三位显示温度实测值。LED 显示器由 7 个发光二极管组成,因此也称之为七段 LED 显示器,其排列形状如图 1. 1 所示。此外,显示器中还有一个圆点型发光二极管(在图中以 dp 表示) ,用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。图 1.1 七段 LED 显示器共阳极接法:把发光二极管的阳极连在一起构成会共阳极。使用时公共阳极接5V,这样阴极端接入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。3用 LED 显示器显示十六进制数的字形代码在表 1-1 中列出。表 1-1 十六进制数字形

6、代码表实际使用的 LED 显示器都是多位的。对多位 LED 显示器,通常都是采用动态扫描的方法进行显示,即逐个地循环地点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。为了实现 LED 显示器的动态扫描,除了要给显示器提供段(字形代码)的输入之外,还要对显示器加位的控制,这就是通常所说的段控和位控。因此多位 LED 显示器接口电路需要有两个输出口,其中一个用于输出 8 条段控线(有小数点显示) ;另一个用于输出位控线,位控线的数目等于显示器的位数。2.4 系统组成整个系统可以分为温度测量部分、模数转换部分、中央处理单元

7、、显示单元以及控制单元。温度测量部分:温度传感器以及外围放大电路;模数转换部分:ADC0809 及其相关电路;中央处理单元:8086CPU 及其相关电路;显示单元:LED 显示器及其相关电路;控制单元:可编程 I/O 接口芯片 8255A 及其相关电路。总体设计由上述几个部分组成,其相互之间的关系如图 2.1 所示:温度传感器的输出经过电压跟随器和运放后交由 AD 转换,AD 转换得出数字4量由 8086 进行处理,并显示在 LED 灯上。同时对温度进行控制。温 度 传 感 器 电 压 跟 随 器 运 放A/D转 换8086处 理 器温 度 控 制 动作显 示 译 码 保 护图 2.1 总体原

8、理图主程序流程图如图 2.2:主程序开始,分别调用键扫、AD 转换、温度控制、保护子程序,然后无限循环执行该过程。5图 2.2 主程序流程图键盘扫描子程序流程图如图 2.3:执行键扫程序时,首先对按下的键进行赋值,根据键值判断按下的是哪个键,如果是 DAR 键,表示进行数字输入,如果是 MOVE 键,退出温度设置。如果未按键,直接返回主程序并继续向下执行。6开 始调 用 键 盘 扫描DAR?数 字 键 or功 能 键 ?数 字 输 入 功 能 处 理调 用 键 扫Move?结 束图 2.3 键盘扫描子程序AD 采样子程序流程图如图 2.4AD 采样每次采五个值,将其排序并存储,经过取舍之后进行

9、标度变换得出具体温度值,送至 LED 的口地址。7图 2.4 AD 采样子程序控制子程序流程图如图 2.5:控制子程序不仅仅是将三位温度值进行简单的比较,而是经过一定的优化算法,使温度在一定误差允许范围内不进行加热或冷却,防止在平衡点附近控制动作的频繁跳动。在这里将优化算法写在下面:yh1: ;比较温度第二位,相差 在0.7 之外 则控制inc alcmp bl,al8ja windmov bl,ds:077ahMOV AL, ds:077dhcmp al,bljbe windadd bl,02hcmp al,bljb windjmp hangyh2: inc blcmp bl,aljb he

10、atmov bl,ds:077ahmov al, ds:077dhcmp bl,aljbe heatadd al,02hcmp al,blja heatjmp hangmov bl,ds:077ah ; 前两位相等则比较第三位mov al, ds:077dhcmp bl, alja yh3cmp bl,aljb yh4jmp hang9yh3: add al,07hcmp bl,alja windjmp hangyh4:add bl,07h ; ;相差在 0.7 之外则控制cmp bl,aljb heatjmp hang开 始比 第 一位 ?不 相 等 则 进行 加 热 或 冷却相 等 则 比

11、第 二 位 ?相 等 则 比第 三 位 ?不 相 等 则 进行 加 热 或 冷却 的 优 化 操作不 相 等 则 进行 加 热 或 冷却 的 优 化 操作相 等 则 延 时等 待结 束图 2.5 控制子程序流程图 10三、系统硬件设计3.1 8086 与 A/D 转换器及显示器的硬件连接1.8086 与 A/D 转换器,如图 3.1 所示:图 3.1 8086 与 A/D 转换器的连接2. 用 8155 作 LED 显示器接口图 3-2 是使用 8155 作 6 位 LED 显示器的接口电路。其中 C 口为输出口(位控口) ,以 PC0 PC5输出位控线。由于位控线的驱动电流较大,8 段全亮时

12、约 4060 mA,因此 PC 口输出加 74LS06 进行反相和提高驱动能力,然后再接各 LED 显示器的位拉端。B 口也为输出口(段控口) ,以输出 8 位字形代码(段控线) 。段控线的负载电流约为 8 mA,为提高显示亮度,通常加 74LS244 进行段控输出驱动11图 3.2 8155 作 6 位 LED 显示器接口电路3.2 温度检测及放大电路如图 3.3 所示 图 3.3 温度检测及放大电路12四、系统软件设计4.1 I/O 资源分配在 DVCC 系列实验开发系统上系统所用接口器件地址安排如下:8155 控制口 FF20 H8155A 口(字位)FF21H8155B 口(字形)FF

13、22H8155C 口(键扫)FF23 H8255 控制口 FF2BH8255A 口 FF28H8255B 口 FF29H8255C 口 FF2 AH ADC0809 地址 12 端口 0010hDVCC0806 实验系统上实验用各接口器件模块其地址由 74LS138 译码产生。其译码输出地址如下表 4-2 所示。表 4-2在 8086 状态下,YO - Y7 作为用户目标程序、数据或 1/O 口片选地址。接口器件地址译码电路原理图如下图 4.1 所示。图 4.1 接口器件地址译码电路原理图134.2 功能模块软件设计1.初始化模块包括初始化 8255 的工作方式和 LED 灯的初始值。设置 8

14、255 位 基本输入输出方式,温度期望值初始为 37.0。2.键扫模块功能设计键盘扫描程序要求:按下 DAR 键进入温度期望值的输入,按下 MOVE 键 退出键盘输入,按 STEP 键删除上一个输入值。键盘键值存在 DS:0752H并且赋值给 AL。3.显示模块功能设计将存在 LED 灯对应位置的字形码进行显示,每一位的显示要有一定的延时以保证足够的亮度。4.AD 采样模块功能设计从 IN0 口 进行采样,每次采样 5 个值,将其依次存放在代码段 a 开始的5 个字的存储空间里。5.取均值模块功能设计将代码段以 a 开始的 5 个字存储空间里储存的采样值按照从小到大的顺序储存起来。并将这五个值

15、去掉最大最小值后取均值。7.标度转换程序设计将 AX 中的值进行标度变换(00-ff 变换为 0768) ,并将变换所得的数字按位存放在代码段以 ascbuf 开始的 5 字节空间的后三个字节空间。8.温度控制程序设计将采样所得中值与键盘输入所得温度期望值进行比较,确定需要进行的控制操作,利用 8255 的 B 端口进行加热或者吹风操作。在平衡点附近的温度控制代码需要优化防止频繁跳变。14五、课程设计及调试中遇到的问题及解决方法5.1 系统设计中遇到的问题及解决方法 1.由于温度的测量总会滞后于其实际值,AD 采样值不能准确反映实际温度。为此,每次采样 5 个值,编写取其中值,使采样值能较准确

16、地反映实际值。2.数字量 00ff 不能直观反映温度值,因此编写了标度变换程序,将00FF 线性变换为 0768。3.由于温度值的显示带小数点,因此对于不同的 LED 显示位需要不同的字形码,为此编写程序将不同为区分开来,使显示加上小数点。 5.2 系统调试中遇到的问题及解决方法1.显示刷新时,黑屏时间太长,达到了 2s,为此分别对键扫、AD 转换、温度控制三大模块单独进行调试,发现黑屏是由 AD 转换模块引起,然后对程序进行检查,取消了不必要的每个单次采样之间的软件延时,再次调试,问题解决。2.调试时发现,虽然系统能满足温度测控的要求,但是其精度较差,表现为超调量大、在平衡位置控制行为频繁跳

17、变。为此,对温度控制模块的代码进行优化,使其在实测温度在期望值的0.6的范围内时不进行控制动作,而是进行延时,演示完毕直接从程序开始运行。以此增加控制精度,使温度稳定在平衡点0.6的范围内。3.对上述温度控制子程序进行优化时编译不通过,提示错误信息:“jmp out of range for 12 bytes!”向老师咨询之后才知道是 jmp 指令本身不能跳得太远的缘故。4.调试时发现,期望值的输入是任意的,但是我们知道系统的温度实际值范围应该是 076.8,因此期望值的输入不应大于这个值。因此加入一个起保护功能的小程序,每次执行完键扫模块(也就是期望值的输入) ,就检验该期望值的合理性,如果

18、输入不合理的值将会进行自动调整。从而保证温度测控系统的安全运行。5.调试时发现,温度的实时变化存在小范围内的小幅度跳变,也就是说对于温度采样值的取舍算法存在问题,导致滤波不满足要求。为此,将原先的采15样 5 个值取中值的算法改为采样五个值去掉最大最小值剩余三个数取均值。问题得以解决。六、收获与体会这次微机原理课程设计历时一个星期,在这段时间里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间

19、。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。16参考文献1 刘乐善.微机原理接口技术及应用.武汉:华中科技出版社,2004.72 彭虎.微机原理与接口技术. 电子工业出版社3 戴梅萼.微型计算机技术及应用. 清华大学出版社 4 周荷琴。微型计算机原理与接口技术.中国科学技术大学出版社,2013.3

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报