空调温度控制实验-2_第1页
空调温度控制实验-2_第2页
空调温度控制实验-2_第3页
空调温度控制实验-2_第4页
空调温度控制实验-2_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、空调温度控制实验报告开课实验室:电子楼503 20011 年 12月 学院物电学院年级、专业、班光信092班姓名 成绩课程名 称 微机原理与接口实验实验项目名称空调温度控制指导老师签名一、实验目的1了解闭环控制的基本原理。 2进一步熟悉A/D变换原理和编程方法。 3进一步了键盘扫描和LED显示原理和编程方法。二、实验原理这是一个综合硬件实验,其中各部分实验已单独做过.现联合起来形成一个控制系统。利用实验仪上显示电路,键盘电路,A/D变换电路,完成类似空调恒温控制实验,可以利用实验仪上的电位器模仿温度变化,加热和致冷电机可以用发光管代替。要求可以用键盘设定恒温温度,当外界温度超过设定温度+/-2

2、时,就要启动加热或致冷电机。实验电路:三、使用仪器、材料1.伟福实验系统实验箱2.装有伟福软件的计算机四、实验步骤、实验过程原始记录及结果 步骤:1. 在实验箱断电的情况下连好线。2. 输入程序并检查,保存程序。3. “编译”程序。4. “全速执行”程序。5. 记录实验结果及分析。框图: 温控控制主程序框图源程序:;T8.ASM; 空调恒温控制实验mode equ 082h;8255工作方式0, PA/PC输出,PB输入1000,0010PORTA equ 08000hCTL equ 08003hOUTBIT equ 09002h; 位控制地址OUTSEG equ 09004h ; 段控制口I

3、N equ 09001hLEDBuf equ 60h;显示缓冲区 ORG 0000H ljmp StartLEDMAP: db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: mov r7, #0;延时DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop retDisplayLED:;显示 mov r0, #LEDBuf mov r1, #6 mov r2, #00100000bLoop: mov dptr, #OUTBIT

4、mov a, #0 movx dptr, a mov a, r0 mov dptr, #OUTSEG movx dptr, a mov dptr, #OUTBIT mov a, r2 movx dptr, a mov r6, #1 call Delay mov a, r2 rr a mov r2, a inc r0 djnz r1, Loop mov dptr, #OUTBIT mov a, #0 movx dptr, a retTestKey:;检测按键 mov dptr, #OUTBIT mov a, #0 movx dptr, a mov dptr, #IN movx a, dptr c

5、pl a anl a, #0fh retKeyTable: db 16h, 15h, 14h, 0ffh db 13h, 12h, 11h, 10h db 0dh, 0ch, 0bh, 0ah db 0eh, 03h, 06h, 09h db 0fh, 02h, 05h, 08h db 00h, 01h, 04h, 07hGetKey: mov dptr, #OUTBIT;求键码 mov P2, dph mov r0, #Low(IN) mov r1, #00100000b mov r2, #6KLoop: mov a, r1 cpl a movx dptr, a cpl a rr a mov

6、 r1, a movx a, r0 cpl a anl a, #0fh jnz Goon1 djnz r2, KLoop mov r2, #0ffh sjmp ExitGoon1: mov r1, a mov a, r2 dec a rl a rl a mov r2, a ; r2 = (r2-1)*4 mov a, r1 mov r1, #4LoopC: rrc a jc Exit inc r2 djnz r1, LoopCExit: mov a, r2 mov dptr, #KeyTable movc a, a+dptr mov r2, aWaitRelease: mov dptr, #O

7、UTBIT clr a movx dptr, a mov r6, #10 call Delay call TestKey jnz WaitRelease mov a, r2 ret; =UP equ 16h ; Next键的键码值DOWN equ 15h ; Last键的键码值LowLimit equ 10;温度上限HighLimit equ 30; 温度下限LowTemp equ -40 ; A/D= 0HighTemp equ 50 ; A/D= 255ADPort equ 0a000h; A/D片选信号接CS2Heat equ 1;加热口线PA0=1Cool equ 2;制冷口线PA1=

8、1SetTemp equ 50h;设定温度CurTemp equ 51h;当前温度DisplayResult:;当前温度和设定温度送显示缓冲 mov a, CurTemp jnb acc.7, GE0; 如果当前温度低于零度,符号位显示缓冲区置'-' mov LEDBuf, #40h ;g=1,其他笔画=0, '-' dec a;求负温的绝对值 cpl a jmp GoonGE0: mov LEDBuf, #0 ; 如果当前温度不低于零度,符号位显示缓冲区置' 'Goon: mov b, #10 ; 当前温度十位数送显示缓冲区 div ab mo

9、v dptr, #LEDMAP movc a, a+dptr mov LEDBuf+1, a mov a, b; 当前温度个位数送显示缓冲区 movc a, a+dptr mov LEDBuf+2, a mov LEDBuf+3, #0 ; 当前温度与设定温度之间置' ' mov a, SetTemp;设定温度送显示缓冲区 mov b, #10 div ab movc a, a+dptr mov LEDBuf+4, a mov a, b movc a, a+dptr mov LEDBuf+5, a retReadAD: mov dptr, #ADPort;读A/D结果送a cl

10、r a movx dptr, a ; start A/D mov a, #0 djnz acc, $ ; delay movx a, dptr retReadTemp: ;读当前温度CurTemp;CurTemp = 16次ADC采样之平均数 * (HighTemp-LowTemp) / 256 + LowTemp; mov r1, #0 mov r2, #0 mov r0, #16;采样计数器RLoop: call ReadAD;16次ADC采样之和高位送r1,低位送r2 add a, r2 mov r2, a jnc GN1 inc r1GN1: djnz r0, RLoop mov a,

11、 r2; a = r1r2/16 swap a anl a, #0fh xch a, r1 swap a anl a, #0f0h orl a, r1 mov b, #(HighTemp-LowTemp); 16次ADC采样之平均数 * (HighTemp-LowTemp) mul ab mov a, b ; 保留积的高8位,丢弃低8位,相当于/256 add a, #LowTemp mov CurTemp, a retStart: mov sp, #70h mov a, #mode; 设置8255工作方式,PA,PC输出,PB输入 mov dptr, #CTL movx dptr, a mo

12、v SetTemp, #20;置设定温度初值MLoop: call TestKey;检测按键 jnz KeyPressed;有按键转KeyPressed, 修改设定温度 call DisplayResult; 当前温度和设定温度送显示缓冲 call DisplayLED; 显示当前温度和设定温度 call ReadTemp; 读入当前温度 mov a, CurTemp jb acc.7, LE0; 当前温度<0时转LE0 clr c mov b, SetTemp; 如果当前温度<设定温度-2, 则开动加热电机 dec b dec b subb a, b jnc GN2LE0: mo

13、v a, #Heat; 开动加热电机 mov dptr, #PORTA movx dptr, a sjmp GN4GN2: mov a, CurTemp; 如果当前温度>设定温度+2, 则开动致冷电机 setb c mov b, SetTemp inc b inc b subb a, b jc GN3 mov a, #Cool; 开动致冷电机 mov dptr, #PORTA movx dptr, a sjmp GN4GN3: mov a, #0; 在设定温度+/- 2度内, 无需开动电机 mov dptr, #PORTA movx dptr, aGN4: sjmp MLoopKeyPressed: ;修改设定温度 call GetKey ; 求键码 mov b, a xrl a, #DOWN;按键为LAST键,且设定温度LowLimit时, 设定温度-1 jnz Key0 mov a, SetTemp xrl a, #LowLimit jz Key1 dec SetTemp sjmp Key1Key0: mov a,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论