中南大学
微机应用系统设计与 综合实验设计报告
设计题目 温度测控系统的设计 指导老师 ************** 设计者 ****
专业班级 测控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 系统调试中遇到的问题及解决方法………………………14
六、收获与体会 ……………………………………………………15
参考文献 …………………………………………………………16
一、系统设计要求
设计并制作出具有如下功能的温度测控系统。
设计一个温度测控系统,温度测量部分采用ADC0809, 控制输出部分采用 8255控制加热器加热/冷却,系统实现一路温度信号的测控,在3位LED显示器上显示当前温度。控制温度范围 0~76.5 CO,每隔0.2s检测一次,每点连续采集5次,取其中值,经标度变换,转为BCD码后送显示器显示,每1s刷新一次显示。
设定温度为0℃时,变换放大电路送出的模拟量为0.0V,此时A/D输出的数字量为00H;温度为76.5℃时变换器送出对应电压4.98V,此时A/D输出的数字量为FFH,即每0.3℃对应1LSB的变化量,对应电压值为19.5mV。报警温度设定为76.5℃,此时,输出电压约为5.0V左右。
显示方式为: 例:温度:45.0 CO
设计要求:设计相应的A/D转换器、I/O接口、显示、键盘等微机接口电路,可在线键盘参数设置、检测、显示、报警。并设计出电路原理图,说明工作原理,编写程序及程序流程图。
二、系统总体设计方案
2.1 温度检测的基本原理
系统设计采用温度传感器AD590构成测温系统。AD590是一种电压输入、电流输出型集成温度传感器。测温范围是-55℃~150℃,非线性误差在±0.30℃,其输出电流与温
度成正比,温度每升高1开尔文,输出电流就增加1μA,其输出电流I=(273+T)μA。另外,为满足系统输入模拟量进行处理的功能,对其再扩展一片ADC0809,以进行模拟数字量的转化。
2.2 温度数据采集
系统采用ADC0809做A/D转换实验 。ADC0809是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间100μs,转换精度±1/512,适用于多路数据采集系统。系统只采用IN0这一路进行模拟量采集转化为数字量输出。数字量00-FF经过标度变换为温度值0~76.8℃。比例关系为0.3℃/1bit。
2.3 显示方案
本系统采用六位七段字符显示器LED灯进行显示,前三位显示温度期望值,后三位显示温度实测值。LED显示器由7个发光二极管组成,因此也称之为七段LED显示器,其排列形状如图1. 1所示。此外,显示器中还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮暗的不同组合,可以显示多种数字、字母以及其它符号。
图1.1 七段LED显示器
共阳极接法:
把发光二极管的阳极连在一起构成会共阳极。使用时公共阳极接+5V,这样阴极端接入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。
用LED显示器显示十六进制数的字形代码在表1-1中列出。
。
表1-1 十六进制数字形代码表
实际使用的LED显示器都是多位的。对多位LED显示器,通常都是采用动态扫描的方法进行显示,即逐个地循环地点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。
为了实现LED显示器的动态扫描,除了要给显示器提供段(字形代码)的输入之外,还要对显示器加位的控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出段控线(有小数点显示);另一个用于输出位控
线,位控线的数目等于显示器的位数。
2.4 系统组成
整个系统可以分为温度测量部分、模数转换部分、处理单元、显示单元以及控制单元。
温度测量部分:温度传感器以及外围放大电路;
模数转换部分:ADC0809及其相关电路;
处理单元:8086CPU及其相关电路;
显示单元:LED显示器及其相关电路;
控制单元:可编程I/O接口芯片8255A及其相关电路。
总体设计由上述几个部分组成,其相互之间的关系如图2.1所示:
温度传感器的输出经过电压跟随器和运放后交由AD转换,AD转换得出数字量由8086进行处理,并显示在LED灯上。同时对温度进行控制。
温度传感器电压跟随器运放温度控制动作8086处理器A/D转换显示译码保护
图2.1 总体原理图
主程序流程图如图2.2:
主程序开始,分别调用键扫、AD转换、温度控制、保护子程序,然后无限循环执行该过程。
图2.2 主程序流程图
键盘扫描子程序流程图如图2.3:
执行键扫程序时,首先对按下的键进行赋值,根据键值判断按下的是哪个键,如果是DAR键,表示进行数字输入,如果是MOVE键,退出温度设置。如果未按键,直接返回主程序并继续向下执行。
开始调用键盘扫描DAR?数字键or功能键?数字输入功能处理调用键扫Move?结束
图2.3键盘扫描子程序
AD采样子程序流程图如图2.4
AD采样每次采五个值,将其排序并存储,经过取舍之后进行标度变换得出具体温度值,送至LED的口地址。
图2.4 AD采样子程序
控制子程序流程图如图2.5:
控制子程序不仅仅是将三位温度值进行简单的比较,而是经过一定的优化算法,使温度在一定误差允许范围内不进行加热或冷却,防止在平衡点附近控制动作的频繁跳动。在这里将优化算法写在下面:
yh1: ;比较温度第二位,相差在±0.7之外则控制
inc al
cmpbl,al
ja wind
movbl,ds:[077ah]
MOV AL, ds:[077dh]
cmpal,bl
jbe wind
add bl,02h
cmpal,bl
jb wind
jmp hang
yh2:
incbl
cmpbl,al
jb heat
movbl,ds:[077ah]
mov al, ds:[077dh]
cmpbl,al
jbe heat
add al,02h
cmpal,bl
ja heat
jmp hang
movbl,ds:[077ah] ;前两位相等则比较第三位
mov al, ds:[077dh]
cmpbl, al
ja yh3
cmpbl,al
jb yh4
jmp hang
yh3: add al,07h
cmpbl,al
ja wind
jmp hang
yh4:
add bl,07h ; ;相差在±0.7之外则控制
cmpbl,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段全亮时约40~60 mA,因此PC口输出加74LS06进行反相和提高驱动能力,然后再
接各LED显示器的位拉端。
B口也为输出口(段控口),以输出8位字形代码(段控线)。段控线的负载电流约为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地址16端口 0010h
DVCC0806实验系统上实验用各接口器件模块其地址由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]并且赋值给AL。
3.显示模块功能设计
将存在LED灯对应位置的字形码进行显示,每一位的显示要有一定的延时以保证足够的亮度。
4.AD采样模块功能设计
从IN0口 进行采样,每次采样5个值,将其依次存放在代码段a开始的5个字的存储空间里。
5.取均值模块功能设计
将代码段以a开始的5个字存储空间里储存的采样值按照从小到大的顺序储存起来。
并将这五个值去掉最大最小值后取均值。
7.标度转换程序设计
将AX中的值进行标度变换(00-ff变换为0~768),并将变换所得的数字按位存放在代码段以ascbuf开始的5字节空间的后三个字节空间。
8.温度控制程序设计
将采样所得中值与键盘输入所得温度期望值进行比较,确定需要进行的控制操作,利用8255的B端口进行加热或者吹风操作。在平衡点附近的温度控制代码需要优化防止频繁跳变。
五、课程设计及调试中遇到的问题及解决方法
5.1 系统设计中遇到的问题及解决方法
1.由于温度的测量总会滞后于其实际值,AD采样值不能准确反映实际温度。为此,每次采样5个值,编写取其中值,使采样值能较准确地反映实际值。
2.数字量00~ff不能直观反映温度值,因此编写了标度变换程序,将00~FF线性变换为0~768。
3.由于温度值的显示带小数点,因此对于不同的LED显示位需要不同的字形码,为此编写程序将不同为区分开来,使显示加上小数点。
5.2 系统调试中遇到的问题及解决方法
1.显示刷新时,黑屏时间太长,达到了2s,为此分别对键扫、AD转换、温度控制三大模块单独进行调试,发现黑屏是由AD转换模块引起,然后对程序进行检查,取消了不必要的每个单次采样之间的软件延时,再次调试,问题解决。
2.调试时发现,虽然系统能满足温度测控的要求,但是其精度较差,表现为超调量大、在平衡位置控制行为频繁跳变。为此,对温度控制模块的代码进行优化,使其在实测温度在期望值的±0.6℃的范围内时不进行控制动作,而是进行延时,演示完毕直接从程序开始运行。以此增加控制精度,使温度稳定在平衡点±0.6℃的范围内。
3.对上述温度控制子程序进行优化时编译不通过,提示错误信息:“jmp out of range for 12 bytes!”向老师咨询之后才知道是jmp指令本身不能跳得太远的缘故。
4.调试时发现,期望值的输入是任意的,但是我们知道系统的温度实际值范围应该是0~76.8℃,因此期望值的输入不应大于这个值。因此加入一个起保护功能的小程序,每次执行完键扫模块(也就是期望值的输入),就检验该期望值的合理性,如果输入不合理的值将会进行自动调整。从而保证温度测控系统的安全运行。
5.调试时发现,温度的实时变化存在小范围内的小幅度跳变,也就是说对于温度采样值的取舍算法存在问题,导致滤波不满足要求。为此,将原先的采样5个值取中值的算法改为采样五个值去掉最大最小值剩余三个数取均值。问题得以解决。
六、收获与体会
这次微机原理课程设计历时一个星期,在这段时间里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。
其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
参考文献
[1] 刘乐善.微机原理接口技术及应用.武汉:华中科技出版社,2004.7
[2] 彭虎.微机原理与接口技术. 电子工业出版社
[3] 戴梅萼.微型计算机技术及应用.清华大学出版社
[4] 周荷琴。微型计算机原理与接口技术.中国科学技术大学出版社,2013.3
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务