空调自动调温系统模拟

更新时间:2024-05-08 01:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

河北工业大学计算机硬件技术基础(MCS-51)2007年设计报告

学院 班级 姓名 __

学号 __ 成绩 __ ____

一、题目:

空调自动调温系统模拟(题号:自理)

二、问题的提出

能否以单片机现有资源模拟变频空调自动将温度控制在适当范围的功能。 三、总体设计

1、分析问题的功能

需要设备能够及时采取温度值并进行分析,并适时对压缩机转速进行调整,进而使得制冷的效果得到有效控制

2、系统总体结构设计

1)硬件设计:根据问题确定单片机、I/O接口、定时器、I/O设备、中断等; 使用硬件资源:使用P1,P3接口,D2区电位器,A7区A/D转换器,B10区直流电机,D1

区8个LED灯。

连线:单通道采集接线

⑴ 使用2×10的排线连接D7区的J28接到A7区的J84;

⑵ 将D2区10K电位器的左端金属孔通过导线连接到该区的GND金属孔,而右端金属孔通过导线连接到该区的VCC金属孔;

⑶ D2区10K电位器的中间金属孔连接到A7区的P2_IO2金属孔(IN0); ⑷ 将A7区的P2_IO3~P2_IO5分别连接到A2区的A2~A0; ⑸ 将A7区的P2_CS连接到A2区的A15; ⑹ 用排线将A2区的J61与D1区的J52相连。 电机连线

(1) 使用导线连接B10区ZDJ_A与A2区RXD (2) 使用导线连接B10区ZDJ_A与该区GND

定时器使用:使用定时器方式2进行中断,执行中断程序进行占空比扫描。

第1页/共13 页

2)软件设计:按问题功能分模块,简述各模块功能。

根据实际构思程序分为四个模块 模块1为电压采集及转换模块

模块2为LED灯显示电压(模拟温度)高低 模块3为电机转速控制程序

模块4电压信号转换为电机转速控制信号

四、详细设计:

1、硬件详细设计: 1)画出电路图;

2)流程图:

第2页/共13 页

开始 高电平,计数器赋初值 确定脉冲周期长度 定时器为方式2、赋初值 开中断开始计时 P2.0指向通道2 启动A/D转换 调用子程序 延时 读取A/D转换结果 调用PIZE A高低为互换 把A取反的值赋给LED 确定高电平长度 中断高低电平互换 跳出电压采集A/D转换 结束

3)进行硬件资源分配(包括I/O口地址、所用各存储单元的用途)。

使用电位器输出不同电压值以电压数值模拟温度,通过A/D转换使电压值转变为

第3页/共13 页

机器可读信号。P3口向电机输入高电平,用直流电机模拟空调压缩机,通过改变直流电机转速实行制冷效果的控制。以LED灯显示温度高低。

2、软件详细设计:按各功能模块进行程序设计,并说明各功能模块的实现方法。 (1) 电机转速调节模块:

实现方法:调节高电平长度,使占空比变化,进而控制电机转速。 PWMH DATA 30H ;高电平脉冲的个数 PWM DATA 31H ;PWM周期 COUNTER DATA 32H TEMP DATA 33H ORG 8000H AJMP MAIN ORG 800BH AJMP INTT0 ORG 8100H MAIN: MOV SP,#60H ;给堆栈指针赋初值 MOV PWMH,#02H MOV COUNTER,#01H MOV PWM,#15H MOV TMOD,#02H ;定时器0在模式2下工作 MOV TL0,#38H ;定时器每200us产生一次溢出 MOV TH0,#38H ;自动重装的值 SETB ET0 ;使能定时器0中断 SETB EA ;使能总中断 SETB

TR0

;开始计时

INTT0: ;中断进行占空比扫描

PUSH PSW ;现场保护 PUSH ACC INC COUNTER ;计数值加1 MOV A,COUNTER

CJNE A,PWMH,INTT01 ;如果等于高电平脉冲数 CLR P3.0 ;P3.0变为低电平

INTT01: CJNE A,PWM,INTT02 ;如果等于周期数 MOV COUNTER,#01H ;计数器复位 SETB P3.0 ;P3.0为高电平 INTT02: POP ACC ;出栈 POP PSW RETI END

(2) 电压采集及转换模块

实现方法:采集D2区电位器的电压值,经过A7区A/D转换,再存入CPU

第4页/共13 页

MOV DPTR,#7FF8H ;P2.0=0,且指向通道0 MOVX @DPTR,A ;启动A/D转换 CALL DELAY

MOVX A,@DPTR ;读取转换结果 DELAY:

MOV R6,#0H ;软件延时,等待A/D转换结果 DELAY1:

MOV R5,#0FFH DJNZ R5,$ DJNZ R5,$ DJNZ R6,DELAY1 RET END

(3) LED灯显示电压值模块:

实现方法:将采集电压值经A/D转换为机器数,经过高低位数值得依次交换,在经过取反,将取反的值赋给连接8个LED灯的P1口,变化成可以用闪亮的LED灯显示电压的数据。

MOV DPTR,#7FF8H ;P2.0=0,且指向通道0 MOVX @DPTR,A ;启动A/D转换 CALL DELAY

MOVX A,@DPTR ;读取转换结果

PUSH ACC ;让LED灯显示电压数值 LCALL P1ZH CPL A MOV P1,A

P1ZH: ;使LED灯从左到右依次显示电压高位到低位值 MOV 21H,A MOV C,21H.7 MOV 00H,C MOV C,ACC.0 MOV 21H.7,C MOV C,00H MOV ACC.0,C MOV C,21H.6 MOV 00H,C MOV C,ACC.1 MOV 21H.6,C MOV C,00H MOV ACC.1,C MOV C,21H.5 MOV 00H,C MOV C,ACC.2

第5页/共13 页

MOV 21H.5,C MOV C,00H MOV ACC.2,C MOV C,21H.4 MOV 00H,C MOV C,ACC.3 MOV 21H.4,C MOV C,00H MOV ACC.3,C MOV C,21H.3 MOV 00H,C MOV C,ACC.4 MOV 21H.3,C MOV C,00H MOV ACC.4,C MOV C,21H.2 MOV 00H,C MOV C,ACC.5 MOV 21H.2,C MOV C,00H MOV ACC.5,C MOV C,21H.1 MOV 00H,C MOV C,ACC.6 MOV 21H.1,C MOV C,00H MOV ACC.6,C MOV C,21H.0 MOV 00H,C MOV C,ACC.7 MOV 21H.0,C MOV C,00H MOV ACC.7,C RET END

(4) 电压信号转换为电机转速调节信号模块:

实现方法:通过对电压值的精确分档,使电机转速按程序分档执行,达到电机转速的分档及精确调节

KSCN:

MOV DPTR,#7FF8H ;P2.0=0,且指向通道0 MOVX @DPTR,A ;启动A/D转换 CALL DELAY

MOVX A,@DPTR ;读取转换结果

MOV B,#11H ;根据电压值进行占空比调整实现电机转速分配,电机转速

第6页/共13 页

分为15档

CJNE A,#22H,NEX

NEX: JC NEXX ;如果低于两档高电平为最低值电机停止转动 DIV AB

MOV PWMH, A

SJMP KSCAN

NEXX: MOV PWMH ,#02H SJMP KSCAN END

3、设计中的主要困难及解决方案

1)困难1:直流电机转速的调节

解决方案:调整其脉冲占空比改变其正脉冲长度进而调节器转速。 2)困难2:协调采集的电压值与电机转速之间的关系

解决方案:将所采集电压值通过A/D转换为机器可读数据,以之作为执行信号实行脉冲占空比调节,最终实现电机转速的调节。

3)困难3:应用LED灯显示电压值

解决方案:依然采用A/D转换将电压值转换为机器可读数据,并将其数值赋与与LED灯连接的接口,实现其数值通过LED灯可读取。

4)困难4:电机转速的精确分档和调节

解决方案:通过对电压值的精确分档,使电机转速按程序分档执行,达到电机转速的分档及精确调节,使电机的调速过程平滑进行

具体过程:

电压及电机转速的精确分档:应用除法,将电压最大值除以所要分档值得到其各档之间间隔,然后将其应用于软件之中,实现其转速的精确分档

直流电机转速的精确控制:将脉冲周期值设定为总档级数,高电平显示其电压所处档值。程序执行时,将所采集电压值放入A累加器,然后除以分档间隔,所得结果存入A累加器的商即其所处档值,将其档值赋给高电平,改变其占空比,这样就可以根据其即时电压值(即温度值)所处档级精确控制占空比,进而精确控制电机转速。

说明:本实验中电机转速总共设15档,其档之间间隔计算得11H,应用采集电压的十六进制值执行除以11H的程序,结果存入A累加器的商即其电压档级,再将其当值赋给高电平是电机执行相应档级的程序。

第7页/共13 页

三、程序清单

PWMH DATA 30H ;高电平脉冲的个数 PWM

DATA

31H

;PWM周期

COUNTER DATA 32H

TEMP DATA 33H

ORG 8000H AJMP

MAIN

ORG 800BH AJMP

INTT0

ORG 8100H

MAIN: MOV SP,#60H

;给堆栈指针赋初值

MOV PWMH,#02H

MOV COUNTER,#01H MOV PWM,#15H MOV TMOD,#02H ;定时器0在模式2下工作 MOV TL0,#38H ;定时器每200us产生一次溢出 MOV TH0,#38H ;自动重装的值 SETB ET0 ;使能定时器0中断 SETB EA ;使能总中断 SETB TR0

;开始计时

KSCAN:

MOV DPTR,#7FF8H ;P2.0=0,且指向通道0 MOVX @DPTR,A ;启动A/D转换 CALL DELAY

MOVX A,@DPTR ;读取转换结果

PUSH ACC ;让LED灯显示电压数值 LCALL P1ZH CPL A

第8页/共13 页

MOV P1,A POP ACC

MOV B,#11H ;根据电压值进行占空比调整实现电机转速分配,电机转速

分为15档 CJNE A,#22H,NEX

NEX: JC NEXX ;如果低于两档高电平为最低值电机停止转动 DIV AB MOV PWMH, A SJMP KSCAN

NEXX: MOV PWMH ,#02H

SJMP KSCAN

INTT0: ;中断进行占空比扫描 PUSH PSW

;现场保护

PUSH

ACC

INC COUNTER

;计数值加1

MOV A,COUNTER CJNE

A,PWMH,INTT01

;如果等于高电平脉冲数

CLR P3.0

;P3.0变为低电平

INTT01: CJNE A,PWM,INTT02

;如果等于周期数

MOV COUNTER,#01H ;计数器复位

SETB

P3.0

;P3.0为高电平 INTT02: POP ACC

;出栈

POP PSW

RETI

DELAY:

MOV R6,#0H ;软件延时,等待A/D转换结果

DELAY1:

MOV R5,#0FFH

DJNZ R5,$

DJNZ R5,$

第9页/共13 页

DJNZ R6,DELAY1

RET

P1ZH: ;LED灯从左到右依次显示电压高位到低位值 MOV 21H,A MOV C,21H.7 MOV 00H,C MOV C,ACC.0 MOV 21H.7,C MOV C,00H

MOV ACC.0,C

MOV C,21H.6 MOV 00H,C MOV C,ACC.1 MOV 21H.6,C MOV C,00H MOV ACC.1,C MOV C,21H.5 MOV 00H,C MOV C,ACC.2 MOV 21H.5,C MOV C,00H MOV ACC.2,C MOV C,21H.4 MOV 00H,C MOV C,ACC.3 MOV 21H.4,C MOV C,00H MOV ACC.3,C MOV C,21H.3

MOV 00H,C

第10页/共13 页

MOV C,ACC.4 MOV 21H.3,C MOV C,00H MOV ACC.4,C MOV C,21H.2 MOV 00H,C MOV C,ACC.5 MOV 21H.2,C MOV C,00H MOV ACC.5,C MOV C,21H.1 MOV 00H,C MOV C,ACC.6 MOV 21H.1,C MOV C,00H MOV ACC.6,C MOV C,21H.0 MOV 00H,C MOV C,ACC.7 MOV 21H.0,C MOV C,00H MOV ACC.7,C

RET END

四、调试程序的方法

1)硬件调试方法(确定硬件工作是否正常)

先分别运行各模块简化程序,如运行一个简单的电机程序,通过程序修改pwmh值,观察电机转速变化情况,确定硬件运行是否正常。

2)软件调试方法(如何调试程序的方法)

第11页/共13 页

为了兼顾分档精确与调速平滑,故对档位个数在计算的基础上进行反复测试,以求达到两者的最优化。

五、你所设计的程序最终完成的功能

1)说明你编制的程序能完成的功能;

先进行温度即电压采集,根据温度数值模拟的温度等级对直流电机的转速进行调节,当温度过高时,输出信号使压缩机即直流电机转速增加增强制冷效果,温度过低时则降低压缩机转速减弱制冷效果。最终实现对空调自动调温系统的模拟。同时将温度大小以LED灯直观显示出来。

说明:本实验以电压值的采集模拟空调系统对温度的采集,此处电压值需手动改变。

2)准备的测试数据,并记录运行结果。

由于本程序为实时控制程序,可在程序运行过程中进行观察控制。总体来说,本程序执行过程中电机转速根据电压值(模拟温度值)不同转速也相应不同,电压值(温度值)越高转速越快。

六、对该设计题目有何更完善的方案

1、对自己完成程序进行自我评价。

在本次实验中自己表现积极,用自己掌握的知识,进行编程,对书本知识的到充分的应用,搞懂每一个环节。

2、对课题提出更完善的方案。

对温度的分档应更加的精确,更好的控制电动机的转速,使用晶体管显示温度。

七、收获及心得体会

1、通过本次课程设计,自己在哪些方面的能力有所提高。

通过本次实验,让我对单片机有了一个全面的认识,用单片机进行各种程序的编程, 实现自己想要的结果。特别是对中断和延时有了很深刻的映像。使我们对单片机软件编程及硬件资源使用的能力得到了很大的提升。

2、 收获和心得体会。

通过本次课程设计使我们对单片机的认识和应用有了更新更全面的认识,对单片机在生活中的重要作用有了更加深刻的了解。为自己对单片机应用实际做了很好的实

第12页/共13 页

践,为未来的挑战做了很好的演练!

日期: 2007年12 月28 日

第13页/共13 页

本文来源:https://www.bwwdw.com/article/6hog.html

Top