数字钟设计方案ppt课件.ppt_第1页
数字钟设计方案ppt课件.ppt_第2页
数字钟设计方案ppt课件.ppt_第3页
数字钟设计方案ppt课件.ppt_第4页
数字钟设计方案ppt课件.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

任务一数字钟 功能要求整体方案调研整体方案论证硬件电路设计程序设计 功能要求 功能要求 1 正常显示系统时间 2 可调整系统时间 3 计时误差 1天误差 10s 4 由用电设备提供 6V电源 5 低价位 二 整体方案调研 不论是设计练习或是一个实际的工程项目 在明确其性能要求的基础上 首先要做的应该是调研相关情况 了解与该项目相关的成果 以便吸收前人的成功经验 开阔自己的思路 在网络高度发达的今天 利用网络查询无疑是最便捷 最全面的方法 三 整体方案论证 根据设计题目的功能要求 采用自顶向下的拼凑法可以构成如图1所示的方框图 自顶向下法 ToptoDown 首先从系统级设计开始 根据系统级所描述的该系统应具备的各项功能 将系统划分为单一功能的子系统 再根据子系统任务划分各部件 完成部件设计后 最后才是元件级设计 优点 避开具体细节 有利于抓住主要矛盾 适用于大型的 复杂的系统设计 整体方案论证 方案一 直接利用专用时钟芯片计时 整体方案论证 该方案的优点是各器件的功能清晰 缺点是所用芯片数多 PCB面积大 接线多 焊点多 因此可靠性略差 而且成本也较高 不符合低价位的要求 低价位是所有电子系统设计在保证性能的前提下都必须认真考虑的因素 有时它直接关于产品能否推广应用 整体方案论证 方案二 图9 1 2电路中的虚线内部分完全可以由CPLD或FPGA来实现 这也是参考文献中采用的一个方法 这个方案的优点是电路大为简化 系统可靠性高 最大的问题是CPLD或FPGA的成本高 做为这种低端产品 其价格难以接受 整体方案论证 方案三 以MCU为核心来构架整个电路 时钟产生 秒信号 分信号形成均可利用MCU片内资源解决 分减法计时利用程序完成 LED的译码也可以由软件完成 至于按键的设置 则可以更加灵活 并将键数减至最少 这一方案的最大优点是充分发挥了MCU软件的功能 并使电路简化到可以和CPLD或FPGA相媲美 整体方案论证 电子系统设计的一个重要原则是 安软勿硬 即能用软件解决的同一问题 则不用硬件 这主要是因为软件的寿命不受限制 而且软件的编制如果完美无暇的话 其可靠性也是硬件无法比拟的 何况又能降低硬件开消 这一方案符合这一原则 MCU的品种繁多 适合这种低端应用的芯片也不少 其价位已低到MSI的水平 所以应该是最低价位的方案 很明显 方案三是合适的 四 硬件电路设计 1 MCU的选择2 资源分配3 程序流程图4 容错设计5 软件的简单抗干扰措施6 计时精度7 程序清单 硬件电路设计 9 1 4硬件电路设计1 MCU的选择为降低价位和节省使用MCU的端口数 LED宜采用共阴极动态驱动方式 它共需八根段位口线 两根阴极驱动口线 即LED需要十根MCUI O口线 按键可以减少到只要两个 功能切换和预置时间加一键 功能键完成二个任务 移动预置时间的个位和分位 启动计时 它需要二根I O口线 而且最好接在外接中断输入端 以便按键可以用中断或查询两种办法处理 驱动执行器件通断负载需要一根口根 即共需MCU13根口线 硬件电路设计 系统所需的时钟信号可以由MCU的定时器 计数器完成 一般低端MCU均有二个定时器 计数器 可以满足要求 整个课题对指令执行的速度没有什么要求 不要求执行速度快的MCU 一般低端MCU至少可以工作在12MHz的时钟下 速度不成问题 硬件电路设计 LED数码管采用应用最广的0 5英寸 高亮度红色的共阴极器件 动态驱动时每个笔段平均IF 0 5mA已可明亮显示 若VF 1 5V 每笔段的限流电阻为2k 则LED点亮时每笔段IF 1 75mA 动态扫描时每个笔段的平均电流约为0 875mA 满足亮度要求 考虑到MCU口线的IOH较小 限流电阻应接为上拉形式 八段笔划直接由P1口驱动 被点亮LED数码管的最大电流为8 1 75 14mA 利用P3 0 P3 1的IOL是可以承受的 硬件电路设计 按键共设两个 功能切换键 S 和加键 分别接至INT0 P3 2 和INT1 P3 3 设计的功能为 上电后 定时器处于等待时间设置状态 隐含时间10分 按下 S 键 分个位LED闪烁 按 键 可设置分个位值 设好后 再按 S 键 分个位LED停止闪烁 分十位LED开始闪烁 再按一次 S 键 分十位LED停止闪烁 定时器启动 设置的时间值存储 并开始倒计数 两只10k 的上拉电阻 保证键按下低电平有效 相应的硬件电路如图9 1 3所示 硬件电路设计 数字定时器硬件电路 硬件电路设计 考虑到上电过程中不允许用电设备瞬间动作 强电执行部件应为低电平驱动 它由P3 4完成 强电执行部件选用价格低的小型电磁继电器 而不用性能虽好 但价格较高的SSR 根据负载以及 12V供电的情况可选用JQX 14F12V的电磁继电器 特性见表2 6 1 其电气寿命达105次 应能满足用电设备的要求 相应的驱动电路如图9 1 3所示 AT89C2051采用简单的RC复位电路 硬件电路设计 MCU时钟频率直接影响指令执行速度与芯片的功耗 本课题对执行速度并不要求快 而且希频率低一点可降低功耗 故选为6MHz 由于机器周期为时钟频率的1 12 即2 s 为整数值 定时器中断时间亦为2 s的整数倍 对计时精度有利 何况6MHz的石英晶振为长线器件 价格较低 硬件电路设计 12V供电由7805降至 5V供系统使用 按LED所有笔段全亮 所需电流约12 5mA JQX 14F通电时线圈耗电约45mA AT89C20515V供电时工作电流约12 5mA 电路总电流约70mA 7805压降为7V 管耗为0 49W 其热阻 W 即使不加散热片 其相对环境温度的温升约22 即使在 50 环境温度下 结温才72 五 程序设计 1 确定整体的程序结构硬件电路采用的动态扫描方式 编程序时要不停地扫描它 由于只有两位LED数码管 若扫描频率选为50Hz 则每个数码管点亮的时间为10ms 程序设计 1 最常用的程序结构图9 1 4为设计人员最喜欢采用的主程序流程图 主程序执行它初值化以后 即进入循环的显示扫描程序 其它所有的功能模块 如设置命令 设置时间的输入 计时等统统以中断的方式切入 如果初值化以后只是一个简单的循环等待 这种方式从可靠性和程序编写上都是很可取的 程序设计 但是本设计中的两个按键 由于本身固有的抖动特性 如欧姆龙公司B3F 4055按键开关的抖动时间 10ms 一般均采用软件去抖 即查觉按键动作后 先软件延时20ms 躲过抖动时间再接着处理按键相应的功能 在软件延迟的时间里 显示扫描被打断 会导致显示闪动的不良现象 程序设计 2 RTOS多任务实时操作系统 RTOS 如 C OS 可以很好的解决这一并行请求的矛盾 然而这似乎 杀鸡用牛刀 况且89C2051的程序存储器容量也有限 程序设计 3 以系统时钟为核心的程序结构我们统计一下本设计要使用的几个时间量 10ms 每个数码管显示时间 20ms 按键去抖时间 0 5s 分个位LED小数点亮 灭时间 1s 计时的单位时间 程序设计 选择其最短的时间10ms做系统时钟基准 即利用MCU的定时器每10ms中断一次 然后确定每个时钟需完成的任务 轮流点亮LED一次 判有无键按下 若有键按下激活一个标志 并记录键按下的时间 检查键标志 并检查是否已到去抖时间 20ms 二个系统时钟时间 若已到则判定哪个键按下并做相应处理 因为每个时钟均访问LED一次 动态驱动得以保证 而进行键功能处理 有10ms的时间足矣 程序设计 至于0 5s和1s时钟事件处理可以由计另一时时钟来完成 它承担每0 5s设置位LED闪烁和1s计时信号产生的任务 分为二个计时器可以使程序编写起来更容易一些 程序设计 2 资源分配 1 硬件资源分配功能键KS 边沿触发 加键KAD 边沿触发P1 0 P1 7LED段码输出 高电平有效P3 0LED数码管分十位阴极 低电平有效 K1P3 1LED数码管分十位阴极 低电平有效 K2P3 4继电器驱动输出 低电平输出有效 JT016位计时器 系统时钟 10ms中断一次T116位计时器 计时时钟 0 1ms中断一次 程序设计 2 寄存器资源分配 3 标志位资源分配与功能以上两项请直接参阅程序清单 程序设计 3 程序流程图图9 1 5为主程序流程图 程序设计 图9 1 6为系统时钟程序流程图 其中在进行分个位或分十位值加一时 有可能分个位或分十位正处于消隐期 即此值为20 这样会导致错误的时间 故必须在加之前调时间值 加完以后再存入时间值 程序设计 图9 1 7为显示子程序流程图 显示分个位还是分十位由DSS标志值决定 由于每显示一次DSS取反 所以分个位和分十位得以轮流显示 因为在设置时间时 设置的那一位LED0 5s闪烁一次 故程序首先判定是否消隐或正常显示 这要由闪烁标志位FMF决定 程序设计 图9 1 8为计时时钟程序流程图 在设置时间时 用闪烁控制标志FMF决定是否闪烁 通过SFF来决定在显示时是消隐还是正常显示 在计时时 停止时间闪烁 用DP取反的办法 使分个位小数点每秒闪动一次 程序设计 图9 1 9 a 和 b 分别是功能键和加键的中断子程序X0和X1 这两个中断程序只执行将有键按下的标志位KEY置1的同一语句 程序短到无可再短 当然不会因中断影响显示 更不会影响其它程序的参数 程序设计 4 容错设计允许错误存在 并能防止它对系统正常工作的破坏 称为 容错 人为操作失误是造成系统工作失败的最重要的因素 世界上许多次严重的事故 如切尔诺贝利核洩漏 就是错误操作造成的 程序设计 4 容错设计一个没有考虑容错的设计 包括一个程序 不能算一个完美的设计 上述数字定时器程序就至少没有考虑二种人 机交互易产生的错误 1 上电后 显示10分隐含时间 正常操作应当是 不设新时间 或者先按功能键 设分个位 再按功能键 设分十位 再按一次功能键正常倒计时 但是如果上电后直接按加键 则分个位将动作 这将导致功能键动作次数紊乱 2 倒计时开始后 如果按任何一键 也将出现非正常情况 程序设计 4 容错设计对于第一种情况 可以在系统时钟程序检测到 键时 先判别一下功能键次数是否为零 若是则不做加法而直接退出 见下面所列程序 对于第二种情况 可以在开始计时后关闭外部中断 而在计时结束后再重新允许外部中断 程序设计 5 软件的简单抗干扰措施 1 指令冗余现以CK0程序中的含有冗余指令的几个语句为例简单说明一下它的抗干扰原理 语句如下 具体程序见程序清单 程序设计 1 指令冗余程序正常运行时 程序计数器 PC 指针在执行JMPMPRO语句时指向095H 这条指令对应的机器码为80H 25H 前者是指令码 后者为相对跳转地址 即执行此指令后程序指针应跳转到25H加下条指令的PC值 即跳至OBCH 后面的三条空操作冗余指令对程序运行毫无影响 程序设计 1 指令冗余倘若程序计数器的值受到了外界干扰 指向25H 如虚线所示 如果不加冗余指令 则25H被当做指令码 将执行ADDA dataaddr 即执行累加器ACC加一个数据地址为紧跟其后的20H 下一条指令 由于PC指向B2H 将执行CPLbitaddr 即对18H这个位地址了反 可见程序被完全破坏 程序设计 1 指令冗余如果干扰后指针仍是指向25H 但下面有三条NOP指令 程序执行的是ADDA 00H 累加器的值会改变 但PC下一个指向的二个NOP 再下一个指向的将是正常的JBKS RCKO语言 至少减少了程序被破坏的程度 能接着恢复正常运行 冗余指令NOP通常加在2字节或3字节指令的后面 程序设计 5 软件的简单抗干扰措施 2 软件陷阱程序的长度总是小于程序存储器的容量 本课题中程序长度为170H 368Byte 而89C2051内部Flashmemory的容量为2kB 800H 有大片的内存的FFH剩余区 FFH为MCS 51内核的指令代码MOVA R7 在剩余区里可以安排若干跳转到初值化地址的指令 以便程序跳飞时能被这些陷阱所捕获 还原到初值化或其它程序 请参看程序清单 程序设计 5 软件的简单抗干扰措施 3 监视定时器监视定时器 WatchDogTimer WDT 俗称 看门狗 是一种最常用的很有效的抗干扰方法 它的工作原理可以用图9 1 10来说明 程序设计 监视定时器是一个时间计数器 复位以后 每隔一个固定的时间tWDT由Q端发生一个进位脉冲 迫使MCU复位 MCU在程序正常运行时 启动WDT 并每隔 tWDT的时间通过I O口向WDT发送复位信号 所以WDT永远没有强迫MCU复位的可能 当程序受到干扰 跑飞 以后 程序不能正常的向WDT发送 于是在跑飞tWDT时间以后 MCU复位 程序又纳入正常运行 WDT可以用外部器件自行设计 也可以使用具有WDT功能的IC 如X5045 现在已经有不少MCU内部已带有WDT 只需程序控制其运行即可 对低端产品的本设计而言还没有必要使用WDT 程序设计 6 计时精度既然课题提出了对时间精度的要求 设计时就必须予以考虑 本设计是利用MCU的定时器软件计时 计时误差首先取决于MCU的时钟 1 MCU时钟引起的计时误差MCU的fosc 6MHz 是由石英晶体振荡器产生的 其频率稳定度优于10 6 有时可达10 11 按10 6计算 每秒变化6 s 100分的变化仅0 036s 故此变化可以忽略 程序设计 6 计时精度 2 中断响

温馨提示

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

评论

0/150

提交评论