资源描述
空调控制器设计
沈 阳 工 程 学 院
课 程 设 计
设计题目: 空调控制器设计
1.设计主要内容及要求;
设计一个空调控制器。
要求:1)硬件电路设计,包括原理图和PCB板图。
2)控制器软件设计。
3)要求能够设定温度、测量温度、显示温度、制冷控制以及风机控制。
2.对设计论文撰写内容、格式、字数的要求;
(1).课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。
(2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计论文的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。
(3).论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
(4). 课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。
3.时间进度安排;
顺序
阶段日期
计 划 完 成 内 容
备注
1
8月30日
教师讲解题目,学生查阅相关资料
2
8月31日
查阅相关资料、进行方案论证
3
9月1日
参数计算、确定方案
4
9月2日
绘制原理图,设计PCB板图
5
9月3日
设计PCB板图,程序设计
6
9月6日
程序设计
7
9月7日—8日
程序调试
8
9月9日
撰写论文
7
9月10日
论文答辩,成品验收
智能仪器课程设计成绩评定表
指 导 教 师 评 审 意 见
评价
内容
具 体 要 求
权重
评 分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以12)
分
加权分合计
指 导 教 师 签 名:
年 月 日
评 阅 教 师 评 审 意 见
评价
内容
具 体 要 求
权重
评 分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以8)
分
加权分合计
评 阅 教 师 签 名:
年 月 日
课 程 设 计 总 评 成 绩
分
III
中文摘要
随着人工智能和自动控制的不断发展,各种各样的智能化产品也应运而生。例如,智能手机、智能电冰箱、智能空调等等。所谓的智能仪器就是指含有微型计算机或者微型处理器的一种测量仪器,拥有对数据的存储运算逻辑判断及自动化操作等功能。智能仪器的出现,极大地扩充了传统仪器的应用范围,它凭借着体积小、功能强、功耗低等优势,迅速的在家用电器、科研单位和工业企业中得到了广泛的应用。
智能仪器的工作原理是,传感器拾取被测参量的信息并转换成电信号,经滤波去除干扰后送入多路模拟开关;由单片机逐路选通模拟开关将各输入通道的信号逐一送入程控增益放大器,放大后的信号经A/D转换器换成相应的脉冲信号送入单片机中;单片机根据仪器所设定的初值进行相应的数据运算和处理;运算的结果被转换为相应的数据进行显示和打印;同时单片机把运算结果与存储于片内闪速寄存器内的设定参数进行运算比较后,根据运算结果和控制要求,输出相应的控制信号。此外,智能仪器还可以与PC机组成分布式测控系统,由单片机作为下位机采集各种测量信号与数据,通过串行通信将信息传输给上位机,由PC机进行全局管理。
随着科技的发展,目前有些空调控制器采用了电脑智能温控及LED(或LCD)显示。所谓智能温控就是通过感温头精确感应室内温度,把室内的温度变化传递给中央控制控制芯片单片机,由单片机控制制冷系统和加热系统,使室内温度达到显示屏上的设定值,室内人员只需根据自己的需要设定想要的温度即可,以给人最舒适的感觉。
本文主要介绍了一种空调智能控制器系统的硬件和软件设计方法以及整个系统的功能。它的硬件主要由7部分组成:单片机系统及外围电路、电源电路、按键输入电路、LED显示电路、报警电路、加热和制冷控制电路和温度检测电路。
主控制器采用成本低廉且工作可靠的C8051F020单片机,采用12MHz晶振,电源电路采用普通的市电经压降整流,然后经集成稳压器(LM7805)稳压输出+5V电压。我设计的空调控制器采集温度的传感器选择热电偶,热电偶采集的温度经过一系列的变换后,输出的电压值经过A/D转换后进入单片机,在单片机中看到的采集值是一数字量,这个数字量和键盘输入的数字量相比较,如果采集的值比设定的值小,就启动电机进行加热,如果采集的值比设定的值大,就启动压缩机进行制冷。而且采集的值和设定的值都可以通过LED显示出来。在设计中,我还设定了一个适宜的温度,当温度低于20℃或高于25℃时就会产生报警。
关键词 传感器,温度采集,单片机,空调控制器
目录
中文摘要 IV
1 设计任务描述 1
1.1 设计题目 1
1.2 设计要求 1
1.2.1 设计目的 1
1.3 基本要求 1
1.3.1 发挥部分 1
2 设计思路 2
2.1 温度传感器的选择 2
2.2 +5V稳压电源的实现 2
2.3 温度显示功能的实现 2
2.4 温度设定功能的实现 2
2.5 温度测量功能的实现 2
2.6 制冷和加热功能的实现 3
3 设计方框图 4
4 硬件设计 5
4.1 +5V稳压电源的实现 5
4.1.1 LM7805的介绍 5
4.1.2 +5V稳压电源电路 5
4.2 温度测量的基本组成部分 5
4.2.1 温度传感器 5
4.2.2 测量电路 6
4.2.3 A/D转换器 6
4.3 温度测量信号的采集 6
4.3.1 LM135系列的性能特点 6
4.3.2 热电偶的工作原理 6
4.3.3 热电偶冷端温度补偿电路 7
4.3.4 键盘输入电路 7
4.3.5 数码显示电路 8
4.4 8255芯片简介 8
5 系统软件 10
5.1 软件流程图 10
5.2 各部分程序设计 11
5.2.1 主程序 11
5.2.2 I/O口初始化 11
5.2.3 8255初始化 12
5.2.4 温度采集 12
5.2.5 显示子程序 13
5.2.6 制冷和加热 13
6 程序的调试 15
7 工作过程分析 16
8 主要元器件介绍 17
8.1 热电偶 17
8.2 8255芯片 17
8.3 LM7805的介绍 17
8.4 C8051单片机 17
小结 18
致谢 19
参考文献 20
附录A1 程序清单 21
附录A2 空调控制器原理图 27
附录A3 PCB板图 28
V
空调控制器设计
1 设计任务描述
1.1 设计题目
空调控制器的设计
1.2 设计要求
1.2.1 设计目的
1)学会选择合适的传感器以及用法。
2)掌握软件编程方法及思路。
3)会用protel99SE绘制PCB板图。
1.3 基本要求
1)硬件电路设计,包括原理图和PCB板图。
2)控制器软件设计。
3)要求能够设定温度、测量温度、显示温度、制冷控制以及风机控制。
1.3.1 发挥部分
超过设定温度时点亮LED灯报警。
2 设计思路
2.1 温度传感器的选择
温度检测的方法较多,最经典的方法就是用热敏电阻(或热敏传感器)组成电桥来采集信号,在经放大、A∕D转换后送单片机。目前比较先进的方法是采用专门的集成测温传感器,直接将温度转换成数字信号传送给单片机。为了设计需要,本文采用了由LM335构成的K型热电偶冷端温度补偿电路。因为它构成的电路可以测量摄氏温度,而且温度系数为10mv/℃。
2.2 +5V稳压电源的实现
在设计中使用了很多集成元器件,根据它们的技术要求,正常工作时均为5V供电,且电路工作稳态电流较小,因此对电源要求不高。因此在本次设计中我选用LM7805集成稳压电路,它的输出电压为5V,输出电流可达1.5A。由LM7805集成稳压器组成的5V电压源主要由变压器、整流电路、滤波电路、稳压电路组成。
2.3 温度显示功能的实现
为了使室内的温度更直观的展现在使用者的面前,我在这个程序中添加了数码管显示部分。温度的设定和采集都要显示出来,显示功能是通过软件编程来实现的。显示功能主要是应用8255来实现的,通过设置8255
2.4 温度设定功能的实现
温度设定功能也是通过软件编程来实现的,在本次设计中温度的设定是通过键盘输入设定的。
2.5 温度测量功能的实现
通过温度传感器感测外界的温度,然后传感器把温度的变化转换成有用模拟量电压值,但是单片机只能处理数字量,所以从传感器出来的模拟量还要经过A/D转换器,把模拟量转换成数字量。所以在软件编程时,要对A/D初始化和启动A/D转换器,这样就把温度转换成了十六进制的数字量,然后再把从A/D转换器采集进来的数通过查表转换成十进制的数,通过数码管显示出来,这样显示在人们眼前的就是室内的实际温度值。
2.6 制冷和加热功能的实现
通过键盘输入的是设定的温度值,也就是人们希望达到的温度,它进入单片机之后就是一个数字量,输入的这个数字量和采集进来的数字量进行比较,如果采集的值比设定的值小,就启动电机进行加热,如果采集的值比设定的值大,就启动压缩机进行制冷。
3 设计方框图
C8051
单片机
+5V稳压电 源
键盘输入设置温度
温度传感器
LM335
显示
报警
制冷
加热
A∕D转换
图3-1空调控制器总体方框图
4 硬件设计
4.1 +5V稳压电源的实现
4.1.1 LM7805的介绍
产生+5V稳压电源的核心元件是集成稳压器LM7805,LM7805是美国半导体公司的固定输出三端正稳压器集成电路,输出电流在1A以上,输出电压是+5V。内其内部包括过热、过流和调整管保护等电路,误差放大电路,基准电压电路和调整电路,使用比较方便且稳定精度高。
4.1.2 +5V稳压电源电路
该电路主要由变压器、整流电路、滤波电路和稳压电路组成。整流电路是由四个二极管组成的整流桥,整流电路主要是利用二极管的单向导电性。滤波电路是通过电容来实现的。+5V稳压电源电路如图4-1所示。
图4-1 +5V稳压电源电路
4.2 温度测量的基本组成部分
一个完整的温度采集系统通常包含几个部分,包括温度传感器、测量电路、模拟前端信号处理、A∕D转换器三个基本组成部分。
4.2.1 温度传感器
获取生产或生活中被测环境或者被测物质的温度信息,一般都离不开传感器,这里由于被测对象的状态往往是一种非物理量(如温度),而MCU是一个只能识别和处理电信号的数字系统,因此需要利用传感器将非电物理量转换成电信号才能完成温度测量和控制的任务。
4.2.2 测量电路
通常传感器的输出可能是电阻值、电容值或者电流值,这些信号不适宜进行直接测量,往往需要转换成电压信号,传递给后面的A/D转换器,所以很多时候需要搭建简单的测量电路,使得传感器输出的参数变化转换为电压的变化。
4.2.3 A/D转换器
无论是计算机,还是各种MCU、或者DSP等处理器只能处理数字信号,即使经过处理的信号仍然只是模拟物理量,还不能直接和这些处理器通信,而A/D转换器就是实现从模拟量到数字量转换的关键器件。模数转换技术是实现各种模拟信号通向数字世界的桥梁。
4.3 温度测量信号的采集
4.3.1 LM135系列的性能特点
在设计中我用的温度采集电路是热电偶冷端温度补偿电路,这个电路是由LM335构成的K型热电偶冷端温度补偿电路。下面介绍LM335的性能特点如下:
(1)它属于电压输出式精密集成温度传感器,电压温度系数为+10mV/K,输出电压与热力学温度成正比。
(2)测温精度高,测温范围宽。LM335测温范围为—40~+100℃。
(3)动态阻抗低。当工作电流为0.4~5mA时,其动态阻抗仅为0.5~0.6
(4)具有类似于稳压管的特性,使用时须经过限流电阻接正电源,亦可由集成恒流源给它提供恒定的工作电流。
(5)价格低,易校准。利用一只10电位器即可校准+25℃时的输出电压值。
4.3.2 热电偶的工作原理
热电偶的工作原理可以这样解释,当两种不同的导体或半导体A或B组成一个回路,其两端相互连接时,只要两端(一端温度为T,称为工作端或者是热端;另一端温度为,称为自由端,也称参考端或者冷端)的温度不同,则回路中就会有电流产生,回路中存在的电动势称为热电动势。热电偶就是利用这一效应来工作的。
4.3.3 热电偶冷端温度补偿电路
由LM335构成的K型热电偶冷端温度补偿电路如图4-2所示。利用LM335来测量热电偶的冷端温度,为限流电阻,是校准温度的电位器。LM335的输出电压经过和分压之后,得到所需的补偿电压,其电压温度系数为式(4-1)。
(4-1)
图4-2 K型热电偶冷端温度补偿电路
因接运算放大器LM308A的反相输入端,故可视为。型热电偶产生的温差热电势e则接到LM308A的同相输入端。经LM308A放大之后就实现了热电偶的冷端温度补偿。考虑到LM335的输出电压与热力学温度成正比,要想输出与摄氏温度成正比的电压信号,还应扣除LM335在0℃时的输出电压。现利用LM329B型6.9V基准电压源和精密多圈电位器,得到,也加至LM308A的反相输入端,因此实际补偿电压就变成了。最终可使输出电压℃)。
4.3.4 键盘输入电路
键盘输入电路如图4-3所示。
图4-3 键盘输入电路
键盘输入用到了8255,PB和PC口是8255两个八位输出口,8255控制端口的地址分别为8000H,8001H,8002H和8003H,它们由地位地址A0,A1加以区别,A0,A1从地位地址锁存器74LS373引出,外设芯片8255的接口配置与外部存储器的接口配置方式相同,同样占据数据总线和地址总线。
4.3.5 数码显示电路
数码显示电路如图4-4所示。
图4-4 数码显示电路
数码管采用共阴极方式,PA口是8位输入口,用于读入扫描键盘的位置。8255的片选地址是由高八位地址(A8~A15)通过74LS138译码产生的。从PA0~PA3查询扫描行的输入状态,从PA4~PA7查询功能键的输入状态,判断是否有数字键或功能键按下。
4.4 8255芯片简介
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
8255的引脚功能如下:
RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:芯片选择信号线,当这个输入引脚为低电平时,即=0时,表示芯片被选中,允许8255与CPU进行通讯,=1时,8255无法与CPU做数据传输。
RD:读信号线,当这个输入引脚为低电平时,即=0且=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,即=0且=0时,允许CPU将数据或控制字写入8255。
5 系统软件
5.1 软件流程图
开始
系统初始化
开A/D转换器中断
初始化A/D转换器
温度采集
数码管显示
有键按下?
温度超出范围?
调用空调控制模块
是否异常?
调用报警
返回
Y
N
Y
N
Y
图5-1 空调控制器的软件流程图
5.2 各部分程序设计
5.2.1 主程序
MAIN:
MOV WDTCN,#0DEH
MOV WDTCN,#0ADH
MOV XBR2,#40H
LCALL PORT
LCALL DIGITAL
LCALL INT8255
MOV EIE2,#10H
MOV P3IF,#00H
MOV AMX0CF,#00H
MOV AMX0SL,#00H
MOV REF0CN,#03H
MOV ADC0CF,#58H
MOV ADC0CN,#0C0H
SETB EA
ORL ADC0CN,#10H
LOP: LCALL LCD
AJMP LOP
在主函数之前先设置A/D转换器的中断入口,然后再编写主程序,在主函数最起初先禁止看门狗程序,然后使能交叉开关。然后依次调用I/O口初始化程序,要显示的数的断码初始化程序,以及8255初始化程序。然后是设置各端口为漏极开路,即低电平有效。接下来是A/D转换器的初始化,选择时钟周期为1MHz,系统时钟是12MHz,增益大小选择为1,所以ADC0CF设为58H,启动方式为写BUSY=1,数据位右对齐,所以ADC0CN设为C0H。由于A/D转换器是采集外界温度的,采集结束之后还要用数码管显示出来,所以在执行完A/D中断结束之后,返回来要接着条用显示的程序。因为A/D转换器采集外界的温度是随时更新的,因此,在这里是循环调用的
5.2.2 I/O口初始化
PORT:
MOV EMI0CF,#2CH
MOV P74OUTt,#3FH
RET
I/O口是单片机的重要组成部分,所以在编写程序时要对它进行初始化。让EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉冲占1个SYSCLK周期,所以EMI0CF设为2CH;P7为漏极开路方式,P4、P5、P6为推拉方式,所以设置P74OUT为3FH。
5.2.3 8255初始化
int8255:
mov DPTR,#8003H
mov a,#80H
movx @DPTR,a
ret
控制字设为80H,即设置PC和PB口为输出,PA口为输入。8003H为8255的控制寄存器地址。
5.2.4 温度采集
ADC0:
mov a,adc0l
mov 33H,adc0l
swap a
anl a,#0FH
mov 30H,a
mov a,adc0h
mov 34H,adc0h
swap a
anl a,#0F0H
orl a,30H
mov 31H,a
lcall SC
lcall COMPARE
lcall lcd
anl dc0cn, #0dfH
orl adc0cn, #10H
mov eie2,#10H
reti
把温度转换成易于单片机处理的数字信号,是通过A/D转换器来实现的。C8051F020有两个A/D转换器,分别是ADC0和ADC1,ADC0是12位的A/D转换器,而ADC1是8位的A/D转换器。在此次设计中我用的是12位的A/D转换器ADC0,由于ADC0是12位的A/D转换器,所以被采集进来的数是被分在两个存储单元存储的。存储的时候把低8位adc0l放在33H单元中,把高四位放在adc0h放在34H单元中。由于采集进来的数要和输入的数进行比较,所以还要把33H和34H中的数合并在一个单元中,以便后来进行比较。最后我把这两个分开的数合并之后存放在了31H单元中。
5.2.5 显示子程序
lcd:
mov DPTR,#8001H
mov a,R3
movx @DPTR,a
mov DPTR,#8002H
mov a,@R1
movx @DPTR,a
lcall Delay1
mov a,R3
rl a
mov R3,a
cjne R3,#40H,lop1
mov R3,#01H
lop1: inc R1
cjne R1,#77H,lcd
mov R1,#71H
MOV EIE2,#12H
ret
8255的片选地址是由高八位地址(A8~A15)通过74LS138译码产生的。键盘输入用到了8255,PB和PC口是8255两个八位带锁存的输入口,可实现输出数据锁存。PB口的端口地址为8001H,PC口的端口地址为8002H。用PB口作六个数码管的位选。用ULN2003作显示器的位选驱动。PC口作字型码锁存。8255控制字的端口地址是8003H。74LS244作数码管字型显示驱动。数码管选择为共阴极。采集到的温度值和设定的温度值都会通过数码管显示出来,而且采集的值时随时更新的。
5.2.6 制冷和加热
COMPARE:
mov a,6CH;ad
clr c
cjne a,6BH,lop8;shuru
ajmp stop
lop8: jc warm
cool: clr p3.5
clr p0.1
ajmp work
warm: setb p3.5
setb p0.1
ajmp work
stop: clr p3.5
setb p0.1
work: nop
ret
空调就是能给人适宜的温度,当室内的温度很高时,我们会感觉很闷,所以我们就要设定一个自己想要的温度,如果室内的温度比我们自己设定的温度要高,那么空调控制器就会启动制冷装置,使室内的温度达到我们需要的温度。在本次设计中,在启动制冷装置时,我就点亮一个LED灯。在冬天时,偶尔室内的温度会很低,人们会感觉很不舒适,那么在这时,空调控制器就会启动加热装置,使室内的温度可以让我们感觉温暖。在启动加热装置时,我用的的是启动直流电动机。
6 程序的调试
我们编写的每一个程序都需要进行调试,我在设计中遇到了很多困难。首先是在温度采集的值和我们输入的值之间进行比较这一块出现了问题,由于A/D转换器采集进来的数是放在两个存储单元中的,而且是十六进制的数字量,一开始我想把从A/D转换器采集进来的数转换成十进制的数,然后也把从键盘输入的数字量也转换成使劲数进行比较,可是在调试的过程中我发现这种做法很麻烦,所以后来我就把从A/D转换器采集进来的数放在一个存储单元中,然后和键盘输入的数进行比较。把A/D转换器采集进来的数合并在一个存储单元中的程序如下:
ADC0:
mov a,adc0l
mov 33H,adc0l
swap a
anl a,#0FH
mov 30H,a
mov a,adc0h
mov 34H,adc0h
swap a
anl a,#0F0H
orl a,30H
mov 31H,a
其次,在设计中发现,应该限制一个温度范围,也就是说,一旦温度超过设定的温度范围就会产生报警。温度范围设在20℃~25℃之间,这段程序如下:
cjne a,#20h,lop9
ljmp lop10
lop9: jc lop14
ljmp lop11
lop10: setb p0.0
ljmp lop12
lop11: cjne a,#25h,lop13
ljmp lop10
lop13: jc lop10
lop14: clr p0.0
lop12: swap a
mov 6dH,a
anl a,#0fH
mov dptr,#tabc
movc a,@a+dptr
mov 75H,a
mov a,6CH
ret
7 工作过程分析
在主函数之前先设置A/D转换器的中断入口,然后再编写主程序,在主函数最起初先禁止看门狗程序,然后使能交叉开关。然后依次调用I/O口初始化程序,要显示的数的断码初始化程序,以及8255初始化程序。然后是设置各端口为漏极开路,即低电平有效。接下来是A/D转换器的初始化,选择时钟周期为1MHz,系统时钟是12MHz,增益大小选择为1,所以ADC0CF设为58H,启动方式为写BUSY=1,数据位右对齐,所以ADC0CN设为C0H。由于A/D转换器是采集外界温度的,采集结束之后还要用数码管显示出来,所以在执行完A/D中断结束之后,返回来要接着条用显示的程序。因为A/D转换器采集外界的温度是随时更新的,因此,在这里是循环调用的
I/O口是单片机的重要组成部分,所以在编写程序时要对它进行初始化。让EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉冲占1个SYSCLK周期,所以EMI0CF设为2CH;P7为漏极开路方式,P4、P5、P6为推拉方式,所以设置P74OUT为3FH。
把温度转换成易于单片机处理的数字信号,是通过A/D转换器来实现的。C8051F020有两个A/D转换器,分别是ADC0和ADC1,ADC0是12位的A/D转换器,而ADC1是8位的A/D转换器。在此次设计中我用的是12位的A/D转换器ADC0,由于ADC0是12位的A/D转换器,所以被采集进来的数是被分在两个存储单元存储的。存储的时候把低8位adc0l放在33H单元中,把高四位放在adc0h放在34H单元中。由于采集进来的数要和输入的数进行比较,所以还要把33H和34H中的数合并在一个单元中,以便后来进行比较。最后我把这两个分开的数合并之后存放在了31H单元中。
8255的片选地址是由高八位地址(A8~A15)通过74LS138译码产生的。键盘输入用到了8255,PB和PC口是8255两个八位带锁存的输入口,可实现输出数据锁存。PB口的端口地址为8001H,PC口的端口地址为8002H。用PB口作六个数码管的位选。用ULN2003作显示器的位选驱动。PC口作字型码锁存。8255控制字的端口地址是8003H。74LS244作数码管字型显示驱动。数码管选择为共阴极。采集到的温度值和设定的温度值都会通过数码管显示出来,而且采集的值时随时更新的。8255的控制字设为80H,即设置PC和PB口为输出,PA口为输入。8003H为8255的控制寄存器地址。
空调就是能给人适宜的温度,当室内的温度很高时,我们会感觉很闷,所以我们就要设定一个自己想要的温度,如果室内的温度比我们自己设定的温度要高,那么空调控制器就会启动制冷装置,使室内的温度达到我们需要的温度。在本次设计中,在启动制冷装置时,我就点亮一个LED灯。在冬天时,偶尔室内的温度会很低,人们会感觉很不舒适,那么在这时,空调控制器就会启动加热装置,使室内的温度可以让我们感觉温暖。在启动加热装置时,我用的的是启动直流电动机。
8 主要元器件介绍
8.1 热电偶
热电偶的工作原理是,当两种不同的导体或半导体A或B组成一个回路,其两端相互连接时,只要两端(一端温度为T,称为工作端或者是热端;另一端温度为,称为自由端,也称参考端或者冷端)的温度不同,则回路中就会有电流产生,回路中存在的电动势称为热电动势。
8.2 8255芯片
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。
8.3 LM7805的介绍
LM7805是美国半导体公司的固定输出三端正稳压器集成电路,输出电流在1A以上,输出电压是+5V。内其内部包括过热、过流和调整管保护等电路,误差放大电路,基准电压电路和调整电路,使用比较方便且稳定精度高。
8.4 C8051单片机
C8051系列单片机是集成的混合信号片上系统,具有与MCS-51内核及指令集完全兼容的微控制器,除了具有标准8051的数字外设部件之外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。C8051系列单片机是真正能独立工作的片上系统(SOC)。CPU有效地管理模拟和数字外设,可以关闭单个或全部外设以节省功耗。
参考文献
[1] 周兴华. 单片机智能化产品.北京:北京航空航天大学大学出版社,2006
[2] 楼然苗. 单片机C程序设计.北京:北京航空航天大学大学出版,2005
[3] 沙占友. 智能化集成温度传感器原理与应用.北京:机械工业出版社,2002
[4] 张萌,湘姜斌. 单片机应用系统开发.北京: 清华大学出版社, 2007
[5] 汪韬. 新型变频空调器. 北京: 人民邮电出版社, 2006
[6] 刘畅生. 传感器简明手册及应用电路.西安: 西安电子科技大学出版社, 2003
附录A1 程序清单
$include(c8051f020.inc)
org 00H
ajmp main
org 007BH
ljmp ADC0
org 100H
main:mov wdtcn,#0deH
mov wdtcn,#0adH
mov xbr2,#40H
lcall port
lcall digtal
lcall int8255
MOV EIE2,#10H
MOV P3IF,#00H
MOV AMX0CF,#00H
MOV AMX0SL,#00H
MOV REF0CN,#03H
MOV ADC0CF,#58H
MOV ADC0CN,#0C0H
SETB EA
orl adc0cn,#10H
lop:lcall lcd
ajmp lop
wait:mov DPTR,#8001H
mov a,#00H
movx @DPTR,a
mov DPTR,#8000H
movx a,@DPTR
mov R2,a
cjne R2,#0ffH,lop4
ajmp lop5
lop4:lcall Key
lop5:nop
ret
port:mov emi0cf,#2cH
mov p74out,#3fH
ret
int8255: mov DPTR,#8003H
mov a,#90H
movx @DPTR,a
ret
Key :cpl a
anl a,#0fH
mov 70H,a
scan:mov DPTR,#8001H
mov a,67H
movx @DPTR,a
mov DPTR,#8000H
movx a,@DPTR
anl a,#0fH
cjne a,#0fH,pp
mov a,67H
rl a
mov 67H,a
ajmp scan
pp:mov a,67H
mov 67H,#0feH
anl a,#0fH
cpl a
anl a,#0fH
展开阅读全文