数字时钟 单片机课程设计报告_第1页
数字时钟 单片机课程设计报告_第2页
数字时钟 单片机课程设计报告_第3页
数字时钟 单片机课程设计报告_第4页
数字时钟 单片机课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

第 1 页 共 16 页 单片机课程设计报告单片机课程设计报告 系系 部 部 机电工程系机电工程系 班级组别 班级组别 二班四组二班四组 组组 长 长 邹建华邹建华 成成 员 员 邹建华邹建华 杨云冲杨云冲 王国庆王国庆 设计题目 设计题目 数数 字字 时时 钟钟 指导教师 指导教师 龙龙 芬芬 设计日期 设计日期 二零一二年十二月十日至十六日二零一二年十二月十日至十六日 机电一体化 单片机课程设计 一设计要求一设计要求 1 课程设计内容 综合运用 51 单片机知识设计一个具备校准功能的时钟 其中 用到定时器 中断 按键 数码管 液晶 时钟芯片 设计题目 1 数字钟的设计与制作 设计并制作出具有如下功能的数字钟 1 自动计时 由 4 位 LED 显示器显示时 分 第二个数码管 的小数点每隔 1s 闪烁一次 表示秒 2 具备校准功能 可以设置当前时间 二 系统方案选择二 系统方案选择 STC89C52 1 1 简简介介 STC89C52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统 STC89c5 2 时钟电路 复位电路 数码管显示 电源 键盘 机电一体化 单片机课程设计 可编程 Flash 存储器 在单芯片上 拥有灵巧的8 位 CPU 和在系统可编 程 Flash 使得 STC89C52 为众多嵌入式控制应用系统提供高灵活 超有效 的解决方案 具有以下标准功能 8k 字节 Flash 512 字节 RAM 32 位 I O 口线 看门狗定时器 内置 4KB EEPROM MAX810 复位电路 2 个 16 位 定时器 计数器 一个 6 向量 2 级中断结构 全双工串行口 另外 STC89X52 可降至 0Hz 静态逻辑操作 支持 2 种软件可选择节电模式 空 闲模式下 CPU 停止工作 允许 RAM 定时器 计数器 串口 中断继续工 作 掉电保护方式下 RAM 内容被保存 振荡器被冻结 单片机一切工作 停止 直到下一个中断或硬件复位为止 最高运作频率35MHz 6T 12T 可 选 2 2 特特性性 STC89C52RC 单片机 8K 字节程序存储空间 512 字节数据存储空间 存储空间 内带 2K 字节 EEPROM 可直接使用串口下载 AT89S52 单片机 8K 字节程序存储空间 256 字节数据存储空间 没有内带 EEPROM 存储空间 3 3 编编辑辑本本段段参参数数 1 增强型 8051 单片机 6 时钟 机器周期和 12 时钟 机器周期可以 任意 选择 指令代码完全兼容传统 8051 1 2 工作电压 5 5V 3 3V 5V 单片机 3 8V 2 0V 3V 单片机 3 工作频率范围 0 40MHz 相当于普通 8051 的 0 80MHz 实际工 作 频率可达 48MHz 4 用户应用程序空间为 8K 字节 5 片上集成 512 字节 RAM 6 通用 I O 口 32 个 复位后为 P0 P1 P2 P3 是准双向口 弱 上拉 P0 口是漏极开路输出 作为总线扩展用时 不用加上拉电阻 作为 I O 口用时 需加上拉电阻 7 ISP 在系统可编程 IAP 在应用可编程 无需专用 编程器 无 需专用仿真器 可通过串口 RxD P3 0 TxD P3 1 直接下载用户程 序 数秒即可完成一片 8 具有 EEPROM 功能 机电一体化 单片机课程设计 9 具有看门狗功能 10 共 3 个 16 位定时器 计数器 即 定时器 T0 T1 T2 11 外部中断 4 路 下降沿中断或低电平触发电路 Power Down 模 式可 由外部中断低电平触发 中断方式唤醒 12 通用异步串行口 UART 还可用定时器 软件实现多个 UART 13 工作温度范围 40 85 工业级 0 75 商业级 14 PDIP 封装 4 时钟电路时钟电路 STC89C52 内部有一个用于构成振荡器的高增益反相放大器 引脚 RXD 和 TXD 分别是此放大器的输入端和输出端 时钟可以由内部方式产生或外部方 式产生 内部方式的时钟电路如图 4 2 a 所示 在 RXD 和 TXD 引脚上外接 定时元件 内部振荡器就产生自激振荡 定时元件通常采用石英晶体和电容组 成的并联谐振回路 晶体振荡频率可以在 1 2 12MHz 之间选择 电容值在 5 30pF 之间选择 电容值的大小可对频率起微调的作用 外部方式的时钟电路如图 4 2 b 所示 RXD 接地 TXD 接外部振荡 器 对外部振荡信号无特殊要求 只要求保证脉冲宽度 一般采用频率低于 12MHz 的方波信号 片内时钟发生器把振荡频率两分频 产生一个两相时钟 P1 和 P2 供单片机使用 示 RXD 接地 TXD 接外部振荡器 对外部振荡信号无特殊要求 只要 求保证脉冲宽度 一般采用频率低于 12MHz 的方波信号 片内时钟发生器把 振荡频率两分频 产生一个两相时钟 P1 和 P2 供单片机使用 RXD 接地 TXD 接外部振荡器 对外部振荡信号无特殊要求 只要求保 证脉冲宽度 一般采用频率低于 12MHz 的方波信号 片内时钟发生器把振荡 频率两分频 产生一个两相时钟 P1 和 P2 供单片机使用 机电一体化 单片机课程设计 a 内部方式时钟电路 内部方式时钟电路 b 外部方式时钟电路 外部方式时钟电路 图图 4 2 时钟电路时钟电路 5 复位电路复位电路 1 复位操作 复位是单片机的初始化操作 其主要功能是把 PC 初始化为 0000H 使单 片机从 0000H 单元开始执行程序 除了进入系统的正常初始化之外 当由于 程序运行出错或操作错误使系统处于死锁状态时 为摆脱困境 也需按复位键 重新启动 除 PC 之外 复位操作还对其他一些寄存器有影响 它们的复位状态如表 一所示 表一一些寄存器的复位状态表一一些寄存器的复位状态 寄存器复位状态寄存器复位状态 PC0000HTCON00H ACC00HTL000H PSW00HTH000H SP07HTL100H DPTR0000HTH100H P0 P3FFHSCON00H IPXX000000BSBUF不定 IE0X000000BPCON0XXX0000B TMOD00H 2 复位信号及其产生 RST 引脚是复位信号的输入端 复位信号是高电平有效 其有效时间应持 机电一体化 单片机课程设计 续 24 个振荡周期 即二个机器周期 以上 若使用颇率为 6MHz 的晶振 则复 位信号持续时间应超过 4us 才能完成复位操作 产生复位信号的电路逻辑如图 4 3 所示 图图 4 3 复位信号的电路逻辑图复位信号的电路逻辑图 整个复位电路包括芯片内 外两部分 外部电路产生的复位信号 RST 送 至施密特触发器 再由片内复位电路在每个机器周期的 S5P2 时刻对施密特触 发器的输出进行采样 然后才得到内部复位操作所需要的信号 复位操作有上电自动复位相按键手动复位两种方式 上电自动复位是通过外部复位电路的电容充电来实现的 其电路如图 4 4 a 所示 这佯 只要电源 Vcc 的上升时间不超过 1ms 就可以实现自动 上电复位 即接通电源就成了系统的复位初始化 按键手动复位有电平方式和脉冲方式两种 其中 按键电平复位是通过使 复位端经电阻与 Vcc 电源接通而实现的 其电路如图 4 4 b 所示 而按键 脉冲复位则是利用 RC 微分电路产生的正脉冲来实现的 其电路如图 4 4 c 所示 机电一体化 单片机课程设计 a 上电复位 上电复位 b 按键电平复位 按键电平复位 c 按键脉冲复位 按键脉冲复位 图图 4 4 复位电路复位电路 上述电路图中的电阻 电容参数适用于 6MHz 晶振 能保证复位信号高电 平持续时间大于 2 个机器周期 本系统的复位电路采用图 4 4 b 上电复位方式 STC89C52 具体介绍如下 主电源引脚 2 根 VCC Pin40 电源输入 接 5V 电源 GND Pin20 接地线 外接晶振引脚 2 根 XTAL1 Pin19 片内振荡电路的输入端 XTAL2 Pin20 片内振荡电路的输出端 控制引脚 4 根 RST VPP Pin9 复位引脚 引脚上出现 2 个机器周期的高电平将使单片机 复位 ALE PROG Pin30 地址锁存允许信号 PSEN Pin29 外部存储器读选通信号 EA VPP Pin31 程序存储器的内外部选通 接低电平从外部程序存储器读 指令 如果接高电平则从内部程序存储器读指令 可编程输入 输出引脚 32 根 STC89C52 单片机有 4 组 8 位的可编程 I O 口 分别位 P0 P1 P2 P3 口 每个口有 8 位 8 根引脚 共 32 根 PO 口 Pin39 Pin32 8 位双向 I O 口线 名称为 P0 0 P0 7 P1 口 Pin1 Pin8 8 位准双向 I O 口线 名称为 P1 0 P1 7 P2 口 Pin21 Pin28 8 位准双向 I O 口线 名称为 P2 0 P2 7 P3 口 Pin10 Pin17 8 位准双向 I O 口线 名称为 P3 0 P3 7 机电一体化 单片机课程设计 STC89C52 主要功能如表二所示 表二 STC89C52 主要功能 主要功能特性 兼容 MCS51 指令系统8K 可反复擦写 Flash ROM 32 个双向 I O 口256x8bit 内部 RAM 3 个 16 位可编程定时 计数器中 断 时钟频率 0 24MHz 2 个串行中断可编程 UART 串行通道 2 个外部中断源共 6 个中断源 2 个读写中断口线3 级加密位 低功耗空闲和掉电模式软件设置睡眠和唤醒功能 6 动态驱动显示动态驱动显示 动态显示是指每隔一段时间循环点亮每个 LED 数码管 每次只有一个 LED 被点亮 根据 人眼的视觉暂留效应 当循环点亮的速度很快的时候 可以认为各个 LED 是稳定显示的 动态显示的硬件连接比较简单 这里使用了 4 个 LED 数码管 将所有 LED 的 8 段引脚并 联在一起 连接到 8 位的 I O 数据总线上 而各个 LED 的共阳极引脚或共阴极引脚分别由 另一组 I O 线控制 从图中可以看出 使用两个 8 位的 I O 端口便可以动态显示 8 位 LED 数码管 其中一个并口作为 LED 数码管的控制引脚 另一个并口作为公共的数据总线 程序中采用扫描显示的方式 即在同一时刻 只使用一个 LED 显示数据 通过为共阴极 L ED 或共阳极 LED 的公共引脚赋低电平 或高电平 从而选择某个 LED 显示 如此 循环 使每个 LED 显示该 LED 应显示的数据 并进行适当的延时 形成视觉暂留效果 这样便可以达到动态显示的目的 7 键盘功能定义键盘功能定义 键盘用来修改时间 分别与 P1 0 P1 1 P1 2 相连 按键功能 key 1 键为时钟参数修改功能键 1 按键按一次 修改时钟的分 2 按键按两次 修改时钟的时 Key 2 键为时钟增一功能键 Key 3 确认键 机电一体化 单片机课程设计 8 工作流程设计工作流程设计 1 主流程图 2 S1 按键流程图 开始 时钟单元标志位初始化 计时器中断 调用键盘子函数 调用显示子函数 开始 关定时器 修改进入加一标志位 按一下 按两下 分修改 时修改 机电一体化 单片机课程设计 三三 系统硬件设计系统硬件设计 仿真原理图仿真原理图 机电一体化 单片机课程设计 四系统软件设计四系统软件设计 参考程序 参考程序 include sbit P27 P2 7 分个位控制端 sbit P26 P2 6 分十位控制端 sbit P25 P2 5 时个位控制端 sbit P24 P2 4 时十位控制端 sbit key0 P2 0 模式设置 sbit key1 P2 1 加 1 sbit key2 P2 2 确认 unsigned char hour min sec T50ms unsigned char modstate 模式状态 bit flag unsigned char code table 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 x7f 段码 void init 初始化子程序声明 void delay500us unsigned char X 延时子程序声明 void display 显示子程序声明 void display001 显示子程序声明 void display002 显示子程序声明 void keyscan 按键识别子程序声明 void main init while 1 keyscan void init 初始化子程序 TMOD 0 x01 TH0 65536 50000 256 TL0 65536 50000 256 ET0 1 EA 1 TR0 1 机电一体化 单片机课程设计 void delay500us unsigned char X unsigned char i j for i X i 0 i for j 248 j 0 j void timer0 interrupt 1 TMOD 0 x01 TH0 65536 50000 256 TL0 65536 50000 256 T50ms if T50ms 20 T50ms 0 flag flag sec if sec 60 sec 0 min if min 60 min 0 hour if hour 24 hour 0 void display P27 1 P26 1 P25 1 P24 1 P0 table hour 10 P27 0 机电一体化 单片机课程设计 delay500us 5 P27 1 P26 1 P25 1 P24 1 P0 table hour 10 P26 0 delay500us 5 if flag 1 P27 1 P26 1 P25 1 P24 1 P0 table 10 P26 0 delay500us 5 P27 1 P26 1 P25 1 P24 1 P0 table min 10 P25 0 delay500us 5 P27 1 P26 1 P25 1 P24 1 P0 table min 10 P24 0 delay500us 5 void display001 P27 1 P26 1 P25 1 P24 1 机电一体化 单片机课程设计 P0 table hour 10 P27 0 delay500us 10 P27 1 P26 1 P25 1 P24 1 P0 table hour 10 P26 0 delay500us 10 void display002 P27 1 P26 1 P25 1 P24 1 P0 table min 10 P25 0 delay500us 10 P27 1 P26 1 P25 1 P24 1 P0 table min 10 P24 0 delay500us 10 void keyscan 按键识别钟程序 while modstate 0 display if key0 0 display if key0 0 modstate while key0 0 display001 等待按键释放 机电一体化 单片机课程设计 while modstate 1 display001 if key0 0 display001 if key0 0 modstate 这两句加在一起为延时 10ms 软件防抖设计 while key0 0 display002 等待按键释放 if

温馨提示

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

评论

0/150

提交评论