基于AT89S52的学习型红外遥控器的设计本科毕业设计.doc_第1页
基于AT89S52的学习型红外遥控器的设计本科毕业设计.doc_第2页
基于AT89S52的学习型红外遥控器的设计本科毕业设计.doc_第3页
基于AT89S52的学习型红外遥控器的设计本科毕业设计.doc_第4页
基于AT89S52的学习型红外遥控器的设计本科毕业设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

单片机系统开发与应用工程实习报告单片机系统开发与应用工程实习报告 选题名称选题名称 基于 stc89c52 的学习型红外遥控器的设计 系 院 系 院 专专 业业 班班 级级 姓姓 名名 学学 号号 指导教师指导教师 学年学期学年学期 2009 2010 学年 第 2 学期 2014年 12 月 08 日 摘要 学习型红外线遥控器 通过自学习而拥有对多台电器的遥控功能 该遥控器有两 种状态 学习状态和控制状态 处于学习状态时 使用者每按一个控制键红外接收电 路就开始接收外来红外信号 并将其转换为电信号 然后经过检波 整形 放大 再 由单片机定时对其采样 将每个采样点的二进制数据以 8 位为一个单位 分别存放到 指定的存储单元中去 供以后对该设备控制使用 处于控制状态时 使用者每按一个 控制键单片机从指定的存储单元中读取二进制数据 串行输出 位和位之间的时间间 隔等于采样的时间间隔 给信号保持电路 同时由调制电路进行信号调制 将调制信 号经放大后 由红外线发射二极管进行发射 从而实现对该键对应设备功能的控制 关键词 学习型 红外线遥控器 学习状态 控制状态 stc89c52 目 录 1 课题综述 1 1 1 课题来源及意义 1 1 2 预期目标 1 1 3 面对的问题 1 1 4 需解决的关键技术 1 2 系统分析 1 2 1 涉及的基础知识 1 2 2 解决问题的基本思路 2 2 3 总体方案 3 2 3 功能模块框图 3 3 系统设计 4 3 1 电路原理图 4 3 2 实现方法 5 3 3 详细流程图 5 4 代码编写 6 4 1 stc89c52 单片机与各模块电路的连接端口分配 6 4 2 复位电路的设计 6 4 3 按键电路设计的实现 7 4 4 中断程序的实现 8 4 5 主函数的实现 10 5 程序调试 10 6 运行与测试 11 总 结 12 参考文献 13 单片机系统开发与应用工程实习报告 1 1 1 课题综述课题综述 1 11 1 课题来源及意义课题来源及意义 目前 人们的物质文化生活水平日益提高 各种各样的家用电器走进了千家万户 其中 大 多数的家用电器都有各自不同的遥控器 人们常常为了控制某台电器到处寻找其对应的遥控器 这样就给人们的生活带来了很多步便 为了解决这个问题 笨项目提出了一个多功能遥控器的设 计方案 该遥控器可以通过自学习而拥有对多台电器的遥控功能 既省时又省力 从而 使人们免除同时面对众多遥控器的苦恼 1 21 2 预期目标预期目标 设计一种基于 stc89c52 单片机控制的红外线遥控器 具有以下功能 1 适用于编码式红外线遥控型家用电器 2 可遥控多台家用电器 3 具有一个学习 控制复用键 4 可通过一个设备选择键和各个功能控制键实现对多台设备的常用功能的学习 和控制 5 成本低 抗干扰能力强 1 31 3 面对的问题面对的问题 1 对于 stc89c52 单片机的了解及应用 2 对于抗干扰能力的解决 1 41 4 需解决的关键技术需解决的关键技术 本项目是通过扫描按键的状态 单片机外中断 0 和定时 计数器程序来判断遥控 器处于什么状态 实现什么功能 因此 对于功能键的设计和中断程序的设计是难点 同时 对于红外发射和红外接收的工作原理和设计对于我们来说也是陌生的 都要从 头开始 对其进行了解 掌握及使用 所以也是一个难题 2 2 系统分析系统分析 2 12 1 涉及的基础知识涉及的基础知识 通过对本项目的了解 为了实现该项目的各个功能 必须要掌握以下知识点 单片机系统开发与应用工程实习报告 2 1 电源原理及设计 2 单片机复位电路工作原理及设计 3 单片机晶振电路工作原理及设计 4 按键电路的设计 5 驱动 74ls07 的特性及使用 6 一体化红外遥控接收器的特性及使用 7 stc89c52 单片机引脚 8 单片机 c 语言程序设计 2 22 2 解决问题的基本思路解决问题的基本思路 2 2 1 stc89c52 单片机的基本知识 功能特性 stc89c52 是一种低功耗 高性能 cmos8 位微控制器 具有 8k 在系统 可编程 flash 存储器 使用 atmel 公司高密度非 易失性存储器技术制造 与工业 80c51 产品指令和引脚完 全兼容 片上 flash 允许程序存储器在系统可编程 亦适 于 常规编程器 在单芯片上 拥有灵巧的 8 位 cpu 和在系统 可编程 flash 使得 stc89c52 为众多嵌入式控制应用系统提 供高灵活 超有效的解决方案 stc89c52 具有以下标准功能 8k 字节 flash 256 字节 ram 32 位 i o 口线 看门狗定时器 2 个数据指针 三个 16 位 定时器 计数器 一个 6 向量 2 级中断结构 全双工串行 口 片内晶振及时钟电路 另外 stc89c52 可降至 0hz 静态逻 辑操作 支持 2 种 软件可选择节电模式 空闲模式下 cpu 停止工作 允许 ram 定时器 计数器 串口 中断继续工作 掉电保护方式下 ram 内容被保存 振荡器被冻结 单片机一切工作 停止 直到下一个中断或硬件复位为止 8 位微控制器 8k 字节在系统可编程 flash stc89c52 主要性能 与 mcs 51 单片机产品兼容 8k 字节在系统可编程 flash 存储器 1000 次擦写周期 全静态操作 0hz 33hz 三级加密程序存储器 32 个可编程 i o 口线 三个 16 位定时器 计数器八个中断源 全双工 uart 串行通道 低功耗空 闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 单片机系统开发与应用工程实习报告 3 图 2 1 stc89c52 引脚图 2 2 2 对于抗干扰能力的解决 该项目中采用一体化红外遥控接收器 hx1838 该接收器的内部包括红外光敏二极 管 谐振电路 放大电路 解码器 滤波器等 其工作电压为 5v 输出引脚直接输 出不带副载波的负极性 rc 5v 信号 具有电路简单 灵敏度高 抗干扰性好等优点 2 32 3 总体方案总体方案 学习型红外线遥控器 通过自学习而拥有对多台电器的遥控功能 该遥控器有两 种状态 学习状态和控制状态 处于学习状态时 使用者每按一个控制键红外接收电 路就开始接收外来红外信号 并将其转换为电信号 然后经过检波 整形 放大 再 由单片机定时对其采样 将每个采样点的二进制数据以 8 位为一个单位 分别存放到 指定的存储单元中去 供以后对该设备控制使用 处于控制状态时 使用者每按一个 控制键单片机从指定的存储单元中读取二进制数据 串行输出 位和位之间的时间间 隔等于采样的时间间隔 给信号保持电路 同时由调制电路进行信号调制 将调制信 号经放大后 由红外线发射二极管进行发射 从而实现对该键对应设备功能的控制 2 32 3 功能模块框图功能模块框图 遥控器由红外接收及红外发射电路 复位电路 控制器 stc89c52 按键及状态指 示电路组成 其组成框图如图 2 1 所示 单片机系统开发与应用工程实习报告 4 图 2 2 基于 stc89c52 学习型红外线遥控器系统框图 3 3 系统设计系统设计 3 13 1 电路原理图电路原理图 控制芯片选择 stc89c52 单片机 控制系统按最小化工作模式设计 p1 0 接红外 线发射 p1 6 和 p1 7 接两个发光二极管用来指示遥控器的工作状态 p3 4 和 p3 5 用来接收和发射红外线 红外接收采用一体化红外遥控接收器 hx1838 其原理图 如图 3 1 所示 stc89c52 控 制 器 红外接收电路 状态指示电路 复位电路 电源电路 红外发射电路 单片机系统开发与应用工程实习报告 5 图 3 1 基于 stc89c52 学习型红外遥控器原理图 3 23 2 实现方法实现方法 当红外遥控器的某个按键按下时 发射出的一组串行二进制编码脉冲 该脉冲由 引导码 系统码 功能码和反码组成 通过设置这些编码以及码长便可区分不同的红 外遥控器 红外接收器负责红外信号的接收和放大并解调出 ttl 电平信号送至微处理 器进行处理 微处理器通过比较和识别接收来的红外遥控编码便可执行相应的遥控功 能 本系统的设计思想是不考虑红外编码方式 仅利用单片机 stc89c52 对多个红外 遥控编码的脉冲宽度进行测量 并原封不动地把发射信号中高 低电平的时间宽度记 忆至存储区的指定地址 当要发射红外信号时 从存储区中还原出相应的红外遥控编 码 并调制到 38khz 的载波信号上 最后 通过 74ls07 驱动发光二极管发射红外信 号 达到学习和发射的目的 从而实现一个遥控器控制多种遥控设备的功能 3 33 3 详细流程图详细流程图 在程序中主程序完成初始化 按键扫描和调用信号发射程序的功能 学习功能通 过中断 0 来完成 程序的具体流程图如图 3 2 所示 y 结束 中断开始 开学习指示灯 等待键释放 读遥控码 存学习标志 关指示灯 结束 n 单片机系统开发与应用工程实习报告 6 a 主程序流程图 b 中断程序流程图 图 3 2 基于 stc89c52 学习型红外线遥控器程序流程图 4 4 代码编写代码编写 4 14 1 stc89c52stc89c52 单片机与各模块电路的连接端口分配单片机与各模块电路的连接端口分配 p1 6 和 p1 7 分别接学习灯指示灯和发射指示灯 sbit studylamp p2 7 学习指示灯 sbit lamp p2 6 发射指示灯 sbit studykey p3 2 学习键 中断口 sbit remotein p1 1 遥控信号输入口 sbit remoteout p1 2 遥控信号输出口 sbit txkey p1 0 发射键 4 24 2 复位电路的设计复位电路的设计 复位电路实现的是对单片机以及整个电路的初始化 uint i j n 定义各个变量 uint idata fh 55 存脉冲宽度高电平数据用 y 开始 初始化 扫描按键 信号发射 n 单片机系统开发与应用工程实习报告 7 uint idata fl 55 存脉冲宽度低电平数据用 uint head head2 存起始位用 clearmen 初始化函数 studylamp 1 关学习指示灯 lamp 1 关发射指示灯 remoteout 1 关遥控输出 remotein 1 head 0 起始位 1 清 0 head2 0 起始位 2 清 0 for i 0 i 55 i 清内存 fh i 0 x0000 fl i 0 x0000 ie 0 x00 中断允许控制寄存器置 0 ip 0 x01 定义中断优先级 tmod 0 x21 8 位自动重装模式和定时器 0 为 16 位模式 tcon 0 x00 定时器溢出位清零 th1 0 xf3 40khz 初值 tl1 0 xf3 it0 1 脉冲触发方式 负跳变有效 ex0 1 外中断允许 ea 1 开总中断 定义延时 1ms 子程序 delay1ms uint t 1ms 延时子程序 for i 0 i t i for j 0 j 120 j 单片机系统开发与应用工程实习报告 8 4 34 3 按键电路设计的实现按键电路设计的实现 通过扫描按键来判断实现的功能 并通过按键进入中断程序 void keywork 键功能键 if txkey 0 delay1ms 100 if txkey 0 remoteout 1 关闭红外输出口 th0 head 256 tl0 head 256 et1 1 tr1 1 产生脉冲 tr0 1 while tf0 0 tr0 0 tf0 0 et1 0 tr1 0 不产生脉冲 remoteout 1 关闭红外输出口 th0 head2 256 tl0 head2 256 tr0 1 while tf0 0 tr0 0 tf0 0 n 0 while 1 th0 fl n 256 tl0 fl n 256 单片机系统开发与应用工程实习报告 9 et1 1 tr1 1 产生脉冲 lamp lamp tr0 1 while tf0 0 tr0 0 tf0 0 et1 0 tr1 0 不产生脉冲 remoteout 1 关闭红外输出口 th0 fh n 256 tl0 fh n 256 lamp lamp tr0 1 while tf0 0 tr0 0 tf0 0 if fh n 0 lamp 0 break n 4 44 4 中断程序的实现中断程序的实现 4 4 1 定时器中断 t1 的服务程序 定时器中断 t1 的服务程序 实现控制红外发射灯是否发射 当 remoteout 为低 电平时 红外发射处于工作状态 会发出红外信号 当送入的为高电平时 红外发射 不工作 单片机系统开发与应用工程实习报告 10 void time intt1 void interrupt 3 定时器中断 t1 remoteout remoteout 4 4 2 外中断 0 的服务程序 外中断服务程序实现的是接收遥控器发射的红外信号 判断其高低电平 并存入 单片机指定的位置 以供当系统处于学习状态时 该红外遥控器进行学习 并控制家 电的使用 void intt0 void interrupt 0 外中断 0 接收遥控器发射的红外信号 判断 其高低电平 并存入单片机指定的位置 et1 0 关定时器 1 中断 tr1 0 关定时器 1 ex0 0 关外部中断 0 ea 0 关总中断 n 0 head 0 起始位 1 清 0 head2 0 起始位 2 清 0 for i 0 i0 x0e goto end tr0 0 fh n th0 256 tl0 数据位高电平脉宽宽度测量 n fh 和 fl 共用一个 n end fh n 0 x0000 单片机系统开发与应用工程实习报告 12 studylamp 1 学习指示灯灭 lamp 0 发射指示灯亮 tr0 0 tf0 0 th0 0 x00 tl0 0 x00 ex0 1 ea 1 4 54 5 主函数的实现主函数的实现 主函数只需调用初始化函数实现电路复位 调用按键函数实现学习 控制功能 main clearmen while 1 keywork 按键扫描 5 5 程序调试程序调试 各个函数实现后 对该函数整体实现 并进行调试了 调试过程中出现了一些低 级错误 如变量的书写错误 定义的错误等等 但整体的模块规划设计实现跟设想的 还是一样比较完整 正确的 故软件的实现还是比较顺利的 6 6 运行与测试运行与测试 本项目设计的是一个多功能红外线遥控器 控制电路板的安装与调试在整个系统 研制中占有重要位置 它是把理论付诸实践的过程 也是把纸面设计转变成实际产品 的必经阶段 在调试过程中药注意以下几个特点 1 正确使用测量仪器的接地端 仪器的接地端与电路的接地端要可靠连接 单片机系统开发与应用工程实习报告 13 2 在信号较弱的输入端 尽可能使用屏蔽线连线 屏蔽线的外屏蔽层要接到 公共地线上 在频率较高时要设法隔离连接线分布电容的电影 例如用示 波器测量时应该使用使用示波器探头连接 以减少分布电容的影响 3 测量电压所用仪器的输入阻抗必须远大于被测处的等效阻抗 4 测量仪器的带宽必须大于被测量电路的带宽 5 正确选择测量点和测量 6 认真观察记录实验过程 包括条件 现象 数据 波形 相位等 7 出现故障时要认真查找原因 在程序调试成功之后 我将该程序烧入 stc89c52 芯片中 并对整个系统进行了 测试 刚开始时 当按下学习键时 其学习指示灯不亮 于是 我用万能表对焊接的 状态指示电路进行了测试 最后发现是与单片机的 p1 6 端口接入处没有焊实 但经 焊实后 发现跟我要系统实现的功能还是不完全 于是我又对程序进行了修改 经多 次烧写 运行 调试 终于实现了学习型红外线遥控功能 遥控器在使用时按下学习键 待学习指示灯亮后 用原遥控器对着红外接收头按 下某一功能键 当学习指示灯灭时 就可按发射键进行遥控操作了 本设计还有较多 的扩展空间 若在系统中扩展一个存储器 再加入相应的按键就可以制作成一个学习 型的万能遥控器 总总 结结 本次单片机系统开发与应用工程实习报告前后历时两周 此次工程实习的前一周 我们对整个系统的进行了深入的了解 并对其进行了整体规划 分别划分为 stc89c52 控制器模块 红外接收电路模块 红外发 单片机系统开发与应用工程实习报告 14 射电路模块 状态指示电路模块 复位电路模块 电源电路模块 当我把该系统的模 块确定以后 就初步画出该系统的硬件电路原理图 经过确定以后 就开始了硬件电 路的焊接 经过对焊接的电路运行和测试成功后 就对软件设计进行了简单的设计 实习的第二周主要是将程序烧写入硬件电路中 并对其进行运行与调试 在学习这门课程时 感到单片机的概念抽象 对其中的引脚的分配 寄存器的功能 等基本理论也不能很好地理解与掌握 通过本次工程实习 我对学到的单片机知识有 了更深一步的深入 而且 本次实习让我对于实践也有了基本认识 刚开始时 我有 的只是书本上的东西 只有表面记忆 通过该次实习 我对其有了进一步的了解 如 stc89c52 单片机芯片的具体功能 默认输出的值 元器件的如何正确焊接 如何验证 元器件的焊接是否正确等等 本次工程实习是本科学习阶段很有价值的理论与实践相结合的机会 这次实习能 这么顺利的完成 首先感谢淮阴工学院 计算机工程学院提供的实践机会 同时也感 谢实验室老师给我们提

温馨提示

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

评论

0/150

提交评论