空调温度设计.docx
《空调温度设计.docx》由会员分享,可在线阅读,更多相关《空调温度设计.docx(25页珍藏版)》请在冰豆网上搜索。
空调温度设计
课程设计报告
题目空调温度控制系统设计
课程名称微机原理及应用
院部名称
专业M电气工程及其自动化
班级M11电气工程及其自动化
学生姓名朱
学号1121408019
课程设计地点工科楼B403
课程设计学时20
指导教师
金陵科技学院教务处制
摘要
运用了8086CPU芯片以及8255芯片和显示器等辅助硬件电路,进行了空调恒温控制实验的设计。
用Proteus进行了画图,并编写了源程序。
该空调具有可以用键盘设定恒温温度,当外界温度超过设定温度+/-2℃时,就要启动加热或致冷电机功能,并且通过定义键盘的数字设定恒温温度。
关键词:
可调空调温度系统;8086;AD0809转换;数码管显示;
一、设计任务与要求…………………………………………………………………………4
二、总体设计方案与说明……………………………………………………………4
三、系统硬件部分设计………………………………………………………………………5
3.18086微处理器的工作原理………………………………………………………5
3.274LS373锁存器工作原理………………………………………………………6
3.274LS138译码器工作原理………………………………………………………7
3.48255芯片的工作原理……………………………………………………………8
3.5LED显示器的工作方式…………………………………………………………8
3.6键盘及其工作原理…………………………………………………………10
3.7ADC0809A/D转换器…………………………………………………………10
3.8总电路原理………………………………………………………………………11
四、系统软件部分设计……………………………………………………………………13
4.1系统软件流程图…………………………………………………………………13
4.2LED显示子程序……………………………………………………………………14
4.3键盘扫描子程序…………………………………………………………………15
4.4A/D采样子程序……………………………………………………………………16
4.5源程序……………………………………………………………………………16
五、系统调试………………………………………………………………………………23
六、课程设计体会…………………………………………………………………………24
七、参考文献……………………………………………………………………………24
附录1实物图………………………………………………………………………………25
一、设计任务与要求
1.设计任务:
根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识点的理解,使学生综合应用知识能力、设计能力、调试能力及报告撰写能力等显著提高。
了解闭环控制的基本原理,熟悉A/D变换原理和编程方法,掌握键盘扫描和LED显示原理和编程方法。
2.设计要求:
1)给出系统设计方案;画出硬件连线图,并说明工作原理;
2)画出程序框图并编写程序完成如下功能:
能采集并显示当前温度值;
能用键盘设定恒温温度;
当外界温度高于或低于设定温度2℃时,就要启动加热或致冷装置。
二、总体设计方案与说明
本设计由以下四部分组成:
8255硬件、模数转换系统、显示模块、键盘输入,温度传感器用电位器代替,调节温度,通过A/D转换器输入CPU,利用8255的PA0,PA1两个端口接LED分别模拟电机加热和制冷,用键盘控制8255生中断。
在8255中断处理程序中,当需要调节恒温温度时,通过外设键盘调节所需的恒温温度,通过LED显示恒温温度。
系统工作框图如下:
图1系统框图
如图2其原理图所示
三、系统硬件部分设计
3.18086微处理器
8086微处理器是16位机,16位微处理器比8位微处理器有更大的寻址空间、更强的运算能力、更快的处理速度和更完善的指令系统。
16位微处理器比8位微处理器有更大的寻址空间、更强的运算能力、更快的处理速度和更完善的指令系统。
芯片引脚为40根,20根地址线,16根数据线,其最大的地址空间为1MB。
8086从功能上来说可以分成两个大部分,总线接口单元BIU和执行单元EU。
BIU:
负责与存储器或I/O接口交换信息,即8086与存储器或I/O接口之间的信息传送,都是由BIU负责进行的,即:
(1)BIU从内存的指定部分取出指令,送到指令队列排队。
(2)取出执行指令时所需的操作数,送至EU部分。
EU:
负责指令的执行。
特点:
将CPU分为两个单元,可以使取指令和执行指令同进行,减少了CPU为取指令而等待的时间,从而提高了CPU的利用率,提高了系统的运行速度。
8086微处理器的引脚功能可分3部分:
地址总线、数据总线、控制总线。
(1)地址/数据总线AD15-AD0
AD15-AD0:
地址/数据复用引脚,双向,三态。
地址/数据总线分时复用。
在总线周期开始时(T1),用作地址总线的16位,给出内存单元的地址;其他时间为数据总线,用于数据传输。
(2)地址/状态总线A19/S6-A16/S3
A19/S6-A16/S3:
地址/状态总线复用引脚,输出,三态。
A19-A16:
输出访问存储器的20位地址的高4位地址A19-A16。
8086的20条地址线访问存储器时可寻址1MB内存单元;访问外部设备时,只用16条地址A15-A0,可寻址64K个I/O端口。
图28086CPU
3.274LS373锁存器工作原理:
八D锁存器(3S,锁存允许输入有回环特性)
简要说明:
373为三态输出的八D透明锁存器,共有54S373和74LS373两种线路
结构型式,其主要电器特性的典型值如下(不同厂家具体值有差别):
型号tPdPD
54S373/74S3737ns525mW
54LS373/74LS37317ns120mW
373的输出端O0~O7可直接与总线相连。
当三态允许控制端OE为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,O随数据D而变。
当LE为低电平时,O被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
引出端符号:
D0~D7数据输入端
OE三态允许控制端(低电平有效)
LE锁存允许端
O0~O7输出端
图373LS373
3.374LS138译码器工作原理:
74LS138为3线-8线译码器,共有54/74S138和54/74LS138两种线路结构型式。
其工作原理如下:
⑴当一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
比如:
A2A1A0=110时,则Y6输出端输出低电平信号。
⑵利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
⑶若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
⑷可用在8086的译码电路中,扩展内存
图474LS138
3.4编程并行输入/输出接口芯片8255A
8255A主要功能;
(1)接受外部的中断请求;
(2)作为输入输出端口。
8255A是Intel公司生产的一种可编程并行输入/输出接口芯片。
它的通用性强,可以方便地和微机连接,用来扩展输入/输出口。
8255A有3个8位并行端口,根据不同的初始化编程,可以分别定义为输入或输出方式,以完成CPU与外设的数据传送。
8255A采用40脚双列直插式封装,引脚信号图如图3所示。
与外设连接的引脚为PA7~PA0、PB7~PB0和PC7~PC0,与CPU连接的引脚为:
数据引脚:
D7~D0;复位输入:
RESET;片选信号:
CS;端口选择的地址信号:
A1和A0;读信号:
RD;写信号:
WR。
8255A内部结构如图4所示。
图8255A引脚信号图
3.5LED显示器
LED显示器有静态和动态两种工作方式。
当用PIC5X驱动八段管时,是用I/O方式驱动,所以,驱动方式开关拨到“外驱”方式,PB0~PB7接八段的A~H段,PC0~PC5接G0~G5。
当用LPC2103驱动时,用的是模拟总线方式,所以只需将八段管的KEY/LED_CS片选接到CS0即可。
段码输出
(0x004H)
位选通信号
(0x002H)
七段数码管的字型代码表如下表:
a
fb
g
ec
d
。
dp
显示字形
g
f
e
d
c
b
a
段码
0
0
1
1
1
1
1
1
3fh
1
0
0
0
0
1
1
0
06h
2
1
0
1
1
0
1
1
5bh
3
1
0
0
1
1
1
1
4fh
4
1
1
0
0
1
1
0
66h
5
1
1
0
1
1
0
1
6dh
6
1
1
1
1
1
0
1
7dh
7
0
0
0
0
1
1
1
07h
8
1
1
1
1
1
1
1
7fh
9
1
1
0
1
1
1
1
6fh
A
1
1
1
0
1
1
1
77h
b
1
1
1
1
1
0
0
7ch
C
0
1
1
1
0
0
1
39h
d
1
0
1
1
1
1
0
5eh
E
1
1
1
1
0
0
1
79h
F
1
1
1
0
0
0
1
71h
3.6键盘
一个6×4的键盘如图所示,向列扫描码地址(0X002H)逐列输出低电平,然后从行码地址(0X001H)读回。
如果有键按下,则相应行的值应为低,如果无键按下,由于上拉的作用,行码为高。
这样就可以通过输出的列码和读取的行码来判断按下的是什么键。
在判断有键按下后,要有一定的延时,防止键盘抖动。
地址中的X是由KEY/LEDCS决定,参见地址译码。
做键盘和LED实验时,需将KEY/LEDCS接到相应的地址译码上。
以便用相应的地址来访问。
例如将KEY/LEDCS信号接CS0上,则列扫描地址为08002H,行码地址为08001H。
列扫描码还可以分时用作LED的位选通信号。
6×4的键盘电路原理图
3.7ADC0809A/D转换器
ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
ADCO8O9的内部逻辑结构:
图6ADC0809的内部逻辑结构图
由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
3.8总电路原理
硬件接线图:
接线
连接孔1
连接孔2
1
AD_CS
CS2
2
IN0
电位器输出
3
8255_CS
CS0
4
PA0
L0
5
PA1
L1
6
KEY/LEDCS
CS1
系统图:
四、系统软件部分设计
4.1温度控制主程序框图
4.2LED显示子程序
4.3键盘扫描子程序
4.4A/D采样子程序
4.5源程序:
modeequ082h;方式0,PA,PC输出,PB输入
PortAequ8000h;PortA
PortBequ8001h;PortB
PortCequ8002h;PortC
CAddrequ8003h;控制字地址
ADPortequ0a000h;AD采样输入片选
CS273equ0a000h;控制输出片选
UPequ16h;Next
DOWNequ15h;Last
LowLimitequ10
HighLimitequ30
LowTempequ-40;A/D0
HighTempequ50;A/D255
Heatequ1;加热控制
Coolequ2;致冷控制
OUTBITequ09002h;位控制口
OUTSEGequ09004h;段控制口
IN_KEYequ09001h;键盘读入口
datasegment
LEDBufdb6dup(?
);显示缓冲
Numdb1dup(?
);显示的数据
DelayTdb1dup(?
)
CurTempdb1dup(?
)
SetTempdb1dup(?
)
PortABufdb1dup(?
)
LEDMAP:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
KeyTable:
;键码定义
db16h,15h,14h,0ffh
db13h,12h,11h,10h
db0dh,0ch,0bh,0ah
db0eh,03h,06h,09h
db0fh,02h,05h,08h
db00h,01h,04h,07h
dataends
codesegment
assumecs:
code,ds:
data
Delayprocnear
pushax;延时子程序
pushcx
moval,0
movcx,ax
loop$
popcx
popax
ret
Delayendp
DisplayLEDprocnear
movbx,offsetLEDBuf
movcl,6;共6个八段管
movah,00100000b;从左边开始显示
DLoop:
movdx,OUTBIT
moval,0
outdx,al;关所有八段管
moval,[bx]
movdx,OUTSEG
outdx,al
movdx,OUTBIT
moval,ah
outdx,al;显示一位八段管
pushax
movah,1
callDelay
popax
shrah,1
incbx
deccl
jnzDLoop
movdx,OUTBIT
moval,0
outdx,al;关所有八段管
ret
DisplayLEDendp
TestKeyprocnear
movdx,OUTBIT
moval,0
outdx,al;输出线置为0
movdx,IN_KEY
inal,dx;读入键状态
notal
andal,0fh;高四位不用
ret
TestKeyendp
GetKeyprocnear
movch,00100000b
movcl,6
KLoop:
movdx,OUTBIT
moval,ch;找出键所在列
notal
outdx,al
shrch,1
movdx,IN_KEY
inal,dx
notal
andal,0fh
jneGoon_;该列有键入
deccl
jnzKLoop
movcl,0ffh;没有键按下,返回0ffh
jmpExit1
Goon_:
deccl
shlcl,2;键值=列X4+行
movch,4
LoopC:
testal,1
jnzExit1
shral,1
inccl
decch
jnzLoopC
Exit1:
movdx,OUTBIT
moval,0
outdx,al
movch,0
movbx,offsetKeyTable
addbx,cx
moval,[bx];取出键码
movbl,al
WaitRelease:
movdx,OUTBIT
moval,0
outdx,al;等键释放
movah,10
callDelay
callTestKey
jneWaitRelease
moval,bl
ret
GetKeyendp
;===================================
DisplayResultprocnear
moval,CurTemp
testal,80h
jzGE0
movLEDBuf,40h;'-'
decal
notal
jmpGoon
GE0:
movLEDBuf,0;''
Goon:
movcl,10
movah,0
divcl
movbl,al
movbh,0
addbx,offsetLEDMAP
moval,[bx]
movLEDBuf+1,al
movbl,ah
movbh,0
addbx,offsetLEDMAP
moval,[bx]
movLEDBuf+2,al
movLEDBuf+3,0;''
moval,SetTemp
movah,0
movcl,10
divcl
movbl,al
movbh,0
addbx,offsetLEDMAP
moval,[bx]
movLEDBuf+4,al
movbl,ah
movbh,0
addbx,offsetLEDMAP
moval,[bx]
movLEDBuf+5,al
ret
DisplayResultendp
ReadADprocnear
movdx,ADPort
moval,0
outdx,al
moval,60
rr:
decal;delay
jnzrr
movdx,ADPort
inal,dx
ret
ReadADendp
ReadTempprocnear
movbx,0
movcl,16
RLoop:
callReadAD
movah,0
addbx,ax
deccl
jnzRLoop
shrbx,4
movax,bx
movcl,HighTemp-LowTemp
mulcl
moval,ah;/256
addal,LowTemp
movCurTemp,al
ret
ReadTempendp
Startprocnear
movax,data
movds,ax
moval,mode
movdx,CAddr
outdx,al;输出控制字
movSetTemp,20
MLoop:
callTestKey
jneKeyPressed
callDisplayResult
callDisplayLED
callReadTemp
moval,SetTemp
decal
decal
cmpCurTemp,al
jgeGN2
orPortABuf,Heat
andPortABuf,notCool
jmpGN4
GN2:
moval,SetTemp
incal
incal
cmpCurTemp,al
jleGN3
orPortABuf,Cool
andPortABuf,notHeat
jmpGN4
GN3:
andPortABuf,not(Cool+Heat)
GN4:
movdx,PortA
moval,PortABuf
outdx,al
jmpMLoop
KeyPressed:
callGetKey
cmpal,DOWN
jneKey0
cmpSetTemp,LowLimit
jeKey1
decSetTemp
jmpKey1
Key0:
cmpal,UP
jneKey1
cmpSetTemp,HighLimit
jeKey1
incSetTemp
Key1:
jmpMLoop
startendp
codeends
endstart
五、系统调试
调试包括硬件调试、软件调试和样机调试。
软件的调试和硬件的调试都是独立进行的,软件部分包括数据采集子程序、数据处理子程序、显示子程序、键盘扫描子程序。
软件调试中需要用到的测量信号可以用仿真实验台上的电压信号进行模拟,而不需要进行硬件的连接。
同样硬件部分的调试也是不需要软件连接而独立进行的。
当软件调试和硬件调试都正确无误的时候,就可以进行连接调试,在调试中继续找出单独调试中无法指出的故障,反复进行修改软件、修改硬件设计的工作,直到所设计的空调显示数据与理想数据误差不大。
最后进行软件的固化与整机的组装工作。
硬件调试系统和软件调试系统。
其中硬件调试系统主要是《CSY—2000传感器与检测技术试验台》和单片机实验箱(含A/D转换),其中单片机实验箱(含A/D转换)提供了单片机、A/D转换、LED显示器,电位器模拟温度变化。
六、课程设计体会
经过为期一周的课程设计,使我学到很多东西。
这次课程设计是一次综合性质的实验,它让我更加深刻地了解闭环控制的基本原理,进一步熟悉A/D变换原理和编程方法,进一步了键盘扫描和LED显示原理