单片机89C51简易自动打铃系统.doc

上传人:w****2 文档编号:6701111 上传时间:2020-03-02 格式:DOC 页数:24 大小:856KB
返回 下载 相关 举报
单片机89C51简易自动打铃系统.doc_第1页
第1页 / 共24页
单片机89C51简易自动打铃系统.doc_第2页
第2页 / 共24页
单片机89C51简易自动打铃系统.doc_第3页
第3页 / 共24页
点击查看更多>>
资源描述
课 程 设 计 报 告 课程名称 单片机原理及应用课程设计 设计题目 简易自动打铃系统 系 别 专 业 班 级 学生姓名 学 号 起止日期 摘 要 随着科学技术的飞速发展 单片机应用的范围越来越广 本设计正是基于 STC89C52 型单片机为核心 加上适当的外围部件 设计而成的简易自动打铃系统 简易自动打铃系统的设计以 STC89C52 单片机芯片和 8255 芯片的拓展 I 0 引脚为 核心部件 用中断系统进行时间设置 数码管显示当前时间并辅以必要的电路 构成 了本系统 根据设计要求 该简易自动打铃系统可以进行计时和显示 设置当前时间 实现定点打铃等功能 该设计简单 实用 操作便捷 关键字 单片机 自动定点打铃 设置时间 中断 目 录 设计要求 1 1 方案论证与对比 1 1 1 方案一 采用时钟芯片和键盘实现功能 1 1 2 方案二 采用中断定时实现功能 2 1 3 方案比较 2 2 单元电路设计与论证 2 2 1 中断和复位电路设计 2 2 2 2 电源电路设计 3 2 3 单片机 I O 拓展 3 2 4 打铃电路设计 5 2 5 数码管电路设计 5 3 系统软件工作流程图 6 3 1 主程序工作流程 6 3 2 读秒显示子程序 7 3 3 中断服务子程序 7 3 4 时间设定子程序 8 4 系统功能实际测试 9 4 1 程序实际编译测试 9 4 2 系统实际测试 9 4 3 软件调试步骤 9 4 4 子程序调试步骤 10 4 5 调试结果 10 4 6 系统误差及性能分析 10 5 设计总结 11 6 详细仪器清单 12 7 致谢 13 参考文献 14 附录 15 附录 1 详细程序 15 附录 2 整体电路图 20 简易自动打铃系统设计 设计要求 1 基本计时和显示功能 12 小时制 2 可设置当前时间 包括上下午标志 时 分的数字显示 3 能实现基本打铃功能 规定 上午 7 30 早自习 打铃 5 秒 停 2 秒 再打铃 5 秒 下午 10 30 熄灯铃 打铃 5 秒 停 2 秒 再打铃 5 秒 1 方案论证与对比 1 1 方案一 采用时钟芯片和键盘实现功能 方案一原理框图如图 1 1 所示 图 1 1 采用时钟芯片和键盘实现功能 该系统用 DS1302 1 对时 分 秒计时和设置打铃时间 采用三线串行数据 传输接口与 STC89C52 进行同步通信 用矩阵键盘来设置时间值 并通过 8255 芯片读入设置值 最后通过 89C52 单片机芯片综合控制 把当前时间送到数码 管显示 到点把信号送入蜂鸣器 实现打铃 DS1302 芯片 蜂鸣器 89C52 单 片机 8255 芯片 数 码 管 键 盘 1 2 方案二 采用中断定时实现功能 方案二原理框图如图 1 2 所示 图 1 2 采用中断定时实现功能 该系统以 STC89C52 单片机为核心部件 用 8255 做 I O 拓展芯片 数码管 接 8255 的 PA PB 引脚 蜂鸣器与单片机的 P3 4 口相连 1 外加 INT0 和 INT1 中断 该系统因为使用定时器中断实现计时和中断按钮实现调试大大节省了设 计的复杂程度 数码管显示当前时间 1 3 方案比较 2 单元电路设计与论证 2 1 中断和复位电路设计 2 利用按键实现中断电路如图 2 1 所示 蜂鸣器 中 断 数码管 8255 芯片89C52 图 2 1 中断和复位电路图 2 2 电源电路设计 利用 USB 接口供电 电路图如 2 2 所示 图 2 2 电源电路图 2 3 单片机 I O 拓展 STC89C52RC 7 是一个低功耗 高性能 CMOS 8 位单片机 片内含 8k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只读程序存储 器 器件采用 ATMEL 公司的高密度 非易失性存储技术制造 兼容标准 MCS 51 单片微型计算机 指令系统及 80C51 引脚结构 芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元 功能强大的微型计算机的 STC89C52 可 为许多嵌入式控制应用系统提供高性价比的解决方案 STC89C52 具有如下特 点 40 个引脚 8k Bytes Flash 片内程序存储器 256 bytes 的随机存取数据存储 器 RAM 32 个外部双向输入 输出 I O 口 5 个中断优先级 2 层中断嵌 套中断 2 个 16 位可编程定时 计数器 2 个全双工串行通信口 看门狗 WDT 电路 片内时钟振荡器 主要特性如下 与MCS 51 兼容 8k可反复擦写 1000次 Flash ROM 全静态工作 0Hz 24MHz 三级程序存储器锁定 256 8位内部RAM 32可编程I O线 2个16位可编程定时 计数器 5个中断源 可编程串行通道 低功耗的空闲和掉电模式 I O 拓展采用 8255 芯片 晶振采用 12M 单片机用 89C52 电路如图 2 3 3 所示 图 2 3 主控电路图 2 4 打铃电路设计 图 2 4 打铃电路图 3 2 5 数码管电路设计 8255 的 PA 口控制数码管的位选 低电平有效 PB 口做为段选输出 接 1K 欧姆的限流电阻 如图 2 5 4 所示 图 2 5 数码管电路图 3 系统软件工作流程图 3 1 主程序工作流程 主程序首先设置 8255 模式 并打开中断 0 设置中断为边沿触发模式 然 后在死循环中顺序执行读秒显示子程序 按键扫秒子程序 打铃判断子程序 主程序流程图 5 如图 3 1 所示 主程序见附录一 图 3 1 主函数流程图 Y 开 始 初始化 8255 芯片 和打开中断 调用扫秒显示子 程序 打 铃 键按下 打铃到 进入时间设置子 程序 Y N N 3 2 读秒显示子程序 此子程序 1 为本设计的核心之一 首先初始化定时器 T0 设置 T0 为工作 方式 1 其初始值为 3CB0H 既每次溢出定时 50ms 并对其循环 20 次 然后 把时间加 1s 并送入显示缓冲区等待显示 子程序流程图如图 3 2 所示 图 3 2 T0 中断计时程序流程图 3 3 中断服务子程序 此子程序是为调时时服务的 首先初始化定时器 T1 设置 T1 为工作方式 1 其初始值为 3CB0H 既每次溢出定时 50ms 并对其循环 8 次 然后使数 码管被选中的调时位闪烁 子程序流程图如图 3 3 所示 Y T 加一处理 恢复现场 中断返回 1S 到 数码管显示当前时间 保护现场 T0 中断 定时器初值校正 N 图 3 3 T1 中断服务程序流程图 3 4 时间设定子程序 时间设定模块的设计要点是按键的去抖处理与 一键多态 6 的处理 即 只涉及 2 个键完成了 6 位时间参数的设定 一键多态 即多种功能的实现思想 史 根据按键时刻的系统状态 决定按键采取何种动作 即何种功能 图 3 4 键盘扫描子程序流程图 秒表 时钟调时闪烁 T1 中断 保护现场 闪烁处理 秒表 闪烁 恢复现场 中断返回 加 10ms 处理 Y 中断屏蔽 移位 加 1 移位键 左移六位 加一键 Y 4 系统功能实际测试 4 1 程序实际编译测试 在 Keil C51 编译环境下编译通过 0 警告 0 错误 4 2 系统实际测试 实际效果如图 4 2 所示 达到设计要求 图 4 2 实物图 4 3 软件调试步骤 1 打开软件后 在 Project 菜单中选择 New Project 命令 打开一个新项目 保存此项目 输入工程文件名后 并保存工程文件的目录 2 为项目文件选择一个目标器件 即选择 8051 的类型 在 Data base 列 表框中选择 ATML 89C52 确定 3 上述设置好后 创建源程序文件并输入程序代码 输入好代码后点击 文件 保存 4 把源文件添加到项目中 用鼠标指在目标工作区的目标 1 点击右键在 弹出的菜单中选择添加文件到源代码组 在弹出的添加文件框中 选择需要添 加到项目中的文件 5 开始编译 对项目文件进行编译 若没有错误后进行硬件调试 4 4 子程序调试步骤 子程序调试应一个模块一个模块地进行 首先单独调试各功能子程序 检 查程序是否能够实现预期的功能 接口电路的控制是否正常等 最后逐步将各 子程序连接起来进行总调试 故调试步骤 7 如下 A 蜂鸣器的调试 调试方法 先把打铃程序下载到单片机 让蜂鸣器发声 看是否在正确的 时间内实现打铃 B 数码管程序调试 正确的显示时间是整个程序的关键之一 调试方法 先把程序下载到单片 机 让数码管显示 是否正确的显示时间的变化 C 键盘调时序 正确的显示所调的时间是整个程序的关键之一 调试方法 先把键盘程序 和显示程序下载到单片机 让数码管显示 是否正确的所调时间的变化 4 5 调试结果 实现计时和显示功能 12 小时制 可设置当前时间 包括上下午标志 时 分的数字显示 能实现打铃功能 上午 7 30 早自习 打铃 5 秒 停 2 秒 再打铃 5 秒 下午 10 30 熄灯铃 打铃 5 秒 停 2 秒 再打铃 5 秒 4 6 系统误差及性能分析 经测试该简易自动打铃系统在一天内会出现时间误差 该误差主要是由于 晶振自身的误差所造成的 另外在中断的过程中 只会在第一次计时时产生时 间的偏移 而它所产生累积误差很小 可以忽略 7 5 设计总结 通过这次课程设计 我们得到了很多收获和体会 懂得了团队合作的重要 性和必要性 以及工程设计的大体过程 第一 巩固和加深了对单片机基本知 识和理解 提高了综合运用所学知识的能力 第二 增强了根据课程需要选学 参考资料 查阅手册 图表和文献资料的自学能力 通过独立思考 深入研究 有关问题 学会自己分析解决问题的方法 第三 通过实际方案的分析比较 设计计算 安装调试等环节 初步掌握了简单使用电路的分析方法和工程设计 方法 第四 在这次课程设计过程中 光有理论知识是不够的 还必须懂一些 实践中的知识 所以在课程设计的实践中 我们应将实验课与课堂教学结合起 来 锻炼自己的理论联系实际的能力与实际动手能力 第五 掌握了比较常用 的仪器的使用方法 提高了动手能力 第六 培养了严谨的工作作风和科学态 度 总体来说这些知识是对我们大学生来说十分宝贵的实践经验 是无法在课 堂上获得的 是现今社会最重视的同时也是我们最需要提高的部分 6 详细仪器清单 类型 规格 数量 备注 5V 直流电源 ZH 6003 1 USB232converter U232 P9 1 电阻 1k 13 个 芯片 8255 1 片 扩展 I O 芯片 STC89C52 1 片 晶振 12M 1 个 蜂鸣器 无源 1 个 数码管 3 位共阳极 2 个 极性电容 0 1UF 1 个 非极性电容 30pf 2 个 LED 2 个 按键开关 3 个 单刀双掷开关 1 个 三极管 7 个 7 致谢 经过近几天的课程设计 我们组的成员都充分认识到理论知识和实践结合 的重要性 经过两年多的理论基础的学习 我们成功的将理论运用如实践 并 成功的运用单片机 以前只是在路上看见那些交通灯 但是并没有认真的研究 交通灯的内部控制原理 还有单片机上那些芯片的功能和引脚图平常也不是常 接触 通过这次城市道口交通灯控制系统设计让我清楚如果想做一个产品该怎 样思考 在设计中 组员之间的相互配合和分工是尤其重要的 同时整个团队 的合作意识是本次设计成功的关键因素 此次课程设计持续的时间长 对 组员的耐心是一种极大的考验 同时学校的支持力度也应该加强 而不应该对 学生的提问表示不解 对有些程序的编写要及时的给予指导 当然学生也要积 极的配合老师的工作 努力将自己所学的知识尽可能的运用到对方案的设计中 去 感谢老师的细心指导 和伙伴之间的配合 参考文献 1 张鑫 单片机原理及应用 M 北京 电子工业出版社 2005 8 2 邱关源 罗先觉 电路 M 北京 高等教育出版社 2006 5 3 康光华 电子技术基础 数字部分 M 北京 高等教育出版社 2006 1 4 康光华 电子技术基础 模拟部分 M 北京 高等教育出版社 2006 1 5 祁伟 杨亭 单片机 C51 程序设计教程与实验 M 北京 北京航空航天大学出版社 2006 6 楼然苗 李光飞 单片机课程设计指导 M 北京 北京航空航天大学出版社 2007 4 7 单片机学习网 附录 附录 1 详细程序 include reg52 h include define PA XBYTE 0 xD1FF PA 口地址 define PB XBYTE 0 xD2FF PB 口地址 define PC XBYTE 0 xD5FF PC 口地址 define CON XBYTE 0 xD7FF 控制字地址 define uchar unsigned char Code Char dis 7 14 0 xA0 0 xBB 0 x62 0 x2A 0 x39 0 x2C 0 x24 0 xBA 0 x20 0 x28 0 xff 0 x7f 0 x3 0 0 x70 共阳 LED 段码表 0 1 2 3 4 5 6 7 8 9 不亮 A P code char scan con 8 0 xDF 0 xEF 0 xF7 0 xFB 0 xFD 0 xFE 0 xBF 0 x7f 列扫 描控制字 data char disdata 8 0 x08 0 x05 0 x09 0 x02 0 x0b 0 x00 0 x01 0 x0d 计时单元数据 初值 共 6 个 data char dis 8 0 x00 0 x00 0 x00 0 x00 0 x00 0 x00 0 x0a 0 x00 显示单元数据 共 6 个数据 data char con1s 0 x00 con04s 0 x00 con 0 x00 con05s 0 x00 d 0 x00 1 秒定时用 sbit key0 P3 2 移位键 sbit key1 P3 3 加一 sbit BEEP P2 0 蜂鸣器接口 1 毫秒延时程序 delay1ms int t int i j for i 0 i t i for j 0 j 120 j 扫描程序 scan char k for k 0 k 6 con 0 TR1 0 ET1 0 TR0 1 ET0 1 if con 0 if key1 0 delay1ms 10 while key1 0 d con 2 disdata d if disdata d 14 disdata d 0 dis con disdata d dis 6 0 x0a EA 1 打铃程序 Play1 uchar i t for i 0 i 100 i BEEP BEEP delay1ms t BEEP 1 Play2 BEEP 1 bell if disdata 0 0 x00 disdata 0 0 x01 disdata 0 0 x02 disdata 0 0 x03 disdat a 0 0 x04 if disdata 0 0 x05 disdata 0 0 x06 if disdata 0 0 x07 disdata 0 0 x08 disdata 0 0 x09 初始化程序 clearmen int i for i 0 i 10 disdata 0 0 disdata 1 if disdata 1 6 disdata 1 0 disdata 2 if disdata 2 10 disdata 2 0 disdata 3 if disdata 3 6 disdata 3 0 disdata 5 if disdata 5 10 disdata 5 0 disdata 6 if disdata 6 1 if disdata 5 2 disdata 5 0 disdata 6 0 disdata 7 if disdata 7 14 disdata 7 12 dis 0 disdata 2 dis 1 disdata 3 dis 3 disdata 5 dis 4 disdata 6 dis 2 disdata 4 dis 5 disdata 7 ET0 1 0 4 秒闪烁中断程序 void time intt1 void interrupt 3 EA 0 TR1 0 TH1 0 x3C TL1 0 xB0 TR1 1 con04s if con04s 8 con04s 0 x00 dis 7 dis con dis con dis 6 dis 6 dis 7 EA 1 附录 2 整体电路图
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!