空调温度控制实验 2.docx

上传人:b****7 文档编号:9224088 上传时间:2023-02-03 格式:DOCX 页数:13 大小:107.48KB
下载 相关 举报
空调温度控制实验 2.docx_第1页
第1页 / 共13页
空调温度控制实验 2.docx_第2页
第2页 / 共13页
空调温度控制实验 2.docx_第3页
第3页 / 共13页
空调温度控制实验 2.docx_第4页
第4页 / 共13页
空调温度控制实验 2.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

空调温度控制实验 2.docx

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

空调温度控制实验 2.docx

空调温度控制实验2

空调温度控制实验报告

开课实验室:

电子楼50320011年12月

学院

物电学院

年级、专业、班

光信092班

姓名

成绩

课程名称

微机原理与接口实验

实验项目名称

空调温度控制

指导老师签名

一、实验目的

1.了解闭环控制的基本原理。

2.进一步熟悉A/D变换原理和编程方法。

3.进一步了键盘扫描和LED显示原理和编程方法。

二、实验原理

这是一个综合硬件实验,其中各部分实验已单独做过.现联合起来形成一个控制系统。

利用实验仪上显示电路,键盘电路,A/D变换电路,完成类似空调恒温控制实验,可以利用实验仪上的电位器模仿温度变化,加热和致冷电机可以用发光管代替。

要求可以用键盘设定恒温温度,当外界温度超过设定温度+/-2℃时,就要启动加热或致冷电机。

实验电路:

 

三、使用仪器、材料

1.伟福实验系统实验箱

2.装有伟福软件的计算机

四、实验步骤、实验过程原始记录及结果

步骤:

1.在实验箱断电的情况下连好线。

2.输入程序并检查,保存程序。

3.“编译”程序。

4.“全速执行”程序。

5.记录实验结果及分析。

框图:

温控控制主程序框图

源程序:

;T8.ASM

;空调恒温控制实验

modeequ082h;8255工作方式0,PA/PC输出,PB输入1000,0010

PORTAequ08000h

CTLequ08003h

OUTBITequ09002h;位控制地址

OUTSEGequ09004h;段控制口

INequ09001h

LEDBufequ60h;显示缓冲区

ORG0000H

ljmpStart

LEDMAP:

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

Delay:

movr7,#0;延时

DelayLoop:

djnzr7,DelayLoop

djnzr6,DelayLoop

ret

DisplayLED:

;显示

movr0,#LEDBuf

movr1,#6

movr2,#00100000b

Loop:

movdptr,#OUTBIT

mova,#0

movx@dptr,a

mova,@r0

movdptr,#OUTSEG

movx@dptr,a

movdptr,#OUTBIT

mova,r2

movx@dptr,a

movr6,#1

callDelay

mova,r2

rra

movr2,a

incr0

djnzr1,Loop

movdptr,#OUTBIT

mova,#0

movx@dptr,a

ret

TestKey:

;检测按键

movdptr,#OUTBIT

mova,#0

movx@dptr,a

movdptr,#IN

movxa,@dptr

cpla

anla,#0fh

ret

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

GetKey:

movdptr,#OUTBIT;求键码

movP2,dph

movr0,#Low(IN)

movr1,#00100000b

movr2,#6

KLoop:

mova,r1

cpla

movx@dptr,a

cpla

rra

movr1,a

movxa,@r0

cpla

anla,#0fh

jnzGoon1

djnzr2,KLoop

movr2,#0ffh

sjmpExit

Goon1:

movr1,a

mova,r2

deca

rla

rla

movr2,a;r2=(r2-1)*4

mova,r1

movr1,#4

LoopC:

rrca

jcExit

incr2

djnzr1,LoopC

Exit:

mova,r2

movdptr,#KeyTable

movca,@a+dptr

movr2,a

WaitRelease:

movdptr,#OUTBIT

clra

movx@dptr,a

movr6,#10

callDelay

callTestKey

jnzWaitRelease

mova,r2

ret

;================================

UPequ16h;Next键的键码值

DOWNequ15h;Last键的键码值

LowLimitequ10;温度上限

HighLimitequ30;温度下限

LowTempequ-40;A/D=0

HighTempequ50;A/D=255

ADPortequ0a000h;A/D片选信号接CS2

Heatequ1;加热口线PA0=1

Coolequ2;制冷口线PA1=1

SetTempequ50h;设定温度

CurTempequ51h;当前温度

DisplayResult:

;当前温度和设定温度送显示缓冲

mova,CurTemp

jnbacc.7,GE0;如果当前温度低于零度,符号位显示缓冲区置'-'

movLEDBuf,#40h;g=1,其他笔画=0,'-'

deca;求负温的绝对值

cpla

jmpGoon

GE0:

movLEDBuf,#0;如果当前温度不低于零度,符号位显示缓冲区置''

Goon:

movb,#10;当前温度十位数送显示缓冲区

divab

movdptr,#LEDMAP

movca,@a+dptr

movLEDBuf+1,a

mova,b;当前温度个位数送显示缓冲区

movca,@a+dptr

movLEDBuf+2,a

movLEDBuf+3,#0;当前温度与设定温度之间置''

mova,SetTemp;设定温度送显示缓冲区

movb,#10

divab

movca,@a+dptr

movLEDBuf+4,a

mova,b

movca,@a+dptr

movLEDBuf+5,a

ret

 

ReadAD:

movdptr,#ADPort;读A/D结果送a

clra

movx@dptr,a;startA/D

mova,#0

djnzacc,$;delay

movxa,@dptr

ret

ReadTemp:

;读当前温度CurTemp

;CurTemp=16次ADC采样之平均数*(HighTemp-LowTemp)/256+LowTemp;

movr1,#0

movr2,#0

movr0,#16;采样计数器

RLoop:

callReadAD;16次ADC采样之和高位送r1,低位送r2

adda,r2

movr2,a

jncGN1

incr1

GN1:

djnzr0,RLoop

mova,r2;a=r1r2/16

swapa

anla,#0fh

xcha,r1

swapa

anla,#0f0h

orla,r1

movb,#(HighTemp-LowTemp);16次ADC采样之平均数*(HighTemp-LowTemp)

mulab

mova,b;保留积的高8位,丢弃低8位,相当于/256

adda,#LowTemp

movCurTemp,a

ret

 

Start:

movsp,#70h

mova,#mode;设置8255工作方式,PA,PC输出,PB输入

movdptr,#CTL

movx@dptr,a

movSetTemp,#20;置设定温度初值

MLoop:

callTestKey;检测按键

jnzKeyPressed;有按键转KeyPressed,修改设定温度

callDisplayResult;当前温度和设定温度送显示缓冲

callDisplayLED;显示当前温度和设定温度

callReadTemp;读入当前温度

mova,CurTemp

jbacc.7,LE0;当前温度<0时转LE0

clrc

movb,SetTemp;如果当前温度<设定温度-2,则开动加热电机

decb

decb

subba,b

jncGN2

LE0:

mova,#Heat;开动加热电机

movdptr,#PORTA

movx@dptr,a

sjmpGN4

GN2:

mova,CurTemp;如果当前温度>设定温度+2,则开动致冷电机

setbc

movb,SetTemp

incb

incb

subba,b

jcGN3

mova,#Cool;开动致冷电机

movdptr,#PORTA

movx@dptr,a

sjmpGN4

GN3:

mova,#0;在设定温度+/-2度内,无需开动电机

movdptr,#PORTA

movx@dptr,a

GN4:

sjmpMLoop

KeyPressed:

;修改设定温度

callGetKey;求键码

movb,a

xrla,#DOWN;按键为LAST键,且设定温度≠LowLimit时,设定温度-1

jnzKey0

mova,SetTemp

xrla,#LowLimit

jzKey1

decSetTemp

sjmpKey1

Key0:

mova,b;按键为next键,且设定温度≠HighLimit时,设定温度+1

xrla,#UP

jnzKey1

mova,SetTemp

xrla,#HighLimit

jzKey1

incSetTemp

Key1:

sjmpMLoop

end

五、结果分析:

用LAST和NEXT键设定恒定温度,用温度采样器可改变外界温度,空调进行加热或制冷可由LED灯显示。

六、参考资料

1、《微机原理实验指导书》

2、《单片机技术及工程实践》

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

当前位置:首页 > 小学教育 > 英语

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

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