1 设计思路
1.1 设计原理
本次课程设计的内容为模拟热水器温度控制系统设计与实现。利用AD0809芯片将模拟量的温度转换为数字量,然后将AD采样到的结果进行制式的转换并将结果显示在数码管上。采样的结果与设定的温度限值进行比较,若超温了则让超温指示灯亮。根据需要,需选择的芯片有AD0809 A/D变换芯片,8255可编程并行接口。
通过应用模数转换器ADC0809将从模拟电阻上采集的数据通过端口IN0输入,在A/D的转换下,获得8位二进制的数字量(D7—D0),然后输入到8088系统总线上,进而输入到可编程并行接口8255上,选择工作方式0方式,把数据输入到七段数码管上,然后显示出数字信息。同时应用比较程序,设定温度值。
如果在小于30值时则使8255C输出00FH值信号让显示灯始终,显示绿色,表示温度过低。
如果温度超过100值则使8255C口输出0F0H值信号让显示灯提示,显示红色灯,表示温度过高。
如果温度在30至100以内则使8255C口无输出信号让显示灯熄灭,表示温度在正常范围内。
1.2 设计环境及设备
PC机一台、windows 98系统、实验箱,导线若干。
8255并口:用做接口芯片,与数码管相连。
ADC0809:用于将模拟量转化为数字量。
数码管:三个LED用于分别显示百十个位的温度值。
LED:用作警报灯,大体表示是否当前值在安全范围内。
1.3 设计框图
图1.1 设计系统框图
2 设计流程图
2.1 主程序流程图
图2.1 主程序流程图
2.2 主要程序流程图
图2.2 分离并显示百十个位程序流程图
3 设计所用芯片
3.1 8086简介
由于此系统最终要在西安唐都科教仪器出品的32位微机教学实验系统TD-PITE/PITC上进行实验,故设计硬件配置时采用Intel8086,整个实验的硬件配置都以此为原则进行设计选用。Intel8086是16位的微处理器(理论学习中为8088,其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB。
3.1.1 8086主要特性
Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:
(1) 8086CPU数据总线为16位,8088CUP数据总线为8位。
(2) 地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。
(3) 有16位的端口地址,可以寻址64KB的I/O端口。
(4) 有99条基本指令,指令功能强大。
(5) 有9种基本寻址方式。
(6) 可以处理内部和外部中断,外部中断源多达256个。
(7) 兼容性好,与80*86,8085在源程序一级兼容。
(8) 8086/8088标准主频为5MHz,8086/8088-2主频为8MH。
(9)支持单处理器或多处理器系统工作。
3.1.2 8086CPU寄存器结构
8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器。
通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数。
指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。段寄存器包括:代码段寄存器CS,数据段寄存器DS,附加段寄存器ES,堆栈段寄存器SS。
3.2 8255简介
8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图6-4所示:
图3.1 8255内部结构及引脚
具体的各引脚功能如下:
D0~D7为双向数据信号线,用来传送数据和控制字。
RD为读信号线,与其它信号线一起实现对8255接口的读操作通常接系统总线的IOR信号。
WR为写信号线,与其它信号一起实现对8255的写操作,通常接系统总线的IOW。
CS为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作。
A0,A1为口地址选择信号线。8255内部有3个口;A口,B口,C 口,还有一个控制寄存器,它们可由程序寻址。A0,A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如下:
表3.1 8255的寻址方式
通常 A0,A1分别接系统总线A0和 A1,它们与CS一起来决定8255的接口地址。
RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口,B口,C 口均被定为输入状态。
PA0~PA7为A口的8条输入输出信号线。
PB0~PB7为B口的8条输入输出信号线。
PC0~PC78条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。
8255 可编程外围接口芯片是 InTEL 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255 工作方式控制字和C口按位置位/复位控制字格式如图3.2所示:
图3.2 置位/复位控制字格式
8255的寻址:8255占外设编址的4个地址,即A口,B口,C口和控制寄存器各占一个外设接口地址。对同一个地址分别可以进行读写操作。例如,读A口可将A口的数据读出;写A口可将CPU的数据写入A口并输出
表 3.2 在方式0下,8255的16种输入输出组合
3.3 ADC0809主要功能
ADC0809具有8个通道的模拟输入线(IN0~IN7),可在程序控制下对任意通道进行A/D转换,获得8位二进制数字量(D7~D0)。模拟输入部分有8路多路开关,可由3位地址输入ADDA、ADDB、ADDC的不同组合来选择,ALE为地址锁存信号,高电平有效,锁存这三条地址输入信号。主体部分是采用逐次逼近式的A/D转换电路,由CLK控制的内部电路的工作,START为启动命令,高电平有效,启动ADC0809内部的A/D转换,当转换完成,输出信号EOC有效,OE为输出允许信号,高电平有效,打开输出三态缓冲器,把转换后的结果送DB。ADC0809的内部结构和引脚如图3.3所示:
图3.3 内部结构和引脚
ADC0809的一个显著特点是,其芯片内部集成了一个8选1的模拟门,且利用ADDA~ADDC 三个信号的编码来选择相应的模拟输入。由于ADC0809输出数字信号是经由OE控制的三态门完成的,故ADC0809可以直接与系统总线连接,占用8个接口地址。它也可以像AD574那样经可编程并行接口8255与总线连接。工作过程:
1、当模拟量送至某一输入通道INi后,CPU将标识该通道编码的三位地址信号经数据线或地址线输入到ADDC、ADDB、ADDA引脚上。
2、地址锁存允许ALE锁存这三位地址信号,启动命令START启动A/D转换。
3、转换开始,EOC变低电平,转换结束,EOC变为高电平。EOC可作为中断请求信号。转换结束后,可通过执行IN指令,设法在输出允许OE脚上形成一个正脉冲,打开三态缓冲器把转换的结果输入到DB,一次A/D转换便完成了。
3.4 七段LED显示器及其接口
七段LED显示器:由七个发光段构成,每段均为1个LED二极管。通过控制不同段的点亮和熄灭,显示出16进制数字或字符。
七段LED显示器有共阳极和共阴极两种结构,如图6-3所示的七段LED实际上包含8个LED(7段字形加上小数点DP)。
1位LED显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。
图3.4七段LED显示器
4 模拟热水器温控系统硬件接线图
图4.1 模拟热水器硬件接线图
5 源程序清单及注释
MY8255_A EQU 0600H
MY8255_B EQU 0602H
MY8255_C EQU 0604H
MY8255_CON EQU 0606H
SSTACK SEGMENT STACK
DW 16 DUP(?)
SSTACK ENDS
DATA SEGMENT
DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
VALUE DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:SSTACK
START:
MOV AX,DATA ;初始化数据段
MOV DS,AX
MOV AL,80H ;确定A,B端口输出
MOV DX,MY8255_CON ;初始化8255
OUT DX,AL
LP: MOV DX, 640H ;ADC0809采集数据
OUT DX, AL
CALL ADDLY ;调用ADDLY函数
IN AL, DX
MOV VALUE, AL
MOV SI,1000 ;
MOV AH,00H
MOV BL,100 ;分离百位数
DIV BL ;数字量除以100
MOV [SI],AL ;获得百位数
MOV AL,AH
MOV AH,00H
MOV BL,10 ;分离十位数
DIV BL ;得到的余数除以十
MOV [SI+1],AL ;获得十位数
MOV [SI+2],AH ;获得个位数
MOV BX,OFFSET DTABLE ;显示部分
MOV DI,0000H
MOV AL,[SI] ;百位数的显示
AND AX,00FFH
ADD BX,AX ;百位数在16位键盘上偏移
MOV AL,[BX]
MOV DX,MY8255_A
OUT DX,AL
MOV AL,0FBH
MOV DX,MY8255_B
OUT DX,AL
CALL DISPDLY
MOV BX,OFFSET DTABLE
MOV AL,[SI+1] ;十位数的显示
AND AX,00FFH
ADD BX,AX
MOV AL,[BX]
MOV DX,MY8255_A
OUT DX,AL
MOV AL,0FDH
MOV DX,MY8255_B
OUT DX,AL
CALL DISPDLY
MOV BX,OFFSET DTABLE
MOV AL,[SI+2] ;个位数的显示
AND AX,00FFH
ADD BX,AX
MOV AL,[BX]
MOV DX,MY8255_A
OUT DX,AL
MOV AL,0FEH
MOV DX,MY8255_B
OUT DX,AL
CALL DISPDLY
MOV AL,value ;报警部分
CMP AL,64H ;设定高温为100℃
JNC A5 ;启动子程序A5,LED红灯亮
MOV BX,00h
MOV AX,BX
MOV DX,MY8255_C
OUT DX,AX
MOV AL,VALUE
CMP AL,1Eh ;设定低温为30℃
JL B1 ;启动子程序B1,LED绿灯亮
JMP LP
A5: MOV DX,MY8255_C ;大于100度报警
MOV BX,0Fh ;设定LED亮灯地址
MOV AX,BX
OUT DX,AX
JMP LP
B1: MOV DX,MY8255_C ;小于30度报警
MOV BX,0F0h
MOV AX,BX
OUT DX,AX
JMP LP
ADDLY: PUSH CX ;延迟部分
PUSH AX
MOV CX, 050H
A6: MOV AX, 050H
A7: DEC AX ;AX自减一
JNZ A7
LOOP A6
POP AX
POP CX
RET
DISPDLY: PUSH CX
MOV CX,000AH
T1: MOV AX,00FFH
T2: DEC AX
JNZ T2
LOOP T1
POP CX
RET
CODE ENDS
END START
总 结
课程设计是培养学生动手和动脑能力的一种重要方式。在设计中发现,提出,分析和解决实际问题,也是对学生对所学的书本知识的一种检验,以及对实际工作能力的具体训练和考察过程。在当今社会,计算机已变得无处不在,能够熟练地运用计算机将是为自己将来的工作加重了一个不可限量的砝码,因此作为新世纪的大学来说掌握计算机技术将是十分重要的。
回顾这一周的课程设计,我感慨颇多,从拿到题目到完成整个编程,从理论到实践,在一周的时间里,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在设计过程中,我曾经遇到过很大的困难,不得不认真查找问题的所在,但经过多次地调试与运行后终于成功地解决了问题。这次课程设计的成果要感谢老师悉心的指导和同学们的帮助,我们每个人都尽心尽力完成自己的任务,遇到不懂的问题及时讨论,最终都能将自己不懂的问题搞懂,每个人都得到了不同程度的提高。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中还发现了自己的不足之处,那就是对一些学过的知识理解得不够深刻,掌握得不够牢固。在我的课设题目中要求做到将30-80℃分成8个档在LED上显示,但是因为我本人的知识还不够丰富,能力还不够强,我只能做到当温度超出额定值时发出警报。而这美中不足更让我对微机原理这门课有了更深的求知欲。
通过这一周的课程设计使我更加明确了日后的学习目标,那就是学东西一定要扎实,绝不能一知半解。这次课程设计使我受益匪浅,它所教会我的东西必将积极地影响我今后的学习。
致 谢
这一周的课程设计在忙碌中结束了,在这一周我要感谢我的指导老师曲老师和踪老师,因为两位老师的谆谆教导和答疑解惑,我才能顺利的完成这次设计。设计中遇到的各种疑难问题老师都对我进行了一一解答,通过老师的讲解我更深刻的了解了所学的知识,使我能更好的了解微机原理课程设计的步骤与方法,最终完成此次课程设计。
同时我还要感谢我们本组的同学,在设计中她也给了我还大的帮助。在我的设计出现问题时,她会及时的指出我的问题所在,并且在一起讨论最后找出解决方法;同时我们还一起讨论问题,互相交流心得,完成最后目标。
再次对给过我帮助的所有老师和同学们再次给予最由衷的感谢!
参考文献
[1] 王慧中. 微机原理及其应用. 武汉:武汉大学出版社,2011
[2] 邹逢兴. 微型计算机原理与接口技术实验指导. 北京:清华大学出版社,2009
[3] 赵全利,吕建平,邹雪艳. 微型计算机原理及接口技术. 北京:机械工业出版社,2009
[4] 何宏. 微型计算机原理与接口技术. 陕西:西安电子科技大学出版社,2009
目 录
摘要……………………..…………………………………………………………………………I
1 设计思路..................................................................................................................................... 1
1.1 设计原理........................................................................................................................... 1
1.2 设计环境及设备............................................................................................................... 1
1.3 设计框图........................................................................................................................... 2
2 设计流程图................................................................................................................................. 3
2.1 主程序流程图................................................................................................................... 3
2.2 主要程序流程图............................................................................................................... 4
3 设计所用芯片............................................................................................................................. 5
3.1 8086简介........................................................................................................................... 5
3.1.1 8086主要特性......................................................................................................... 5
3.1.2 8086CPU寄存器结构............................................................................................. 5
3.2 8255简介........................................................................................................................... 6
3.3 ADC0809主要功能.......................................................................................................... 8
3.4 七段LED显示器及其接口............................................................................................. 9
4 模拟热水器温控系统硬件接线图........................................................................................... 11
5 源程序清单及注释................................................................................................................... 12
总 结............................................................................................................................................. 16
致 谢............................................................................................................................................. 17
参考文献....................................................................................................................................... 18