《基于8086的温度测控系统课程设计》由会员分享,可在线阅读,更多相关《基于8086的温度测控系统课程设计(18页珍藏版)》请在金锄头文库上搜索。
1、中南大学微机应用系统设计与综合实验设计报告设计题目 温度测控系统的设计 指导老师 * 设计者 * 专业班级 测控140* 班*号 设计日期 2016年7月5号 目 录一、系统设计要求1二、系统总体设计方案2 2.1 温度检测的基本原理2 2.2 温度数据采集 2 2.3 显示方案 2 2.4 系统组成 3三、系统硬件设计 10 3.1 8086与A/D转换器及显示器的硬件连接 10 3.2 温度检测及放大电路 11四、系统软件设计 12 4.1 I/O资源分配 12 4.2 功能模块软件设计 13五、课程设计及调试中遇到的问题及解决方法 14 5.1 系统设计中遇到的问题及解决方法 14 5.
2、2 系统调试中遇到的问题及解决方法 14六、收获与体会 15参考文献 16一、系统设计要求设计并制作出具有如下功能的温度测控系统。设计一个温度测控系统,温度测量部分采用ADC0809, 控制输出部分采用 8255控制加热器加热/冷却,系统实现一路温度信号的测控,在3位LED显示器上显示当前温度。控制温度范围 076.5 CO,每隔0.2s检测一次,每点连续采集5次,取其中值,经标度变换,转为BCD码后送显示器显示,每1s刷新一次显示。设定温度为0时,变换放大电路送出的模拟量为0.0V,此时A/D输出的数字量为00H;温度为76.5时变换器送出对应电压4.98V,此时A/D输出的数字量为FFH,
3、即每0.3对应1LSB的变化量,对应电压值为19.5mV。报警温度设定为76.5,此时,输出电压约为5.0V左右。 显示方式为: 例:温度:45.0 CO 设计要求:设计相应的A/D转换器、I/O接口、显示、键盘等微机接口电路,可在线键盘参数设置、检测、显示、报警。并设计出电路原理图,说明工作原理,编写程序及程序流程图。二、系统总体设计方案2.1 温度检测的基本原理 系统设计采用温度传感器AD590构成测温系统。AD590是一种电压输入、电流输出型集成温度传感器。测温范围是-55150,非线性误差在0.30,其输出电流与温度成正比,温度每升高1开尔文,输出电流就增加1A,其输出电流I=(273
4、+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 显示方案本系统采用六位七段字符显示器LED灯进行显示,前三位显示温度期望值,后三位显示温度实测值。LED显示器由7个发光二极管组成,因此也称之为七段LED显示器
5、,其排列形状如图1. 1所示。此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。 图1.1 七段LED显示器共阳极接法: 把发光二极管的阳极连在一起构成会共阳极。使用时公共阳极接5V,这样阴极端接入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。 用LED显示器显示十六进制数的字形代码在表1-1中列出。表1-1 十六进制数字形代码表 实际使用的LED显示器都是多位的。对多位LED显示器,通常都是采用动态扫描的方法进行显示,即逐个地循环地点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,
6、但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。 为了实现LED显示器的动态扫描,除了要给显示器提供段(字形代码)的输入之外,还要对显示器加位的控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8条段控线(有小数点显示);另一个用于输出位控线,位控线的数目等于显示器的位数。 2.4 系统组成整个系统可以分为温度测量部分、模数转换部分、中央处理单元、显示单元以及控制单元。温度测量部分:温度传感器以及外围放大电路;模数转换部分:ADC0809及其相关电路;中央处理单元:8086CPU及其相关电路;显示单元:LED显示器及其相关电路
7、;控制单元:可编程I/O接口芯片8255A及其相关电路。总体设计由上述几个部分组成,其相互之间的关系如图2.1所示:温度传感器的输出经过电压跟随器和运放后交由AD转换,AD转换得出数字量由8086进行处理,并显示在LED灯上。同时对温度进行控制。 图2.1 总体原理图主程序流程图如图2.2:主程序开始,分别调用键扫、AD转换、温度控制、保护子程序,然后无限循环执行该过程。 图2.2 主程序流程图键盘扫描子程序流程图如图2.3:执行键扫程序时,首先对按下的键进行赋值,根据键值判断按下的是哪个键,如果是DAR键,表示进行数字输入,如果是MOVE键,退出温度设置。如果未按键,直接返回主程序并继续向下
8、执行。 图2.3键盘扫描子程序AD采样子程序流程图如图2.4AD采样每次采五个值,将其排序并存储,经过取舍之后进行标度变换得出具体温度值,送至LED的口地址。 图2.4 AD采样子程序控制子程序流程图如图2.5:控制子程序不仅仅是将三位温度值进行简单的比较,而是经过一定的优化算法,使温度在一定误差允许范围内不进行加热或冷却,防止在平衡点附近控制动作的频繁跳动。在这里将优化算法写在下面:yh1: ;比较温度第二位,相差 在0.7之外 则控制 inc al cmp bl,al ja wind mov bl,ds:077ah MOV AL, ds:077dh cmp al,bl jbe wind a
9、dd bl,02h cmp al,bl jb wind jmp hang yh2: inc bl cmp bl,al jb heat mov bl,ds:077ah mov al, ds:077dh cmp bl,al jbe heat add al,02h cmp al,bl ja heat jmp hang mov bl,ds:077ah ; 前两位相等则比较第三位 mov al, ds:077dh cmp bl, al ja yh3 cmp bl,al jb yh4 jmp hangyh3: add al,07h cmp bl,al ja wind jmp hang yh4: add b
10、l,07h ; ;相差在0.7之外则控制 cmp bl,al jb heat jmp hang 图2.5控制子程序流程图 三、系统硬件设计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段全亮时约4060 mA,因此PC口输出加74LS06进行反相和提高驱动能力,然后再接各LED显示器的位拉端。 B口也为输出口(段控口),以输出8位字形代
11、码(段控线)。段控线的负载电流约为8 mA,为提高显示亮度,通常加74LS244进行段控输出驱动图3.2 8155作6位LED显示器接口电路3.2 温度检测及放大电路如图3.3所示 图3.3温度检测及放大电路四、系统软件设计 4.1 I/O资源分配 在DVCC系列实验开发系统上系统所用接口器件地址安排如下: 8155控制口FF20 H 8155A口(字位)FF21H 8155B口(字形)FF22H 8155C口(键扫)FF23 H 8255控制口FF2BH 8255A口FF28H 8255B口FF29H 8255C口FF2 AH ADC0809地址8端口 0010hDVCC0806实验系统上实验用各接口器件模块其地址由74LS138译码产生。其译码输出地址如下表4-2所示。表4-2 在8086状态下,YO - Y7作为用户目标程序、数据或1/O口片选地址。接口器件地址译码电路原理图如下图4.1所示。图4.1 接口器件地址译码电路原理图 4.2 功能模块软件设计 1.初始化模块 包括初始化8255的工作方式和LED灯的初始值。 设置8255 位 基本输入输出方式,温度期望值初始为37.0。 2.键扫模块功能设计 键盘扫描程序要求:按下DAR键进入温度期望值的输入,按下MOVE键 退出键盘输入,按STEP键删除上一个输入值。键盘键值存在DS:0752H并