家用空调温度控制器的控制程序设计_第1页
家用空调温度控制器的控制程序设计_第2页
家用空调温度控制器的控制程序设计_第3页
家用空调温度控制器的控制程序设计_第4页
家用空调温度控制器的控制程序设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、 微机原理及接口技术 课程设计说明书课题: 家用空调温度控制器的控制程序设计 专业: 班级: 姓名: 学号: 指导老师: 王亚林 2015年 1月 8 日 目录第1章、设计任务与目标31.1设计课题:31.2设计目的:31.3设计任务:3 1.4基本设计要求:.3第2章、总体设计规划与方案论证62.1设计环节及进程安排62.2方案论证6第3章、总体软件设计说明及总流程图103.1总体软件设计说明103.2总流程图11第4章、系统资源分配说明13 4.1系统资源分配13 4.1.1系统内部单元分配表13 4.1.2硬件资源分配15 4.2数据定义说明16 4.2.1部分数据定义说明16第5章、局

2、部程序设计说明175.1总初始化以及自检5.2主流程 5.2.1 按键音模块17 5.2 .2 单按键消抖模块17 5.2.3 PB按键功能模块18 5.2.4. 基本界面拆字模块19 5.2.5 4*4矩阵键盘模块19 5.2.6 模式显示模块20 5.2.7 显示更新模块21 5.2.8 室内温度AD转换模块21 5.2.9 4*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章、系统功能与用户操作使

3、用说明266.1操作显示部分26 6.2系统功能266.3用户操作使用说明27第7章、课程设计总结27第8章、附录:源程序清单30第1章 设计任务与目标1.1设计课题:家用空调温度控制器的控制程序设计 1.2设计目的:通过小型微机应用产品控制程序的设计与调试过程,运用微机原理及接口技术课程所学的基本知识,进而得到理解、巩固和提高,学习掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。1.3设计任务:随着现代生活条件的提高,家用空调已广泛使用,是一种用于房间提供处理空气温度变化的机组。它的功能是对该房间内空气的温度、湿度、和空气流速等参数进行

4、调节,以满足人体舒适的要求。设计一个以AT89S51单片机为核心的家用空调温度控制器,基本任务是利用AT89S51单片机、ADC0809模数转换器等芯片设计并制作一个具有制冷、制热、通风和自动运行的手控型空调控制器,包含实时钟显示,可选择制冷、制热、通风、自动运行等工作模式,能对温度进行设定和控制,具有压缩机三分钟自动保护等功能,编写智能控制器的控制程序并在实验板上模拟调试。1.4基本设计要求:1、开机进行适当的有关接口部件及数码显示器、指示灯、讯响器等自检。2、八位LED 七段数码管作为时钟及其他界面信息显示。3、基本显示模式为按照24小时制动态显示实时钟的时、分、秒信息。4、44键盘作为参

5、数设定与设备操作的输入设备,由“0”“9”数字键及若干个功能键组成,“0”“9”数字键须按照国际通行排列布局,键按下时应回馈短促的键音,键盘扫描还应采取消抖动处理。5、 时钟调校功能:按下“时钟设定”键则进入时钟设定界面,在调取并显示当前实时钟的时、分值基础上供逐位输入新的时、分值,当前数字位以2Hz频率闪烁显示的形式标示;按“确定”键则审核不存在超值域的情况下存入新的时、分值,同时对秒清0以及对秒的前级计时环节置初值;按“取消”键则不存新值返回基本显示模式;还可设置“”键、“”键等以方便操作。6、 利用实验板上的按钮、拨动开关替代设备的开关量输入信号,应当由开关量输入处理子模块程序统一对开关

6、量输入信号进行检测输入并进行软件消抖动处理;利用实验板上的驱动LED指示灯的输出接口电路替代设备的开关量输出驱动信号,应当对输出控制信息建立输出缓存,并统一由输出驱动子模块程序根据输出缓存内容执行实质的输出驱动;利用实验板上的蜂鸣器替代设备的讯响部件,应当统一由讯响驱动子模块程序综合各功能程序模块所产生的讯响逻辑标记信息执行实质的蜂鸣器驱动。7、空调控制器应具有制冷、制热、通风和自动运行四种工作模式。a制冷:室内风机、压缩机及室外风机工作,而四通换向阀停止工作。b制热:室内风机、压缩机、室外风机和四通换向阀均工作。c通风:室内风机工作,而压缩机、室外风机和四通换向阀均不工作。d自动运行:能根据

7、当前室内温度和自动运行的设定温度,自动选择制冷、制热或通风工作模式。e每按一下工作模式选择键时,工作模式按图1所示的箭头方向依此变换:图1 工作模式选择8、能对温度进行设定和控制: a制冷时温度调节范围为:2032。当室内温度高于设定温度1时,开始制冷;而当室内温度降到设定温度时,则转为通风状态。b制热时温度调节范围为:1430。当室内温度低于设定温度1时,开始制热;而当室内温度升到设定温度时,则转为通风状态。c通风时温度设置栏显示“ 一 一 ”,并且温度设置键无效。d自动运行温度调节范围为:25、27、29。若室内温度低于设定温度5时,自动按制热工作模式运行;若室内温度高于设定温度时,则按制

8、冷模式运行;否则按通风模式运行。e温度设定键每按一下,则温度上升或下降1(在设定范围内)。f控温精度为19、室内风机具有高、中、低三档风速和自动风控制功能。每按一下风速选择键时,风速模式按图4所示的箭头方向依此变换:图2 风速模式选择其中自动风与工作模式及温度有关:a制冷时,当室内温度高于设定温度5时,为高速风; 当室内温度高于设定温度25时,为中速风; 当室内温度不高于设定温度2时,为低速风;b制热时,当室内温度低于设定温度5时,为高速风; 当室内温度低于设定温度25时,为中速风; 当室内温度不低于设定温度2时,为低速风;c通风时,当室内温度高于25时,为高速风; 当室内温度介于2025时,

9、为中速风; 当室内温度低于设定温度20时,为低速风;10、具有压缩机三分钟自动保护功能。由于家用空调器所使用的压缩机大多为电容启动运行电动机,带载启动能力较差,因此无论在制冷运行还是在制热运行时,当压缩机停止工作后,必须在三分钟后才允许重新启动。11、24小时预约定时开/关机功能。定时开机:定时开机必须是在关机状态下才能进行,按下“定时”键,显示定时时间并闪动, 通过“”“”键可以调节时间,调整好后点击“定时”键。定时关机:定时关机必须在空调运行的情况下进行12、风向自动控制功能。通过自动控制室内风机水平导风叶片的转动,将调节后的舒适气流送到房间的各个角落。第2章 总体设计规划与方案论证2.1

10、设计环节及进程安排: 根据任务书要求,为实现成功设计家用空调温度控制器的控制程序设计和确保设计顺利进行,我的进程安排如下:时间安排任务天数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:在

11、主程序跳入循环前进行顺序自检,通过观察实验板的现象进而判断实验板是否正常。2:数码管显示程序由硬件决定,采取片选端和位选端连接接口芯片,接口芯片进而和单片机引脚连接,这样大大减少了要占用的单片机引脚的数目。且数码管的显示方式为动态显示,动态显示方法:各位显示器的字位控制线由相应的I/O口线控制,每一位显示器均有一根字位控制线,各位显示器的字段控制线对应并联,由一个8位 I/O口控制。其特点是占用I/O端口少、驱动程序稍繁,须不断更新驱动,占用CPU时间多、总的驱动电流小。3:对于按键音的处理,采用的方法是按键按下后,启动按键音,随后在主循环的第一句清楚按键音。4:对于四中工作模式的判断,:设置

12、一个标志位,标志位中的内容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

13、。7:LED显示器工作原理有两种:一是LED静态显示驱动方式。各位的公共端连接在一起(接地或+5V)。每位的段码线(adp)分别与一个8位的锁存器输出相连。只要输出锁存器的段码不变,就稳定地驱动并显示对应的字符,直到输出另一个段码为止。 静态驱动特点:接口逻辑及驱动程序简单、显示亮度高且稳定、但占用I/O端口多、总的驱动电流大。二是动态显示驱动方式。当LED位数较多时,为了简化电路,降低成本,采用动态显示方式。(1)电路连接方法: a、各位显示器的字位控制线由相应的I/O口线控制,每一位显示器均有一根字位控制线。 b、各位显示器的字段控制线对应并联,由一个8位 I/O口控制。(2) 显示原理:

14、逐个点亮,循环显示,利用人眼的视觉残留效应。(3) 综上所述,我LED显示器工作选择动态显示驱动方式8:键盘接口的工作原理分独立式按键接口和行列式键盘接口1. 独立式键盘接口(适于键数较少、操作快、同时多键动作场合) 各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可很容易判断那个键被按下。2、 行列式(矩阵式)键盘及其接口(适于按键数目较多的场合;可节省较多的I/O口线端;同时只会有一个键闭合的场合。)行列式键盘按键的识别方法a. 扫描法(1) 判断有无键闭合:首先使列线D4D7都输出0,检测行线D0D3。如果无键闭合,D0D3输入全为1;如果有键闭合,就会有某一根行线输入为0

15、。(2) 查找闭合键号:逐行逐列扫描,闭合键号=列号+行首键号 b.线反转法采用线反转法的键盘行线、列线端口各自应当可以在输入与输出方式间切换! 如图:高四位与低四位均可独立改变其输入或输出方式第1步:列线输出为全0 ,随后输入行线电平如有0,则0所在的行就是闭合的按键所在行;无0则无键闭合。第2步:行线输出为全0 ,随后输入列线电平如有0,则0所在的列就是闭合的按键所在列;无0则无键闭合。结合上述两步,可确定按键所在行和列。综上所述,选择行列式键盘按键的线反转法9:按键状态的输入与消抖动机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象,时间一般为510ms

16、。这种现象会引起CPU对于一次键操作进行多次处理,因此必须设法消抖动。10:压缩机三分钟自动保护定时方法: 定时中断,0.01S次数; 计主流程次数我采取计主流程次数180*100次,总时间180*100*0.01S=3分钟。 第3章 总体软件设计说明及总流程图3.1总体软件设计说明总初始化,对数码显示器、指示灯、蜂鸣器的自检以及各使用单元的初值设定和各个芯片的初始化设置等。本设计程序为12个主流程2个中断服务子程序,单片机就是在这些子模块下循环执行,这些子模块依次包含有: ;主工作流程LOOP: LCALL JYIN ;按键音子程序 LCALL TPB ;单按键子程序 LCALL XDPB

17、;调用消抖单按键输入 LCALL CZ ;调用显示内容送显缓子程序(拆字将时分秒送右6位显示缓冲单元) LCALL KT ;行列式键盘子程序 LCALL WDXS ;温度显示子程序 LCALL DISP ;调用显示更新子程序 (动态驱动8位数码显示器一遍,约8mS) LCALL ADSUB ;调用A/D子程序(采集AN1输入电压的A/D数据送左2位显示) LCALL KEY ;调用键盘扫描子程序 (扫描到按键压下时在左第3位显示键号) LCALL CLOCK ;整点报时子程序 LCALL JCPD ;进程判断以及进程显示子程序 LCALL YSBH ;三分钟压缩机保护 LCALL FXBD ;

18、风向摆动 LCALL DSGJ ;定时开/关机 SJMP LOOP ;反复循环主流程 此外,还有一些没被主流程调用,但被其它模块调用的模块,比如驱动控制模块,时钟调校模块等。3.2总流程图判当前进程或模式界面,取相应内容按格式送显缓数码管、指示灯、讯响器,可自检接口芯片等各模块所用资源初值初态(中断、定时、存储单元等)延时40mSI/O接口芯片(8255)及I/O初值初态基本初始化延时等待各芯片退出复位 开始独立按键PB07的检测键盘扫描显示更新驱动显示内容送显缓工作初始化设备自检*时钟调校*压缩机三分钟自动保护 返回主流程风速选择控制 工作模式选择输出驱动控制根据工作进程输出驱动室内风机、压

19、缩机、室外风机和四通换向阀工作,控制相应指示灯。蜂鸣器的输出控制也在此模块通过A/D室内温度送室内温度单元温度设定和控制室内温度检测第4章 系统资源分配及数据定义说明4.1系统资源分配4.1.1系统内部单元分配表数据地址数据定义数码进制数据初值数据范围备注11H时十位修改单元BCD码00212H时个位修改单元BCD码80913H分十位修改单元BCD码50614H分个位修改单元BCD码90916H键码查询次数20H蜂鸣器驱动标志位二进制码FFH全零:蜂鸣器响全1:不响29HPB按钮滚存消抖单元二进制码2AHPB按钮滚存消抖单元二进制码2BHPB按钮滚存消抖单元二进制码2CHPB按钮滚存消抖单元二

20、进制码2DHPB按钮滚存消抖单元二进制码2EH新按钮变化情况存放单元二进制码0H2EH新按钮变化情况存放单元二进制码30H数码管显示缓存单元二进制码10H最右边数码管31H数码管显示缓存单元二进制码12H32H数码管显示缓存单元二进制码01H33H数码管显示缓存单元二进制码05H34H数码管显示缓存单元二进制码09H35H数码管显示缓存单元二进制码08H36H数码管显示缓存单元二进制码12H37H数码管显示缓存单元二进制码10H最左边数码管38H278us计数单元十进制码3603639H10ms计数单元BCD码0H0993AH1s计数单元BCD码45H0603BH分钟存储单元BCD码59H06

21、03CH时钟存储单元BCD码08H02450H压缩机保护存储单元二进制码51H风向控制标志位二进制码D5:左右摆动D6:上下摆动D7:睡眠模式56H压缩机循环常数十进制码18057H压缩机循环常数十进制码10058H压缩机新态数据二进制码59H压缩机旧态数据二进制码5AH工作模式单元二进制码0:自动A1:制冷C2:通风F3:制热H5BH进程判断二进制码0:自动进程1:制冷进程2:通风进程3:制热进程5CH风速模式单元二进制码5DH风速标志位二进制码0:高速1:中速3:低速5EH设定温度二进制码5FH室内温度二进制码64H矩阵键盘消抖单元新键号二进制码10H65H矩阵键盘消抖单元旧键号二进制码6

22、6H显示模式切换二进制码10H后2位10:正常时钟显示1114:修改模式70H7FH堆栈单元二进制码特殊寄存器区特殊功能二进制码4.1.2硬件资源分配名称作用数码管显示界面SW0空调开/关机SW1显示界面显示切换PB0工作模式切换PB1风速模式切换PB2温度-PB3温度+PB4未用此键PB5左右摆动控制PB6上下摆动控制PB7睡眠模式K0数字键1K1数字键2K2数字键3K3定时键K4数字键4K5数字键5K6数字键6K7确定键K8数字键7K9数字键8K10数字键9K11撤销/返回K12左移K15设置L0室内风机L1压缩机L2室外风机L3四通换向阀L5低速风显示L6中速风显示L7高速风显示L13左

23、右扫风L14上下扫风L15睡眠AN1改变室内温度复位按钮复位4.2数据定义说明4.2.1部分数据定义说明(1)因为单片机复位后SP中的内容为07H,是堆栈实际从08H开始,但为了避免堆栈区与工作寄存区08H1FH发生冲突,故初始化定义SP值为6FH。(2)初始化定义TH1和TL1为00H,认为误差只来自于外部晶振。实时时钟实现1秒精确定时的基本思想是 9216=25636 或=12872 或=64144 T1方式2定时时间设为(2561211.0592)uS中断一次; 38H单元每(2561211.0592)uS加1, 计满36次得10mS=0.01S=1/100秒; 39H单元每10mS加1

24、,计满50次得0.5秒,计满100次得1秒; 第5章 局部程序设计说明(各局部程序或各子模块程序功能原理论述:程序设计的思路与方案、程序原理说明,对少量特别且重要的程序代码可列举并详析)5.1总初始化以及自检功能描述 总初始化程序主要是在程序开始进入主流程时,设置定时器1中断服务子程序入口、中断对程序中用到的数据单元赋予初始值、开启定时中断、实现设备自检等。该程序段只在程序开始时执行一遍。程序设计思路 当家用空调温度控制器开机进入工作状态后,立即进入自检以及总初始化,确保各软硬件的完好性,以便进行正常工作。程序原理说明 首先稍加延时(40mS),以待各芯片均退出复位状态。接着蜂鸣器响1S后关蜂

25、鸣器,然后P1口输出全0,所驱动的L0L7指示灯全亮1S后熄灭。开中断总允许,初始化T1为定时方式2,T0为计数方式2。让其没256Tm产生一次中断,以实现精确计时。接着对数据单元赋予初始值5.2主流程5.2.1按键音模块功能描述 使得按键按下时回馈短促的键音,以便判断是否按下按键设计思路及方案 设置一个数据单元20H单元存放蜂鸣器是否响的数据,然后判断数据值。全0为响,响过之后全置为1,全1为不响。程序原理说明 20H单元存放蜂鸣器是否响的数据,全0为响,全1为不响。判断是否为0,不为零就跳转出去并结束。是0就让蜂鸣器响,直到LCALL CLOCK时停止响;实现了蜂鸣器响,就可以让20H置全

26、1。5.2.2单按键消抖模块功能描述 检测按钮是否被压下,以便判断是否触发相应的动作,有消抖措施设计思路及方案 对PB按钮进行扫描,将电平变化量读取采集,并利用滚动滤波法消除抖动,确保去除抖动造成的误动作,并利用采集到的电平变化量进行判断按钮操作,并判断是否触发相应的动作程序原理说明 对PB按钮电平变化量进行扫描,按钮扫描用到的接口芯片是8255A(U5),由于在总初始化已经对U5进行初始化,已经定义B口为输入口,故首先DPTR只想B口,接着把PB0PB7电平值存放到29H单元,进过滚动滤波法消除抖动之后,将新状态存入2EH,旧状态存入2FH。滚动滤波法消除抖动单元为29H2DH,只有在5个单

27、元内容一致,才将扫描到的电平值送入新状态暂存单元。设置新态和旧态就是为了方便检测按钮前后状态,判断是否有压下,以便判断是否触发相应的动作。5.2.3 PB按键功能模块程序功能描述: 该模块的作用在于空调开启后对工作模式,风速模式,设定温度,左右扫风、上下扫风、睡眠等进行修改程序设计思路及原理描述:按下PB0按键则可改变空调的工作模式,具体顺序为自动模式,制冷模式,通风模式,制热模式。按下PB1按键则可依次改变风速模式,具体顺序为自动模式,高风速模式,中风速模式,低风速模式,循环而行。按下PB2按键则对设定温度减小1度,在自动模式下则减小2度。按下PB3按键则对设定温度增加1度,在自动模式下则增

28、加2度。按下PB5按键则可控制空调是否左右扫风,按下PB6按键则可控制空调是否上下扫风,按下PB6按键则可控制是否空调进行睡眠模式、程序设计具体实现如下:对PB按键进行检测,若在消抖后有按键按下,则实现对应的功能。设置设定温度的初值并规定范围,在对应的各个模式下,对设定温度赋初值和规定范围 5.2.4基本界面拆字模块功能描述在基本进程10H时钟显示进程下,将实时钟数据送去显示缓存并显示程序原理说明二位数字转换为两个单独的数字,依次屏蔽高四位和低四位,对于低四位可以直接送入,高四位需经过SWAP语句转换过后便可送入。拆字程序原理具体步骤如下:置显示缓冲单元首地址(对应于最右显示位)。 取当前数据

29、单元BCD码,依次保留该数据码的低4位和高4位,高四位经过SWAP命令处理,进而分别送入显示缓冲单元。利用循环,直到小时单元拆字结束为止。5.2.5 4*4矩阵键盘模块程序功能描述:行列式键盘功能子模块用于实现对时间进行设置。程序设计思路及原理描述: 通过对4*4矩阵键盘的按键判断,对实时钟的分或者时进行设置。123定时456确定789撤消0设置程序具体实现方法如下:设置按键按下后将当前时间送入时间修改单元,开始执行闪烁并准备设置时间。判断4*4矩阵键盘的键号,并将判断有效的键号送入修改单元,以实现对时间的设置,按下“取消键”则不修改时间,直接退出该程序,按下“确定键”则完成对时间的设置。“定

30、时”按键用来对空调进行定时开关机,该按键按下后,显示界面进入定时模式,设置好定时时间后按下定时键。再按一次返回键返回时钟显示界面,当到了设置时间时,如果是关机就会定时开机复位,如果是开机状态空调到设置时间就会自动关机。5.2.6模式显示模块程序功能描述:模式显示子模块用于实现将空调的工作模式,风速模式,设定温度,室内温度这些信息显示在数码管上,是否切换显示由拨动开关SW1控制。程序设计思路及原理描述:模式显示子模块首先对SW1的转台进行判断,若判断符合,则显示空调的工作模式,风速模式,设定温度,室内温度这些信息。若不符合,则自动跳过,数码管依然显示实时钟信息。程序原理具体步骤如下:程序对SW1

31、进行判断,若SW1拨上则显示空调的工作模式,风速模式,设定温度,室内温度这些信息。拨下则总动跳过,数码管正常显示实时钟信息。数码管8数码管7数码管6数码管5数码管4数码管3数码管2数码管1工作模式风速模式设定温度十位设定温度个位室内温度十位室内温度个位若SW1拨上,则显示空调的工作模式,风速模式,设定温度,室内温度,具体如下:工作模式:“A”代表自动模式,“C”代表制冷模式,“F”代表通风模式,“H”代表制热模式。风速模式:“A”代表自动模式,上划线“”代表高速模式,中划线“”代表中速模式,下划线“_”代表低速模式。5.2.7显示更新驱动模块功能描述:显示更新驱动子模块主要实现在数码光上点亮什

32、么数字的功能。实验板上面的数码管为共阴极,所以只要对要点亮的段选赋1值即可。程序思路及原理描述:该程序将显示缓冲单元30H-37H的内容依次送到数码管上,使数码管依次显示对应的信息,以实现动态扫描。程序原理具体步骤如下:置显示缓冲单元首地址,即要显示位的位码初值(从最右位起),选中此数码管显示有效,即从位码输出口(8255-B口)输出缓冲单元的内容。查表得相应字段码,让该字段码输出(8255-A口),为了防止发生窜显现象,在每个数码管显示完毕后,应把断码置为无效,再继续执行循环程序。在送入数据之后,要对数码管点亮进行一个一定间隔的延时程序,方便人眼观察到,实现依照次序让各位数码管显示过去的动态

33、显示。显示更新的查表方式是直接利用字段表与字段序号的关系,直接查表得到字断码。5.2.8室内温度AD转换模块程序功能描述:室内温度AD转换子模块主要实现将利用温度感应器将室内温度这一模拟量转换为单片机可识别的数字量,将采集到的数字量除以4,得到对应的温度值,温度值范围为0-63。程序设计思路及原理描述 通过A/D转换芯片ADC0809芯片转换,经过算术运算,得到室内温度。 程序原理具体步骤如下:AD转换出室内温度数据将此数据保存在室内温度单元中。5.2.9 4*4矩阵键盘扫描模块功能描述:当开关SW1拨到时间显示模式时,键盘的按键才能使用,否则在工作模式时4*4矩阵键盘无效。当按下4*4矩阵键

34、盘上的任意一个按键,主流程执行到这个子程序时,将4*4矩阵键盘的按键号送入对应的存储单元,以供其他需要4*4矩阵键盘的子程序模块使用。程序思路及原理描述:4*4矩阵键盘扫描子程序采用反转法来扫描键盘,得到键盘的行列码,采用逐一比较的办法得到其行列码对应的键号值,采用滚存消抖处理消除键盘开关的电平抖动现象,具体步骤如下:根据原有实验板的硬件设施,先把8255的C口先初始化为高4位输出方式驱键行线、低4位输入方式驱键列线,键盘行线(高4位)输出驱动全0,输入键盘列线电平(低4位)存60H单元。C口改初始化为高4位输入驱键行线、低4位输出驱键列线,让键盘列线(低4位)输出驱动全0,输入键盘行线电平(

35、高4位)在A中。保留列线电平值所在的低4位和行线电平值所在的高4位,将列线电平值、行线电平值组合成8位行列码于预先编排的单元中。查预先编排好的键码表,读取键码表中当前键号对应位置的键码,当采集到的键码与表中的键码相同时,表明查到了当前按下的键号,否则键号存储单元的值为61H,表明查完十六个键码值无一形成对应关系,即键盘无按下或则是同时有多个按键同时按下。键盘消抖是用延时原理即待开关电平稳定时才存入新扫描的键号。通过原理分析可知,只要改变键码在键码表中的位置,就可以人为的改变按键的键号值,达到自定义键号的目的。键盘的接线是其行线和列线分别接8255C口的高四位与低四位。5.2.10整点报时模块程

36、序功能描述: 整点报时,让蜂鸣器响1秒钟程序设计思路及原理描述 通过CJNE指令判断分钟是否为00,不是退出子程序,是的话继续判断秒钟是否为00,如果秒钟也为零,说明到了整点就让蜂鸣器响直到秒钟单元变为1秒,这时刚好达到1S(即蜂鸣器响1S时间关闭)。5.2.11空调进程判断及显示模块程序功能描述:该模块的功能作用在对空调在自动工作模式下的进程进行判断,和制冷制热是否需要通风进行判断,判断后通过LED灯显示相关风机工作状态显示工作进程。程序设计思路及原理描述通过多重判断语句CJNE对当前实际温度和设定温度以及工作模式进行比较处理,判断得到当前工作进程。程序原理具体步骤如下:判断当前是否是自动工

37、作模式,是则进行自动模式下的判断。不是则判断是否是自动风速模式,然后对自动风速模式进行相关判断然后对制冷制热模式进行室温和设定温度的比较。最后对得出的进程通过LED灯显示出来对应器件是否工作。5.2.12三分钟压缩机保护模块程序功能描述: 该模块的功能作用在为了保护压缩机在关闭后不会立即开启造成不必要的损坏。压缩机三分钟自动保护定时方法: 定时中断,0.01S次数; 计主流程次数我采取计主流程次数180*100次,总时间180*100*0.01S=3分钟。程序设计思路及方案在输出驱动模块中输出前对压缩机驱动位进行判断,可保存压缩机驱动位的前态,当现态是停机时即不断对停机计时单元计时,计满三分钟

38、则将压缩机可工作标志位置有效;当前态是停机现态是工作,即压缩机要重启工作时要对压缩机可工作标志位进行判断,有效时才启动工作,启动后该标志置为无效同时停机计时单元置初值。程序原理说明该程序主要是通过DJNZ语句起到延迟开启压缩机效果。程序原理具体步骤如下:先判断压缩机前态是否为工作,然后判断新态是否为关闭。满足以上条件则让50H(压缩机计时允许单元)置#0FFH,此时不再读取外部压缩机状态数据,开始三分钟计时,计时期间,屏蔽压缩机工作。计时完毕后,对50H(压缩机计时允许单元)置#0,此时开始读取压缩机数据。准备下一次判断是否需要开始计时。5.2.13风向摆动模块程序功能描述: 通过独立按键电平

39、检测,判断是否触发控制空调是否进行左右扫风和上下扫风。程序设计思路及方案 首先进行电平开关SW07检测,sw0开关为0即为关机状态则返回。判断PB5、PB6是否按下,按下则继续,51H单元存放风向左右摆动,上下摆动的数据,则令相应的标志位置0或1,然后读取51H内数据,并输出给外部端口驱动L8L15。没按下按键判断别的按键是否按下。5.2.14驱动控制模块程序功能描述: 统一判断工作进程和风速,驱动室内风机、压缩机、室外风机、四通换向阀工作或停止工作,和切换风速程序设计思路及方案将工作模式单元的值送给累加器A,判断属于什么进程,制冷进程时室内风机、压缩机及室外风机工作,而四通换向阀停止工作。制

40、热进程时室内风机、压缩机、室外风机和四通换向阀均工作。通风进程时室内风机工作,而压缩机、室外风机和四通换向阀均不工作。风速模式单元的值送给累加器A,判断属于什么风速,让对应的二极管工作进行显示。5.2.15定时开关机模块程序功能描述:该模块的功能作用是用来对空调进行定时开关机,定时按键按下后,显示界面进入定时模式,设置好定时时间后按下定时键。再按一次返回键返回时钟显示界面,当到了设置时间时,如果是关机就会定时开机复位,如果是开机状态空调到设置时间就会自动关机。程序设计思路及方案分配两个数据单元,一个存放设定的小时数据,一个存放分钟数据,然后跟实时钟存放小时和分钟的数据单元比较,当值相等时检测是

41、处于关机状态还是处于开机状态,如果是关机状态就让空调开机复位,如果是开机状态,就让空调停止工作。程序原理说明电平开关SW07检测,输入SW07电平,判断SW0是否为0,为1则进行定时开机设置,;判断SW0为0,则定时关机(让L0-L7全暗,或让蜂鸣器响1分钟提示);;判断SW0为1,则定时开机复位。第6章 系统功能与用户操作使用说明6.1操作显示部分各按键以及指示灯功能分布图 时 分 秒 工作,风速模式 设定温度 室内温度 室内 压缩 室外 四通 低 中 高 风机 机 风机 换向阀 风速 风速 风速 (L0)(L1)(L2) (L3)(L4)(L5)(L6)(L7) SW0 SW1(空调开关)

42、(温度显示开关)PB按键键盘部分: PB0 PB1 PB2 PB3 模式 风速 设定温度 设定温度切换键 切换键 减一 加一6.2系统功能: 本空调遥控器具有实时钟显示功能,并可通过键盘按键进行调校,还具有定时关机和倒计时关机功能,可自动制冷制热通风,用户只需启动和选择模式即可,除此之外还有压缩机三分钟自动保护。6.3用户操作使用说明1、初次使用时,接通电源时钟界面的初始时间是085945,可以简单通过以下步骤实现对实时钟的调校设置:按下键盘上的“设置”键,这时您观察到的界面信息是时间的闪烁,当前闪烁位为正在修改位,表明已经进入了时钟调校模式。按下您认为需要调校的时间对应的调节键。当您已经调整

43、到自己设定的时间,这时你只需按下“确定”键,时钟就会从这个设定的时间下,开始计时;如您想直接退出调校,只需按下“取消”键,就可以退出调校模式,恢复原来时间的计时。2、功能选择 拨上SW0“开关”按键,空调各部分顺利工作,拨下SW0“开关”按键后,空调关闭各项器件。拨上SW1“显示切换”按键,此时数码管正常显示工作模式,风速模式,设定温度,室内温度等信息。拨下时,则正常显示实时钟信息。 空调正常启动后,通过按下PB0,PB1,PB2,PB3四个按键可以依次调整工作模式,风速模式,设定温度的减小1和增大1。空调正常启动后,按下4*4矩阵键盘的定时按键,按下后,L9正常点亮,此时进入定时模式,在实时

44、钟到达九点钟的时候,空调自动关机。若按下后,再按一次,L9正常熄灭,表示退出定时模式,在定时模式下并不影响其他功能的实现。空调正常启动后,按下4*4矩阵键盘的确定键,确定键为复用键,另一功能为倒计时三分钟自动关机,按下后,此时L8被正常点亮,表示进入三分钟计时模式,再过三分钟,空调自动关机。若再按一次,则L8熄灭,表示已经退出倒计时模式。第7章、课程设计总结本次的课程设计是家用空调温度控制器的控制程序设计,运用微机原理及接口技术课程所学的知识设计一个以AT89S51单片机为核心的家用空调温度控制器,具有制冷、制热、通风和自动运行等工作模式,能对温度进行设定和控制等功能。三周的课程设计结束了,在

45、这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在老师进行验收时,我的压缩机还有点有点小问题,但后来经过修改,我设计的程序具备课程的全部要求,并且都可以正常实现功能。在设计过程中,我向老师请教,和同学们相互探讨,相互学习,相互监督。 这使我对微机接口及原理比以前理解更加的透彻,对每一条指令的理解也提高到更高的程度。这是我以前学习微机原理课程所未达到的。我知道只有自己设计程序才能真正有所收获。虽然有的同学不是自己写程序老师不知情情况下也能通过验收,但是我知道这样对知识的理解不会更透彻。这次的程序对我来说最难的是对温度进行设定和控制与自

46、动风程序的编写,因为自动风与工作模式和温度有关,这就考验我的统筹规划能力,这部分的程序编写让我着实花了好久时间。不过所幸后来经过老师的指导,终于有所顿悟。设计课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础. 通过这次模具设计,本人在多方面都有所提高。通过课程设计,综合运用本专业所学课程的理论和生产实际知识进行程序设计,巩固与扩充了我微机原理课程所学的内容,体会了学以致用、突出

47、自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 在此感谢我们的亚林老师.老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪; 同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 对于本次的课程设计由于之前提前布置了题目,并且老师还对我们辅导,让我们有了一个大体的思路。所以,在设计之前我觉得这次的设计会很难但对我来说应该不难。而且在课程设计之前我们有足够的时间多课程设计的题目研究和对书本上的内容进行复习。课程设计之前充满着满满的信心。然而在真正的课程设计的时候,事情的进展并没有像我想象

48、的那样顺利,本次的课程设计是对所学知识的一个综合理解和运用,由于之前的放松心态,并没有进行深入的理解,所以在真正的操作的时候我就迷惘了。还好,在两周的设计中,运用老师所给的思路方法,还是在做好帮助我完成了本次的课程设计。在开始之前构造一个大体的思路,该有的功能模块,该实现的功能,该如何实现,按照这样的思路分条写出每条子程序,例如,实现空调模式的转换,分配5AH单元来判断进程,通过每按下一次PB0按键实现一个模式转换到另一个模式,通过判断5AH是否与“0”“1”“2”“3”相等来判断是否相对应于“A”自动“C”制冷“H”制热“F”通风。由于本次的课程设计是通过51单片机的111条指令去实现空调的温度控制功能。所以掌握

温馨提示

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

评论

0/150

提交评论