定时闹钟.doc_第1页
定时闹钟.doc_第2页
定时闹钟.doc_第3页
定时闹钟.doc_第4页
定时闹钟.doc_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

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

文档简介

河海大学河海大学河海大学 单片机课程设计报告单片机课程设计报告 定时闹钟定时闹钟 姓 名 张自强 陈七 学 号 0828010091 0828010030 专业班级 08 建工 1 班 指导老师 张宏伟 所在学院 建筑学院 2010 年 6 月 29 日 河南理工大学本科课程设计报告 1 摘要摘要 本设计是一个定时闹钟 以单片机为基础 实现显示时时 分分 能够设 定定时时间 修改定时时间 并且到定时时间可以发出警报 此设计也可以用 数字电路来实现 若用数字电路完成 所设计的电路相当复杂 大概需要十几片 数字集成块 其功能也主要依赖于数字电路的各功能模块的组合来实现 焊接的 过程比较复杂 成本也非常高 而单片机具有集成度高 功能强 通用性好 特 别是它能耗低 价格便宜 可靠性高 抗干扰能力强和使用方便等独特的优点 所以单片机现在广泛的应用到家用电器 机电产品 儿童玩具 机器人 办公 自动化产品等领域 单片计算机即单片微型计算机 是集 CPU RAM ROM 定 时 计数和多种接口于一体的微控制器 他体积小 成本低 功能强 广泛应 用于智能产品和工业自动化上 目前 单片机已成为测量控制应用系统中的优 选机种和新电子产品的关键部件 特别是 20 世纪 70 年代问世以来 以其极高 的性能价格比 受到人们的重视和关注 应用很广 发展很快 推广率高 市 场利润率高 而 51 单片机是各单片机中最为典型和最有代表性的一种 若用单片机来设计制作完成 由于其功能的实现主要通过软件编程来完成 那么就降低了硬件电路的复杂性 而且其成本也有所降低 基于单片机的数字定时闹钟在设计时需要解决三个方面的主要问题 一是 LED 显示模块的驱动和编程 二是有关单片机中定时器的使用 三是如何利用 单片机的外中断实现时钟功能和运行模式的转化 在基于单片机系统的数字定 时闹钟电路中 除了基本的单片机系统和外围电路外 还需要外部的控制和显 示装置 在本设计中 输入装置是按键开关 用于控制数字定时闹钟的运行模 式 显示装置是 LED 七段数码管 在本次设计与制作中采用单片机 AT89C51 它是低功耗 高性能的 CMOS 型 8 位单片机 片内带有 4KB 的 Flash 存储器 且允许在系统内改写或用编程器编 程 另外 AT89C51 的指令系统和引脚与 8051 完全兼容 片内有 128B 的 RAM 32 条 I O 口线 2 个 16 位定时计数器 5 个中断源 一个全双工串行口 等 显示部分采用六位一体的共阳极数码管 运用同相三态双向总线收发器 74LS245 作为输出驱动显示部件的元件 整个定时闹钟系统能完成时间的显示 调时和定时闹钟 复位等功能 并 经过系统仿真后得到了正确的结果 河南理工大学本科课程设计报告 2 目录目录 1 1 概述概述 3 1 1 设计目的和意义 3 1 2 设计的主要功能 3 2 2 系统总体方案与硬件选择设计系统总体方案与硬件选择设计 4 2 1 系统总体设计框图 4 2 2 主电路 4 2 3 硬件设计 6 3 3 软件设计软件设计 9 3 1 软件设计说明 10 3 2 程序流程图 10 3 3 汇编程序 11 4 4 PROTEUSPROTEUS 软件仿真软件仿真 19 5 5 课程设计体会课程设计体会 20 参考文献参考文献 20 河南理工大学本科课程设计报告 3 1 1 概述概述 1 1 设计目的和意义 闹钟与我们的日常生活密不可分 通过闹钟的设计可以使我们进一步熟悉和 掌握单片机的内部结构和工作原理 掌握单片机仿真软件 Proteus 的使用方法 1 2 设计任务 1 能够显示 时时 分分 2 设定定时时间 修改定时时间 3 定时时间到能发出报警声或者启动继电器 从而控制电器的启停 在此设计中该定时闹钟的报警启动继电器的动作用 LED 灯的变化来显示 1 2 设计的主要功能 可以设置现在的时间及显示闹铃设置时间 若时间到则发出一分钟闹铃响 本课程设计主要用到 AT89C51 单片机定时器时间计时处理 按键扫描及七段显 示器扫描的设计方法等等 本文是利用 AT89C51 单片机结合七段显示器设计一 个简易的定时闹铃时钟 可以放在计算机教室或是实验室中使用 由于用七段 显示器显示数据 在夜晚或黑暗的场合中也可以使用 河南理工大学本科课程设计报告 4 2 2 系统总体方案与硬件选择设计系统总体方案与硬件选择设计 2 1 系统总体设计框图 该数字定时闹钟是由 AT89C51 单片机控制的 采用 24 小时制计时 基于单 片机的数字定时闹钟在设计时需要解决三个方面的主要问题 一是 LED 显示模 块的驱动和编程 二是有关单片机中定时器的使用 三是如何利用单片机的外 中断实现时钟功能和运行模式的转化 数字定时闹钟系统框图如图一所示 包 括主电路和显示电路两大部分 2 2 主电路 单片机选择 AT89C51 时钟系统通过将 XTAL1 与 XTAL2 分别接 1u 的电容 并将一晶振与两电容分别并联最后引出接地 复位电路通过引脚 RST 接出 此 系统采用上电加按钮电平复位方式 RST 复位输入 当振荡器复位器件时 要 保持 RST 脚两个机器周期的高电平时间 ALE PROG 当访问外部存储器时 地 址锁存允许的输出电平用于锁存地址的地位字节 在 FLASH 编程期间 此引脚 用于输入编程脉冲 在平时 ALE 端以不变的频率周期输出正脉冲信号 此频 率为振荡器频率的 1 6 因此它可用作对外部输出的脉冲或用于定时目的 然 而要注意的是 每当用作外部数据存储器时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令 是 ALE 才起作用 另外 该引脚被略微拉高 如果微处理器在外部执行状态 ALE 禁止 置位无效将 EA 接高电平作为掉电保护 P0 P1 P2 P3 分别与外围 器件相连 VCC 供电电压 GND 接地 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 晶振 及复位 按钮 单片机 AT89S52 8 个 限流 电阻 蜂鸣器 4 位共阴 数码管显 示 选位 图 1 系统设计方框图 河南理工大学本科课程设计报告 5 当 P1 口的管脚第一次写 1 时 被定义为高阻输入 P0 能够用于外部程序数据 存储器 它可以被定义为数据 地址的第八位 在 FIASH 编程时 P0 口作为原 码输入口 当 FIASH 进行校验时 P0 输出原码 此时 P0 外部必须被拉高 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能 接收输出 4TTL 门电流 P1 口管脚写入 1 后 被内部上拉为高 可用作输入 P1 口被外部下拉为低电平时 将输出电流 这是由于内部上拉的缘故 在 FLASH 编程和校验时 P1 口作为第八位地址接收 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电阻拉高 且 作为输入 并因此作为输入时 P2 口的管脚被外部拉低 将输出电流 这是由 于内部上拉的缘故 P2 口当用于外部程序存储器或 16 位地址外部数据存储器 进行存取时 P2 口输出地址的高八位 在给出地址 1 时 它利用内部上拉 优势 当对外部八位地址数据存储器进行读写时 P2 口输出其特殊功能寄存器 的内容 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号 P3 口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入 由于外部下拉为低电平 P3 口将输出电流 ILL 这是由于上拉的 缘故 河南理工大学本科课程设计报告 6 图二 2 3 硬件设计 1 系统时钟电路 图三 AT89C51 XTAL2 XTAL1 JZ 12M C1 30PF C2 30PF 河南理工大学本科课程设计报告 7 MCS 52 内部有一个用于构成振荡器的高增益反相放大器 此放大器的输入 和输出端分别是引脚 XTAL1 和 XTAL2 在 XTAL1 和 XTAL2 上外接时钟源即可构 成时钟电路 单片机的生产工艺不同 时钟的产生方式也不同 有内部和外部 两种时钟产生方式 根据该设计的需要 采取了内部方式 1 HMOS 型 MCS 52 外部时钟源的接法 内部时钟产生方式 XTAL1 和 XTAL2 两端跨接晶体或陶瓷振谐器 与内部反相器构成稳定的自激 振荡器 其发出的时钟脉冲直接送入片内定时控制部件 C1 C2 对 频率有微调作用 2 CHMOS 型的外部时钟源的接法与 HMOS 型的单片机内部时钟电路不同 2 1 内部时钟信号取自反相放大器的输入端 2 2 振荡器的工作可编程控制 即当相应的部件进入掉电保护 系统进 入低功耗运行 因内部时钟发生器的信号取自放大器的输入端 故采用外部 时钟源时 接线方法与 HMOS 型的单片机有所不同 2 控制键模块 R1 10k R2 10k D1 LED YELLOW K1 K2 图四 K1 键为时间设置和正常走时的设置键 第一次长按该键即可进行分钟的设 河南理工大学本科课程设计报告 8 置状态 调整的部分为闪烁状态 之后短按该键每按下一次即可在要设置的分 钟上加 1 设置完成以后再次长按该键即可进入小时的设置 分钟的显示位置 不再闪烁 而小时的显示位置为闪烁状态 之后短按该键每按下一次即可在要 设置的小时上加 1 设置完成之后再次长按该键 显示部分无闪烁状态 即可 显示设置时间后的正常走时 K2 键为闹钟设置键和正常走时的调整键 调整的过程与时间的设置过程类 似 第一次长按该键即可进行分钟的调整状态 调整的部分为闪烁状态 之后 短按该键每按下一次即可在要设置的分钟上加 1 设置完成以后再次长按该键 即可进入小时的设置 分钟的显示位置不再闪烁 而小时的显示位置为闪烁状 态 之后短按该键每按下一次即可在要调整的小时上加 1 调整完成以后长按 该键 显示部分无闪烁状态 即可显示正常走时 须注意 该定时闹钟在定时之后才可以正常走时 3 闹铃模块 D1 LED GREEN 图五 警示灯 定时时间输出低电平 LED 灯两端存在电位差即灯亮 4 同相三态双向总线收发器 74LS245 河南理工大学本科课程设计报告 9 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 U1 AT89C51 C2 10u X1 CRYSTAL C1 10u R1 10k R2 10k R3 10k A0 2 B0 18 A1 3 B1 17 A2 4 B2 16 A3 5 B3 15 A4 6 B4 14 A5 7 B5 13 A6 8 B6 12 A7 9 B7 11 CE 19 AB BA 1 U2 74LS245 D1 LED GREEN 图六 用来驱动 LED 或其他的设备 可双向传输数据 还具有三态功能 既可以输出 也 可以输入数据 当 8052 单片机的 P0 口总线负载达到或超过 P0 口负载能力时 必须接入 74LS245 等总线驱动器 3 3 软件设计软件设计 3 1 软件设计说明 河南理工大学本科课程设计报告 10 数字定时闹钟的秒信号是利用单片机定时器 T0 产生的 由于开发机的晶振 频率为 12MHz 使得 T0 的最大定时时间远远小于 1 秒 因此 在设计时采用了 硬件计数与软件计数相结合的方式 即通过 T0 产生一定的定时时间 然后再利 用软件进行计数 从而产生 1 秒钟的时间信号 在设计中 定时器 T0 采用了中 断方式 当定时时间到时 单片机产生中断 在 T0 的中断服务程序中实现时 分 秒的累加 并且 该中断的优先级别高于其它中断 因此 保证了定时闹 钟走时准确 在设计中 利用外部中断 0 和外部中断 1 分别作为校时和闹钟校时按键的 触发输入 3 2 程序流程图 显示时间 S4按下 S3按下 S1按下 显示闹钟 时间调整 闹钟调整 响铃 主程序 响铃判断 Y Y Y N Y N N N 初始化 开始 河南理工大学本科课程设计报告 11 3 3 汇编程序 主 程 序 include define uint unsigned int define uchar unsigned char uchar code tab 10 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f sbit L1 P2 3 sbit L2 P2 2 sbit L3 P2 1 sbit L4 P2 0 sbit LED P2 7 二极管 秒闪烁 sbit key1 P1 4 时钟设置 sbit key2 P1 1 闹钟设置 sbit key3 P1 2 1 sbit key4 P1 3 1 sbit beep P2 4 uchar m n s0 f0 shi fen miao aa b c b 设置时钟 闹钟变量 1 时钟 2 闹钟 c 蜂 鸣器鸣叫次数 void key void display void init void delay uint void main 河南理工大学本科课程设计报告 12 init while 1 display key void display if b 1 P0 tab fen 10 L3 0 delay 2 L3 1 P0 0 x00 P0 tab fen 10 L4 0 delay 2 L4 1 P0 0 x00 P0 tab shi 10 L1 0 delay 2 L1 1 P0 0 x00 P0 tab shi 10 L2 0 delay 2 L2 1 P0 0 x00 if b 2 设置闹钟显示函数 s0 闹钟小时 f0 闹钟分钟 河南理工大学本科课程设计报告 13 P0 0 x00 P0 tab s0 10 L1 0 delay 2 L1 1 P0 0 x00 P0 tab s0 10 L2 0 delay 2 L2 1 P0 0 x00 P0 tab f0 10 L3 0 delay 2 L3 1 P0 0 x00 P0 tab f0 10 L4 0 delay 2 L4 1 void init miao 0 fen 5 shi 0 TMOD 0 x01 TH0 65536 50000 256 TL0 65536 50000 256 EA 1 ET0 1 TR0 1 b 1 河南理工大学本科课程设计报告 14 void key if key1 0 delay 20 if key1 0 if n 0 m TR0 0 if m 3 m 0 TR0 1 while key1 0 if key2 0 delay 20 if key2 0 if m 0 n b 2 if n 3 n 0 b 1 while key2 0 河南理工大学本科课程设计报告 15 if key3 0 delay 20 if key3 0 if m 1 shi if shi 24 shi 0 if m 2 fen if fen 60 fen 0 if n 1 s0 if s0 24 s0 0 if n 2 f0 if f0 60 f0 0 while key3 0 if key4 0 delay 20 if key4 0 河南理工大学本科课程设计报告 16 if m 1 shi if shi 255 shi 23 if m 2 fen if fen 255 fen 59 if n 1 s0 if s0 255 s0 23 if n 2 f0 if f0 255 f0 59 while key4 0 void timer0 interrupt 1 TH0 65536 50000 256 TL0 65536 50000 256 aa beep 1 if aa 10 河南理工大学本科课程设计报告 17 LED 0 if aa 20 aa 0 LED 1 miao if miao 60 miao 0 fen if fen 60 fen 0 shi if shi 24 shi 0 if shi s0 if fen f0 if aa 5 beep 0 if aa 10 beep 1 if aa 15 beep 0 if aa 0 beep 1 河南理工大学本科课程设计报告 18 void delay uint a uchar x y uint z for z a z 0 z for x 2 x 0 x for y 226 y 0 y 程序开始先调用调整与正常走时显示程序 判断 K1 键是否按下 若按下择 调用时钟调整程序 若无按下则判断 K2 是否按下 若按下则调用闹钟设置程序 若无键按下则返回主程序继续循环 判断定时时间是否到 若没有则返回主程序 若有则调用闹钟服务子程序 由于定时设置时的初值和正常走时的初值全部为 00H 所以在刚开始运行 时灯直接亮 之后可以通过长按 k2 键设置定时闹钟的时间进而实现该闹钟的正 常走时 设置通过判断按键按下时间的长短来判断是设置小时还是设置分钟 通过 调用闪烁程序可以判断当前状态是设置小时或是设置分钟 河南理工大学本科课程设计报告 19 4 4 ProteusProteus 软件仿真软件仿真 通过 S1 S2 S3 和 S4 四个按键 对时间进行修改和闹钟的设置 定时时 间到能发出报警声 使用 KEIL 软件编辑程序 生成 HEX 文件 然后用 protel 进行仿真 按下 S1 键显示闹钟 松开后显示时间 按下 S4 键进入时间修改模式 再 按 S4 键时间的时加 1 按 S2 分加 1 调整结束后按下 S1 恢复正常显示 按下 S3 键进入闹钟修改模式 再按 S3 键闹钟的时加 1 按 S2 分加 1 调整结束后 按下 S1 恢复正常显示 系统正常运行时的仿真图 5 5 课程设计体会课程设计体会 课程设计是培养学生综合运用所学知识 发现 提出 分析和解决实际问 题 锻炼实践能力的重要环节 是对学生实际工作能力的具体训练和考察过程 随着科学技术发展的日新日异 单片机已经成为当今计算机应用中空前活跃的 领域 在生活中可以说得是无处不在 作为二十一世纪的大学生来说掌握单片 机的开发技术是十分重要的 在经过一个星期的课程设计 以及搜集资料和上机操作的过程中 我发现 单片机是一门应用性很强的学科 课程设计是培养我们综合运用所学知识 发现 提出 分析和解决实际问题 锻炼实践能力的重要环节 是对我们实际工作能力 的具体训练和考察过程 尽管在上学期时也是把单片机课本认真的学习了一遍 但是在刚看到设计任务书时发现不知道该从

温馨提示

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

评论

0/150

提交评论