




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习资料收集于网络 仅供参考 学习资料 河南农业大学河南农业大学 本科生毕业论文 题 目 红外学习型遥控器的设计 学 院 理学院 专业班级 08 级信安一班 学生姓名 陈晨 指导教师 贾树恒 撰写日期 2012 年 5 月 22 日 学习资料收集于网络 仅供参考 学习资料 指导教师评语 主要评价论文的工作量 试验数据的可靠性 论文的主要内 容与特点 写作水平等 论文的工作量 试验数据的可靠性 论文的主要内容与特点 写作水平 签 名 2012 年 5 月 22 日 答辩委员会评语及论文成绩 主要评价论文的性质 难度 质量 综合训练 答辩情况 不足等 评定论文成绩 论文的性质 难度 质量 学生的综合训练 答辩情况 不足等 论文成绩 主任委员签名 2012 年 5 月 28 日 学习资料收集于网络 仅供参考 学习资料 红外学习型遥控器的设计 陈晨 摘要摘要 随着社会的发展 科技的进步以及人们生活水平的逐步提高 各种方便于生活的遥控系统开 始进入了人们的生活 传统的遥控器采用专用的遥控编码及解码集成电路 这种方法虽然制作简单 容易 但由于功能键数及功能受到特定的限制 只实用于某一专用电器产品的应用 应用范围受到 限制 而采用单片机进行遥控系统的应用设计 具有编程灵活多样 操作码个数可随便设定等优点 本设计以单片机为核心设计一种红外学习型遥控器 可以对基于 NEC 红外协议的红外线遥控器 发射的信号进行识别 存储和再现等功能 从而实现对各类家用电器的控制 红外学习型遥控器由 单片机 红外线接收 红外线发射 显示 存储 按键和电源等部分组成 本设计详细介绍了红外 学习型遥控器的软硬件设计方法 并给出了具体的各单元电路设计 程序设计及主程序流程图 关键词 关键词 单片机 红外遥控 中断 单片机 红外遥控 中断 学习型学习型 学习资料收集于网络 仅供参考 学习资料 Design of IR Learning Remote Controler CHEN Chen Abstract With the development of our society and the gradual improvement of science and technology various kinds of help remote control systems have began to enter people s life The traditional remote controllers adopt special remote control code and decode integrated circuits though this kind of method is simply and easily it is only the practical application of some certain special electric equipments because of the counted functional keys is counted and the restricted function so the range of application is limited But the remote controllers which adopt the microprocessors have many advantages such as flexible operating and unceremonious manipulative keys This is to design an intelligent infrared remote focusing on single chip It can distinguish store and recurrence to signals that all kinds of infrared remote launched Thereby the control of all household electrical appliances can be realized The intelligent infrared remote is made up of singe clip infrared receiving infrared launching displaying storing keys power supply etc This design introduced detailedly the soft and hard designing methods of intelligent infrared remote and gave the details of circuit design procedure design and main procedure flow chart of every unit Keywords Single chip microcomputer Infrared remote control Interrupt The learning 学习资料收集于网络 仅供参考 学习资料 目录 1 绪论绪论 1 1 1 选题的意义 1 1 2 设计思想 2 1 3 设计重点与难点 2 2 硬件的选取硬件的选取 3 2 1 单片机 3 2 1 1 简介 3 2 1 2 主要功能特性 3 2 1 3 引脚介绍 4 2 1 4 STC89C52RC 单片机的工作模式 6 2 1 5 定时器 计数器 6 2 2 电源 L7805 稳压器概述 8 2 3 存储器 9 2 3 1 AT24C02 串行 E2PROM 的概述 9 2 3 2 AT24C02 串行 E2PROM 的特性 9 2 4 红外接收头 10 2 4 1 NB0038 的概述 10 2 4 2 NB0038 的特性 10 3 系统组成设计系统组成设计 11 4 各单元电路设计各单元电路设计 12 4 1 单片机最小系统 12 4 1 1 复位电路 12 4 1 2 CPU 时钟电路 12 4 1 3 管脚应用 13 4 2 键盘电路 13 4 2 1 键盘与单片机的接口 13 4 2 2 键连击现象的克服和处理 14 4 3 红外发射电路 14 4 4 红外接收电路 15 4 4 1 红外接收原理 15 4 5 存储器电路 17 4 5 1 24C02 引脚说明 17 4 5 2 单片机与 24C02 的接口 17 4 6 指示灯电路 17 4 7 电源电路 18 5 程序设计程序设计 19 5 1 主程序流程图 19 学习资料收集于网络 仅供参考 学习资料 5 2 键号判别程序设计 20 5 3 红外接收程序设计 21 5 4 红外发射程序设计 22 6 程序源代码程序源代码 23 6 1 按键扫描源码见附录 A 23 6 2 I2C 总线程序 23 6 2 1 位传输 23 6 2 2 数据传输的字节格式 23 6 2 3 I2C 数据传输协议 23 6 3 红外接收源码见附录 B 24 6 4 红外发射源码见附录 C 24 7 系统调试系统调试 25 7 1 软件调试 25 7 2 硬件调试 26 8 调试中遇到的问题和解决方法调试中遇到的问题和解决方法 29 8 1 硬件部分 29 8 1 1 单片机的选取 29 8 1 2 功能切换键的设置 29 8 1 3 AT24C02 的焊接 29 8 2 软件部分 29 8 2 1 红外发射部分 29 8 2 2 中断部分 29 8 2 3 定时器 0 模式部分 30 结论结论 31 参考文献参考文献 32 附附 录录 A 33 附附 录录 B 34 附附 录录 C 36 附附 录录 D 38 附附 录录 E 39 致谢致谢 40 学习资料收集于网络 仅供参考 学习资料 1 绪论绪论 1 1 选题的意义选题的意义 上世纪八十年代初 日本率先在电视产品中使用了红外遥控技术 使用集成发射芯片来实现遥控 码的发射 如东芝 TC9012 飞利浦 SAA3010 等 它的主要特点是 遥控器内预置固定编码 一只遥控器 只能控制单一型号的电器 如图 1 1 所示 图图 1 1 遥控单一种类电器的遥控器遥控单一种类电器的遥控器 随着电子技术的发展 家用电器越来越普遍 人们希望以一只遥控器遥控所有家用电器 多用遥控 器产生了 它的主要特点是 遥控器内预置多套编码 可供用户选择 如图 1 2 所示 图图 1 2 可遥控多种家用电器的遥控器可遥控多种家用电器的遥控器 如今 随着嵌入式的广泛应用 部分厂商推出了具备红外学习的遥控器 它的主要特点是 遥控器内 置一个动态编码库 具备红外学习功能 可由用户自主录入编码 1 如图 1 3 所示 图图 1 3 具备学习功能的遥控器具备学习功能的遥控器 通过对具备红外学习功能的遥控器进行市场调查 本文发现 国内红外遥控编码学习技术虽比较 成熟 但产品化程度较低 市场推广不够 主要原因在于设计者对用户需求的调查不够全面 以致产品不 够实用 性价比较低 为此 我们试着设计一种以单片机为核心的智能型遥控器 学习资料收集于网络 仅供参考 学习资料 1 2 设计思想设计思想 本系统的设计思想是针对市面上流行的 NEC 红外协议 利用小型一体化接收头 NB0038 对红 外遥控信号进行接收 再用单片机对红外信号进行解码 把解码结果存储到扩展存储区的指定地址 当要发射红外信号时 从扩展存储区中读出相应的红外遥控编码 调制到由单片机产生 38K 载波 上 最后 通过三极管放大电路驱动红外发光二极管发射红外信号 达到学习和发射的目的 从而 实现一个遥控器控制多种红外遥控设备 遥控器有两种工作状态 学习 状态和 控制 状态 使用者可通过学习 控制复用键进行 转换 当使用者在学习状态下 红外线接收电路处于接收红外线信号状态下 当有红外信号并接收 成功后 指示灯会闪烁 当按下一个控制键后 由 CPU 将解码信息存放到相应的存储单元中去 存储成功后指示灯会闪烁 当遥控器处于控制状态时 使用者每按下一个控制键 CPU 从指定的 存储单元中读取遥控编码信号 然后进行信号调制 将调制信号经放大以后 由红外线发射二极管 进行发射 从而实现对该键对应设备功能的控制 1 3 设计重点与难点设计重点与难点 系统组成的设计 各部分硬件的选取 单片机串行接口的键盘设计 红外线遥控器信号的接收 发射与调制解码软件的设计 流程图及程序的设计 学习资料收集于网络 仅供参考 学习资料 2 硬件的选取硬件的选取 2 1 单片机单片机 由于此单片机应用在家用遥控器上 所以本设计选用了低功耗 低价格的 STC89C52RC 单片 机 如图 2 1 所示 图图 2 1 STC89C52RC 引脚图引脚图 2 1 1 简介简介 STC89C52RC 单片机是宏晶科技推出的新一代高速 低功耗 超强抗干扰的单片机 指令代码完 全兼容传统 8051 单片机 12 时钟 机器周期和 6 时钟 机器周期可以任意选择 2 1 2 主要功能特性主要功能特性 1 增强型 8051 单片机 6 时钟 机器周期和 12 时钟 机器周期可以任意选择 指令代码完全兼容 传统 8051 2 工作电压 5 5V 3 3V 5V 单片机 3 8V 2 0V 3V 单片机 3 工作频率范围 0 40MHz 相当于普通 8051 的 0 80MHz 实际工作频率可达 48MHz 4 用户应用程序空间为 8K 字节 片上集成 512 字节 RAM 5 通用 I O 口 32 个 复位后为 P1 P2 P3 P4 是准双向口 弱上拉 P0 口是漏极开路输出 作为总线扩展用时 不用加上拉电阻 作为 I O 口用时 需加上拉电阻 学习资料收集于网络 仅供参考 学习资料 6 ISP 在系统可编程 IAP 在应用可编程 无需专用编程器 无需专用仿真器 可通过串口 RxD P3 0 TxD P3 1 直接下载用户程序 数秒即可完成一片 7 具有 EEPROM 功能 8 具有看门狗功能 9 共 3 个 16 位定时器 计数器 即定时器 T0 T1 T2 10 外部中断 4 路 下降沿中断或低电平触发电路 Power Down 模式可由外部中断低电平触发中 断方式唤醒 11 通用异步串行口 UART 还可用定时器软件实现多个 UART 12 工作温度范围 40 85 工业级 0 75 商业级 2 1 3 引脚介绍引脚介绍 1 VCC 40 引脚 电源电压 2 VSS 20 引脚 接地 3 P0 端口 P0 0 P0 7 39 32 引脚 P0 口是一个漏极开路的 8 位双向 I O 口 作为输出端 口 每个引脚能驱动 8 个 TTL 负载 对端口 P0 写入 1 时 可以作为高阻抗输入 在访问 外部程序和数据存储器时 P0 口也可以提供低 8 位地址和 8 位数据的复用总线 此时 P0 口 内部上拉电阻有效 在 Flash ROM 编程时 P0 端口接收指令字节 而在校验程序时 则输出 指令字节 验证时 要求外接上拉电阻 4 P1 端口 P1 0 P1 7 1 8 引脚 P1 口是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输 出缓冲器可驱动 吸收或者输出电流方式 4 个 TTL 输入 对端口写入 1 时 通过内部的上拉 电阻把端口拉到高电位 这是可用作输入口 P1 口作输入口使用时 因为有内部上拉电阻 那些被外部拉低的引脚会输出一个电流 此外 P1 0 和 P1 1 还可以作为定时器 计数器 2 的外部技术输入 P1 0 T2 和定时器 计数器 2 的触发输入 P1 1 T2EX 5 P2 端口 P2 0 P2 7 21 28 引脚 P2 口是一个带内部上拉电阻的 8 位双向 I O 端口 P2 的输出缓冲器可以驱动 吸收或输出电流方式 4 个 TTL 输入 对端口写入 1 时 通过内部的 上拉电阻把端口拉到高电平 这时可用作输入口 P2 作为输入口使用时 因为有内部的上拉 电阻 那些被外部信号拉低的引脚会输出一个电流 6 P3 端口 P3 0 P3 7 10 17 引脚 P3 是一个带内部上拉电阻的 8 位双向 I O 端口 P3 的 输出缓冲器可驱动 吸收或输出电流方式 4 个 TTL 输入 对端口写入 1 时 通过内部的上拉 学习资料收集于网络 仅供参考 学习资料 电阻把端口拉到高电位 这时可用作输入口 P3 做输入口使用时 因为有内部的上拉电阻 那些被外部信号拉低的引脚会输入一个电流 P3 口还用于实现各种第二功能 如下表 所列 表表 2 1 P3 口的第二功能口的第二功能 引脚口功能 P3 0 P3 1 P3 2 P3 3 P3 4 P3 5 P3 6 P3 7 RXD 串行输入端口 TXD 串行输出端口 INT0 外中断 0 INT1 外中断 1 T0 定时器 0 外部输入 T1 定时器 1 外部输入 WR 外部数据存储器写选通 RD 外部数据存储器读选通 7 RST 9 引脚 复位输入 当输入连续两个机器周期以上高电平时为有效 用来完成单片机 单片机的复位初始化操作 看门狗计时完成后 RST 引脚输出 96 个晶振周期的高电平 特殊 寄存器 AUXR 地址 8EH 上的 DISRTO 位可以使此功能无效 DISRTO 默认状态下 复位高 电平有效 8 ALE 30 引脚 地址锁存控制信号 ALE 是访问外部程序存储器时 锁存低 8 位 地址的输出脉冲 在 Flash 编程时 此引脚 也用作编程输入脉冲 9 29 引脚 外部程序存储器选通信号 是外部程序存储器选通信号 当 AT89C51RC 从外部程序存储器执行外部代码时 在每个机器周期被激活两次 而访问 外部数据存储器时 将不被激活 10 VPP 31 引脚 访问外部程序存储器控制信号 为使能从 0000H 到 FFFFH 的外部程序 存储器读取指令 必须接 GND 注意加密方式 1 时 将内部锁定位 RESET 为了执行 内部程序指令 应该接 VCC 在 Flash 编程期间 也接收 12 伏 VPP 电压 11 XTAL1 19 引脚 振荡器反相放大器和内部时钟发生电路的输入端 12 XTAL2 18 引脚 振荡器反相放大器的输入端 学习资料收集于网络 仅供参考 学习资料 2 1 4 STC89C52RC 单片机的工作模式单片机的工作模式 1 掉电模式 典型功耗 0 1 A 可由外部中断唤醒 中断返回后 继续执行原程序 2 空闲模式 典型功耗 2mA 可由外部中断唤醒 中断返回后 继续执行原程序 3 正常工作模式 典型功耗 4mA 7mA 2 1 5 定时器定时器 计数器计数器 1 主要特性 STC89C52RC 单片机有三个可编程的定时器 计数器 定时器 计数器 0 定时器 计数器 1 和 定时器 计数器 2 可有程序选择作为定时器用或作为计数器用 定时时间或记数值也可由程序设定 每一个定时器 计数器具有 4 种工作方式 可用程序选择 任一定时器 计数器在定时时间到或记数 值到时 可有程序安排产生中断请求信号或不产生中断请求信号 2 定时 计数器 0 和 1 的控制和状态寄存器 特殊功能寄存器 TMOD 和 TCON 分别是定时 计数器 0 和 1 的控制和状态寄存器 用于控制和 确定各定时 计数器的功能和工作模式 模式控制寄存器 TMOD TMOD 用于控制 T0 和 T1 的工作方式和 4 种工作模式 其中低 4 位用于控制 T0 高 4 位用于 控制 T1 其格式如下 表表 2 2 TMOD 格式格式 GATE C T 非 M1 M0GATE C T 非 M1 M0 GATE 位 门控位 当 GATE 1 时 只有 INTO 非或 INT1 非引脚为高电平且 TR0 或 TR1 置 1 时 相应的定时 计数器才被选通工作 当 GATE 0 则只要 TR0 和 TR1 置 1 定时 计数器就被 选通 而不管 INT0 非或 INT1 非的电平是高还是低 C T 非位 计数 定时功能选择位 C T 非 0 设置为定时器方式 计数器的输入是内部时钟脉 冲 其周期等于机器周期 C T 非 1 设置为计数器方式 计数器的输入来自 T0 P3 4 或 T1 P3 5 端的外部脉冲 M1 M0 位 工作模式选择位 2 位可形成 4 中编码 对应 4 种工作模式 见下表 学习资料收集于网络 仅供参考 学习资料 表表 2 3 定时器工作模式定时器工作模式 M1 M0功 能 描 述 00 01 10 11 方式 0 13 位定时器 计数器 方式 1 16 位定时器 计数器 方式 2 具有自动重装初值的 8 位定时器 计数器 方式 3 定时 计数器 0 分为两个 8 位定时 计数器 定时 计数器 1 在此方式无实用意义 控制寄存器 TCON TCON 用来控制 T0 和 T1 的启 停 并给出相应的控制状态 高 4 位用于控制定时器 0 1 的 运行 低 4 位用于控制外部中断 格式如下 表表 2 4 TCON 格式格式 TF1 TR1 TF0 TR0 IE1IT1IE0 IT0 TF1 定时器 1 溢出标志 当定时器 1 溢出时 由硬件置 1 使用查询方式时 此位做状态位 供查询 查询有效后需由软件清零 使用中断方式时 此位做中断申请标志 进入中断服务后被硬 件自动清零 TR1 位 定时器 1 运行控制位 该位靠软件置位或清零 置位时 定时 计数器接通工作 清 零时 停止工作 TF0 位 定时器溢出标志位 其功能和操作情况类同于 TF1 TR0 位 定时器 0 运行控制位 其功能和操作类同于 TR1 IE 位 外部中断请求标志位 当 CPU 采样到 INT0 非 或 INT1 非 端出现有效中断请求时 IE0 或 IE1 由硬件置 1 中断响应完成后转向中断服务时 再由硬件自动清零 IT 位 外部中断请求出发方式位 IT0 IT1 1 为脉冲触发方式 后负跳有效 IT0 IT1 0 为电平触发方式 低电平有效 定时 计数器的初始化 单片机的定时 计数器是可编程的 因此 在进行定时或计数之前也要用程序进行初始化 初 始化一般应包括以下几个步骤 a 对 TMOD 寄存器赋值 以确定定时器的工作模式 b 置定时 计数器初值 直接将初值写入寄存器的 TH0 TL0 或 TH1 TL1 c 根据需要 对寄存器 IE 置初值 开放定时器中断 学习资料收集于网络 仅供参考 学习资料 d 对 TCON 寄存器中的 TR0 或 TR1 置位 启动定时 计数器 置位以后 计数器即按规定的 工作模式和初值进行计数或开始定时 在初始化过程中 要置入定时 计数器的初值 这时要做一些计算 由于计数器是加法计数 并在溢出时申请中断 因此不能直接输入所需的计数值 而是要从计数最大值倒退回去一个计数值 才是应置入的初值 设计数器的最大值为 M 在不同的工作模式中 M 可以为 8192 65536 256 则置入的初值可以这样来计算 计数方式时 X M 记数值 2 1 定时方式时 M X T 定时值 2 2 所以 X M 定时值 T 2 3 式中 T 为计数周期 是单片机的机器周期 T0 和 T1 的 4 种工作方式 方式 0 13 位定时 计数器 TL1 或 TL0 的低 5 位和 TH1 或 TH0 的 8 位构成 TL 中的 高 3 位弃之未用 当 TL 的低 5 位记数溢出时 向 TH 进位 而全部 13 位计数器溢出时使计数器回 零 并使溢出标志 TF 置 1 向 CPU 发出中断请求 方式 1 16 位定时 计数器 其逻辑电路和工作情况与方式 0 几乎完全相同 唯一的差别就是 方式 1 中 TL 的高 3 位也参与了计数 方式 2 把 TL 配置成一个可以自动重装载的 8 位定时 计数器 方式 3 仅对 T0 有意义 将 16 位定时 计数器分成两个互相独立的 8 位定时 计数器 TL 和 TH 2 2 2 电源电源 L7805 稳压器概述稳压器概述 整个电路用 9V 电源供电 为满足单片机和其它器件的电压要求 需要把 9V 转为 5V 为此选 用 L7805 稳压器实现电压的转化 电子产品中 L7805 是常见的三端稳压集成电路正电压输出 只有 三条引脚输出 分别是输入端 接地端和输出端 它的样子像是普通的三极管 TO 220 的标准封装 用 学习资料收集于网络 仅供参考 学习资料 L7805 三端稳压 IC 来组成稳压电源所需的外围元件极少 电路内 部还有过流 过热及调整管的保护 电路 使用起来可靠 方便 而且价格便宜 引脚功能如图 2 2 所示 从正面看 引脚从左向右按顺 序标注 脚高电位 脚接地 脚输出 图图 2 2 L7805 2 3 存储器存储器 存储器有 RAM EEPROM 非易失性的静态存储器等 RAM 掉电时数据会丢失 EEPROM 在掉电时数据不会丢失 2 3 1 AT24C02 串行串行 E2PROM 的概述的概述 AT24C02 是美国 ATMEL 公司的低工耗 CMOS 串行 EEPROM 它是内含 256 8 位存储空间 具有工作电压宽 1 8 5 5V 擦写次数多 100 万次 写入速度快 最大 5ms 数据保持时间长 100 年 等特点 如图 2 3 所示 AT24C02 的 1 2 3 脚是三条地址线 用于确定芯片的硬件地 址 24C02 中带有片内地址寄存器 每写入或读出一个数据字节后 该地址寄存器自动加 1 以实 现对下一个存储单元的读写 所有字节均以单一操作方式读取 为降低总的写入时间 一次操作可 写入多达 8 个字节的数据 该器件可直接与微处理器接口 不需要额外的支持电路 图图 2 3 AT24C02 2 3 2 AT24C02 串行串行 E2PROM 的特性的特性 1 保存数据时间 100 年 2 硬件数据写保护 3 直接替代 2K 8 易失静态 RAM 学习资料收集于网络 仅供参考 学习资料 4 擦写次数多达 100 万次 5 低功耗 CMOS 操作 6 8 引脚 DIP 封装 7 2 线串行接口 完全兼容 I2C 总线 8 ESD 保护大于 2 5KV 2 4 红外接收头红外接收头 接收电路使用集成红外接收器成品 一般不需要任何外接元件就能完成从红外接收到输出TTL 电平兼容信号的所有工作 注意选择接收器件时要保证接收器件的中心频率与发射信号的中心频率 相匹配 接收器对外只有3 个引脚 VCC GND 和1 个脉冲信号输出OUT 与单片机接口连接非 常方便 2 4 1 NB0038 的概述的概述 NB0038 是一种用于红外遥控接收或其它方面的小型一体化接收头 中心频率为 38 0kHz 可改善 自然光的反射干扰 独立的 PIN 二极管同前置放大器集成在同一封装上 NB0038 环氧树脂封装提供 一个特殊的红外滤光器 可防止自然光的干扰 NB0038 在抗自然光的干扰方面有极好的性能 可防 止无用脉冲输出 图图 2 4 NB0038 2 4 2 NB0038 的特性的特性 1 光电检测和前置放大器集成在同一封装上 2 内带 PCM 频率滤波器 3 对于自然光有较强的抗干扰性 4 改进了对电场干扰的防护性 学习资料收集于网络 仅供参考 学习资料 5 电源电压 5V 低功耗 学习资料收集于网络 仅供参考 学习资料 3 系统组成设计系统组成设计 系统由发射单元 接收单元 存储单元 输入单元 检测单元等构成 系统总的结构框图如 图 3 1 所示 单片机 红外接收电路 红外发射电路 指示灯电路 按键输入电路 数据存储电路 电源变换电路 图图 3 1 学习型万能遥控器的系统框图学习型万能遥控器的系统框图 系统框图中的单片机用来协调各个单元 红外接收电路用来接收要学习的红外信号 红外发射 电路用来发射控制电器的红外信号 存储器用来存储接收的信号 键盘输入电路用来实现按键控制 指示灯用来指示所处的模式和状态 学习资料收集于网络 仅供参考 学习资料 4 各单元电路设计各单元电路设计 4 1 单片机单片机最小系统最小系统 图图 4 1 单片机最小系统单片机最小系统 4 1 1 复位电路复位电路 单片机复位电路包括片内 片外两部分 片外复位电路通过引脚加到内部复位电路上 内部复 位电路在每个机器周期 S5P2 对片外信号采样一次 当 RST 引脚上出现连续两个机器周期的高电平 时 单片机就完成一次复位 外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而 设计的 单片机通常采用上电自动复位和按键手动复位两种方式 上电复位电路在通电瞬间 在 RC 电路充电过程中 RST 端出现正脉冲 从而使单片机复位 按键手动复位又分为按键电平复位 和按键脉冲复位 按键电平复位是将复位端通过电阻与 Vcc 相连 按键脉冲复位是利用 RC 微分电 路产生正脉冲来达到复位的目的 本系统设计时采用的是上电复位方式 其电路原理图如图 4 1 4 1 2 CPU 时钟电路时钟电路 时钟电路用于产生单片机工作所需要的时钟信号 时钟信号可以有两种方式产生 内部时钟方 式和外部时钟方式 1 内部时钟方式 单片机有一个高增益反向放大器 用于构成振荡器 引脚 XTAL1 和 XTAL2 分别是此放大器的 学习资料收集于网络 仅供参考 学习资料 输入端和输出端 在 XTAL1 和 XTAL2 两端跨接晶体或陶瓷振荡器 就构成了稳定的自激振荡器 其发出的脉冲直接送入内部时钟发生器 外接晶振时 C1 C2 值通常选择为 30pF 左右 为了减少 寄生电容 更好的保证振荡器稳定可靠的工作 谐振器和电容应尽可能安装的与单片机芯片靠近 内部时钟发生器实质上是一个二分频的触发器 其输出信号是单片机工作所需的时钟信号 2 外部时钟方式 外部时钟方式是采用外部振荡器 外部振荡信号由 XTAL2 端接入后直接送至内部时钟发生器 输入端 XTAL1 应接地 由于 XTAL2 端的逻辑电平不是 TTL 的 故建议外接一个上拉电阻 一般 情况下 单片机时钟输入均采用内部时钟方式 外接一个震荡电路 本系统采用内部时钟方式 晶 振采用 11 0592MHz 其电路图 4 1 4 1 3 管脚应用管脚应用 P1 作为 4 4 矩阵按键的接口 INT0 作为按键中断接口与 74LS21 四与门的第 6 根引脚连接 INT1 作为红外接收中断接口与 NB0038 的 OUT 口连接 RD 和 WR 分别与 AT24C02 的 SDA 和 SCL 引脚连接 P2 0 用来控制发射电路 P2 2 用来控制指示灯 4 2 键盘电路键盘电路 4 2 1 键盘与单片机的接口键盘与单片机的接口 如图 4 2 所示 用单片机的并行口 P1 接 4 4 矩阵键盘 74LS21 四与门的第 6 个引脚接单片 机外部中断 INT0 口 图图 4 2 键盘按键的分布图键盘按键的分布图 学习资料收集于网络 仅供参考 学习资料 4 2 2 键连击现象的克服和处理键连击现象的克服和处理 当我们按下某个键时 对应的功能便会通过键盘分析程序得以执行 如果在操作者释放之前 对应的功能多次执行 如同操作者在连续不断的操作该键一样 这种现象就称为连击 连击可用图 4 3 1 所示流程图的软件方法来解决 当某个键按下时 首先进行软件去抖处理 确认键被按下 后 便执行与该键相对应的功能 执行完后不是立即返回 而是等待键释放之后再返回 使每一次 按键只被响应一次 从而达到避免连击的目的 本实验采用了这种处理方式 今后程序改进可以合 理利用连击现象 如果把连击现象加以利用 有时会给操作者带来便利 例如在某些仪器中 因设计的按键很少 没有安排 0 9 数字键 只设置了一个调整键 这时需要采用加 1 或者减 1 的方法来调整有关参 数 但当调整量较大时就需要多次按键 使操作者很不方便 如果允许存在连击现象 我们只要按 住键不放 参数就会不停的加 1 或者减 1 会让操作比较方便 快捷 3 具体实现流程图如图 4 3 2 所示 其中加入的延时环节是为了控制连击的速度 读键 延时去抖 执行 等键释放 读键 延时去抖 执行 延时 1 键连击现象的处理 键连击现象的处理 2 键连击现象的合理利用 键连击现象的合理利用 图图 4 3 键连击现象键连击现象 4 3 红外发射电路红外发射电路 红外发射电路图如图 4 4 所示 当系统进入控制模式时 用户按下遥控按键后即引发按键中 断 单片机识别按键然后从 EEPROM 中取出相应键值的遥控信号 即红外遥控编码信息 然后用 学习资料收集于网络 仅供参考 学习资料 定时器 T0 来产生 38KHz 的载波信号 将遥控信号经三极管 8550 驱动红外发射管辐射出 940nm 的 红外脉冲信号发射出去 图图 4 4 红外线发射电路红外线发射电路 4 4 红外接收电路红外接收电路 红外接收电路如图 4 5 所示 一体化红外接收头采用 NB0038 其光电检测和前置放大器集成 于同一封装 中心频率为 38 0kHz NB0038 的环氧树脂封装结构为其提供了一个特殊的红外滤光 器 对自然光和电场干扰有很强的防护性 NB0038 的目的是对接收到的红外信号放大 检波 整 形 并解调出红外遥控编码 得到 TTL 电平 反相后输入至单片机的外部中断 INT1 口 10 图图 4 5 红外线接收电路红外线接收电路 4 4 1 红外接收原理红外接收原理 家电的遥控一般采用由红外发射管发出的红外线作为指令传输媒介 为了增加传输距离 提高 抗干扰性 一般经过编码 由载波调制后发出 如图 4 6 所示 学习资料收集于网络 仅供参考 学习资料 如图如图 4 6 载波调制载波调制 红外接收管 NB0038 具备接收 解调 TTL 电平输出等功能 其解调后波形如图 4 7 如图如图 4 7 载波解调载波解调 因此 只要了解遥控器编码标准 就可利用 NB0038 接收 解调红外信号 然后编写程序由单 片机解码 本文就是基于市面上常用的 NEC 红外协议进行解码的 如图 4 8 所示 图图 4 8 NEC 红外协议红外协议 每帧数据由引导码开始 随后共 32 位数据 分别 16 位用户编码 8 位键数据码和 8 位键数据 反码 9 图图 4 9 NEC 协议调制和解调协议调制和解调 引导码由 9ms 载波波形和 4 5ms 关断时间构成 作为随后发射码的引导 编码采用脉冲位置调 制方式 PPM 利用脉冲之间的时间间隔来区分 0 和 1 0 56ms 载波和 0 56ms 关断时间代表 0 0 56ms 载波和 1 68ms 关断时间代表 1 4 如图 4 9 所示 下方为 NB0038 解调后波形 学习资料收集于网络 仅供参考 学习资料 4 5 存储器电路存储器电路 4 5 1 24C02 引脚说明引脚说明 24C02 它的引脚及接口应用 如图 4 10 为 24C02 引脚图 A0 A1 A2 为芯片地址线 单片 使用时一般接 VSS SCL 为串行移位时钟 SDA 为串行数据或地址 通过 SDA CPU 可对芯片写 入或读出数据 WP 为写保护 若 WP 接 VCC 芯片只读 图图 4 10 24C02 引脚图引脚图 4 5 2 单片机与单片机与 24C02 的接口的接口 图 4 11 为单片机与 24C02 的接口电路图 单片使用 A0 A1 A2 Vss 均接地 串行时钟 SCL 接 P3 1 串行数据或地址线 SDA 接 P3 0 引脚 这里的 24C02 主要用于存遥控器的红外编码信 息 其芯片的写指令为 A0H 读指令为 A1H 5 图图 4 11 24CO2 与与单片机接口与与单片机接口 4 6 指示灯电路指示灯电路 指示灯的 LED 接口接单片机的 P3 5 如图 4 12 所以当 P3 5 拉低时 指示灯亮 当 P3 5 拉高 时 指示灯灭 图图 4 12 指示灯指示灯 学习资料收集于网络 仅供参考 学习资料 4 7 电源电路电源电路 电源电路如图 4 13 所示 C5 和 C6 为滤波电容 输入 9V 电压 输出 5V 电压 图图 4 13 电源电路图电源电路图 学习资料收集于网络 仅供参考 学习资料 5 程序设计程序设计 5 1 主程序流程图主程序流程图 开始 控制模式初始化 是否空闲模式 进入空闲模式 外部中断0 延迟10ms按键去抖 按键按下 扫描按键信息 功能切换按键学习模式 控制模式初始化 学习模式初始化 学习模式读出红外信息 发射红外信号 控制模式初始化 存储红外信息 指示灯闪烁 学习模式初始化 外部中断1 接受红外信号 指示灯闪烁 中断返回 定时器0中断 红外发射接口翻转 中断返回 否 中断返回 是 中断返回 否 是 否 否 是 是 否 失败 成 功 主程序 按键中断 红外接收中断 定时器0中断 是 图图 5 1 主程序流程图主程序流程图 学习资料收集于网络 仅供参考 学习资料 5 2 键号判别程序设计键号判别程序设计 矩阵按键部分由 16 个轻触按键按照 4 行 4 列排列 连接到 P1 端口 初始赋值 P1 0 x0F 当有 按键按下时 74LS21 四与门输出逻辑低电平引发 INT0 外部中断 在通过按键扫描判断是哪个按键 被按下 其原理是 依次使 P1 4 P1 7 为低电平 然后检测 P1 0 P1 3 是否有引脚被拉低 当有引脚 被拉低时 根据置底的引脚和被拉低的引脚就可以判断出是哪个按键被按下 使 CPU 对键的一次 闭合仅做一次处理 采用的方法为等待闭合键释放以后再作处理 8 键盘号识别程序的框图如图 5 2 所示 开始 scancode 0 xef scancode 0 xff KEY scancode keycode KEY keycode 否 i 循环退出j 0 j 循环退出 否 是 否 是 图图 5 3 红外接收程序流程图红外接收程序流程图 学习资料收集于网络 仅供参考 学习资料 5 4 红外发射程序设计红外发射程序设计 遥控器在控制模式下 当有普通按键按下后 单片机从 EEPROM 中取出对应键值的红外信息 存储在 Ir Buf 4 数组里 然后设置 T0 为模式 2 自动重装模式 利用 T0 中断产生 38KHz 的载波 信号 要输出高电平时启动 T0 中断 要发送低电平就关闭 T0 中断 并拉低发送端口 P2 0 根据 Ir Buf 4 存储的红外信息循环发送 4 字节 图 5 4 为红外发射程序流程图 开始 发射初始化 发射引导码 i j j 0 是 否 图图 5 4 发射程序流程图发射程序流程图 学习资料收集于网络 仅供参考 学习资料 6 程序源代码程序源代码 6 1 按键扫描源码见附录按键扫描源码见附录 A 6 2 I2C 总线程序总线程序 6 2 1 位传输位传输 I2C 总线每传送一位数据必须有一个时钟脉冲 被传送的数据在时钟 SCL 的高电平期间保持稳 定 只有在 SCL 低电平期间才能够改变 在标准模式下 高低电平宽度必须不小于 4 7us 那么是 不是所有 I2C 总线中的信号都必须符合上述的有效性呢 只有两个例外 就是开始和停止信号 开 始信号 当 SCL 为高电平时 SDA 发生从高到低的跳变 就定义为开始信号 停止信号 当 SCL 为高电平时 SDA 发生从低到高的跳变 就定义为结束信号 6 2 2 数据传输的字节格式数据传输的字节格式 SDA 传送数据是以字节为单位进行的 每个字节必须是 8 位 但是传输的字节数量不受限制 首先传送的是数据的最高位 每次传送一个字节完毕 必须接收到从机发出的一个应答位 才能开 始下一个字节的传输 如果没有接受到应答位 主机则产生一个停止条件结束本次的传送 那么从 机应该发出什么信号算是产生了应答呢 这个过程是这样的 当主器件传送一个字节后 在第 9 个 SCL 时钟内置高 SDA 线 而从器件的响应信号将 SDA 拉低 从而给出一个应答位 6 2 3 I2C 数据传输协议数据传输协议 I2C 总线的数据传输协议如下 1 主器件发出开始信号 2 主器件发出第一个字节 用来选通相应的从器件 其中前 7 位为地址码 第 8 位为方向 位 R W 方向位为 0 表示发送 方向位为 1 表示接受 3 从机产生应答信号 进入下一个传送周期 如果从器件没有给出应答信号 此时主器件 产生一个结束信号使得传送结束 传送数据无效 4 接下来主 从器件正式进行数据的传送 这时在 I2C 总线上每次传送的数据字节数不限 但每一个字节必须为 8 位 传送的时候先送高位 再送低位 当一个字节传送完毕时 再发送一 个应答位 第 9 位 如上一条所述 这样每次传送一个字节都需要 9 个时钟脉冲 5 学习资料收集于网络 仅供参考 学习资料 6 3 红外接收源码见附录红外接收源码见附录 B 6 4 红外发射源码见附录红外发射源码见附录 C 学习资料收集于网络 仅供参考 学习资料 7 系统调试系统调试 单片机系统经过总体设计 完成了硬件和软件设计开发 通过软件和硬件相结合系统即可运行 但编制好的程序或焊接好的线路不能按预计的那样正常工作是常见的事 经常会出现一些硬件 软 件上的错误 这是软件和硬件开发者经常遇见的 这就需要通过调试来发现错误并加以改正 调试 可分为硬件调试和软件调试 本设计系统的已经在 PC 机上用模拟开发软件进行了检测和调试 并 运行成功 最后进行实物图的硬件组装与调试 这样就给开发者提供了方便 6 7 1 软件调试软件调试 本设计是在 Proteus 软件和 Keil 软件相结合调试的 完全用仿真软件在 PC 机上对目标电路原 理图和程序进行检测和调试 本次软件模拟用另一个单片机模拟一体化红外接收头 而红外发射电 路采用虚拟逻辑分析仪捕获的方式查看 图 7 1 为用 Proteus 软件仿真电路图 图图 7 1 软件模拟电路图软件模拟电路图 经过多次修改程序最后调试出来了理想的效果 图 7 2 为模拟红外接收头接收的红外信号 图 7 3 为遥控器学习后 按下某个按键发射的红外信号 学习资料收集于网络 仅供参考 学习资料 图图 7 2 红外接收头接收的信号红外接收头接收的信号 图图 7 3 红外发射的信号红外发射的信号 7 2 硬件调试硬件调试 焊接电路板如图 7 4 所示 图图 7 4 电路板电路板 单片机应用系统的硬件调试和软件调试是分不开的 许多硬件故障在硬件调试时才能发现 但 通常要先排除系统中明显的硬件故障 调试工作可以分为四步 学习资料收集于网络 仅供参考 学习资料 线路检查 根据硬件逻辑设计图 仔细检查样机线路是否连接正确 并核对元器件的型号 规 格和安装是否符合要求 必要时可用万用表检测线路通断情况 电源调试 样机的第一次通电测试很重要 若样机中存在电源故障 则加电后将造成器件损坏 调试的方法有两种 一种是断开样机稳压电源的输出端 检查空载时电源工作情况 另一种是拔下 样机上的主要集成芯片 检查电源的负载能力 用假负载 确保电源无故障并性能符合设计要求 通电检查 在确保电源良好前提下 接通电源 最好在电源与其余电路之间串接一个电流表 若接 通后电流很大 必须立即切断电源 电源大得超出正常范围 说明电路中有短路或故障 通电检查 的主要目的是看系统是否存在短路或由元器件损坏 装配错误引起的电流异常 检查芯片的逻辑关系是否出错 加电后检查各芯片插座上相关引脚的电位 仔细测量相应的输 入输出电平是否正常 单片机系统大都是数字逻辑电路 使用电平检查法可首先查出逻辑设计是否 正确 选用器件和连接关系是否符合要求等 7 硬件测试环境如图 7 5 所示 图图 7 5 测试环境测试环境 普通遥控器发射的红外信号经接收发送到电脑和学习型红外遥控器学习普通遥控器的红外信号 红发射的红外信号经接收发到电脑的比较 如图 7 6 所示 学习资料收集于网络 仅供参考 学习资料 图图 7 6 经串口接收的红外信号经串口接收的红外信号 经过软硬件调试 本设计符合设计要求 总原理图见附录 D PCB 板图见附录 E 学习资料收集于网络 仅供参考 学习资料 8 调试调试中遇到的问题和解决方法中遇到的问题和解决方法 8 1 硬件部分硬件部分 8 1 1 单片机的选取单片机的选取 为了到达尽量的低功耗 希望单片机在平常不工作时处在空闲模式下 但是又能通过外部中断 唤醒 而且希望单片机的引脚能得到充分的利用 价格还要低廉 经过查找资料 STC89C52RC 可 以满足程序设计的需要 8 1 2 功能切换键的设置功能切换键的设置 本来想单独用个按键通过独立式按键实现 但是这个按键需要随时相应 如果通过扫描 那实 现单片机低功耗就有问题 如果采用外部中断实现 那就要占用一个外部中断口 而红外接收和矩 阵式按键分别都要占用一个红外接收口 最后通过和同学讨论 才恍然大悟功能切换可以用矩阵式 按键其中的一个来实现 这样问题就得到了解决 8 1 3 AT24C02 的焊接的焊接 在焊接 AT24C02 引脚的时候 由于高温持续时间过长导致 AT24C02 零件损坏 为了避免这种 情况再发生 买了 8 引脚座 这样就解决了 8 2 软件部分软件部分 8 2 1 红外发射部分红外发射部分 由于我用单片机定时器 0 中断来产生 38K 载波 那就要设置定时器每 13 个机器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025云南玉溪职业技术学院职教集团江川分校(江川职中)招聘编外人员笔试备考题库及答案解析
- 2025贵州黔西市第四批招募青年就业见习人员87人笔试参考题库附答案解析
- 2025四川省绵阳第一中学第三次考核招聘教师9人笔试备考题库及答案解析
- 毕业论文非要写本专业吗
- 基于人工智能的智慧城市物流管理与服务升级方案
- 物流管理专业毕业论文
- 中班健康教案《大熊逮小熊》
- 2025广西北海市农村产权运营管理有限公司招聘5人(招满即停)笔试参考题库附答案解析
- 内蒙古大学毕业论文
- 农村土地出让合同范本
- 通用技术作品设计报告
- JJF 1847-2020 电子天平校准规范-(高清现行)
- 人工智能遥感解译介绍课件
- 大信审计执业问题解答-存货监盘审计指引
- 锚杆支护技术规范正式版本
- 婚育情况证明
- 下一代互联网技术
- 皮肤知识与问题性皮肤分析(入行必看)
- 单位消防安全评估报告(模板)
- 江西之江化工“7.2”压力容器爆炸事故
- 岩土工程勘察 第七章 静力触探试验ppt课件
评论
0/150
提交评论