XX学院
Hunan Industry Polytechnic
毕 业 实 践
类 别 毕业设计 题 目 基于单片机的无级遥控调 速系统设计
系 名 称 电气工程系 专业及班级 机电一体化XX班
学生姓名 XXXXXX
学 号 000001
指导教师 XXXXXXX
完成日期 XXXX年12 月22日
1
XX学院
毕业设计任务书
基于单片机的无级遥控调 速系统设计
系 名 称 电气工程系 专业及班级 机电一体化 学生姓名 XXXXXXX 学 号 0000001 指 导 教 师(签字): XXXX 教研室主任(签字): XXXXX 系 主 任(签字): XXXXX
XXXXX年 月 日
2
毕业实践课题及任务
该课题主要利用单片机控制技术,无线红外遥控技术,采用汇编语言或C语言编程来控制单相交流电机的工作过程。其目的是培养学生利用单片机控制技术,无线红外遥控技术,采用汇编语言或C语言编程控制技术解决生产、生活中的实际问题,对提高学生的设计能力动手能力和工程实践技能有课题简介 较重要的意义。学生在设计该课题时,应具备电路分析、电子技术、电机及电气控制技术、电子CAD技术、单片机控制技术、C语言程序设计、机电一体化技术等方面的相关知识,掌握电路设计流程图,电子元器件的选择、电路原理图的设计及连线。熟悉程序的编写,输入,修改和调试等。 一、毕业设计(论文)的内容简介 本设计要求采用单片机控制单相交流电机的运行速度,各个相关数据由LCD动态显示,并能实现对电机速度进行红外遥控,同时使电机运行时具有自动定时功能。要求就此系统采用89C51或89C2051单片机完成其系统设计 二、毕业设计(论文)的要求与数据 1、选择正确的电子元件 2、画出电气控制系统原理图及PCB板的布线设计 课题任务 要求 3、用C语言或汇编语言编写出系统控制程序 4、系统的安装与调试 三、毕业设计(论文)应完成的工作: 1、开题报告(2000字左右) 2、电气控制系统原理图及PCB板图 3、电气接线图 4、电子元件详细清单 5、系统程序清单及注释 6、写出毕业设计说明书 - I -
进程安排 1、XXXX年6月24日——XXXX年6月30日 确定毕业设计的指导老师, 并分配好毕业设计任务书 2、XXXX年7月1日——XXXX年7月17日 查阅相关资料,加深对毕业设计任务书的理解 3、XXXX年10月26日——XXXX年11月3日 完成开题报告和文献综述 4、XXXX年11月04日——XXXX年11月12日 完成系统整体硬件设计和各部分模块功能的结合,并确定电路原理图上所有元器件的参数 5、XXXX年11月13日——XXXX年11月20日 完成系统整体软件的编写 6、XXXX年11月21日——XXXX年11月30日 完成毕业设计初稿 7、XXXX年12月01日——XXXX年12月7日 修改并文采毕业设计第二稿 8、XXXX年12月08日——XXXX年12月10日 修改并完成毕业设计正稿 9、XXXX年12月11日——XXXX年12月15日 购买元器件并制作产品 10、XXXX年12月20日——XXXX年12月29日 毕业设计答辩 1、电路与磁路 高教出版社 蔡元宇主编 2、电子技术 高教出版社 胡宴如主编 3、电子线路CAD 机械工业出版社 王廷才主编 参考资料 4、C语言程序设计 高教出版社 陈方主编 5、微机原理与应用技术 高教出版社 廖哲智主编 6、机电一体化系统 高教出版社 赵先仲主编 7、交流调速系统 机械工业出版社 周绍英主编 - II -
XX学院毕业实践开题报告书
电气工程系 系 机电一体化 专业
学生姓名 课题名称 课题 准备 情况 龙建平 班级 机 电S08-1 学号 27 基于单片机的无级遥控调速系统设计 思路和方法 接到该课题后,本小组积极地上网查阅了很多相关方面的有关知识,同时查阅了相关方面的书籍,对课题设计涉及的各个功能进行了初步的分析,得到了初步的理解。 该课题主要利用单片机控制技术,无线红外遥控技术,采用汇编语言或C语言编程来控制单相交流电机的工作过程。 单片机应用系统的硬件电路设计就是为本单元温度控制系统选择合适的、最优的系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、A/D转换器、遥控信号发射器、信号接收器,温度采集 (1)、尽可能选择典型电路,并符合单片机常规用法。本设计采用了典型的显示电路、A/D转化电路,为硬件系统的标准化、模块化打下了良好的基础。 (2)、硬件结构应集合应用软件方案一并考虑。软件能实现的硬件功能,一般响应时间比硬件实现长,且占用CPU时间。由于本设计的响应时间要求不高,所以有一些功能可以用软件编程实现,如键盘的去抖动问题。 (3)、系统中的相关期间哟啊尽可能做到性能匹配。系统中所有芯片都应尽可能选择低功耗产品。 本系统的硬件电路主要包括模拟部分和数字部分,从功能模块上来分有主机电路、数据采集电路、键盘、温度显示电路、信号发射与接收部分控制执行电路,系统设计框图如下。 键盘输入模块 遥控器红外线发射 红外线接收模块 数字温度传感器 AT 89C51单片机系统 温度显示模块 电机控制模 块 微光显示模块 - III
-
1、系统发射电路模块,键盘扫描,遥控板在无操作状态下低功耗设计 2、接收电路模块 拟重点解3、温度采集模块,自动A/D转换。 决的问题 4、定时功能 5、温度显示及按键显示模块,风扇显示低功耗设计 6、控制执行电路设计。 1、XXXX年6月24日——XXXX年6月30日 确定毕业设计的指导老师, 并分配好毕业设计任务书 2、XXXX年7月1日——XXXX年7月17日 查阅相关资料,加深对毕业设计任务书的理解 3、XXXX年10月26日——XXXX年11月3日 完成开题报告和文献综述 4、XXXX年11月04日——XXXX年11月12日 完成系统整体硬件设计和各部分模块功能的结合,并确定电路原理图上所有元器件的参数 5、XXXX年11月13日——XXXX年11月20日 完成系统整体软件的编写 6、XXXX年11月21日——XXXX年11月30日 完成毕业设计初稿 7、XXXX年12月01日——XXXX年12月7日 修改并文采毕业设计第二稿 8、XXXX年12月08日——XXXX年12月10日 修改并完成毕业设计正稿 9、XXXX年12月11日——XXXX年12月15日 购买元器件并制作产品 10、XXXX年12月20日——XXXX年12月29日 毕业设计答辩 计 划 进 度 指导教师意见 签名: 年 月 日
- IV
-
XX学院毕业实践考核表
学生姓名 课题名称 Xxxx 班级 机 电 学号 27 电气工程 系 机电一体化 专业
基于单片机的无级遥控调 速系统设计 课题完成情况及自我评价 通过两个多月的不懈努力,我们小组终于把毕业设计做好了。本毕业设计基本上达到了指导老师的要求,这其中我们得到了很大的提高。我们还学到了很多课题以外的很多知识。我们不仅对于课题有了充分的把握,更对家电方面的发展前景和发展方向有了更加深刻认识,同时我们学会了在不同方案里面选择出更加优秀的方案,使我们学会了从用户和企业及维修人员等多方面因素来考虑问题。同时在撰写毕业设计过程中使我们的团队协作能力得到了进一步的提高。 评语 评分 指导教师评价 签名: 年 月 日 评语 评分 评阅教师评价 签名: 年 月 日 评语 评分 答辩小组评价 组长签名: 年 月 日 毕业实践评审组审核 经综合考核该学生毕业实践得分 分,评定为 组长签名: 年 月 日
- V -
摘要
本设计主要介绍了一种智能电风扇的设计方案。该系统以AT89C51芯片的单片机为核心,应用通用的温度传感器来实现对环境温度的监控,同时系统跟随环境温度的变化来改变电机的运行状态。
本设计采用的温度智能控制,使风扇可以感知环境的温度,以调节风扇的转速,达到更好的工作效果。用户可以选择这种智能调速的方式,也可以选择手动设定方式来控制转速;同时用户也可以使用遥控器来控制风扇的运行状态。当选择手动设定方式时,该功能不发挥作用。而定时工作功能可以让用户自己定制风扇工作时间的长短,以提供更人性化的服务。LED显示功能使用液晶屏显示当前室温度,风扇的转速,风扇的工作模式,当前时间,风扇工作时间等参数,美观大方。
关键词:智能,电风扇,温度传感器,定时器,无极调速,显示
- VI
-
目录
绪言 .............................................................. 1 1.1 课题背景 .....................................................1 1.2 课题研究的目的和意义 .........................................1 第一章 硬件设计 .................................................. 3 1 系统的控制特点与性能要求 .......................................3 2 设计方案 .......................................................3 第二章 本设计用到的元器件简介 .................................... 4 2.1 Inter公司AT89C51单片机简介 .................................4 2.2 AT89C2051芯片简介 ...........................................5 2.3 DS18B20温度传感器 ...........................................5 第三章 硬件电路系统模块的设计 .................................... 7 3.1 直流稳压电源的设计 ...........................................7 3.1.1 单相桥式整流电路 .........................................7
3.1.2 滤波电路 .................................................8 3.1.3 稳压电路 .................................................9 3.2 电机调速模块 .................................................9 3.2.1 电机调速原理 .............................................9 3.2.2 电机控制模块硬件设计 .....................................9 3.3 温度显示与控制模块设计 .......................................10 3.3.1 温度检测硬件模块设计 ....................................10 3.3.2 温度显示硬件模块设计 ....................................11 3.4 红外收/发电路 ...............................................12 3.4.1 红外线遥控器发射电路 .....................................12 3.4.2红外接收电路 .............................................15 第四章 软件设计 ................................................. 17 4.1 数字温度传感器模块程序流程图 .................................18 4.2 电机控制模块 ................................................18 4.3 人机接口 ....................................................20 4.4 红外收/发模块 ................................................22 第五章
总结与展望 .............................................. 24
致谢 ............................................................. 25 参考文献 ......................................................... 26 附录一 红外发射程序 ............................................. 27 附录二 电风扇红外接收(控制板)程序 ............................. 30 附图一 红外发射总图 ............................................. 41 附图二电风扇接收控制面板总图 ..................................... 42
- 1 -
绪言
本章主要阐述了智能电风扇的研究背景,现状,发展方向,明确的指出了制作智能电风扇所用到的元器件,以及各个元器件的功能描述。
1.1 课题背景
我们常见的电风扇一般只有四、五个风速档,用的是人工开关,不知道室内温度,只是人为的调节钙用哪个档。而自动调温调温电风扇这个设计师一个新领域,它用的是在带你走行业中应用广泛的AT89C51单片机。通过单片机与温度探测器结合,将其应用于家用电风扇等转速精确控制,能够有良好的性能。
(1) 自动调温电风扇简介
它使用直流电动机的控制以模拟电路为基础,运算放大器、非线性集成电路以及数字电路组成,使得对电风扇各档风量大调节更加细化,使得电风扇等控制更加人性化,同时它也具有全自动、控制简单、智能化,制作容易,使用温度传感器、专用控制集成电路和单片机,实现当室温达到最佳所设定开启的温度是,电风扇自动开启,并且可以根据室温变化换风速;档室温低于这一设定温度时,电风扇自动关闭。同时显示当前室内温度,和自己所设定的温度,提醒人们合理使用电风扇。
(2) 自动调温电风扇设计目的
进入5月份,天气越来越热,尤其到了盛夏更是酷热难当。目前可供选择的纳凉工具主要有:空调、普通电风扇、冷风机以及蒲扇、纸扇等等。而电风扇以其低廉的价格是她的使用极为广泛。人们常常通宵达旦的使用,一旦气温稍有变化,感冒人数就会急剧增加;冷风机能增强空气的湿度但使用久了,家里电器会受潮,同时也会让使用者长期裸露在外的关节受到危害;蒲扇和纸扇价格低廉,但不自动,目前使用者微乎其微。
在这种情况下,自动调温电风扇应运而生。我们的生活加快,人数需要处理的事情越来越多,在炎热的夏天,回到家更想好好休息,消除自己一天的工作疲劳,而自动调温电风扇等设计就解决了这些问题。
自动调温电风扇是通过单片机控制来实现直流电动机运转频率的自动调节,从而达到改变风速的目的。此设计用到AT89C51单片机,它是把微处理器,存储器(RAM和ROM),输入/输出接口以及定时器/计数器集成在一起的集成电路芯片。他与集成电路相结合,组成一个设定温度,感温,控制和输出与一身的模块。利用单片机AT89C51和一些电路对室温进行探测,从而对电风扇进行开和关断一系列控制。
1.2 课题研究的目的和意义
面临庞大的市场需要,需要提高电风扇的市场竞争力。使之在技术含量上有所提高,应使风扇不仅功能多样,操作简便,而且更加安全可靠。为此,在将要走出大学校门,撰
- 1 -
写毕业论文之计,我选择了《基于单片机的遥控交流无级调速系统》作为我的毕业设计的研究课题,本课题以”智能电风扇作为载体来进行研究。大学学习期间,分别学习了《单片微机原理及其应用》,《传感器检测及应用技术》等课程,对单片机有一定的了解,特别是MCS-51系列的单片机的特点及其应也较常熟悉;而对于传感器的一些应用也略知一二。所以,在设计智能电风扇的时候,给电风扇赋予了更多人性化的设计,如,遥控控制、定时控制,无极调速等,使电风扇更加人性化,相信其丰富的功能,人性化的设计将大大提高电风扇的市场竞争力。
而且最主要的是通过智能的控制使得科技的应用深入生活中,让广大的人民能享受到科技带来的方便.
- 2 -
第一章 硬件设计
1 系统的控制特点与性能要求
本设计主要目的是使普通的电风扇的功能更加强大,使操作简单化,智能化,主要实现以下几个部分的功能:
1.温度控制功能:电风扇可以感知环境温度,以调节风扇的转速,达到更好的工作效果。
2.定时工作功能:该定时功能可以让自己制定风扇工作时间的长短,以提供更人性化的服务。
3、无级调风功能:该功能可解决普通电风扇档位风速变化过大的缺点,可实现任意风速。
4、遥控控制:该功能可以让用户远距离控制电风扇,并选择电风扇等运作状态。 5、实时温度显示:该功能方便用户根据室温调节电机的启动温度点,达到节能目的。
2 设计方案
根据上述,我们选择单片机与A/D转换芯片结合的方法实现本设计。使用的基本元器
件是:AT89C51单片机,LED显示器,开关,按键,电容,电阻,晶振,标准电源等等 系统总体设计框图如下2-1所示:
键盘输入模块 遥控器红外线发射 红外线接收模块 数字温度传感器 AT 89C51单片机系统 温度显示模块 电机控制模 块 微光显示模块
图2-1系统总体设计框图
- 3 -
第二章 本设计用到的主元器件简介
2.1 Inter公司AT89C51单片机简介
AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它具有 4KB片内EPPROM、包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。整个系统结构紧凑,抗干扰能力强,竞价比高。是比较合适的方案 外形及引脚排列如图所示
图2-1 AT89C51外形引脚图
主要特性:
·与MCS-51 兼容
·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式
- 4 -
·片内振荡器和时钟电路
2.2 AT89C2051芯片简介
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。其外形引脚如下图所示
图2-2 AT89C2051外形引脚图
2.3 DS18B20温度传感器
DS18B20内部结构如图3.2.1所示,
64 位 ROM 和 一 线 端 口 存储和控制逻辑 温度传感器 高速暂存器 高温触发器TH 低温触发器TL 8位CRC生成器 配置寄存器 INTERNAL VVDD 供电方式选择 图2-3 DS18B20的内部结构
主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图3.5.2所示,DQ为数字信号输入/输出端;GND
- 5 -
为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地,见图3.8.2)。 ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
- 6 -
第三章 硬件电路系统模块的设计
3.1 直流稳压电源的设计
直流稳压电源主要功能是为后两个部分提供电压的输出。在设计中分出了2个支路,分别输出5V电压。直流稳压电源主要由电源变压器、整流电路、滤波电路和稳压电路四部分组成。框图如图3-1所示。
电源变压器
整流电路
滤波电路 稳压电路
V1 V2 VR VF 图3-1 直流稳压电源方框图
3.1.1 单相桥式整流电路
整流电路主要实现将交流电转换成直流电。实现这以目标主要是靠二极管的单向导电
作用,因此二极管是构成整流电路的关键元件。我采用的是单相桥式整流电路。本设计整流电路如图3-2所示。
a 220V b 图3-2 单相桥式整流电路图
在图中,输入电压V1通过电源变压器成V2。它的作用是将交流电电压V1变成整流
电路要求的交流电压V2。其中的电阻式要求支流供电的负载电阻。四个整流二极管D1到D4结成电桥的形式。通过负载R的电流I以及电压V3的波形如图3-3。它们都是单方向的全波脉动波形。
- 7 -
V2 2 3 4 iL 图3-3单相桥式整流电路波形图
3.1.2 滤波电路
在整流电路输出波形中由于有较多的波纹成分,在所要求的波形不太符合。所以在整
流电路以滤去整流输出电压的纹波。而滤波电路常有电容滤波,电感滤波和RC滤波等。本电路采用的是电容滤波电路。如图3-4所示。
+ + — 图3-4 电容滤波电路
- 8 -
3.1.3 稳压电路
典型应用电路如图3-5所示。图中C1、C2用于频率补偿,防止自激振荡和高频干扰;C3采用电解电容,以减少电源引入的低频干扰对输出电压的影响;D是保护二极管,当输入端短路时,给C3一个放电的通路,防止C3两端电压激穿调整的发结。
图3-5 稳压电路
3.2 电机调速模块
3.2.1 电机调速原理
通过单片机控制可控硅的导通角,从而改变加在电机两端的有效电压来调节电动机的运转。
可控硅导通条件如下:
1)阳—阴极间加正向电压;· 2)控制极—阴极间加正向触发电压;
3)阳极电流IA大于可控硅的最小维持电流IS。
3.2.2 电机控制模块硬件设计
电路中采用了过零双向可控硅型光耦MOC3041,集光电隔离、过零检测、过零触发等功能于一身,避免了输入输出通道同时控制双向可控硅触发的缺陷,简化了输出通道功离2驱动电路的结构。所设计的可控硅触发电路原理图见图3-6其中RL即为电机负载,其工作原理是:单片机及响应用户参数设置,在I/O口输出一个高电平,经反向器反向后,送出一个低电平,使光电耦合导通,同时触发双向可控硅,使工作电路导通工作,给定时间内,负载得到的功率为:
P=
nUI N式中:P为负载得到的功率,kW;n为给定时间内可控硅导通的正弦波的总个数;U
- 9 -
为可控硅在一个电源周期全导通时所对应的电压有效值:V;I为可控硅在一个电源周期全导通时所对应的电流有效值:A。由式(1)可知,当U,I,N为定植时,只要改变n的大小即可控制功率的输出,从而达到调节电机转速的目的。
图3-6 电机控制原理
3.3 温度显示与控制模块设计
3.3.1 温度检测硬件模块设计
图3-7以MCS-51系列单片机为例,画出了DS18B20与微处理器的典型连接。图3-7(a)中DS18B20采用寄生电源方式,其VDD和GND端均接地,图3-7(b)中DS18B20采用外接电源方式,其VDD端用3V~5.5V电源供电。
假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写了3个子程序:INIT为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数据子程序,所有的数据读写均由最低位开始。
+3V~+5.5V +3V~+5.5V UP 4.7K P3.3 DS18B20 GND VDD
V(a)寄生电源工作方式
o
- 10
-
UP P3.3 DS18B20 +3V~+5.5V 4.7K GND o接其它的一线装置 VVDD 外接电源+3V~+5.5V (b)外接电源工作方式 图3-7 DS18B20与微处理器的连接图
主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。假设接一单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度探测电路。单线数字温度传感器DS18B20 采用一线总线接口,大大节省了系统的I/O 资源。如图4-4-2所示。
+5V U6 VDD DQ GND R6 PIAI
图4-4-2 温度传感器DS18B20 电路
3.3.2 温度显示硬件模块设计
温度传感器可以选用LM324A的运算放大器,将其设计成比例控制调节器,输出电压与热敏电阻的阻值成正比,但这种方案需要多次检查后方可使采样精确,过于繁琐。所以我采用老性能更为优越的DS18B20数字温度传感器,它可以直接将模拟温度信号转化为数字信号,降低了电路的复杂程度,提高了电路的运行质量。
本模块以DS18B20作为温度传感器,AT89C51作为处理器,配以温度显示作为温度控制输出单元。整个系统力求结构简单,功能完善。电路图如图3-8所示。系统工作原理如下:DS18B20进行现场温度测量,将测量数据送入AT89C51的P3.7口,经过单片机处
- 11
-
理后显示温度值,并与设定温度值的上下限值比较,若高于设定值或低于设定下限值则控制电机转速进行调整。
图3-8 DS18B20温度计原理图
3.4 红外收/发电路
红外收/发工作原理图如下:
键盘 按键识别编码 控制电路 无线发射 无线接收 信号识别 图4-9红外收/发工作原理图
3.4.1 红外线遥控器发射电路
红外遥控是目前家用电器中用得较多的遥控方式。在了解红外线遥控之前,先得了解什么是红外线。我们知道,人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围是0.62~0.76m的波长范围为0.38~0.6m。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。
红外线是一种看不见的光线,因其在整个电磁波谱中处在可见光(红光)外侧而得名。他介于可见光和微波之间,既有可见光的性质,又有微波的某些特性,广泛用在遥控和传输设备上,其主要优点是:
(1)具有较高的传播速度,不会产生因干涉、空间反射以及双折射等作用而出现的
- 12
-
干扰;
(2)传播中不会产生畸变噪音;
(3)在高峰值功率情况下所需的功率较小; (4)采用一定的调制方法可以有高的干扰性; (5)在仅有一个载波频率的情况下可以有高的稳定性。
正因为红外线传输有上述一系列优点,因此获得了很大的发展。借助于红外线具有直线传播的特性,利用红外传感器具有灵敏度高、响应速度快和光谱范围窄的性能,同时利用单片机具有结构紧凑、可靠性高、数据处理能力强、速度快、功耗小、成本低的特点,可以制作灵敏度高、抗干扰性能优良的红外遥控装置。由于红外线遥控器具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录音机、音响设备、空调机以及玩具等其他小型电器装置也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅安全可靠,而且能有效地隔离电气干扰。下面就红外遥控技术的特点做下简单的介绍。
红外遥控技术是一种利用红外线进行点对点通信的技术,其相应的软件和硬件技术都已比较成熟。它在技术上的主要优点是:
1、无需专门申请特定频率的使用执照;
2、具有移动通信设备所必需的体积小、功率低的特点; 3、传输速率适合于家庭和办公室使用的网络;
4、信号无干扰,传输准确度高;方向性,两个设备之间如果传输数据,中间就不能有阻挡物;而且通讯距离较短,此外红外LED不是一种十分耐用的器件。红外发射程
5、成本低廉。它的缺点是:由于它是一种视距传输技术,采用点到点的连接,具有方向性,两个设备之间如果传输数据,中间就不能有阻挡物;而且通讯距离较短,此外红外LED不是一种十分耐用的器件。红外线遥控器发射原理图如下:
键盘 编码 调制 红外发射 38KHz载波发生器
图3-10 遥控器原理框图
1 遥控器 (1)、系统功能
该系统具有如下几个功能:
1)、通过遥控器控制电机的启动、停止;
- 13
-
2)、通过遥控器控制电机的加速、减速运行; 3)、通过遥控器控制电机的全自动与手动切换; 4)、通过遥控器控制电机的运转时间;
5)、通过遥控器控制电机的摇头与不摇头切换; 6)、手动状态下风型的选择。 (2)、按键功能
K1:风强(低风档、中风档、高风档),键值为01 K2:风型(自然风、睡眠风、无级风),键值为02 K3:定时挡,键值为03 K4:增加,键值为04 K5:减小,键值为05 K6:摇头/固定,键值为06 K7:开关机,键值为07
(3)、当无按键按下时,延时30秒后进入待机状态,系统处于低功耗模式。当有按键按下时,INT0中断产生,同时唤醒CPU进入工作状态。
2、红外发射的编码方式
遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本的NEC的uPD121G组成发射电路为例说明编码原理。当发射前按下按键后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:
(1)、采用脉宽调制的串行码,以脉宽为0.56ms、周期为1.12ms的组合表示二进制的“0”;以脉宽为0.56ms、周期为2.25ms的组合表示二进制的“1”。
“0”、“1”组成的32位二进制码经过38KHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外线发射二极管发射。
(2)、遥控编码是连续发32位二进制码组,其中前16为为用户识别码,能区别不同的电气设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制0FFH,后16位为8位操作码(功能码)及其反码。
遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms,一组码本身的持续时间随它包含的二进制的“0”和“1”的个数不同而不同,大约在45~63ms之间。
(3)、其相关波形图如下:
- 14
-
遥控信号编码波形图如下:
9ms 4.5ms
560u 560u
1687u 引导码 0码 1码 图3-11 红外发射的编码方式
3、遥控器红外发射电路
遥控器红外发射电路如附图1所示。
3.4.2红外接收电路
1、接收解码方式
解码的关键是如何识别“0”,和“1”,从位 的定义我们可以发现“0”,“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同区别“0”和“1”,如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位位“0”,反之则为“1”,未来可靠其间,压缩必须比0.56ms长些,但又不能超过1.2ms,否则如果该位位“0”,读到的意思下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84左右均可。根据码的格式,应该等待9ms的引导码和4.5ms的结果码完成后才能读码。中断接收时子程序首先读取T0定时器的长度,如果是0.56ms就认为是“0”,将其存入缓冲区并且计数器加一,如果是1.68ms就认为是“1”,将其存入缓冲区并且计时器加一。如果计时器值为32时,就接收结束标志位并且计数器清0,如果计时器值不为32时,就认为接收误码,计时器也将清0,传输重新等待读取红外信号。
2、红外接收电路
接收电路可以使用一种集成红外线接收和放大于一体的一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输,这里使用HS0038接收器,它对外只有3个引脚:Out、GND、Vcc与单片机接口非常方便,接收电路图如图4-5-1所示。
图3-11红外接收电路图
- 15
-
HS0038接收原理:红外线接收是把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号。基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。这些工作通常有一体化的接收头来完成,输出TTL兼容电平。最后通过解码脉冲信号转换成数据,从而实现数据的传输。如果相邻的两个中断间隔的数据长度0. 56ms,说明接收到的是“0”;时间长度是1.12ms则为“1”。因此,脉冲电平的每一次挑拨都会形成一次中断,在中断服务子程序中即可实现一次性兑一连串连续波形的测量,在测量后对0和1的歌数据统计从而测出控制指令的功能。
-
- 16
第四章 软件设计
软件总体流程描述在主程序初始化之后,开始反复检测各模块相关部分的缓冲区标志,如果缓冲区标志置位,说明有相应的数据需要处理,然后主程序调用响应的处理子模块,对于温度传感器,我们采用定时采集数据的方法,在定时中断子程序中,采集相应的数据,并进行判断,如果是异常数据,则将数据保存在系统缓冲区,同时置对应的缓冲区标志。然后主程序将会调用相应的子程序进行处理。当有按键按下的时候,采用键盘中断子程序扫描相应的键盘码,然后发给主程序,置对应的键盘按键标志位。在主程序中,当有键盘按下的时候,调用对应的键盘处理子程序。软件主流程图见下页图4-1所示:
系统初始化 LED显示系统温度值 MCS-51单片机数据缓冲区标志位 DS18B20数据缓冲区置位 DS18B20处理子模块 键盘按键缓冲区置位 键盘扫描处理子模块 红外线信号数据缓冲区标志位 红外接收子模块 是否定时 定时处理 - 17
-
图4-1 软件主流程
4.1 数字温度传感器模块程序流程图
系统开始后,进行系统初始化,并开始进行测温,此时用户若将对起始/停止进行温度
设定泽传感器将对进入系统参数设定。接着进行传感器初始化,并进行测温,并把实时温度显示在LED上,若有温度异常,传感器将进行中断调用相应的处理子程序,并显示出来。软件流程图如图4-2所示。
开始 系统初始化 设置 进行测温 初始化DS18B20 设置参数 启动DS18B20测温 异常 内部判断 正常 调用读子程序 调用相应的控制程序 调用相应的键值处理程序 调用子程序 输出显示 结束
图4-2 数字温度传感器模块程序流程图
4.2 电机控制模块
电机涉及到转速和摆头两个方面。风扇的转速由光耦合器触发导通角控制,摇头部分
- 18
-
可以使用普通电风扇蜗杆部分摇头调速,只是把它用一个电磁阀来控制其导通与断开来实现摇头控制。在此基础上我们通过软件对风扇的转动进行精细的控制,以实现多种风类型。对于各种风类型我们依照如下定义:正常的芯片,使用默认的12位转换精度,外接供电电源,子程序GETWD读取的温度值高位字节送WDMSB单元,低位字节送WDLSB风:风扇按设定之强,中,弱风互速运转。
中断入口 保护现场SETB 24H,0 开F a n l及其显示,CLR 24H,0 n10? 关F a n l及其显示 N100? 还原初始化数据 回复现场 26H,00? 中断返回 图4-3 电机控制模块
自然风:风扇马达按预编电脑程序作不规则运转,配合风速键之设定,可分强自然风,中自然风,弱自然风,模仿大自然之风吹效果,令风量更柔和更舒服。
睡眠风:风扇马达进入自然风电脑程序控制,其原理是人体的体温会在睡眠后慢慢下降。风扇的风量亦会慢慢减弱,以免入睡后着凉,其减弱规律如下:
当最初设定为强风时,风扇按强自然风运转半小时,后转为中自然风,半小时后再变为弱自然风,直至预置时间结束,或被关掉为止;当最初设定为中时,风扇按中自然风运转半小时,转为弱自然风,直至预置时间结束,或被关掉为止;当最初设定为弱自然风时,风扇按弱自然风运转,直至预置时间结束,或被关点为止。若果 设置的是无级风速,则测温传感器每隔2分钟检测一次室温,并根据室温的变化来调整调速。如图4-3所示。 从软件角度来说,就是根据前一刻的风扇状态以及用户的输入来确定当前时刻所要输出的
- 19
-
风类型和风速。从硬件角度来说,对于风速转速的控制,最终是1根线的选通以线上可控硅导通时间的控制,也就是说,将软件驱动层量化出的风速值。转换成1根线的选通以及选通的线上可控硅的导通时间。
4.3 人机接口
本部分功能主要便于用户使用电风扇,使用户只要简单的操作,就能实现需要的全部功能,主要有以下几个方面组成: 键盘操作模块 按键功能如下:
K1:风强(低风档、中风档、高风档),键值为01 K2:风型(自然风、睡眠风、无级风),键值为02 K3:定时挡,键值为03 K4:增加,键值为04 K5:减小,键值为05
K6:摇头/固定,键值为0K7:开关机,键值为07
可以进行风的强度,类型,定时等系统设置。与之对应的是键盘扫描处理模块。基本思想如下:
如果有按键按下,中断处理子程序首先进行扫描按键,得到对应的正确的键盘扫描码,然后根据键盘扫描码得到对应的按键号,置有按键标志,并将按键号保持在全局变量中。系统不停的判断有按键标志,如果没有则跳过,如果有按键按下,则进行响应的按键处理,同时实时的在LED上显示,并将最终结果反馈到系统各部分。对应的键盘处理过程的软件流程图如图4-3所示
- 20
-
标志位处理程序 清处标志位 返回主程序 不等 键值与(01H)比较 相等 处理K1子程序 不等 键值与(02H)比较 相等 处理K2子程序 不等 键值与(03H)比较 相等 处理K3子程序 键值与(04H)比较 相等 处理K4子程序 键值与(05H)比较 相等 处理K5子程序 相等 键值与(06H)比较 处理K6子程序 相等 键值与(07H)比较 处理K7子程序 其它键不处理 图4-4 键盘处理过程的软件流程图
-
- 21
4.4 红外收/发模块
红外发射器开启后自动检测有没有按键按下,若有按键按下则进入按键中断,并对按
键进行识别,延时消抖后,判断是有效值则进行保存键值,并通过发射头发射。红外发射程序流程图如图4-5所示。
开始初始化 主程序 延时10s 进入待机模式 有键闭合时进入中断系统 图4-5 -
键盘中断处理程序 No 读列线有键闭合 Yes No 读行线有键闭合 Yes 延时消抖动 取按键编号 存键值 发送 RET1 红外发射程序流程图
- 22
红外接收软件使用输入捕捉中断处理红外遥控信号,根据不同的红外编码,可以完成调节风速,风型,时间,照明等功能。红外中断服务程序流程图如图4-6所示。
中断开始 从端口读一位 Y Y 读取数据完成 N 保存到数据字中 检验正确 N 复位、清空数据字 检验正确 N Y 置位结束标志 中断结束 图4-6 红外中断服务程序流程图
- 23
-
第五章 总结与展望
本文主要完成了如下工作:
1.分析了电风扇在国内市场上所处的地位,以及我所设计研究的智能电风扇主要功能与作用。
2.从解决智能电风扇温度控制入手,讨论了温度传感器在本设计中的作用与地位以及实现了遥控无级调速及各种不同类型风类在电风扇上的应用。
3.从总体的设计布局入手,讨论了单片机在本设计中的作用与主导地位。
在本课题的研究过程中,对单片机和传感器有了一定的了解,对设计智能电风扇有了一个总体的设计思路。其中有很多芯片是我们所没有学过的,但是通过设计中的学习,我查阅了大量的资料,尤其是到图书馆去询问老师,通过在校园网的CNKI网站查到了许多对我有很大帮助的资料,并且和同学们一起讨论,使我对这些芯片有了很深刻的了解,并学会将其运用在具体的实践当中。但是在很都方面还有待于进一步的改进和完善。在以后的工作与学习中,需要更加努力的学习理论知识,在本身掌握知识的基础上还要看大量的书
籍,还有要提高实践能力,才能对这些专业的知识做进一步的学习和研究。
- 24
-
致谢
在论文完成之际,我首先要向我教我《机电一体化设计与应用》及我的毕业论文指导老师何忠胜老师表示最真挚的谢意。是他将扎实的理论知识传授与我,如果没有他们的谆谆教诲就没有我这篇论文的设计思路。在论文写作期间,何忠胜老师给了我很多指导和帮助,给我提了很多中肯的意见,并在我多次的修改期给我很多激励,让我有勇气克服了心理的压力,很好的完成了论文的文稿,虽然的写作的过程中,我遇到了很多的麻烦,但是何老师都不厌其烦的帮我修改,提出了很多的建议,在这里我要忠诚的感谢他;我还要特别感谢的是黄立峰、李伟文、张志田、雷福祥等各位老师给予我的无私的帮助,正是有了他们的鼓励和帮助,我的毕业论文才得以顺利的完成。
到现在为止,论文基本就已经完成了,但是由于本人学识有限,以及现有知识的有限加之时间仓促,文中不免有错误和待改进之处,真诚欢迎各位老师,同学提出宝贵意见
- 25
-
参考文献
陈杰,黄鸿等.传感器与检测技术.北京:高等教育出版社,2002.8~25 张肇富.采用温度传感器的电扇.江苏电器,1994,2
胡乾斌. 单片微型计算机原理与应用. 武汉:华中理工大学出版社,1997 陈丽芳. 单片机原理与控制技术. 南京:东南大学出版社,2003
刘迎春, 叶湘滨. 传感器原理设计与应用. 长沙:国防科技大学出版社,2002 何立民.单片机应用技术选编.北京:北京航空航天的学出版社,2004
李昔华.王延川. 电风扇智能控制模块的设计. 渝州大学学报(自然科学版),2000,2 胡大友. 电风扇智能控制电路PT2126及应用. 国外电子元器件,1995,9 陈祥光.薛锦诚.姜波. 一种单片机系统在线参数设定装置. 电测与仪表,1994,3 石春和.乔宇.王江. 单片机C51开发新技术的研究. 湘潭矿业学院学报,2000,1 陈国荣. 一种新型智能化多点温度检测仪的设计。仪表技术,2000,1 秦海力.王剑. 一种简单的温控系统. 仪表技术,2000,6
蓝慕杰.刘晓为.陈伟平.刘亚春.王美.王东旺. 加速度传感器信号处理集成电路的研制.微纳电子技术,2003,21 各种网上相关资料
- 26
-
附录一 红外发射程序
按键说明:
K1:低风档, 键值为01 K2:中风档, 键值为02 K3:高风档, 键值为03 K4:自然风档,键值为04 K5:睡眠风档,键值为05 K6:连续风档,键值为06 K7:定时挡, 键值为07 K8:开关机, 键值为08
:采用4×1.5V供电,用89C2051做CPU芯片,当没有按键按下时,进入待机状态; 按键采用INT0进行中断,只采用7个按键
*************************************************************************
;$include(205RAM.INC) ;$include(REG51.INC)
************************************************************************* ORG 0000H JMP MAIN ORG 0003H; JMP KEY_INT0 ORG 000BH; JMP FM_T0 ORG 0100H MIAN: MOV R0, #07H CLR A MAIN0:MOV SP, #60H MOV P1, #0000111B CLR KEYON CLR IT0 SETB PT0 SETB EX0 MOV 40H, #0FFH MOV 42H, #0FFH CLR DATAOUT CLR FMOUT MOV TNOD, #02H MOV TOMD, #0F7H SETB FMOUT CLR TR0 MOV R2, #02H DJNZ 40H, LOOP1
-
;INT0的中断入口 ;T0的中断入口 ;进入主程序
;预使用单元清0
;将P1置输入 ;设置电平触发
;38K的中断初始值 ;T0的工作方式2 ;送初值 ;1/3高电平标志 ;2/3的循环次数
- 27
DJNZ 41H, LOOP1 DJNZ 42H, LOOP1 MOV PCON, #01H LOOP1: JMP MAIN KEY_INT0: PUSH ACC PUSH PSW CLR EX0 MOV A, P1 CLR EX0 MOV A, P1 CPL A ANL A, #0FH MOV R2, A MOV P1 #0F0H MOV R1, #03H MOV R3, #03H LCR A ANL A, #0F0H MOV R1, #03H MOV R3, #03H CLR C PINT01: RLC A JC PINT01 DEC R1 DJNZ R3, PINT01 PINT02: MOV A, R2 MOV R2, #00H MOV R3, #03H PINT03: RRC A JC PINT04 INC R2 DJNZ R3, PINT03 PINT04: MOV A, R2 CLR C RLC A RLC A ADD A, R1 MOV SENDBUF+2,A CPL A MOV SENDBUF+3,A MOV SENDBUF, #0FFH LCALL SEND SETB ET0 SETB TR0 LCALL PP CLR TR0 CLR ET0 SETB EX0
-
;进入待机
;中断程序,完成其按键按下的标志位
;将行号存入R2中 ;将列号存入A中 ;置列初号 ;置循环次数 ;取列号并存入A中 ;置列初号 ;置循环次数
;取列号
;取行号
;置循环次数
;键号存于32H单元中 ;存键号的反码
;系统码在30单元中
;发送引导码 ;起动T0
;发送一帧数据,包括系统码和数据码 ;当发送完后关断定时器 ;关T0的中断
;执行完后打开外INT0
- 28
MOV MOV MOV POP PSW RETI
40H, 41H, 42H, PSW ACC
#0FFH #0FFH #0FFH
************************************************************************* ;发送四个缓冲单元的内容程序:
************************************************************************* PP: MOV PP0: CLR PP1: ZER0: CALL CLR CALL
ONE: CALL CLR CALL DJNZ INC `DJNZ RET
MOV R3, #4
R1, SENDBUF MOV R2, #08H C RRC A SETB DATAOUT DY562us DATAOUT DY562us
SETB DATAOUT DY562us DATAOUT DY1687us R2, PP1 R1 R3, PP0
;发送到字节数
;将数据首址
;清CY ;若C等1 ;若C等0
;等四个字节的发送完
- 29
-
附录二 电风扇红外接收(控制板)程序
按键说明:
;用89C51单片机来做主芯片控制,采用红外1838接收头,可控硅采用MC97A6 ;K1:增加,增加指示灯亮 ;K2:减小,减小指示灯亮
;K3:风类型控制(自然风、睡眠风、连续风),相应的指示灯亮 ;K4:定时功能 ;K5:温度设定 ;K6:开关机功能
;自然风的处理流程:停——>开低档——>延时6秒——>开中档——>延时6秒——>开高档——>循环
;睡眠风的处理过程:停6S——>开低档10S——>延时10秒——>停延时10S——>开中档10S——>停延时10S——>开高档10S——循环
*************************************************************************
$INCLUDE(REG51.INC) $INCLUDE(89C51RAM.INC)
************************************************************************* TEMPER_L EQU 29H TEMOER_H EQU 28H FALG1 EQU 38H FLAG2 EQU 01H ORG 0000H JMP START ORG 0003H JMP JISH_INT0 ORG 000BH JMP LP0 ORG 0013H JMP KEY_INT1 ORG 0100H STAR: MOV R0, #7FH CLR A MOV 2FH, #25 DISP: JNB FLAG2, DQ MOV A, 2FH SJMP XS DQ: MOV A, 29H XS: MOV B, #10 DIV AB MOV DPTR, #WORDTAB MOVC A, @A+DPTR MOV P0, A CLR P2.7
用于保存读出温度的低8位
用于保存读出温度的高8位 DS18B20标志位 设定状态标志位
;红外遥控中断设置 ;定时中断 ;按键中断 ;预使用单元清0
;设定高于25度为温度过高 ;显示设定温度值 ;显示当前温度值 ;取出十位和各位
;开启个位数码管显示
- 30
-
SETB P2.6 SETB P2.5 LCALL DELAY100 SETB P2.7 MOV A, B MOV DPTR, #WORDTAB MOVC A, @A+DPTR MOV P0, A CLR P2.6 RET SETB P2.1 CLR FLAG2 MOV SP, #60H MAIN0: MOV @R0, A DJNZ R0, MAIN0 MOV SP, #60H MOV TMOD, #01H MOV TH0, #3CH ;定时50ms MOV TL0, #0B0H MOV 2FH, #25 ;设定高于25度为温度过高 SETB P2.1 CLR FLAG2 MOV SP, #60H UQU: LCALL GET_TEMPER ;用读温度子程序并初始化DS18B20 LCALL DISP ;调用显示当前温度 MOV A, 29H ;将现场实际温度传送给A CJNE A, 2FH, LL1 ;比较当前的温度与设定的温度是否相等 SETB LLOW ;关低风 SETB MD1 ;关中风 SETB HIGHT ;关高风 MOV P0, #0FFH ;关所有的指示灯 SETB EX0 SETB EX1 SETB EA ;CPU开中断 MAIN: JB LKEYON, KEYHANDLE ;检按键标志位 JB REC, KEYHANDLE ;检接收中断标志位 GET_TEMPER: LCALL INT_1820 ;先复位DS18B20 JB FLAG1, TSS2 RET: DJNZ R0, TSR1 MOV R0, #6BH DJNZ R1, TSR1 SETB P3.2 ;然后拉高数据线 NOP NOP NOP
- 31
-
MOV R0, #25H
TSR2: JNB P3.2, TSR3 ;等待DS18B20回应 DJNZ R0, TSR2 LJMP TSR4 ;延时 TSR3: SETB FALG1 ;置标志位,表示DS18B20存在 LJMP TSR5 TSR4: CLR FLAG1 ;清标志位,表示DS18B20不存在 LJMP TRS7
TRS5: MOV R0, #06BH
TRS6: DJNZ R0, TSR6 ;时 TSR7: SETB P3.2 RET
WRITE_1820: MOV R2, #8 CLR C WR1: CLR P3.2 MOV R3, #5 DJNZ R3, $ RRC A MOV P3.2 C MOV P3.2, #21 DJNZ R2, WR1 SETB P3.2
RET TSS2: MOV A, #0CCH LCALL WRITE_1820
LCALL DELAY100 LCALL INIT_1820 MOV A , #0CCH LCALL WRITE_1820 MOV A, #0BEH LCALL WRITE_1820 LCALL READ_1820 RET
READ_1820: MOV R4, #2 MOV R1, #29H 28H(TEMPER_H)中 RE00: MOV R2, #8 RE01: CLR C SETB P3.2 NOP CLR P3.2 NOP NOP NOP SETB P3.2
-
;一共8位数据 ;判断DS18B20是否存在?若DS18B20不
存在则返回
;跳过ROM匹配 ;延时750微妙以上,等待18B20A/D转换
结束
;准备读温度前先复位 ;跳过ROM匹配 ;发出读温度命令 ;将温度高位和数据保存到28H/29H ;将温度高位和地位从DS18B20中读出
;低位存入29H(REMPER_L),高位存入- 32
MOV R3, #08 RE10: DJNZ R3, RE10 MOV C, P3.2 MOV R3, #21 RE20: DJNZ R3, RE20 RRC A DJNZQ R2, RE01 MOV @R1, A DEC R1 DJNZ R4, RE00 RET
WORDTAB: DB 3FH, 06H,5BH,4FH;“0”,“1”,“2”,“3” DB 66H,6DH,7DH,07H ;“4”,“5”,“6”,“7” DB 7FH,6FH, 77H, 7CH ;“8”,“9”,“A”,“B” DB 39H,5EH, 79H, 71H ;“C”,“D”,“E”,“F” DB 80H,00H,40H ;“小数点”,“暗”,“负号” DELAY100: MOV R4, #100 ;100毫秒延时子程序,占用R4,R5 D222: MOV R5, #248 DJNZ R4, D222 RET
DELAY7: SETB P1.7 MOV R3 #120 FRT: ACALL DELAY100 CPL P1.6 RET
DELAY500: MOV R4, #248 DJNZ R5, $ DJN Z R4 DA222 RET JMP MAIN ;转主程序 KEYHANDLE: CLR LKEYON LCR LREC MOV A, MRD CJNZ A, #01H, KEY2 ;当键值=01H时
*************************************************************************
KEY1: CJNE JB JB JB JMP KEY4_A:
;风类处理过程
A, #01H, KEY4_A SMF, SKEEP ZCF, SPRING_A ZRF, WATERM MAIN
JMP KEY4
;K3的处理程序处理风类
*************************************************************************
- 33
-
SPRING_A: JMP SPRING WATERM: JNB ZRF, FAN1 CLR ZRF SETB P2.7 JB LREC, ZHUAN0 JB LLEYON,ZHUAN0 CALL DY06S CLR LLOW JB LREC, ZHUAN0 JB LKEYON, ZHUAN0 CALL DY6s SETB P2.7 JB LREC, ZHUAN0 JB LLEYON, ZHUAN0 CALL DY20MS CLR MD1 JB LREC, ZHUAN0 JB LKEYON, ZHUAN0 SETB P2.7 JB LREC, ZHUAN0 JB LKEYON, ZHUAN0 CALL DY20MS CLR HIGHT CALL DY6S AJMP WATERM ZHUAN0: SETB SMF
FAN1: JMP
MAIN
;自然风控制
;关风扇
;查询 ;查询
;查询 ;查询 ;关风扇 ;查询 ;查询
;查询 ;查询 ;关风扇 ;查询 ;查询
*************************************************************************
;睡眠风控制
*************************************************************************
SKEEP: JNB SMF, FAN2 CLR SMF SLEEP: SETB P2.7 ;关风扇 JB LREC, ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询 CALL DY6S CLR LLOW ;开低档 JB LREC, ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询 CALL DY10S SETB P2.7 ;关风扇 JB LREC,ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询
- 34
-
CALL DY10S
CLR MDI ;开中档 JB LREC,ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询 CALL DY10S SETB P2.7 ;关风扇 JB LREC,ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询 CALL DY10S SETB P2.7 ;关风扇 JB LREC,ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询 CALL DY10S CLR HIGHT ;开高档 JB LREC,ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询 CALL DY10S SETB LLOW ;关低、中、高 SETB MDI SETB HIGHT JB LREC,ZHUAN1 ;查询 JB LKEYON, ZHUAN1 ;查询 CALL DY10S AJMP SKEEP ZHUAN1: CLR SMF SETB ZCF FAN2: JMP MAIN
*************************************************************************
;无极调风 ************************************************************************* WUJIFENG: JB P1.0 FLJX
JB P1.1 FLZJ FLZJ: LCALL DL0.5S JNB P1.1 FAN4 MOV A, #89H INC A CJNE A, #25H ,SETL0 SETL0: JC SETFL LCALL FLJX FLJX: JB P1.1 FAN4 LCALL DL0.5S JNB P1.1, FAN4 MOV R0, #89H DEC A
- 35
-
CJNE A, #00H JNC SETFL FAN4: MOV DPTR, #TAB MOVC A, @A+DPTR DYKT: MOV R6 ,A DL: MOV R7, #30H DJNZ R7, $ DJNZ R6, DL1 SETB P2.7 LCALL DYKT CLR P2.7 LCALL DY RETI
TAB: DB “80H,”75H”,”70H”,”65H”,”60H”,”55H”,”50H”,”45H”,”40H” DY: MOV R7, #50H MOV R6, #50H DJNZ R6, $ DJNZ R7, DL1 RET
************************************************************************* ;定时控制
*************************************************************************
KEY4:CJNE A, #04H, KEY5 ;K4的定时处理程序 JB SJ01, DY1H JB SJ02, DY2H JB SJ03, DY4H JNB SJ00, FAN4 CLR SJ00 SETB TR0 ;0.5H处理 JMP MAIN
DY1H: JNB SJ01, FAN4 CLR SH01 SETB TR0 JMP MAIN DY2H: JNB SJ02, FAN4 CLR SJ02 SETB TR0 JMP MAIN DY4H: JNB SJ03, FAN4 CLR SJ02 SETB TR0 FAN4: JMP MAIN
- 36
-
*****************************************************************************
;开/关机
***************************************************************************** KEY5: CJNE A, #05H,PITHER;开关机处理程序 JB KAI, GUAN CLR MDI CLR LED_M SETB KAI JMP MAIN ;返 GUAN: SETB P2.7 :关风扇 JMP MAIN PITHER: JMP MAIN ;其他键的不处理直接返回
*************************************************************************
;T0定时中断处理
************************************************************************* PUSH PSW MOV TH0, #3CH ;定时50MS MOV TL0, #0B0H DJZN CUZHI, GRET ;1S到后向下执行 MOV CUZHI, #20 ;给50MS的寄存器给初值 INC SEN MOV A, SEN CJNE A, #60, GERT ;1分钟到后向下执行 INC MIN MOV A, MIN JB SJ01, LOOP_1H ;定时1小时的处理 JB SJ02, LOOP_2H ;定时2小时的处理 JB SJ03, LOOP_4H ;定时4小时的处理 CJNE A, #30, GRET ;半小时到后向下执行 MOV P1, #0FFH ;关断所有档位 MOV P0, #0FFH SETB SJ01 ;将1H的标志位进行置1 JMP RET LOOP_1H: CJNE A, #60, GRET ;1小时到后向下执行 MOV P1, #0FFH MOV P0, #0FFH CLR SJ01 ;将1H的 标志位进行置0 SETB SJ01 ;将2好的标志位进行置1 JMP GRET LOOP_2H: CJNE A, #60, GRET ;1小时到后向下执行 INC HOUR MOV A, HOUR CJNZ A, #2, GRET
- 37
-
MOV P1, MOV P0, CLR SJ02 SETB SJ03 JMP GRET LOOP_4H: CJNE INC HOUR CJNZ A, CJNE A, MOV P1, MOV P0, CLR SJ03 JMP GRET GRET: CLR TR0 POP PSW POP ACC RETI SLMP MAIN ;INT0
#0FFH
#0FFH A,
#60,
;关断
;关断2H的标志位
;将4H的标志位进行置位 ;中断返回
GRET ;1小时到后向下执行
HOUR
#4, GRET ;4小时到后向下执行 #0FFH ;关断 #0FFH ;将4H的标志位进行清零
;中断返回
*************************************************************************
中断处理程序:对接收数据进行接收
*************************************************************************
JISH_INT0: PUSH ACC PUSH PSW CLR EX0 ;关断中断 MOV R6, #10 ;避开9MS设计的引导码 SB: CALL DY882US JB P3.2, EXIT ;EX检测为1时,退出 DJNZ R6, SB ;检测为0时,引导码过 JNB P3.2, $ ;检测为0时,等待 ACALL DY4700US ;避开4.5MS时间的引导码 MOV R7, #16 ;避开系统码 JJJA: JNB P3.2 LCALL DY882US MOV C, P3.2 ;将P3.2送C中 JNC UUUA ;若C=0则转 LCALL DY1000US UUUA: DJNZ R7, JJJJA MOV R1, #MRD MOV R2, #2 PP: MOV R3, #8 ;右移次数 JJJJ: JNB P3.2, $ ;P3.2=0则等待 LCALL DY882US MOV C, P3.2 ;送C中
- 38
-
JNC UUU LCALL DY1000US UUU: MOV A, @R1 ;送存贮的首址 RRC A MOV @R1, A ;送存贮单元中 DJNZ R3, JJJJ ;完成一个字节,没完则循环 INC R1 DJNZ R2, PP MOV A, MRD CPL A CJNZ A, 31H, CXIT ;进行数据码和数据的反码进行比较 EXIT: POP PSW POP ACC SETB LREC ;置REC的标志位 SETB EX0 ;打开INT0的中断 RET1
***************************************************************************** ;INT1的中断处理
*****************************************************************************
KEY_INT1: PUSH ACC PUSH PSW CLR EX1 ;关断INT1 LCALL SCANKEY CALL KEY_K10 ;置高、中、低档标志位 CALL FENG_3 ;置风类的标志位 CAL JS ;置定时时间标志位 SETB LKEYON ;按键标志位 SETB EXI ;打开中断位 POP PSW POP ACC RETI
*************************************************************************
;扫描键盘程序
************************************************************************* SCANKEY: MOV A, P1 CPL A ANL A, #0FH MOV R2, A ;将行号存入R2中 MOV P1, #0F0H, 将列置输入端 MOV A, P1 CPL A ANL A, #0F0H ;取列 号并存入A中 MOV R1, #03H ;置列初号 MOV R3, #03H ,置循环次数 CLR C
- 39
-
PINT01: JC DEC DJNZ PINT02: MOV MOV PINT03:RRC RLC A
PINT01 R1
R3,PINT01 MOV A,R2 R2, #00H R3, #03H A
;取列号
;取行号
;置循环次数
JC INC DJNZ PINT04: CLR CLR RLC ADD MOV
RET
-
PINT04 R2
R3, PINT03 MOV A, R2 C A A A, R1 MRD, A
;键号存于MRD单元中- 40
附图一 红外发射总图
- 41
-
附图二电风扇接收控制面板总图
- 42
-
因篇幅问题不能全部显示,请点此查看更多更全内容