24小时电子时钟论文.doc_第1页
24小时电子时钟论文.doc_第2页
24小时电子时钟论文.doc_第3页
24小时电子时钟论文.doc_第4页
24小时电子时钟论文.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1 目目 录录 1 电子时钟 电子时钟 1 1 1 电子时钟简介 1 1 2 电子时钟的基本特点 1 1 3 电子时钟的原理 1 2 单片机识的相关知识单片机识的相关知识 1 2 1 单片机简介 1 2 2 80C51 单片机介绍 1 3 控制系统的硬件设计控制系统的硬件设计 3 3 1 单片机型号的选择 3 3 2 数码管显示工作原理 3 3 3 键盘电路设计 4 3 4 整个电路原理图 4 4 控制系统的软件设计控制系统的软件设计 5 4 1 程序设计 5 4 2 程序流程图 10 4 3 仿真结果 12 4 4 仿真结果分析 14 5 结束语结束语 14 1 1 电子时钟 1 1 电子时钟简介 1957 年 Ventura 发明了世界上第一个电子表 从而奠定了电子时钟的基础 电子时钟开始迅速发展起来 现代的电子时钟是基于单片机的一种计时工具 采用延时程序产生一定的时间中断 用于一秒的定义 通过计数方式进行满六 十秒分钟进一 满六十分小时进一 满二十四小时小时清零 从而达到计时的 功能 是人民日常生活补课缺少的工具 1 2 电子时钟的基本特点 现在高精度的计时工具大多数都使用了石英晶体振荡器 由于电子钟 石 英钟 石英表都采用了石英技术 因此走时精度高 稳定性好 使用方便 不 需要经常调试 数字式电子钟用集成电路计时时 译码代替机械式传动 用 LED 显示器代替指针显示进而显示时间 减小了计时误差 这种表具有时 分 秒显示时间的功能 还可以进行时和分的校对 片选的灵活性好 1 3 电子时钟的原理 该电子时钟由 80C51 BUTTON 六段数码管等构成 采用晶振电路作为 驱动电路 由延时程序和循环程序产生的一秒定时 达到时分秒的计时 六十 秒为一分钟 六十分钟为一小时 满二十四小时为一天 而电路中唯一的一个 控制键却拥有多种不同的功能 按下又松开 可以实现屏蔽数码管显示的功能 达到省电的目的 直接按下不松开 则可以通过按键实现分钟的累加 每按一 次分钟加一 而连续两次按下按键不放松 则可实现小时的调节 同样每按一 次小时加一 2 单片机识的相关知识 2 1 单片机简介 单片机全称为单片机微型计算机 Single Chip Microsoftcomputer 从应用 领域来看 单片机主要用来控制 所以又称为微控制器 Microcontroller Unit 或嵌入式控制器 单片机是将计算机的基本部件微型化并集成在一块芯片上的 微型计算机 2 2 80C51 单片机介绍 VCC 电源 GND 接地 2 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 当 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 这是由于上拉的缘 故 P3 口也可作为 80C51 的一些特殊功能口 如下表所示 口管脚 备选功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INT0 外部中断 0 P3 3 INT1 外部中断 1 P3 4 T0 记时器 0 外部输入 P3 5 T1 记时器 1 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收一些控制信号 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高 电平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地 址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周期输出正脉冲信号 此频率为振荡器频率的 1 6 因此 3 它可用作对外部输出的脉冲或用于定时目的 然而要注意的是 每当用作外部 数据存储器 时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地 址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起作用 另 外 该引脚被略微拉高 如果微处理器在外部执行状态 ALE 禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储 0000H FFFFH 不管是否有内部程序存储器 注意加密方式 1 时 EA 将内部锁定 为 RESET 当 EA 端保持高电平时 此间内部程序存储器 在 FLASH 编程期 间 此引脚也用于施加 12V 编程电源 VPP 3 控制系统的硬件设计 3 1 单片机型号的选择 通过对多种单片机性能的分析 最终认为 80C51 是最理想的电子时钟开发 芯片 80C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压 高性 能 CMOS8 位微处理器 器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由于将多功能 8 位 CPU 和闪 烁存储器组合在单个芯片中 ATMEL 的 80C51 是一种高效微控制器 而且它 与 MCS 51 兼容 且具有 4K 字节可编程闪烁存储器和 1000 写 擦循环 数据保 留时间为 10 年等特点 是最好的选择 3 2 数码管显示工作原理 数码管是一种把多个 LED 显示段集成在一起的显示设备 有两种类型 一 种是共阳型 一种是共阴型 共阳型就是把多个 LED 显示段的阳极接在一起 又称为公共端 共阴型就是把多个 LED 显示段的阴极接在一起 即为公共商 阳极即为二极管的正极 又称为正极 阴极即为二极管的负极 又称为负极 通常的数码管又分为 8 段 即 8 个 LED 显示段 这是为工程应用方便如设计的 分别为 A B C D E F G DP 其中 DP 是小数点位段 而多位数码管 除某一位的公共端会连接在一起 不同位的数码管的相同端也会连接在一起 即 所有的 A 段都会连在一起 其它的段也是如此 这是实际最常用的用法 数码管显示方法可分为静态显示和动态显示两种 静态显示就是数码管的 8 段 输入及其公共端电平一直有效 动态显示的原理是 各个数码管的相同段连接 在一起 共同占用 8 位段引管线 每位数码管的阳极连在一起组成公共端 利 用人眼的视觉暂留性 依次给出各个数码管公共端加有效信号 在此同时给出 4 该数码管加有效的数据信号 当全段扫描速度大于视觉暂留速度时 显示就会 清晰显示出来 图 3 1 共阴数码管 3 3 键盘电路设计 该设计只用了一个键盘 但实现的功能却是比较完善 减少了硬件资源的 损耗 该键盘可以实现小时和分钟的调节以及控制是否进入省电模式 当按键 按下又松开 可以实现屏蔽数码管显示的功能 达到省电的目的 直接按下不 松开 则可以通过按键实现分钟的累加 每按一次分钟加一 而连续两次按下 按键不放松 则可实现小时的调节 同样每按一次小时加一 达到时间调节的 目的 图 3 2 多功能控制键 3 4 整个电路原理图 5 图 3 3 系统电路原理图 4 控制系统的软件设计 4 1 程序设计 本系统的软件系统主要可分为主程序 定时计数中断程序 时间调整 程序 延时程序四大模块 在程序设计过程中 加强了部分软件抗干扰措施 下面对部分模块作介绍 定时计数中断程序 include unsigned char second 0 minute 0 hour 0 max 23 second 秒 minute 分 hour 时 max 时制 主函 Void main 6 unsigned char code table 0 xdd 0 x84 0 xe9 0 xec 0 xb4 0 x7c 0 x7d 0 xc4 0 xfd 0 xfc unsigned int i void good TMOD 0X11 T0 工作于定时模式 1 用于计时 T1 工作于定时 模式 1 用于扫描按键 IE 0X8a 开放 T0 T1 中断 IP 0X80 T1 优先级高于 T0 有按键停止计时 TH0 0X3c 设置 T0 初值 定时 5MS TL0 0Xb0 TH1 0 x3c 定时 250ms 扫描按键 TL1 0 xb0 TR1 1 启动 good while 1 扫描轮流显示 i minute 10 显示分十位 P0 5 0 P0 4 1 P0 6 1 P0 7 1 P2 table i for i 0 i 500 i i minute 10 显示分个位 P0 5 1 P0 4 0 P0 6 1 P0 7 1 P2 table i for i 0 i 500 i i hour 10 显示时个位 P0 5 1 P0 4 1 P0 6 0 P0 7 1 7 P2 table i for i 0 i 500 i i hour 10 显示时十位 P0 5 1 P0 4 1 P0 6 1 if i 0 P0 7 0 P2 table i for i 0 i 500 i 计时中断程序 void abc interrupt 1 t0 计时 中断子程序 static char a 0 TH0 0X3c 重赋初值 TL0 0Xb0 a if a 20 当 a 20 时一秒到了 a 0 P1 7 P1 7 二级管取反闪烁 second 秒增 1 if minute 0 if second 2 hour P1 4 P1 4 else P1 4 1 if second 60 second 0 minute 秒计到 60 秒清 0 分增一 if minute 60 minute 0 hour 分计到 60 分清 0 时增一 if hour max 1 hour 0 时计到最大值 清 0 按键中断处理程序 void key interrupt 3 char key 9 int i 8 static char b 0 TR1 0 停止计时 TH1 0 x3c 重赋初值 TL1 0 xb0 b 250ms 计数 if b 5 判断按键是哪一个 if P1 0 0 key 0 if P1 1 0 key 1 if P1 2 0 P3 2 0 key 2 if P1 3 0 key 3 b 0 switch key case 0 按下调时键调整时数 TR0 0 hour if hour max 1 hour 0 break case 2 按下调分键调整分数 TR0 0 minute if minute 60 minute 0 break case 1 TR0 1 break 按下重启键重新计时 case 3 Musicu 按下通讯键 功能待定 TR1 1 重启 T1 void good int i j 0 k 9 unsigned char a 0 x00 0 x00 0 x00 0 x84 0 x00 0 x19 0 x2d 0 x0d 0 x79 0 x00 0 xbc 0 x2d 0 x9d 放 置 0 9 while TR0 0j if j 13 j 0 显示 g P0 5 1 P0 4 1 P0 6 1 if a j 13 0 x00 P0 7 1 else P0 7 0 P2 a j 13 for i 0 i 500 i 显示分十位 if a j 1 13 0 x00 P0 6 1 else P0 6 0 P0 4 1 P0 5 1 P0 7 1 P2 a j 1 13 for i 0 i 500 i 显示时 O 位 P0 4 1 P0 6 1 if a j 2 13 0 x00 P0 5 1 else P0 5 0 P0 7 1 P2 a j 2 13 for i 0 i 500 i 显示分 0 位 P0 5 1 if a j 3 13 0 x00 P0 4 1 else P0 4 0 P0 6 1 P0 7 1 10 P2 a j 3 13 for i 0 i 500 i k 4 2 程序流程图 系统的流程图如图 4 1 和图 4 2 所示 11 图 4 1 主程序流程图 12 图 4 2 中断处理流程图 4 3 仿真结果 13 图 4 3 开始运行程序仿真图 14 图 4 4 运行一段时间后仿真图 4 4 仿真结果分析 功能太过单调 只能实现时分秒的显示 设计比较简单 电路图的设计过 于单调 用的器件太少 实现调节时间的按钮太少 不能很好的实现时间的调 节 在测试过程中 六位数码显示管只显示五位数字 有一位数字不亮 通过 多次的修改程序并在 PROTEUS 软件环境中进行仿真 最终解决了这个问题 同时也透露出本人在单片机电路设计和程序设计方面的不足 不过最后的仿真 效果非常好 实现了预期的效果 能过通过多功能控制键调节时间和是否进入 省电模式 是一个比较令人满意的设计 5 结束语 在李文楷老师耐心的指导下 我顺利完成了这次单片机课程设计课题中的 电子时钟设计 通过这次的设计使我认识到本人对单片机方面的知识知道的太 少了 对于书本上的很多知识还不能灵活运用 尤其是对程序设计语句的理解

温馨提示

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

评论

0/150

提交评论