家用空调温度控制器的控制程序设计论文 课程设计论文本科论文.docx
- 文档编号:11886156
- 上传时间:2023-04-08
- 格式:DOCX
- 页数:57
- 大小:286.96KB
家用空调温度控制器的控制程序设计论文 课程设计论文本科论文.docx
《家用空调温度控制器的控制程序设计论文 课程设计论文本科论文.docx》由会员分享,可在线阅读,更多相关《家用空调温度控制器的控制程序设计论文 课程设计论文本科论文.docx(57页珍藏版)》请在冰豆网上搜索。
家用空调温度控制器的控制程序设计论文课程设计论文本科论文
《微机原理及接口技术》
课程设计说明书
课题:
家用空调温度控制器的控制程序设计
专业:
班级:
1201
姓名:
学号:
指导老师:
王亚林
2015年1月8日
第2章、总体设计规划与方案论证6
2.1设计环节及进程安排6
第3章、总体软件设计说明及总流程图10
3.1总体软件设计说明10
3.2总流程图11
第4章、系统资源分配说明13
4.1系统资源分配13
4.1.1系统内部单元分配表13
4.1.2硬件资源分配15
4.2数据定义说明16
4.2.1部分数据定义说明16
第5章、局部程序设计说明17
5.1总初始化以及自检
5.2主流程
5.2.1按键音模块17
5.2.2单按键消抖模块17
5.2.3PB按键功能模块18
5.2.4.基本界面拆字模块19
5.2.54*4矩阵键盘模块19
5.2.6模式显示模块20
5.2.7显示更新模块21
5.2.8室内温度AD转换模块21
5.2.94*4矩阵键盘扫描子程序21
5.2.10整点报时模块23
5.2.11空调进程判断及显示模块23
5.2.12三分钟压缩机保护模块23
5.2.13风向摆动模块24
5.2.14驱动控制模块24
5.2.15定时开关机模块25
第6章、系统功能与用户操作使用说明26
6.1操作显示部分26
6.2系统功能26
6.3用户操作使用说明27
第7章、课程设计总结27
第8章、附录:
源程序清单30
第1章设计任务与目标
1.1设计课题:
家用空调温度控制器的控制程序设计
1.2设计目的:
通过小型微机应用产品控制程序的设计与调试过程,运用《微机
原理及接口技术》课程所学的基本知识,进而得到理解、巩固和提高,学习掌握
分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作
为工程技术工作的一次基本训练。
1.3设计任务:
随着现代生活条件的提高,家用空调已广泛使用,是一种用于房
间提供处理空气温度变化的机组。
它的功能是对该房间内空气的温度、湿度、和
空气流速等参数进行调节,以满足人体舒适的要求。
设计一个以AT89S51单片
机为核心的家用空调温度控制器,基本任务是利用AT89S51单片机、ADC0809
模数转换器等芯片设计并制作一个具有制冷、制热、通风和自动运行的手控型空
调控制器,包含实时钟显示,可选择制冷、制热、通风、自动运行等工作模式,
能对温度进行设定和控制,具有压缩机三分钟自动保护等功能,编写智能控制器
的控制程序并在实验板上模拟调试。
1.4基本设计要求:
1、开机进行适当的有关接口部件及数码显示器、指示灯、讯响器等自检。
2、八位LED七段数码管作为时钟及其他界面信息显示。
3、基本显示模式为按照24小时制动态显示实时钟的时、分、秒信息。
4、4×4键盘作为参数设定与设备操作的输入设备,由“0”~“9”数字键及若
干个功能键组成,“0”~“9”数字键须按照国际通行排列布局,键按下时应回
馈短促的键音,键盘扫描还应采取消抖动处理。
5、时钟调校功能:
按下“时钟设定”键则进入时钟设定界面,在调取并显示当
前实时钟的时、分值基础上供逐位输入新的时、分值,当前数字位以2Hz频率闪烁显示的形式标示;按“确定”键则审核不存在超值域的情况下存入新的时、分值,同时对秒清0以及对秒的前级计时环节置初值;按“取消”键则不存新值返回基本显示模式;还可设置“←”键、“→”键等以方便操作。
6、利用实验板上的按钮、拨动开关替代设备的开关量输入信号,应当由开关量
输入处理子模块程序统一对开关量输入信号进行检测输入并进行软件消抖动处理;利用实验板上的驱动LED指示灯的输出接口电路替代设备的开关量输出驱动信号,应当对输出控制信息建立输出缓存,并统一由输出驱动子模块程序根据输出缓存内容执行实质的输出驱动;利用实验板上的蜂鸣器替代设备的讯响部件,应当统一由讯响驱动子模块程序综合各功能程序模块所产生的讯响逻辑标记信息执行实质的蜂鸣器驱动。
7、空调控制器应具有制冷、制热、通风和自动运行四种工作模式。
a.制冷:
室内风机、压缩机及室外风机工作,而四通换向阀停止工作。
b.制热:
室内风机、压缩机、室外风机和四通换向阀均工作。
c.通风:
室内风机工作,而压缩机、室外风机和四通换向阀均不工作。
※d.自动运行:
能根据当前室内温度和自动运行的设定温度,自动选择制冷、
制热或通风工作模式。
e.每按一下工作模式选择键时,工作模式按图1所示的箭头方向依此变换:
图1工作模式选择
8、能对温度进行设定和控制:
a.制冷时温度调节范围为:
20℃~32℃。
当室内温度高于设定温度1℃时,开始
制冷;而当室内温度降到设定温度时,则转为通风状态。
b.制热时温度调节范围为:
14℃~30℃。
当室内温度低于设定温度1℃时,开始
制热;而当室内温度升到设定温度时,则转为通风状态。
c.通风时温度设置栏显示“一一”,并且温度设置键无效。
※d.自动运行温度调节范围为:
25℃、27℃、29℃。
若室内温度低于设定温度
5℃时,自动按制热工作模式运行;若室内温度高于设定温度时,则按制冷模式运
行;否则按通风模式运行。
e.温度设定键每按一下,则温度上升或下降1℃(在设定范围内)。
f.控温精度为±1℃
9、室内风机具有高、中、低三档风速和自动风控制功能。
每按一下风速选择键时,风速模式按图4所示的箭头方向依此变换:
图2风速模式选择
※其中自动风与工作模式及温度有关:
a.制冷时,当室内温度高于设定温度5℃时,为高速风;
当室内温度高于设定温度2℃~5℃时,为中速风;
当室内温度不高于设定温度2℃时,为低速风;
b.制热时,当室内温度低于设定温度5℃时,为高速风;
当室内温度低于设定温度2℃~5℃时,为中速风;
当室内温度不低于设定温度2℃时,为低速风;
c.通风时,当室内温度高于25℃时,为高速风;
当室内温度介于20℃~25℃时,为中速风;
当室内温度低于设定温度20℃时,为低速风;
※10、具有压缩机三分钟自动保护功能。
由于家用空调器所使用的压缩机大多为电容启动运行电动机,带载启动能力较
差,因此无论在制冷运行还是在制热运行时,当压缩机停止工作后,必须在三分
钟后才允许重新启动。
※11、24小时预约定时开/关机功能。
定时开机:
定时开机必须是在关机状态下才能进行,按下“定时”键,显示定时
时间并闪动,通过“↑”“↓”键可以调节时间,调整好后点击“定时”键。
定时关机:
定时关机必须在空调运行的情况下进行
※12、风向自动控制功能。
通过自动控制室内风机水平导风叶片的转动,将调节后的舒适气流送到房间的各
个角落。
第2章总体设计规划与方案论证
2.1设计环节及进程安排:
根据任务书要求,为实现成功设计家用空调温度控制器的控制程序设计和确保设计顺利进行,我的进程安排如下:
时间安排
任务
天数
2014.12.22
布置课题,明确任务
1天
2014.12.23
总体方案规划构思
1天
2014.12.24-2014.12.30
主体功能控制程序设计及调试
5天
2014.12.31-2015.1.2
程序功能完善、改进与扩展
3天
2015.1.5
程序验收
1天
2015.1.6
答辩
1天
2015.1.7-1.9
编写设计说明书
3天
2.2方案论证
程序设计规划有许多,但是选择一个较合适的方案是至关重要的,它可以提高程序的执行效率,有利于程序的调试,提高程序的可读性。
1:
在主程序跳入循环前进行顺序自检,通过观察实验板的现象进而判断实验板是否正常。
2:
数码管显示程序由硬件决定,采取片选端和位选端连接接口芯片,接口芯片进而和单片机引脚连接,这样大大减少了要占用的单片机引脚的数目。
且数码管的显示方式为动态显示,动态显示方法:
各位显示器的字位控制线由相应的I/O口线控制,每一位显示器均有一根字位控制线,各位显示器的字段控制线对应并联,由一个8位I/O口控制。
其特点是占用I/O端口少、驱动程序稍繁,须不断更新驱动,占用CPU时间多、总的驱动电流小。
3:
对于按键音的处理,采用的方法是按键按下后,启动按键音,随后在主循环的第一句清楚按键音。
4:
对于四中工作模式的判断,:
设置一个标志位,标志位中的内容A、C、F、H依次代表自动模式、制冷模式、通风模式、制热模式。
5:
对于三档风速以及自动风的判断,设置一个标志位,标志位中的内容A、▔、—、_依次代表自动、高速、中速、低速。
6:
选择定时器1工作方式2(M1M0=10,自动重装计数初值的8位定时器/计数器)16位定时器/计数器被拆成两个8位寄存器TH1和TL1,CPU在对它们初始化时必须装入相同的定时器/计数器初值。
以TL1作计数器,而TH1作为预置寄存器。
当计数满溢出时,TF1置“1”,同时将TH1中的计数初值以硬件方法自动装入TL1。
这种工作方式很适合于那些重复计数的应用场合,本程序计数即采用选择定时器1工作方式2。
7:
LED显示器工作原理有两种:
一是LED静态显示驱动方式。
各位的公共端连接在一起(接地或+5V)。
每位的段码线(a~dp)分别与一个8位的锁存器输出相连。
只要输出锁存器的段码不变,就稳定地驱动并显示对应的字符,直到输出另一个段码为止。
静态驱动特点:
接口逻辑及驱动程序简单、显示亮度高且稳定、但占用I/O端口多、总的驱动电流大。
二是动态显示驱动方式。
当LED位数较多时,为了简化电路,降低成本,采用动态显示方式。
(1)电路连接方法:
a、各位显示器的字位控制线由相应的I/O口线控制,每一位显示器均有一根字位控制线。
b、各位显示器的字段控制线对应并联,由一个8位I/O口控制。
(2)显示原理:
逐个点亮,循环显示,利用人眼的视觉残留效应。
(3)综上所述,我LED显示器工作选择动态显示驱动方式
8:
键盘接口的工作原理分独立式按键接口和行列式键盘接口
1.独立式键盘接口(适于键数较少、操作快、同时多键动作场合)
各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。
2、行列式(矩阵式)键盘及其接口
(适于按键数目较多的场合;可节省较多的I/O口线端;同时只会有一个键闭合的场合。
)
行列式键盘按键的识别方法
a.扫描法
(1)判断有无键闭合:
首先使列线D4~D7都输出0,检测行线D0~D3。
如果无键闭合,D0~D3输入全为1;如果有键闭合,就会有某一根行线输入为0。
(2)查找闭合键号:
逐行逐列扫描,闭合键号=列号+行首键号
b.线反转法
采用线反转法的键盘行线、列线端口各自应当可以在输入与输出方式间切换!
如图:
高四位与低四位均可独立改变其输入或输出方式
第1步:
列线输出为全‘0’,随后输入行线电平如有‘0’,则‘0’所在的行就是闭合的按键所在行;无‘0’则无键闭合。
第2步:
行线输出为全‘0’,随后输入列线电平如有‘0’,则‘0’所在的列就是闭合的按键所在列;无‘0’则无键闭合。
结合上述两步,可确定按键所在行和列。
综上所述,选择行列式键盘按键的线反转法
9:
按键状态的输入与消抖动
机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象,时间一般为5~10ms。
这种现象会引起CPU对于一次键操作进行多次处理,因此必须设法消抖动。
10:
压缩机三分钟自动保护定时方法:
①定时中断,0.01S次数;②计主流程次数我采取计主流程次数180*100次,总时间180*100*0.01S=3分钟。
第3章总体软件设计说明及总流程图
3.1总体软件设计说明
总初始化,对数码显示器、指示灯、蜂鸣器的自检以及各使用单元的初值设定和各个芯片的初始化设置等。
本设计程序为12个主流程2个中断服务子程序,单片机就是在这些子模块下循环执行,这些子模块依次包含有:
;主工作流程
LOOP:
LCALLJYIN;按键音子程序
LCALLTPB;单按键子程序
LCALLXDPB;调用消抖单按键输入
LCALLCZ;调用显示内容送显缓子程序(拆字将时分秒送右6位显示缓冲单元)
LCALLKT;行列式键盘子程序
LCALLWDXS;温度显示子程序
LCALLDISP;调用显示更新子程序(动态驱动8位数码显示器一遍,约8mS)LCALLADSUB;调用A/D子程序(采集AN1输入电压的A/D数据送左2位显示)
LCALLKEY;调用键盘扫描子程序(扫描到按键压下时在左第3位显示键号)
LCALLCLOCK;整点报时子程序
LCALLJCPD;进程判断以及进程显示子程序
LCALLYSBH;三分钟压缩机保护
LCALLFXBD;风向摆动
LCALLDSGJ;定时开/关机
SJMPLOOP;反复循环主流程
此外,还有一些没被主流程调用,但被其它模块调用的模块,比如驱动控制模块,时钟调校模块等。
3.2总流程图
返回主流程
第4章系统资源分配及数据定义说明
4.1系统资源分配
4.1.1系统内部单元分配表
数据地址
数据定义
数码进制
数据初值
数据范围
备注
11H
时十位修改单元
BCD码
0
0~2
12H
时个位修改单元
BCD码
8
0~9
13H
分十位修改单元
BCD码
5
0~6
14H
分个位修改单元
BCD码
9
0~9
16H
键码查询次数
20H
蜂鸣器驱动标志位
二进制码
FFH
全零:
蜂鸣器响
全1:
不响
29H
PB按钮滚存消抖单元
二进制码
2AH
PB按钮滚存消抖单元
二进制码
2BH
PB按钮滚存消抖单元
二进制码
2CH
PB按钮滚存消抖单元
二进制码
2DH
PB按钮滚存消抖单元
二进制码
2EH
新按钮变化情况存放单元
二进制码
0H
2EH
新按钮变化情况存放单元
二进制码
30H
数码管显示缓存单元
二进制码
10H
最右边数码管
31H
数码管显示缓存单元
二进制码
12H
32H
数码管显示缓存单元
二进制码
01H
33H
数码管显示缓存单元
二进制码
05H
34H
数码管显示缓存单元
二进制码
09H
35H
数码管显示缓存单元
二进制码
08H
36H
数码管显示缓存单元
二进制码
12H
37H
数码管显示缓存单元
二进制码
10H
最左边数码管
38H
278us计数单元
十进制码
36
0~36
39H
10ms计数单元
BCD码
0H
0~99
3AH
1s计数单元
BCD码
45H
0~60
3BH
分钟存储单元
BCD码
59H
0~60
3CH
时钟存储单元
BCD码
08H
0~24
50H
压缩机保护存储单元
二进制码
51H
风向控制标志位
二进制码
D5:
左右摆动
D6:
上下摆动
D7:
睡眠模式
56H
压缩机循环常数
十进制码
180
57H
压缩机循环常数
十进制码
100
58H
压缩机新态数据
二进制码
59H
压缩机旧态数据
二进制码
5AH
工作模式单元
二进制码
0:
自动A
1:
制冷C
2:
通风F
3:
制热H
5BH
进程判断
二进制码
0:
自动进程
1:
制冷进程
2:
通风进程
3:
制热进程
5CH
风速模式单元
二进制码
5DH
风速标志位
二进制码
0:
高速
1:
中速
3:
低速
5EH
设定温度
二进制码
5FH
室内温度
二进制码
64H
矩阵键盘消抖单元新键号
二进制码
10H
65H
矩阵键盘消抖单元旧键号
二进制码
66H
显示模式切换
二进制码
10H
后2位10:
正常时钟显示
11~14:
修改模式
70H~
7FH
堆栈单元
二进制码
特殊寄存器区
特殊功能
二进制码
4.1.2硬件资源分配
名称
作用
数码管
显示界面
SW0
空调开/关机
SW1
显示界面显示切换
PB0
工作模式切换
PB1
风速模式切换
PB2
温度-
PB3
温度+
PB4
未用此键
PB5
左右摆动控制
PB6
上下摆动控制
PB7
睡眠模式
K0
数字键1
K1
数字键2
K2
数字键3
K3
定时键
K4
数字键4
K5
数字键5
K6
数字键6
K7
确定键
K8
数字键7
K9
数字键8
K10
数字键9
K11
撤销/返回
K12
左移<-
K13
数字键0
K14
右移->
K15
设置
L0
室内风机
L1
压缩机
L2
室外风机
L3
四通换向阀
L5
低速风显示
L6
中速风显示
L7
高速风显示
L13
左右扫风
L14
上下扫风
L15
睡眠
AN1
改变室内温度
复位按钮
复位
4.2数据定义说明
4.2.1部分数据定义说明
(1)因为单片机复位后SP中的内容为07H,是堆栈实际从08H开始,但为了避免堆栈区与工作寄存区08H~1FH发生冲突,故初始化定义SP值为6FH。
(2)初始化定义TH1和TL1为00H,认为误差只来自于外部晶振。
实时时钟实现1秒精确定时的基本思想是9216=256×36或=128×72或=64×144
T1方式2定时时间设为(256×12÷11.0592)uS中断一次;
38H单元每(256×12÷11.0592)uS加1,计满36次得10mS=0.01S=1/100秒;
39H单元每10mS加1,计满50次得0.5秒,计满100次得1秒;
第5章局部程序设计说明
(各局部程序或各子模块程序功能原理论述:
程序设计的思路与方案、程序原理说明,对少量特别且重要的程序代码可列举并详析)
5.1总初始化以及自检
功能描述
总初始化程序主要是在程序开始进入主流程时,设置定时器1中断服务子程序入口、中断对程序中用到的数据单元赋予初始值、开启定时中断、实现设备自检等。
该程序段只在程序开始时执行一遍。
程序设计思路
当家用空调温度控制器开机进入工作状态后,立即进入自检以及总初始化,确保各软硬件的完好性,以便进行正常工作。
程序原理说明
首先稍加延时(40mS),以待各芯片均退出复位状态。
接着蜂鸣器响1S后关蜂鸣器,然后P1口输出全‘0',所驱动的L0~L7指示灯全亮1S后熄灭。
开中断总允许,初始化T1为定时方式2,T0为计数方式2。
让其没256Tm产生一次中断,以实现精确计时。
接着对数据单元赋予初始值
5.2主流程
5.2.1按键音模块
功能描述
使得按键按下时回馈短促的键音,以便判断是否按下按键
设计思路及方案
设置一个数据单元20H单元存放蜂鸣器是否响的数据,然后判断数据值。
全0为响,响过之后全置为1,全1为不响。
程序原理说明
20H单元存放蜂鸣器是否响的数据,全0为响,全1为不响。
判断是否为0,不为零就跳转出去并结束。
是0就让蜂鸣器响,直到LCALLCLOCK时停止响;实现了蜂鸣器响,就可以让20H置全1。
5.2.2单按键消抖模块
功能描述
检测按钮是否被压下,以便判断是否触发相应的动作,有消抖措施
设计思路及方案
对PB按钮进行扫描,将电平变化量读取采集,并利用滚动滤波法消除抖动,确保去除抖动造成的误动作,并利用采集到的电平变化量进行判断按钮操作,并判断是否触发相应的动作
程序原理说明
对PB按钮电平变化量进行扫描,按钮扫描用到的接口芯片是8255A(U5),由于在总初始化已经对U5进行初始化,已经定义B口为输入口,故首先DPTR只想B口,接着把PB0~PB7电平值存放到29H单元,进过滚动滤波法消除抖动之后,将新状态存入2EH,旧状态存入2FH。
滚动滤波法消除抖动单元为29H~2DH,只有在5个单元内容一致,才将扫描到的电平值送入新状态暂存单元。
设置新态和旧态就是为了方便检测按钮前后状态,判断是否有压下,以便判断是否触发相应的动作。
5.2.3PB按键功能模块
程序功能描述:
该模块的作用在于空调开启后对工作模式,风速模式,设定温度,左右扫风、上下扫风、睡眠等进行修改
程序设计思路及原理描述:
按下PB0按键则可改变空调的工作模式,具体顺序为自动模式,制冷模式,通风模式,制热模式。
按下PB1按键则可依次改变风速模式,具体顺序为自动模式,高风速模式,中风速模式,低风速模式,循环而行。
按下PB2按键则对设定温度减小1度,在自动模式下则减小2度。
按下PB3按键则对设定温度增加1度,在自动模式下则增加2度。
按下PB5按键则可控制空调是否左右扫风,按下PB6按键则可控制空调是否上下扫风,按下PB6按键则可控制是否空调进行睡眠模式、
程序设计具体实现如下:
①对PB按键进行检测,若在消抖后有按键按下,则实现对应的功能。
②设置设定温度的初值并规定范围,在对应的各个模式下,对设定温度赋初值和规定范围
5.2.4基本界面拆字模块
功能描述
在基本进程10H时钟显示进程下,将实时钟数据送去显示缓存并显示
程序原理说明
二位数字转换为两个单独的数字,依次屏蔽高四位和低四位,对于低四位可以直接送入,高四位需经过SWAP语句转换过后便可送入。
拆字程序原理具体步骤如下:
①置显示缓冲单元首地址(对应于最右显示位)。
②取当前数据单元BCD码,依次保留该数据码的低4位和高4位,高四位经过SWAP命令处理,进而分别送入显示缓冲单元。
③利用循环,直到小时单元拆字结束为止。
5.2.54*4矩阵键盘模块
程序功能描述:
行列式键盘功能子模块用于实现对时间进行设置。
程序设计思路及原理描述:
通过对4*4矩阵键盘的按键判断,对实时钟的分或者时进行设置。
1
2
3
定时
4
5
6
确定
7
8
9
撤消
←
0
→
设置
程序具体实现方法如下:
①设置按键按下后将当前时间送入时间修改单元,开始执行闪烁并准备设置时间。
②判断4*4矩阵键盘的键号,并将判断有效的键号送入修改单元,以实现对时间的设置,按下“取消键”则不修改时间,直接退出该程序,按下“确定键”则完成对时间的设置。
“定时”按键用来对空调进行定时开关机,该按键按下后,显示界面进入定时模式,设置好定时时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家用空调温度控制器的控制程序设计论文 课程设计论文本科论文 家用空调 温度 控制器 控制程序 设计 论文 课程设计 本科