空调温度设计.docx

上传人:b****6 文档编号:5679923 上传时间:2022-12-31 格式:DOCX 页数:25 大小:384.27KB
下载 相关 举报
空调温度设计.docx_第1页
第1页 / 共25页
空调温度设计.docx_第2页
第2页 / 共25页
空调温度设计.docx_第3页
第3页 / 共25页
空调温度设计.docx_第4页
第4页 / 共25页
空调温度设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

空调温度设计.docx

《空调温度设计.docx》由会员分享,可在线阅读,更多相关《空调温度设计.docx(25页珍藏版)》请在冰豆网上搜索。

空调温度设计.docx

空调温度设计

课程设计报告

 

题目空调温度控制系统设计

课程名称微机原理及应用

院部名称

专业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显示原理

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

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1