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

上传人:b****4 文档编号:6232472 上传时间:2023-05-09 格式:DOCX 页数:17 大小:524.67KB
下载 相关 举报
基于8086的温度测控系统课程设计.docx_第1页
第1页 / 共17页
基于8086的温度测控系统课程设计.docx_第2页
第2页 / 共17页
基于8086的温度测控系统课程设计.docx_第3页
第3页 / 共17页
基于8086的温度测控系统课程设计.docx_第4页
第4页 / 共17页
基于8086的温度测控系统课程设计.docx_第5页
第5页 / 共17页
基于8086的温度测控系统课程设计.docx_第6页
第6页 / 共17页
基于8086的温度测控系统课程设计.docx_第7页
第7页 / 共17页
基于8086的温度测控系统课程设计.docx_第8页
第8页 / 共17页
基于8086的温度测控系统课程设计.docx_第9页
第9页 / 共17页
基于8086的温度测控系统课程设计.docx_第10页
第10页 / 共17页
基于8086的温度测控系统课程设计.docx_第11页
第11页 / 共17页
基于8086的温度测控系统课程设计.docx_第12页
第12页 / 共17页
基于8086的温度测控系统课程设计.docx_第13页
第13页 / 共17页
基于8086的温度测控系统课程设计.docx_第14页
第14页 / 共17页
基于8086的温度测控系统课程设计.docx_第15页
第15页 / 共17页
基于8086的温度测控系统课程设计.docx_第16页
第16页 / 共17页
基于8086的温度测控系统课程设计.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《基于8086的温度测控系统课程设计.docx》由会员分享,可在线阅读,更多相关《基于8086的温度测控系统课程设计.docx(17页珍藏版)》请在冰点文库上搜索。

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

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

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

中南大学

微机应用系统设计与

综合实验设计报告

 

设计题目温度测控系统的设计

指导老师**************

设计者****

专业班级测控140*班**号

设计日期2016年7月5号

 

 

一、系统设计要求

设计并制作出具有如下功能的温度测控系统。

设计一个温度测控系统,温度测量部分采用ADC0809,控制输出部分采用8255控制加热器加热/冷却,系统实现一路温度信号的测控,在3位LED显示器上显示当前温度。

控制温度范围0~76.5CO,每隔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.0CO

设计要求:

设计相应的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显示器接口电路需要有两个输出口,其中一个用于输出8条段控线(有小数点显示);另一个用于输出位控线,位控线的数目等于显示器的位数。

2.4系统组成

整个系统可以分为温度测量部分、模数转换部分、中央处理单元、显示单元以及控制单元。

温度测量部分:

温度传感器以及外围放大电路;

模数转换部分:

ADC0809及其相关电路;

中央处理单元:

8086CPU及其相关电路;

显示单元:

LED显示器及其相关电路;

控制单元:

可编程I/O接口芯片8255A及其相关电路。

总体设计由上述几个部分组成,其相互之间的关系如图2.1所示:

温度传感器的输出经过电压跟随器和运放后交由AD转换,AD转换得出数字量由8086进行处理,并显示在LED灯上。

同时对温度进行控制。

图2.1总体原理图

主程序流程图如图2.2:

主程序开始,分别调用键扫、AD转换、温度控制、保护子程序,然后无限循环执行该过程。

图2.2主程序流程图

键盘扫描子程序流程图如图2.3:

执行键扫程序时,首先对按下的键进行赋值,根据键值判断按下的是哪个键,如果是DAR键,表示进行数字输入,如果是MOVE键,退出温度设置。

如果未按键,直接返回主程序并继续向下执行。

图2.3键盘扫描子程序

AD采样子程序流程图如图2.4

AD采样每次采五个值,将其排序并存储,经过取舍之后进行标度变换得出具体温度值,送至LED的口地址。

图2.4AD采样子程序

控制子程序流程图如图2.5:

控制子程序不仅仅是将三位温度值进行简单的比较,而是经过一定的优化算法,使温度在一定误差允许范围内不进行加热或冷却,防止在平衡点附近控制动作的频繁跳动。

在这里将优化算法写在下面:

yh1:

;比较温度第二位,相差在±0.7之外则控制

incal

cmpbl,al

jawind

movbl,ds:

[077ah]

MOVAL,ds:

[077dh]

cmpal,bl

jbewind

addbl,02h

cmpal,bl

jbwind

jmphang

yh2:

incbl

cmpbl,al

jbheat

movbl,ds:

[077ah]

moval,ds:

[077dh]

cmpbl,al

jbeheat

addal,02h

cmpal,bl

jaheat

jmphang

movbl,ds:

[077ah];前两位相等则比较第三位

moval,ds:

[077dh]

cmpbl,al

jayh3

cmpbl,al

jbyh4

jmphang

yh3:

addal,07h

cmpbl,al

jawind

jmphang

yh4:

addbl,07h;;相差在±0.7之外则控制

cmpbl,al

jbheat

jmphang

图2.5控制子程序流程图

三、系统硬件设计

3.18086与A/D转换器及显示器的硬件连接

1.8086与A/D转换器,如图3.1所示:

图3.18086与A/D转换器的连接

2.用8155作LED显示器接口

图3-2是使用8155作6位LED显示器的接口电路。

其中C口为输出口(位控口),以PC0–PC5输出位控线。

由于位控线的驱动电流较大,8段全亮时约40~60mA,因此PC口输出加74LS06进行反相和提高驱动能力,然后再接各LED显示器的位拉端。

B口也为输出口(段控口),以输出8位字形代码(段控线)。

段控线的负载电流约为8mA,为提高显示亮度,通常加74LS244进行段控输出驱动

图3.28155作6位LED显示器接口电路

3.2温度检测及放大电路

如图3.3所示

图3.3温度检测及放大电路

 

四、系统软件设计

4.1I/O资源分配

在DVCC系列实验开发系统上系统所用接口器件地址安排如下:

8155控制口FF20H

8155A口(字位)FF21H

8155B口(字形)FF22H

8155C口(键扫)FF23H

8255控制口FF2BH

8255A口FF28H

8255B口FF29H

8255C口FF2AH

ADC0809地址13端口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.对上述温度控制子程序进行优化时编译不通过,提示错误信息:

“jmpoutofrangefor12bytes!

”向老师咨询之后才知道是jmp指令本身不能跳得太远的缘故。

4.调试时发现,期望值的输入是任意的,但是我们知道系统的温度实际值范围应该是0~76.8℃,因此期望值的输入不应大于这个值。

因此加入一个起保护功能的小程序,每次执行完键扫模块(也就是期望值的输入),就检验该期望值的合理性,如果输入不合理的值将会进行自动调整。

从而保证温度测控系统的安全运行。

5.调试时发现,温度的实时变化存在小范围内的小幅度跳变,也就是说对于温度采样值的取舍算法存在问题,导致滤波不满足要求。

为此,将原先的采样5个值取中值的算法改为采样五个值去掉最大最小值剩余三个数取均值。

问题得以解决。

六、收获与体会

这次微机原理课程设计历时一个星期,在这段时间里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。

但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。

因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

 

参考文献

[1]刘乐善.微机原理接口技术及应用.武汉:

华中科技出版社,2004.7

[2]彭虎.微机原理与接口技术.电子工业出版社

[3]戴梅萼.微型计算机技术及应用.清华大学出版社

[4]周荷琴。

微型计算机原理与接口技术.中国科学技术大学出版社,2013.3

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2