基于单片机的空调遥控器设计 (1)_第1页
基于单片机的空调遥控器设计 (1)_第2页
基于单片机的空调遥控器设计 (1)_第3页
基于单片机的空调遥控器设计 (1)_第4页
基于单片机的空调遥控器设计 (1)_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

本本科科毕毕业业 设设计计 基于单片机的空调遥控器基于单片机的空调遥控器 摘 要 随着社会的发展 科技的进步以及人们生活水平的逐步提高 各种方便于生活的遥 控系统开始进入了人们的生活 电器在家庭中已经十分普及 与此同时 和电器相伴的 空调遥控器的品种和产量不断提高 传统的遥控器采用专用的遥控编码及解码集成电路 这种方式虽然制作简单容易 但由于功能键数及功能受到特定的限制 只实用于某一专用电器产品的应用 应用范围 受到限制 而采用单片机进行遥控系统的应用设计 具有编程灵活多样 操作码个数可 随便设定等优点 论文首先对遥控器的几个方案进行了论证 最终确定了一可行性方案 并对此方案 进行了可行性分析之后提出了电器遥控器的硬件和软件设计方案 在硬件设计方案中 首先详细论述了遥控器的基本原理并用实例进行了说明 然后 对电器遥控器常用硬件 设备原理和使用进行了讨论 并对设计中使用的单片机做了必要说明 在软件设计方案 中 论文对软件流程做了详细的解释并阐述了单片机软件设计的一般方法 最后 论文 对电器遥控器设计的硬 软件调试做了简单介绍 关键字 遥控器 电器遥控 单片机 Air Conditioner Remote Controller Based On Single Chip Microcomputer Fan Geqiang College of Science South China Agricultural University Guangzhou 510642 China Abstract With the development of society the progress of science and technology and the improvement of people s living standards remote control systems to facilitate life begin to enter people s life Electrical appliances have become very popular in the family at the same time and the air conditioning remote control electric appliance with variety and yield improvement The traditional remote controller adopt special remote control coding and decoding integrated circuit while this preparation is simple and easy but because the function keys and function subject to certain limitations application is applicable only to a special electrical products limited application range Design and application of single chip control system with programmable flexible operation code can be arbitrarily set number etc Firstly several schemes for the remote control has been demonstrated ultimately determine a feasible scheme and this scheme for the feasibility of proposed electric appliance remote controller hardware and software design scheme In hardware design this paper firstly discusses the basic principle of the remote control and illustrates it with examples Then on a remote control electric appliance equipment commonly used hardware principle and application are discussed and the design used in single chip to do the necessary notes In software design the software process to do a detailed explanation and expounds the general method of MCU software design Finally the article on the remote controller design hardware software debugging is introduced briefly Keyword remote control electric remote control single chip 目 录 1 引言 1 2 方案比较 1 2 1 方案一 多功能红外遥控器 1 2 2 方案二 红外线电器遥控器 2 2 3 方案三 空调遥控器 2 2 4 方案比较 3 3 空调遥控器硬件设计 4 3 1 单片机选型 4 3 2 红外发射电路设计 4 3 2 1 红外遥控基本原理 4 3 2 2 红外发射电路 8 3 3 LCD 驱动电路设计 9 3 3 1 LCD 基本原理 9 3 3 2 LCD 驱动电路 串列传输 10 3 4 键盘 摇杆扫描电路设计 11 3 4 1 键盘 摇杆基本原理 11 3 4 2 键盘 摇杆扫描电路 13 3 5 空调遥控器硬件电路图 13 4 调试 14 4 1 硬件调试 14 4 2 软件调试 15 4 3 故障诊断及排除 15 5 总结 15 致谢 16 参考文献 17 附录 18 华南农业大学本科生毕业设计成绩评定表 0 1 引言 随着社会进步和科技的发展 现代电器中越来越向遥控化发展 实现人可以远距离 的控制 无线控制 这大大的方便了人民的日常生活 有了遥控控制我们可以不用再在 电器上进行操作了 我们可以通过遥控进行远距离操作 这样既把方便了我们进行移动 操作也节省了时间 有了遥控器 在对电器进行调试 操作时不用再近距离的接近电器 了 这在对某些高压机器或有毒现场进行操作时大大降低了危险 同时当我们不能触及 到机器又想对其操作时 只要我们有遥控器我们就可以对其进行操作 这样也节省的时 间同时在遇到紧急情况时能够第一时间控制机器 而遥控用于家电方面也越来越多了 随着社会的发展 人们对电器遥控器的要求越来越高了 而随着科技的发展目前电器遥 控器正在朝着体积小 重量轻 简单易用 功能强大等方面发展 在众多的电器遥控器 中红外线遥控器应用最为广泛 本课题通过单片机红外线遥控发射技术 实现对空调控制空调制冷 温度 制热等 功能的实现 从而达到遥控器的体积小 功耗低 功能强 成本低的目的 本文先经过多方案的比较最终确定了一种方案 并通过此方案对电器遥控器的工作 原理 整个工作的流程 硬件各部分设计和软件各部分程序的编写都进行了比较详细的 介绍 本文还对电器遥控器的设计过程中所用到的单片机也进行了分析 以便于能够更 好的了解电器遥控器的原理和工作过程 最后本文还对电器遥控器的硬 软件调试也进 行简单的介绍 2 方案比较 2 1 方案一 多功能红外遥控器 该方案适用于编码式红外线遥控型家用电器 可遥控多台家用电器 具有一个学习 控制复用键 5 10 个设备选择键 10 20 个功能控制键 由一个设备选择键与各个功 能控制键共同实现对一个设备的控制 原理 图 1 所示为多功能红外遥控器的结构框图 遥控器由红外接收及发射电路 信号调制电路 中央控制器 8031 程序及数据存储器 键盘及状态指示电路组成 遥控器有两种状态 学习状态和控制状态 当遥控器处于学习状态时 使用者每按 一个控制键 红外线接收电路就开始接收外来红外信号 同时将其转换成电信号 然后 经过检波 整形 放大 再由 CPU 定时对其采样 将每个采样点的二进制数据以 8 位 1 为 红外接收电路 红外发射电路 信号检波 整形 放 大 采样电路 信号保持 调制放大 电路 键盘及状态指 示电路 程序及数据存 储器 CPU 图 1 多功能红外遥控器的结构框图 一个单位 分别存放到指定的存储单元中去 供以后对该设备控制使用 当遥控器处于 控制状态时 使用者每按下一个控制键 CPU 从指定的存储单元中读取一系列的二进制 数据 串行输出 位和位之间的时间间隔等于采样时的时间间隔 给信号保持电路 同 时由调制电路进行信号调制 将调制信号经放大后 由红外线发射二极管进行发射 从 而实现对该键对应设备功能的控制 2 2 方案二 红外线电器遥控器 本方案是采用 8051 单片机芯片设计的完成的 通用红外遥控系统由发射和接收两 大部分组成 应用编 解码专用集成电路芯片来进行控制操作 如图 2 所示 发射部分包 括键盘矩阵 编码调制 LED 红外发送器 接收部分包括光 电转换放大器 解调 解 码电路 工作原理 将全部行线置低电平 然后检测列线的状态 只要有一列的电平为低 则表示键盘 中有键被按下 而且闭合的键位于低电平线与 4 根行线相交叉的 4 个按键之中 若所有 列线均为高电平 则键盘中无键按下 当发射器按键按下后 即有遥控码发出 所按的键 2 不同遥控编码也不同并通过 LED 发射出去 当红外线返回时进去接收部分经过光 电 放大 解调 解码最终使键盘恢复初始化状态以便进行其他操作 2 3 方案三 空调遥控器 空调遥控器系统可分为控制器 单片机 液晶模块 键盘 测温电路和红外发射电 路几个部分组成 原理框图如图 3 2 键盘编码制调LED a 遥控发射器 解码光 电放大解调 b 遥控接收器 图 2 基于 8051 单片机的电器遥控 键盘扫描电路双时钟电路单片机 红外发射电路 LCD 图 3 空调遥控器设计框图 2 4 方案比较 通过三种方案的比较可以看出方案一虽然应用范围较广 但其正因为应用范围广 所以不能像专用遥控器能完全控制用电器 方案二是以 8051 为基础设计的 电路简单但要实现更强的功能需要外接太多的电 路所以较为麻烦 方案三运用的是 STC12C5612AD 是单片机是精简指令集单片机具有速度快 功耗 低 抗干扰能力强 结构简单易用 性价比高等特点 且是具有双晶振及液晶驱动功能 的单片机 这样性能更稳定 所以本设计选用该方案 3 3 空调遥控器硬件设计 本章主要阐述了空调遥控器硬件设计 包括单片机的选型 红外发射电路设计 LCD 驱动电路设计 键盘扫描电路设计和系统双时钟设计 详细阐述了各部分的基本原 理和设计过程 空调遥控器硬件设计框图如图 4 键盘扫描电路双时钟电路单片机 红外发射电路 LCD 图 4 空调遥控器硬件设计框图 3 1 单片机选型 空调遥控器使用的单片机应该满足 LCD 驱动 键盘扫描 红外发射和系统低功耗 设计的要求 STC12C5612AD 单片机中包含中央处理器 CPU 程序存储器 Flash 数据存储 器 SRAM 定时 计数器 UART 串口 I O 接口 高速 A D 转换 SPI 接口 PCA 看 门狗及片内 R C 振荡器和外部晶振电路等模块 STC12C5612AD 的内部机构图和引脚图如图 5 和图 6 3 2 红外发射电路设计 3 2 1 红外遥控基本原理 人的眼睛能看到的可见光按波长从长到短排列 依次为红 橙 黄 绿 青 蓝 紫 其中红光的波长范围为 0 62 0 76 m 紫光的波长范围为 0 38 0 46 m 比紫光 波 4 图 5 内部机构图 图 6 引脚图 5 长还短的光叫紫外线 比红光波长还长的光叫红外线 红外线遥控就是利用波长为 0 76 1 5 m 之间的近红外线来传送控制信号的 常用的红外遥控系统一般分发射和接收两个部分 发射部分的主要元件为红外发光 二极管 它实际上是一只特殊的发光二极管 由于其内部材料不同于普通发光二极管 因而在其两端施加一定电压时 它便发出的是红外线而不是可见光 目前大量使用的红 外发光二极管发出的红外线波长为 940nm 左右 外形与普通发光二极管相同 只是颜 色不同 接收部分的红外接收管是一种光敏二极管 在实际应用中要给红外接收二极管 加反向偏压 它才能正常工作 亦即红外接收二极管在电路中应用时是反向运用 这样 才能获得较高的灵敏度 红外接收二极管一般有圆形和方形两种 红外遥控常用的载波频率为 38kHz 这是由发射端所使用的 455kHz 晶振来决定的 在发射端对晶振进行整数分频 分频系数一般取 12 所以 455kHz 12 37 9kHz 38kHz 也有一些遥控系统采用 36kHz 40kHz 56kHz 等 一般 由发射端晶振的振荡频率来决定 多路控制的红外发射部分一般有许多按键 代表不同的控制功能 当发射端按下某 一按键时 相应地在接收端有不同的输出状态 接收端的输出状态大致可分为脉冲 电 平 自锁 互锁 数据五种形式 脉冲 输出是当按发射端按键时 接收端对应输出 端 6 输出一个 有效脉冲 宽度一般在 100ms 左右 电平 输出是指发射端按下键时 接收端对应输出端输出 有效电平 发射端松开键时 接收端 有效电平 消失 此处 的 有效脉冲 和 有效电平 可能是高 也可能是低 取决于相应输出脚的静态状 况 如静 态时为低 则 高 为有效 如静态时为高 则 低 为有效 大多数情况下 高 为有效 自锁 输出是指发射端每按一次某一个键 接收端对应输出端改变 一次状态 即原来为 高电平变为低电平 原来为低电平变为高电平 此种输出适合用 作电源开关 静音控制等 有时亦称这种输出形式为 反相 互锁 输出是指多个输 出互相清除 在同一时间内只有一个输出有效 电视机的选台就属此种情况 其它如调 光 调速 音响的输入选择等 数据 输出是指把一些发射键编上号码 利用接收端 的几个输出形成一个二进制数 来代表不同的按键输入 这种输出形式一般用于与单片 机或微机接口 本文介绍的空调遥控器设计就是采用这种编码 遥控器所发送的功能指令码一般采用多位二进制串行码 例如某彩色电视的红外遥 6 控码 其编码规律为 头脉冲 系统码 资料码 资料反码和结束位 头脉冲用做一帧 命令的起始位 系统码用于区别不同类的电器 资料码用于完成命令功能 资料反码是 将资料码按位取反的码 每次进行发送都是先发送脉宽 4510us 周期 2 4510us 的头脉 冲 然后连续发送两次系统码 接着发送资料码及资料反码 最后发送结束位 波形图 见图 7 美的空调 R51D 协议 如图 8 和图 9 包括 引导码 8 位地址码 8 位地 址反码 前 8 位数据 前 8 位数据反码 后 8 位数据 后 8 位数据反码 后置单脉冲 图 7 遥控指令编码图 图 8 美的空调 R51D 协议 两次波形图 图 9 美的空调 R51D 协议 详解图 红外通讯数据采用脉冲编码 所谓脉冲编码 就是将每位数据信号用一个脉冲来表 示 例如红外编码以脉宽 561us 周期 4 561us 代表 1 以脉宽 561us 周期 2 561us 代表 0 脉冲信号都调制在占空比为 1 3 频率为 38kHz 的载波上再发送出去 调制 7 后的信号 1 和 0 如图 10 所示 这样做有两点好处 第一 减少了有效的发射时间 有利于降低平均功耗 这对于采用干电池供电的发射器十分重要 第二 外部干扰信号 多为缓变信号 有利于抗干扰 图 10 信号 1 和 0 程序设计流程图 红外发射程序流程图如图 11 所示 取发射数据 发射初始化 发射头脉冲 发射系统码 发射资料码和反码 发射结束位 打开38K载波 关闭38K载波 发射结束位 Y 高电平时间到 N 低电平时间到 N Y a 程序设计流程图 b 红外发射程序流程图 图 11 程序流程图 3 2 2 红外发射电路 常用的红外发光二极管 其外形和发光二极管 LED 相似 发出红外光 近红外线 约 0 93 m 管压降约 1 4V 工作电流一般小于 20mA 为了适应不同的工作电压 8 回路中常串有限流电阻 发射红外线去控制相应的受控装置时 其控制的距离与发射功率成正比 为了增加 红外线的控制距离 红外发光二极管工作于脉冲状态 因为脉动光 调制光 的有效传 送距离与脉冲的峰值电流成正比 只需尽量提高峰值电流 就能增加红外光的发射距离 提高峰值电流的方法 是减小脉冲占空比 即压缩脉冲的宽度 减小冲占空比还可使小 功率红外发光二极管的发射距离大大增加 要使红外发光二极管产生调制光 只需在驱 动管上加上一定频率的脉冲电压 红外发射电路如图 12 所示 图 12 红外发射电路图 3 3 LCD 驱动电路设计 3 3 1 LCD 基本原理 LCD Liquid Crystal Digit 具有耗电低 驱动电压低 结构空间小而有效显示面积 大 体薄物轻等优点 在各类电子产品中得到广泛应用 液晶显示器的结构如图 13 所示 在上 下两层电极之间封入向列型液晶材料 液晶分子平行排列 上 下扭曲 90 度 在无外部电压状态下 外部入射光通过上偏振片后形成偏振光 该偏振光通过平行排 列 的液晶材料后备旋转 90 度 再通过与上偏振片垂直的下偏振片 被反射板反射回来 呈 透明状态 当上 下电极加上一定的电压后 电极部分的液晶分子转成垂直排列 失去 旋光性 从上偏振片入射的偏振光不被旋转 光无法通过下偏振片返回 因而呈黑色 根据需要将电极做成各种文字 数字 图形 就可以获得各种状态显示 显示内容由引 脚端和公共端共同决定 在应用时 只要给相应引脚端写入信号 即可显示 LCD 内部 自带刷新电路 不必重复写入 9 图 13 液晶显示器基本结构 3 3 2 LCD 驱动电路 串列传输 当 PSB 脚接低电位时 ST7920 将进入串列模式 在串列模式下将使用两条资料传 输线作串列资料的传送 主控制系统将配合传输同步时派线 SCLK 与接收串列资料 线 SID 来达成串列传输的动作 当需要同时连接数颗 ST7920 晶片时 晶片选择脚 CS 将要被配合使用 在晶片选 择脚设为高电位时 同步时派线输入的讯号才会被接收 另一方面 当晶片选择脚设为 低电位时 ST7920 的内部串列传输计数与串列资料将会被重置 也就是说在此状态下 传输中的资料将终止清除 并且将待传输的串列资料计数重设回第一位元 在一个最小 的系统架构下 由一个微处理器连接控制单一个 ST7920 晶片时 相关的连接界面只需 要使用同步时派线与接收串列资料线两只脚 在这个模式下镜片选择脚将被固定接到高 电位 ST7920 的同步时派线具有独立的操作时派 但是当有连续多个指令需要被传送时 指令执行的时间将需要被考虑 必须却是等到前一个指令完全执行完成才传送下一笔资 料 因为 ST7920 内部并没有传送 接收缓冲区 从一个完整的串列传输流程来看 一开始先传输起始位元祖 它需先接收到五个连 续的 1 同步位元字串 在起始位元组 此时传输计数将被重置并且串列传输将被同 步 再跟随的两个位元串分别指定传输方向位元及暂存器选择位元 最后第八的位元则 为 0 在接收到同步位元及 RW 和 RS 资料的起始位元组后 每一个八位元的指令将被分 为两个位元组接收到 较高 4 位元的指令资料将会被放在第一个位元组的 LSB 部分 而较低 4 位元的指令资料将会被放在第二个位元组的 LSB 部分 至于相关的另四位元 则为 0 LCD 显示屏接口图 如图 14 10 图 14 LCD 显示屏接口图 3 4 键盘 摇杆扫描电路设计 3 4 1 键盘 摇杆基本原理 STC12C5612AD 系列带 A D 转换的单片机的 A D 转换口在 P1 口 P1 7 P1 0 有 8 路 10 位高速 A D 转换器 速度可达到 速度可达到 100kHz 10 万次 秒 8 路电压 输入型 A D 可做温度检测 电池电压检测 按键扫描 频谱检测等 上电复位后 P1 口为弱上拉型 I O 口 用户可以通过软件设置将 8 路中的任何一路设置为 A D 转换 不 需作为 A D 使用的口可继续作为 I O 口使用 STC12C5612AD 系列单片机 ADC A D 转换器 的结构如图 15 所示 11 图 15 STC12C5612AD 系列单片机 ADC A D 转换器 的结构图 STC12C5612AD 系列单片机 ADC 由多路选择开关 比较器 逐次比较寄存器 10 位 DAC 转换结果寄存器 ADC DATA 和 ADC LOW2 以及 ADC CONTR 构成 STC12C5612AD 系列单片机的 ADC 是逐次比较型 ADC 逐次比较型 ADC 由一个 比较器和 D A 转换器构成 通过逐次比较逻辑 从最高位 MSB 开始 顺序地对每次输 入电压与内置 D A 转换器输出进行比较 经过多次比较 使转换所得的数字量逐次逼近 输入模拟量对应值 逐次比较型 A D 转换器具有速度高 功耗低等优点 从上图可以看出 通过模拟多路开关 将通过 ADC0 7 的模拟量输入送给比较器 用数 模转换器 DAC 转换的模拟量与本次输入的模拟量通过比较器进行比较 将比较结 果储存到逐次比较器 并通过逐次比较寄存器输出转换结果 A D 转换结束后 最终的 转换结果储存到 ADC 转换结果寄存器 ADC DATA 和 ADC LOW2 同时 置位 ADC 控制寄存器 ADC CONTR 中的 A D 转换结束标志位 ADC FLAG 以供程序查询或发出 中断申请 模拟通道的选择控制由 ADC 控制寄存器 ADC CONTR 中的 CHS2 CHS0 确定 ADC 的转换速度由 ADC 控制寄存器中的 SPEED1 和 SPEED0 确定 在使用 ADC 之前 应先给 ADC 上电 也就是置位 ADC 控制寄存器中的 ADC POWER 位 12 3 4 2 键盘 摇杆扫描电路 键盘 摇杆扫描电路如图 16 所示 图 16 键盘 摇杆扫描电路图 空调遥控器按键功能设计解析 通过按下 A 键 会不断发送信号 这些信号包括温 度 模式等所有信息的组合信号 通过按下 B 键 会发射关机信息给空调 通过按下 C 键 可以设定定时功能的开关 有定时开 关 和取消定时这几个功能 通过按下 D 键 控制器进入省电模式 关闭 LCD 背光灯 通过摇杆的上下方向 控制光标上下移 动 选择不同的控制菜单 通过摇杆的 左右方向 根据不同的控制菜单 调整不同的 控制方式和量 3 5 空调遥控器硬件电路图 综合前面各硬件电路功能模块的设计 图 17 给出了空调硬件设计电路图 空调遥控器硬件电路图空调遥控器的硬件设计 严格按照任务书的要求 进行了单 片机的选型 并以单片机为基础进行了红外发射电路 键盘扫描电路和 LCD 驱动电路 13 的 设计 利用关闭 LCD 背光灯 满足了无操作时的低功耗设计 同时为软件的低功耗设 计奠定了基础 图 17 空调硬件电路图 4 调试 4 1 硬件调试 在硬件调试时可以运用单片机仿真器对课题的原理图以检查电路的设计是不是合理 14 且性能良好 假如在仿真器上没有发现异常的话则可以进行下一步调试即根据原理图做 出实物再对实物进行通电实验 看看遥控器是否正常工作 假如出现异常则证明电路的 焊接方面还存在问题 要对其进行进一步检查和调试直到正常工作 4 2 软件调试 软件编程完成之后要进行调试 可将每个子程序写如单片机实验系统中进行调试当 每段子程序都没有错误时再将完整的程序输入进去进行调试看看是否有问题 4 3 故障诊断及排除 在电输入和输出端要加电容滤波 分模块测试 首先测试电源模块的 VCC 的 GND 端 保证输入恒定在 5V 上下 然 后先把 51 单片机最小系统搭建起来 测试输入 VCC 端和 GND 是否有 5V 如果有 用 示波器查看晶振是否起震 接着把编好的测试程序烧到单片机中 测试各个硬件模块式 否正常工作 对于这个工程的红外模块可以把对于的引脚拉低 用手机的摄像头对着红 外发射管 如果是蓝色证明 电路正常 在联调时常见的故障是遥控距离较短 不满足要求 一般可通过增大红外管发射电 流 或将几个红外发射管串联发射等增强红外发射光的方法来解决 也可以使几个红 外接受 管并联接受 以提高接受灵敏度 还可以将红外发射管和红外接受管均放入黑 盒屏蔽 仅在发射和接受处开个小窗口 这样可消除杂散红外光的干扰 使有用信号增 强 引起遥控距离较短的原因还有可能是 发射的载波频率与接受机带通滤波器的中心 频率不一致 可试着微调发射载波的频率 观察遥控距离的变化 使系统达到最佳工作 状态 5 总结 经过几个月的思考与查阅 我终于完成了这篇毕业论文 通过多方面的审查 可以 测试到硬件和软件的设计上是没有问题的 并且实际上也是可用的 其实 还是有点不足 就是精度问题 由于红外发射管的灵敏度问题 已经系统在 布线焊接上 器件与器件之间的相互干扰 多少存在一定的影响 所以这种遥控操作准 确性还存在不足 计算机的发展可以说是日新月异 它给我们的生活 工作带来了翻天覆地的变化 现代生产生活计算机无处不在 随着近代单片机的发展 人马的生活环境更是向着智能 15 化 自动化方向发展 单片机主要的特点就是功能强大并且成本相当的低 所以很多领 域都应用了单片机 我想 单片机应用会越来越成熟 它的功能会越来越强大 16 他们会及时的出现在我面前 再次感谢他们 参 考 文 献 陈汝全 电子技术常用器件手册 M 北京 机械工业出版社 1994 55 58 何立民 MCS 51 系列单片机应用系统设计 系统配置与接口技术 M 北京 北京航天航 空大学出版社 1995 35 45 焦李成 电流模式信号处理的进展与展望 J 电子学报 1992 20 7 87 92 康光华 陈大钦 电子技术基础 模拟部分 M 第四版 北京 高等教育出版社 1999 65 69 李华 MCS 51 系列单片机实用接口技术 M 北京 航天航空大学出版社 1999 34 45 李建华 实用遥控器原理与制作 M 北京 人民邮电出版社 1996 56 67 梁延贵 遥控电路可控硅触发电路语音电路分册 M 北京 科学技术文献出版社 2002 60 70 鲁兵 杨楚民 基于单片机系统的显示接口 M 机械与电子出版社 1992 45 56 邱关源 电路 M 第三版 北京 高等教育出版社 1989 67 77 舒经文 最新彩电机芯及其遥控系统的原理与维修 M 北京 电子工业出版社 1993 66 88 苏长赞 红外线与超声波遥控 M 北京 人民邮电出版社 1995 44 66 17 孙函芳 徐爱卿 MCS 51 系列单片机原理及应用 M 北京 北京航天航空大学 1996 52 63 张肃文 陆兆文 高频电子电路 M 第三版 北京 高等教育出版社 1993 23 40 18 附 录 软件代码 12C5A60S2 h AD h Common Data h Delay h DS1302 h EEPROM h Infrared h LCD12864 h L ED h PWM h STC12C5620AD H Sys Init h Uart1 h Uart2 h UI h 12c56 c AD c Delay c DS1302 c EEPROM c Infrared c LCD12864 c LED c Main c PWM c Sy s Init c Uart1 c Uart2 c UI c Main c include 12C5A60S2 h include STC12C5620AD H include Common Data h include Sys Init h include Uart1 h include Uart2 h include Delay h include Infrared h include AD h include PWM h include LCD12864 h include DS1302 h include LED h include UI h sbit BUZZER P2 0 define ON 0 define OFF 1 define FOSC 11059200 define T1MS0 x2800 define DELAY 2000 void Init Data void UI command 0 0 x1F UI command 1 0 xD8 UI command 2 0 xFF UI mod 1 UI timer 0 UI timer control 0 UI minute 0 UI second 0 UI m second 0 19 UI windspeed 1 UI power 0 UI cursor column 26 UI cursor row 0 void Send Command void 命令发送函数 if UI timer switch UI timer control case 0 UI command 0 0 x0F UI command 0 0 x10 UI command 1 INF SendCommand ADDRESS UI command 0 UI command 1 INF SendCommand ADDRESS UI command 0 UI command 1 break case 1 UI command 0 UI command 1 0 x03 UI command 2 0 x80 UI timer 4 1 INF SendCommand dinshi ADDRESS UI command 0 UI command 1 UI command 2 INF SendCommand dinshi ADDRESS UI command 0 UI command 1 UI command 2 break case 2 if UI timer 1 8 4 UI command 0 0 x10 else UI command 0 UI command 0 UI command 0 0 x0F UI command 1 UI command 1 UI timer 8 UI command 2 0 xFF 20 INF SendCommand dinshi ADDRESS UI command 0 UI command 1 UI command 2 INF SendCommand dinshi ADDRESS UI command 0 UI command 1 UI command 2 break default break else UI command 0 0 x0F UI command 0 0 x10 UI command 1 INF SendCommand ADDRESS UI command 0 UI command 1 INF SendCommand ADDRESS UI command 0 UI command 1 void main void Init Sys Init Data LED Control 0 x00 BUZZER 1 Delay100ms 2 UI show homepage Delay100ms 50 clr screen 清屏函数 UART1 Send Byte v 38K测试程序 F38K Test 引导码测试程序 INF SendLead Test 发送 0 测试程序 INF SendZero Test 发送 1 测试程序 INF SendOne Test 命令发送函数 INF SendCommand ADDRESS 0 x1f 0 x58 INF SendCommand ADDRESS 0 x1f 0 x58 while 15 if UI power 1 LED Stream 0 else LED Control 0 xff UI show page1 21 UI show Arrow UI cursor row write 0 0 x84 switch UI mod case 1 LCD show word 自动 break case 2 LCD show word 制冷 break case 3 LCD show word 抽湿 break case 4 LCD show word 制热 break default break write 0 0 x94 if UI timer if UI cursor row 2 UI timer 0 UI timer control 0 else write 1 UI timer 10 48 write 1 UI timer 10 48 LCD show word 小时 switch UI timer control case 0 LCD show word 无 break case 1 LCD show word 开 break case 2 LCD show word 关 break default break else LCD show word 无 write 0 0 x8c write 1 UI cursor column 10 48 write 1 UI cursor column 10 8 LCD show word write 0 0 x9c switch UI windspeed case 1 LCD show word 自动 break case 2 LCD show word 低风 break case 3 LCD show word 中风 break case 4 LCD show word 高风 break default break 22 write 0 0 x8F write 1 UI minute 10 48 write 1 UI minute 10 48 write 0 0 x9F write 1 UI second 10 48 write 1 UI second 10 1 48 void timer0 interrupt 1 频率计数 static int x y static unsigned int count 0 int botton botton AD EA 0 TR0 0 TH0 T1MS 8 计数1 TL0 T1MS P2 0 x10 BUZZER 1 if count DELAY count DELAY UI cursor row 0 LCD Power 0 x get AD 2 8 y get AD 1 8 write 0 0 x88 write 1 x 100 48 write 1 x 100 10 48 write 1 x 10 48 write 0 0 x90 write 1 y 100 48 write 1 y 100 10 48 write 1 y 10 48 if UI mod 1 UI mod 3 UI windspeed 1 if x DELAY LCD Power 1 count 0 23 else UART1 Send Byte l switch UI cursor row case 1 if UI mod 0 UI mod 4 命令发送函数 UI command 0 UI command 0 mode array UI mod 0 UI command 1 UI command 1 mode array UI mod 1 if UI mod 1 UI mod 3 UI command 0 else UI command 0 UI command 0 windspeed array UI windspeed 0 UI command 1 UI command 1 windspeed array UI windspeed 1 UI power 1 Send Command break case 2 if UI timer 0 UI timer 12 命令发送函数 switch UI timer control case 0 UI power 1 break case 1 UI power 0 break case 2 UI power 1 break default break Send Command break case 3 if UI cursor column 16 UI cursor column 32 命令发送函数 UI command 0 UI command 0 temperature array UI cursor column 17 1 0 UI command 1 UI command 1 temperature array UI cursor column 17 1 1 24 UI power 1 Send Command break case 4 if UI windspeed 0 xb0 if count DELAY LCD Power 1 count 0 else UART1 Send Byte r switch UI cursor row case 1 if UI mod 5 UI mod 1 命令发送函数 UI command 0 UI command 0 mode array UI mod 0 UI command 1 UI command 1 mode array UI mod 1 if UI mod 1 UI mod 3 UI command 0 else 25 UI command 0 UI command 0 windspeed array UI windspeed 0 UI command 1 UI command 1 windspeed array UI windspeed 1 UI power 1 Send Command break case 2 if UI timer 13 UI timer 0 命令发送函数 switch UI timer control case 0 UI power 1 break case 1 UI power 0 break case 2 UI power 1 break default break Send Command break case 3 if UI cursor column 33 UI cursor column 17 命令发送函数 UI command 0 UI command 0 temperature array UI cursor column 17 1 0 UI command 1 UI command 1 temperature array UI cursor column 17 1 1 UI power 1 Send Command break case 4 if UI windspeed 5 UI windspeed 1 if UI mod 1 UI mod 3 UI windspeed 1 命令发送函数 UI command 0 UI command 0 windspeed array UI windspeed 0 UI command 1 UI command 1 windspeed array UI windspeed 1 UI power 1 26 Send Command break default break count 0 else if y DELAY LCD Power 1 else UART1 Send Byte u if UI cursor row 0 xb0 if count DELAY LCD Power 1 else UART1 Send Byte d if UI cursor row 5 UI cursor row 1 count 0 while get AD 2 8 177 get AD 1 8 177 get AD 1 8 77 botton AD get AD 0 8 if botton AD 0 x60 if count DELAY LCD Power 1 else botton 1 UART1 Send Byte 1 UI power 1 Send Command 27 count 0 else if botton AD 0 xa0 if count DELAY LCD Power 1 else botton 2 UART1 Send Byte 2 命令发送函数 UI power 0 UI timer control 0 UI timer 0 INF SendCommand ADDRESS 0 x7b 0 xe0 INF SendCommand ADDRESS 0 x7b 0 xe0 count 0 else if botton AD 0 xb8 if count DELAY LCD Power 1 else botton 3 UART1 Send Byte 3 if UI cursor row 2 if UI timer if UI timer control 3 UI timer control 0 Send Command UI minute 0 UI second 0 UI m second 0 count 0 else if botton AD 0 xe0 botton 4 UART1 Send Byte 4 count DELAY 28 else botton 0 while get AD 0 8 break case 2 write 0 0 x90 LCD show word break case 3 write 0 0 x88 LCD show word break case 4 write 0 0 x98 LCD show word break default break Sys init h ifndef SYS INIT H define SYS INIT H void Init IO void 31 void Init IRQ void void Init Time void void Init Sys void endif SYS INIT H Sys init c include 12C5A60S2 h include Sys Init h include Uart1 h include Uart2 h include Delay h include Infrared h include AD h include PWM h include LCD12864 h include DS1302 h include LED h i

温馨提示

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

评论

0/150

提交评论