微机控制技术课程设计基于8086的简单温控系统设计.docx
《微机控制技术课程设计基于8086的简单温控系统设计.docx》由会员分享,可在线阅读,更多相关《微机控制技术课程设计基于8086的简单温控系统设计.docx(18页珍藏版)》请在冰点文库上搜索。
微机控制技术课程设计基于8086的简单温控系统设计
天津理工大学
课程设计报告
题目:
基于8086的简单温控系统设计
学生姓名王一品学号********
届2012班级电气09-4
指导教师张敏专业电气工程及其自动化
一、概述………………………………………………………………………………3
二、系统工作原理……………………………………………………………………3
三、系统组成…………………………………………………………………………3
四、设计内容…………………………………………………………………………4
五、总结………………………………………………………………………………13
六、参考资料…………………………………………………………………………13
一、概述
本文介绍了一种基于8086微处理器的温度测控系统,采用温度传感器AD590采集温度数据,用CPU控制温度值稳定在预设温度。
当温度低于预设温度值时系统启动电加热器,当这个温度高于预设温度值时断开电加热器。
关键词:
微处理器温度传感器A/D转换器控制系统
二、系统工作原理
温度信息由温度传感器测量并转换成微安级的电流信号,经过运算放大电路将温度传感器输出的小信号进行跟随放大,输入到A/D转换器(ADC0809)转换成数字信号输入主机。
为了稳定在设定好的温度值,需增加PID调节功能,并利用反馈回路不断调整控制量。
其框图如下:
已知被控对象的传递函数Gc(S)可简化为:
,根据对最少拍无差系
统的要求,G(z)的表达式为,D(z)的表达式为。
其温度控制系统的原理框图如图所示。
三、系统组成
本次设计采用的是8086微处理器,选择8255A可编程并行接口作为系统的扩展接口,8255A的通用性强,适应灵活,通过它CPU可直接与外设相连接。
本系统选用温度传感器AD590构成测温系统。
AD590是一种电压输入、电流输出型集成温度传感器,测温范围为-55℃~150℃,非线性误差在±0。
30℃,其输出电流与温度成正比,温度没升高1K(K为开尔文温度),输出电流就增加1uA。
其输出电流I=(273+T)uA。
本设计中串联电阻的阻值选用2KΩ,所以输出电压V+=(2730+10T)MV。
为满足系统输入模拟量进行处理的功能,对其再扩展一片DAC0809,以进行模拟—数字量转化。
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
是目前国内应用最广泛的8位通用A/D芯片。
为满足本次设计温度显示的需要,我们选择了8279芯片,INTEL8279芯片是一种通用的可编程的键盘、显示接口器件,单个芯片就能完成键盘键入和LED显示控制两种功能。
备注:
系统硬件接线应尽量以插接形式连接,这样便于多用途使用和故障的检查和排除。
四、设计内容
A\D590是AD公司生产的一种精度和线度较好的双端集成传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1uA最大电流的变化或1摄氏度等效误差。
图4-1给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路。
A\D590输出的电流I=(273+T)uA(T为摄氏温度)。
因此测量的电压V为(273+T)uA×10K=(2.73+T/100)V,为了将电压测量出来,又务必使电流I不分流出来。
使用电压跟随器使其输出电压V2等于V。
由于一般电源供应多器件之后,电源是带杂波的,因此使用稳压二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调至2.73V。
差动放大器其输出V0为(100K/10K)×(V2-V1)=T/10,如果现在为摄氏28℃,输出电压为2.8V。
输出电压接A\D转换器,那么A\D转换输出的数字量就和摄氏温度成线性比例的关系。
图4-1输出电流的基本温度敏感电路
温度控制部分
当PC6为高电平时,三极管导通,继电器吸合,向加热系统输出12V电压加热;反之,输入低电平,三极管截止,继电器断开,停止加热。
在图4-2中,二极管的作用是吸收继电器端开时产生的浪涌电压。
图4-2温度控制图
ADC0809与8255的连接
模拟输入通道地址A,B,C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换。
为了减少输入噪声其他通道直接接地。
ADC0809的数据线D0-D7与8255的PB0-PB7相连接。
其片选CS与8086的地址/数据总线AD14相连接。
图4-3ADC0809与8255的连接图
8086的可编程外设接口电路
8255的数据口D0-D7与CPU的6根控制线相连接,控制8255A内部的各种操作。
控制线RESET用来使8255A复位。
CS和地址线A1及A0用于芯片选择和通道寻址。
图4-48086的可编程外设接口电路图
数据显示部分
本设计中我们采用功能强大的可编程设置型显示器8279来对控制温度和实际温度进行显示。
显示可以是白炽灯,也可以是8段数码管,设计要求显示数值,因此我们采用结构简单、价格便宜的8段数码管。
8279显示功能介绍:
8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UTA0-3,0UTBO-3来刷新显示,显示器可以是白炽灯,也可以是8段数码管,显示RAM可以是16X8的形式,也可以构成两个16x4的RAM形式,显示RAM可由CPU进行读写,被读写的RAM字节地址由显示地址寄存器指示.显示地址寄存器保存当前CPU读或写的那个RAM地址,以及正显示着的那两个4位半字节的地址,读写地址由CPU命令编程,也可置为每次读写后地址自动加1的工作方式,在设置了正确的工作方式后,显示RAM可直接由CPU读出,半字节A和半字节B地址自动由8279更新,以适应由CPU送入的数据,A和B半字节可独立送入,也可作为一个字送入,随CPU所设置的工作方式而定。
电路工作原理:
AD转换器将转换结果由十六进制转换为十进制后分别存储在54H,55H,56H,57H,58H,59H.中。
8279连接一个74ls38译码器,经过译码再接6个8段数码管分别显示每个存储单元的内容。
图4-5数据显示图
系统硬件原理图
图4-6系统硬件原理图
软件程序的主循环框架
程序的主循环框架如图所示,在系统进行一系列的准备工作即初始化之后,程序就主循环,主循环的工作是进行采样时间控制、控制测量过程、LED显示循环、按键并且处理、数据查表处理、线性插值、数据显示,然后周而复始地进行主循环程序。
在主程序循环的过程中随时响应按键中断,进入校准程序。
主程序逻辑图
程序:
ORG0000H
LJMPSTART
START:
MOVDPTR,#0CFA0H
MOVX@DPTR,A
MOVR0,#0FFH
LOOP1:
DJNZR0,LOOP1;延时,等待转换完毕
MOVXA,@DPTR
MOV75H,A
MOVDPTR,#0CFA1H
MOVX@DPTR,A
MOVR0,#0FFH
LOOP2:
DJNZR0,LOOP2;延时,等待转换完毕
MOVXA,@DPTR
MOV74H,A
MOVR3,75H
LCALLZHUA
MOVR1,76H
DISP:
MOVA,R1;从R1中取计算结果
SWAPA;分离高四位和低四位
ANLA,#0FH;并依次存放在50H到51H中
MOV50H,A
MOVA,R1
ANLA,#0FH
MOV51H,A
MOVR3,74H
LCALLZHUA
MOVR2,76H
DISP2:
MOVA,R2;从R2中取转换结果
SWAPA;分离高四位和低四位
ANLA,#0FH;并依次存放在52H到53H中
MOV52H,A;52H,53H在中分别存放的是实际温度值的
MOVA,R2;十六进制的高位和低位
ANLA,#0FH
MOV53H,A
XIANSHI:
MOVR4,50H
MOVR5,51H
LCALLZHUAN
MOV54H,R4
MOV55H,R5
MOV56H,R6
MOVR4,52H
MOVR5,53H
LCALLZHUAN
MOV57H,R4
MOV58H,R5
MOV59H,R6
MOVDPTR,#0CFE9H;写显示RAM命令字
MOVA,#90H
MOVX@DPTR,A
MOVR0,#54H;存放转换结果地址初值送R0
MOVR1,#06H
MOVDPTR,#0CFE8H
DL0:
MOVA,@R0
ACALLTABLE;转换为显码
MOVX@DPTR,A;送显码输出
INCR0
DJNZR1,DL0
SJMPDEL1;延时一段时间使显示更稳定
TABLE:
INCA
MOVCA,@A+PC
RET
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
DEL1:
MOVR0,#255
DEL2:
MOVR1,#255
DEL3:
DJNZR1,DEL3
DJNZR0,DEL2
BIJIAO:
MOVA,50H
CJNEA,52H,AA
MOVA,51H
CJNEA,53H,AA
SJMPBB
AA:
JNCCC
BB:
SETBP1.1
SJMPDD
CC:
CLRP1.1
DD:
LJMPSTART;返回主程序
ZHUA:
MOVA,R3;R3中装着带计算的数据
MOVB,#51;用了60H,61H,62H,63H,R3,R7
DIVAB
MOV7AH,A;个位数放入60H
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,LOPP1
ADDA,#5
LOPP1:
MOV79H,A;小数后第一位放入61H
MOVA,79H
MOVB,#02
MULAB
MOV78H,A
MOVA,7AH
MOVB,#20
MULAB
MOVR7,78H
ADDA,R7
MOV77H,A;63H中存放的是乘除法的计算结果
MOVA,#100
MOVR7,77H
SUBBA,R7
MOV76H,A
RET
ZHUAN:
CLRA;用了R4,R5,R6
CJNER4,#00H,LOP1;R4为十六进制中高位,R5为十六进制中低位
SJMPLOP2;R4,R5,R6为十进制的百位,十位,个位
LOP1:
ADDA,#10H
DJNZR4,LOP1
LOP2:
ADDA,R5
MOVB,#64H
DIVAB
MOVR4,A;存放百位
MOVA,B
MOVB,#0AH
DIVAB
MOVR5,A;存放十位
MOVR6,B;存放个
RET
END
系统调试
首先我在计算机上对软件进行了编译调试,运行成功后,与连接好的硬件电路结合,利用万用表、示波器等仪器对电路各功能模块进行了检测,最终达到了我们所希望得到的功能。
在调试过程中也出现了一些问题,记录如下:
1、数码管显示的数据始终不变,后来发现是由于将AD转换器的入口地址写错了,虽然软件单独运行没有错,但是在硬件电路上不能正常使用。
2、数码管能够正常控制的温度值,但是将电位器从右至左调节,温控模块上HEART登始终不亮,而理论上当电位器调节到一定值时,此灯应该由不亮变为亮,显示温箱开始加热。
经检查,主程序在最后对控制温度和实际温度进行比较的过程中对两种情况采取了相同的行动,使得系统不能达到应有的要求,通过对程序的修改,解决了这个问题。
最终该系统能较好的通过调节电位器对温箱温度进行控制,并且能实现实际温度与控制温度的数码显示。
五、总结
经过学习与实践,我顺利完成了温度控制系统的设计。
我总结了以下几点收获:
1、首先是对所学知识得到了进一步的巩固,对A/D转换器进行多路转换、8086各引脚功能及如何扩展外部芯片时三总线的连接等知识更加熟悉了。
2、经过各种途径的查资料,了解了很多没学过的新知识,比如温度采集模块的应用。
这些都是我们在生活中应用很多的器件,而在课堂上不一定会学到,我们在平时学习生活中应该多查找相关资料,以此来充实自己。
3、设计过程中我也参与了编程,虽然中间都没能一次成功,但是经过调试修改,最后还是实现了要求的功能,这让我对编程的兴趣又增加了不少,但是也发现了自己很多的不足,对流程图的编写不够熟练应此也不能很清晰的编写程序,容易出现一些逻辑上的错误。
这让我又一次意识到多实践的重要性,电气专业的我们,更加需要多多动手操作。
6、张敏老师在教室或是实验室督促我们,真的是很负责任的老师,这也让我们更加觉得应该付出更多的努力去对待这次的课程设计。
虽然课设已经结束了,但是我们要学的还有很多,在以后的学习生活中。
我一定要多多锻炼自己的动手能力,不断学习知识来武装自己。
六、参考资料
[1]赖寿宏观.微型计算机控制技术[M].机械工业出版社,2007.6
[2]杨素行等.MCS-51微型计算机系统原理及应用,清华大学出版社,1995
[3]胡汉才.微机原理其接口技术.北京:
清华大学出版社,2004.14~62
[4]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].清华大学出版社,1991.6
课程设计任务书、指导书
课程设计题目:
基于8086的简单温控系统设计
Ⅰ.课程设计任务书
一、课程设计的内容和要求(包括原始数据、技术要求、工作量)
利用《微型计算机控制技术》课程中所学的Intel8086为CPU的16位微型计算机系统及其主要的可编程接口芯片微型计算机控制技术8255A、DAC0832等设计简单的温控单元。
输入是数字量后,用数模转换器DAC0832改变输出电压大小,从而控制加热温度。
为了稳定在设定好的温度值,需增加PID调节功能,并利用反馈回路不断调整控制量。
其框图如下:
已知被控对象的传递函数Gc(S)可简化为:
,根据对最少拍无差系统的要求,设计出D(z)的表达式
设计要求:
1)在对D/A转换设计的过程中,通过编程使DAC0832输出对应从0V到+5V的电压,达到控制电加热部件功率的作用。
2)设计电压转换部分的硬件电路,自定义端口地址,并绘出相应的地址接线图(包括8086、DAC0832及必要的译码电路等);
3)推导D(z)的传递函数据。
4)完成系统的软件设计,设计流程图;
二、课程设计参考资料
[1]赖寿宏观.微型计算机控制技术[M].机械工业出版社,2007.6
[2]杨素行等.MCS-51微型计算机系统原理及应用,清华大学出版社,1995
[3]胡汉才.微机原理其接口技术.北京:
清华大学出版社,2004.14~62
[4]沈美明,温冬婵.IBM-PC汇编语言程序设计[M].清华大学出版社,1991.6
Ⅱ.课程设计指导书
一、课程设计要点、设计步骤
1)分析系统实现的功能,从总体上把握系统设计的思路和方法,不能
盲目地行动;
2)按照预想思路,正确地设计出接口电路原理图,要求用PROTEL绘图
软件绘制电路图,并注明器件的名称和管脚;
3)正确运用所给器件布线,搭接硬件电路;
4)选用汇编语言编写主程序以及各芯片调试子程序,要求:
a)界面友好、操作方便;
b)实现功能要求;
c)功能模块应有详细注释。
写出完整的课程设计总结报告,并按时提交。
二、主要技术关键的分析、解决思路
1)A/D转换部分:
学生应该掌握DAC0832的使用方法;掌据寻址及译码器的使用方法。
2)掌握数字控制器的直接设计方法,了解最少拍无差系统的设计方法。
3)硬件电路设计:
掌握Protel软件的使用方法,能利用该软件设计系统硬件,并能正确地作出系统硬件图。
4)汇编语言编程能力及方法:
学生应该掌握利用计算机语言编写程序的思路;能够熟练地应用汇编语言编写常用的功能程序。
5)文字处理:
学生应该熟练使用MicrosoftOffice软件,能书写出规范工整的课程设计说明书。
三、课程设计进度安排
起迄日期
工作内容
2012/5/21--20121/5/24
收集资料
2012/5/24--2011/5/28
系统设计
2012/5/28-2011/6/3
调试
2012/6/8
交设计,答辩