已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广东机电职业技术学院 毕业综合实践报告 毕业综合实践题目:全日历 led 数字显示屏的设计 专 业:_ 集成电路设计 _ 班 级:_ _电子 1008 班_ 学生姓名:_ _ 指导教师:_ _ 上交时间: 2012 年 04 月 01 日 全日历 led 数字显示屏的设计 ii 广东机电职业技术学院毕业综合实践任务书广东机电职业技术学院毕业综合实践任务书 学 生 姓 名 李才权学号 15 班级 1008 年级二专业 集成电 路设计 通信 地址 广州市花都区新华镇团结村 邮 政 编 码 510800 e-mail 地址 418230350 电话毕业综合实践题目全日历 led 数字显示屏的设计 选题背景(打算从事何工作,毕业综合实 践选题与所学专业有何关系) 单片机程序设计 指导教师 姓名 职 称工作单位及所从事专业联系方式备 注 张永亮教师广东机电技术学院 毕业综合实践内容: 1.protues 的使用; 2.keil 的使用; 3.单片机最少系统; 4.单片机下载线使用; 5.单片机简单程序设计; 6.数码管的使用; 7.万能板排版与布线; 8.万能板焊电路。 全日历 led 数字显示屏的设计 iii 学生在该综合实践中具体完成的工作: 1.用 protues 软件进行测试,仿真; 2.完成单片机最少系统的硬件电路; 3.写出单片机控制数码管的程序; 4.画出万能板排版与布线的电路图; 5.用万能板焊好电路。 教 研 室 审 批 意 见 教研室负责人: 年 月 日 系 部 审 批 意 见 审核人签字: 年 月 日 备注 1、任务书由指导教师填写,一式二份。其中学生一份,指导教师一份。 2、审批若不能通过,需重新填报此表。不通过的原因如下:(请画标明) a、综合实践内容不足,应增加内容; b、综合实践内容不明确,应以目录形式写明内容; c、雷同;(同学之间或其它方面雷同) d、其他原因; 全日历 led 数字显示屏的设计 iv 全日历 led 数字显示屏的设计 摘要:摘要:20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了 社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使 现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对于 那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所 以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管显示的时间 简单明了而且读数快、时间准确显示到秒。而机械式的依赖于晶体震荡器,可能会导致 误差。 数字钟是采用数字电路实现对“时”、 “分”、 “秒”数字显示的计时装置。数字钟的精度、 稳定度远远超过老式机械钟。在这次设计中,我们采用 led 数码管显示时、分、秒,以 24 小时计时方式,根据数码管动态显示原理来进行显示,用 12mhz 的晶振产生振荡脉 冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的 调整。数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广 大消费的喜爱,因此得到了广泛的使用。 关键字:数字电子钟 单片机 全日历 led 数字显示屏的设计 v 目 录 1 前言 .1 1.1 数字电子钟的背景 1 1.2 数字电子钟的意义 1 1.3 数字电子钟的应用 2 2 整体设计方案 .3 2.1 单片机的选择3 2.2 单片机的基本结构5 3 数字钟的硬件设计 10 3.1 最小系统设计.10 3.2 led 显示电路 .12 3.3 键盘控制电路.15 4 数字钟的软件设计 16 4.1 系统软件设计流程图.16 4.2 数字钟的原理图.20 4.3 中断子程序.21 4.4 延时程序 .21 4.5 主程序和定时器中断子程序 .21 4.6 led 显示子程序 .22 4.7 按键控制子程序.24 5 系统仿真 27 5.1 protues 软件介绍 .27 5.2 电子钟系统 protues 仿真.27 6 调试与功能说明 28 全日历 led 数字显示屏的设计 vi 6.1 系统性能测试与功能说明.28 6.2 系统时钟误差分析.28 6.3 软件调试问题及解决.28 结 论 30 参考文献(references): 31 附 录 32 致 谢 33 全日历 led 数字显示屏的设计 1 1 前言 1.1 数字电子钟的背景 20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了 社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也 使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说 总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情, 当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可 能酿成大祸。 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 cmos 化、低功耗、 小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机 的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统 设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能 用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术, 是传统控制技术的一次革命。 单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时 的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长 的使用寿命,因此得到了广泛的使用。 1.2 数字电子钟的意义 数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车 站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的 发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字 化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如 定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时 开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表 数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 全日历 led 数字显示屏的设计 2 1.3 数字电子钟的应用 数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、 码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。 由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性 能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。 全日历 led 数字显示屏的设计 3 2 整体设计方案 2.1 单片机的选择 片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机 微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中 央处理器、存储器和 i/o 接口电路等。因此,单片机只需要和适当的软件及外部设备 相结合,便可成为一个单片机控制系统。 单片机经过 1、2、3、3 代的发展,正朝着多功能、高性能、低电压、低功耗、低 价格、大存储容量、强 i/o 功能及较好的结构兼容性方向发展。其发展趋势不外乎以 下几个方面: 1、多功能 单片机中尽可能地把所需要的存储器和 i/o 口都集成在一块芯片上,使得单片机 可以实现更多的功能。比如 a/d、pwm、pca(可编程计数器阵列) 、wdt(监视定 时器-看家狗) 、高速 i/o 口及计数器的捕获/比较逻辑等。 有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯 片数量。例如,有的芯片以 51 内核为核心,集成了 usb 控制器、smart card 接口、 mp3 解码器、can 或者 i*i*c 总线控制器等,led、lcd 或 vfd 显示驱动器也开始 集成在 8 位单片机中。 2、高效率和高性能 为了提高执行速度和执行效率,单片机开始使用 risc、流水线和 dsp 的设计技 术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频 率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片 内 rom(flash)和 ram 的容量都突破了以往的数量和限制。 由于系统资源和系统复杂程度的增加,开始使用高级语言(如 c 语言)来开发单 片机的程序。使用高级语言可以降低开发 难度,缩短开发周期,增强软件的可读性和 可移植性,便于改进和扩充功能。 3、低电压和低功耗 单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于 cmos 等工艺 的大量采用,很多单片机可以在更低的电压下工作(1.2v 或 0.9v) ,功耗已经降低到 全日历 led 数字显示屏的设计 4 ua 级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。 4、低价格 单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大 公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。 下面大致介绍一下单片机的主要应用领域和特点。 (1)家用电器领域 用单片机控制系统取代传统的模拟和数字控制电路,使家用电器(如洗衣机、空 调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。 (2)办公自动化领域 单片机作为嵌入式系统广泛应用于现代办公设备,如计算机的键盘、磁盘驱动、 打印机、复印机、电话机和传真机等。 (3)商业应用领域 商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠 性和安全性。商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监 测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。与通用 计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性 更高。 (4)工业自动化 在工业控制和机电一体化控制系统中,除了采用工控计算机外,很多都是以单片 机为核心的单片机和多机系统。 (5)智能仪表与集成智能传感器 目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统, 使得测量系统具有存储、数据处理、查询及联网等智能功能。将单片机和传感器相结 合,可以构成新一代的智能传感器。它将传感器变换后的物理量作进一步的变化和处 理,使其成为数字信号,可以远距离传输并与计算机接口。 (6)现代交通与航空航天领域 通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运 行监视系统等。这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要 高,因此采用单片机系统更加重要。 目前,我国生产很多型号的单片机,在此,我们采用型号为 stc89c52 的单片机。因 为: stc89c52 是一个低电压,高性能 全日历 led 数字显示屏的设计 5 cmos 8 位单片机,片内含 4k bytes 的可反复擦写的 flash 只读程序存储器和 128 bytes 的随机存取数据存储器(ram) ,器件采用 atmel 公司的高密度、非易失性存储技术 生产,兼容标准 mcs-52 指令系统,片内置通用 8 位中央处理器和 flash 存储单元,内 置功能强大的微型计算机的 at89c52 提供了高性价比的解决方案。 stc89c52 是一个低功耗高性能单片机,40 个引脚,32 个外部双向输入/输出 (i/o)端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器,2 个全双工串行通 信口,stc89c51 可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器 和 flash 存储器结合在一起,特别是可反复擦写的 flash 存储器可有效地降低开发成本。 2.2 单片机的基本结构 mcs-52 单片机内部结构 8052 单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时/计数器、 并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大 总线,现在我们分别加以说明: 中央处理器: 中央处理器(cpu)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位 二进制数据或代码,cpu 负责控制、指挥和调度整个单元系统协调的工作,完成运算 和控制输入输出功能等操作。 数据存储器(ram) 8052 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编 址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户 数据,所以,用户能使用的 ram 只有 128 个,可存放读写的数据,运算的中间结果或 用户定义的字型表。 图 2-1 单片机 8052 的内部结构 程序存储器(rom): 805 2 共有 4096 个 8 位掩膜 rom,用于存放用户程序,原始数据或表格。 定时/计数器(rom): 全日历 led 数字显示屏的设计 6 8052 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序 转向。 并行输入输出(i/o)口: 8052 共有 4 组 8 位 i/o 口(p0、 p1、p2 或 p3),用于对外部数据的传输。 全双工串行口: 8052 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既 可以用作异步通信收发器,也可以当同步移位器使用。 中断系统: 8052 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断, 可满足不同的控制要求,并具有 2 级的优先级别选择。 时钟电路: 8052 内置最高频率达 12mhz 的时钟电路,用于产生整个单片机运行的脉冲时序, 但 8052 单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛 (harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为 一的结构,即普林斯顿(princeton)结构。intel 的 mcs-52 系列单片机采用的是哈佛结 构的形式,而后续产品 16 位的 mcs-96 系列单片机则采用普林斯顿结构。 下图是 mcs-52 系列单片机的内部结构示意图。 图 2-2 mcs-52 系列单片机的内部结构 mcs-52 的引脚说明: mcs-52 系列单片机中的 8031、8051 及 8751 均采用 40pin 封装的双列直接 dip 结构, 右图是它们的引脚配置,40 个引脚中,正 全日历 led 数字显示屏的设计 7 电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 i/o 口,中断口线 与 p3 口线复用。现在我们对这些引脚的功能加以说明: mcs-51 的引脚说明: mcs-52 系列单片机中的 8031、8051 及 8751 均采用 40pin 封装的双列直接 dip 结构, 右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线 两根,4 组 8 位共 32 个 i/o 口,中断口线与 p3 口线复用。现在我们对这些引脚的功能 加以说明: 图 2-3 单片机的引脚图 in9:reset/vpd 复位信号复用脚,当 8052 通电,时钟电路开始工作,在 reset 引 脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 pc 指向 0000h,p0-p3 输出口全部为高电平,堆栈指针写入 07h,其它专用寄存器被清 “0”。reset 由高电平下降为低电平后,系统即从 0000h 地址开始执行程序。然而, 初始复位不改变 ram(包括工作寄存器 r0-r7)的状态,8052 的初始态。 8051 的复位方式可以是自动复位,也可以是手动复位,见下图 4。此外, reset/vpd 还是一复用脚,vcc 掉电其间,此脚可接上备用电源,以保证单片机内部 ram 的数据不丢失 全日历 led 数字显示屏的设计 8 图 2-4 上电自动和手动复位电路图 图 2-5 内部和外部时钟方式图 pin30:ale/当访问外部程序器时,ale(地址锁存)的输出用于锁存地址的低位字 节。 而访问内部程序存储器时,ale 端将有一个 1/6 时钟频率的正脉冲信号,这个 信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点, 当访问外部程序存储器,ale 会跳过一个脉冲。 如果单片机是 eprom,在编程其间,将用于输入编程脉冲。 pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,pc 的 16 位地址数 据将出现在 p0 和 p2 口上,外部程序存储器则把指令数据放到 p0 口上,由 cpu 读入 并执行。 pin31:ea/vpp 程序存储器的内外部选通 全日历 led 数字显示屏的设计 9 线,8051 和 8751 单片机,内置有 4kb 的程序存储器,当 ea 为高电平并且程序地址小 于 4kb 时,读取内部程序存储器指令数据,而超过 4kb 地址则读取外部指令数据。如 ea 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序 存储器的 8031,ea 端必须接地。 全日历 led 数字显示屏的设计 10 3 数字钟的硬件设计 3.1 最小系统设计 单片机的最小系统是由电源、复位、晶振、/ea=1 组成,下面介绍一下每一个组成 部分。 1.电源引脚 vcc 电源端 gnd 接地端 工作电压为 5v,另有 at89lv51 工作电压则是 2.7-6v, 引脚功能一样。 2.外接晶体引脚 图 3-1 晶振连接的内部、外部方式图 xtal1 19 xtal2 18 全日历 led 数字显示屏的设计 11 xtal1 是片内振荡器的反相放大器输入端,xtal2 则是输出端,使用外部振荡 器时,外部振荡信号应直接加到 xtal1,而 xtal2 悬空。内部方式时,时钟发生器 对振荡脉冲二分频,如晶振为 12mhz,时钟频率就为 6mhz。晶振的频率可以在 1mhz-24mhz 内选择。电容取 30pf 左右。系统的时钟电路设计是采用的内部方式, 即利用芯片内部的振荡电路。at89 单片机内部有一个用于构成振荡器的高增益反相放 大器。引脚 xtal1 和 xtal2 分别是此放大器的输入端和输出端。这个放大器与作为 反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容 c1 和 c2 构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的 要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温 度的稳定性。因此,此系统电路的晶体振荡器的值为 12mhz,电容应尽可能的选择陶 瓷电容,电容值约为 22f。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得 与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。 3. 复位 rst 9 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿 时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后 p0p3 口均置 1 引脚表现为高电平,程序计数器和特殊功能寄存器 sfr 全部清零。当复位脚 由高电平变为低电平时,芯片为 rom 的 00h 处开始运行程序。复位是由外部的复位 电路来实现的。片内复位电路是复位引脚 rst 通过一个斯密特触发器与复位电路相连, 斯密特触发器用来抑制噪声,它的输出在每个机器周期的 s5p2,由复位电路采样一次。 复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是按钮复位 电路。 4.输入输出引脚 (1) p0 端口p0.0-p0.7 p0 是一个 8 位漏极开路型双向 i/o 端口,端口置 1(对端口 写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 ttl。 对内部 flash 程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接 上拉电阻。 在访问外部程序和外部数据存储器时,p0 口是分时转换的地址(低 8 位)/数据总线,访 问期间内部的上拉电阻起作用。 (2) p1 端口p1.0p1.7 p1 是一个带有内部上拉电阻的 8 位双向 i/0 端口。输出时 可驱动 4 个 ttl。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 flash 程序存储器编程时,接收低8 位地址信息。 全日历 led 数字显示屏的设计 12 (3) p2 端口p2.0p2.7 p2 是一个带有内部上拉电阻的 8 位双向 i/0 端口。输出时 可驱动 4 个 ttl。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 flash 程序存储器编程时,接收高 8 位地址和控制信息。 在访问外部程序和 16 位外部数据存储器时,p2 口送出高 8 位地址。而在访问 8 位地 址的外部数据存储器时其引脚上的内容在此期间不会改变。 (4) p3 端口p3.0p3.7 p2 是一个带有内部上拉电阻的 8 位双向 i/0 端口。输出时 可驱动 4 个 ttl。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 flash 程序存储器编程时,接控制信息。除此之外 p3 端口还用于一些专门功能, 具体请看下表。 表 3-1 p3 端口引脚兼用功能表 3.2 led 显示电路 显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工 艺,单片机应用系统中常用的显示器有: 发光二极管 led 显示器、液晶 lcd 显示器、 crt 显示器等。led 显示器是现在最常用的显示器之一,如下图所示。 p3 引脚兼用功能 p3.0串行通讯输入(rxd) p3.1串行通讯输出(txd) p3.2外部中断 0( int0) p3.3外部中断 1(int1) p3.4定时器 0 输入(t0) p3.5定时器 1 输入(t1) p3.6外部数据存储器写选通 wr p3.7外部数据存储器写选通 rd 全日历 led 数字显示屏的设计 13 图 3-2 led 显示器的符号图 发光二极管(led)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使 用,也可以组装成分段式或点阵式 led 显示器件(半导体显示器) 。分段式显示器 (led 数码管)由 7 条线段围成 8 字型,每一段包含一个发光二极管。外加正向电压 时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字 形或符号。led 数码管有共阳、共阴之分。图是共阳式、共阴式 led 数码管的原理图 和符号. 图 3-3 共阳式、共阴式 led 数码管的原理图和数码管的符号图 全日历 led 数字显示屏的设计 14 显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要 6 个数码管, 另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的 十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和 第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示 横线。led 显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两 种。对于多位 led 显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式 如下图所示。 图 3-4 数码管的硬件连接示意图 数码管使用条件: a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定 c、使用电流:静态:总电流 80ma(每段 10ma) ;动态:平均电流 4-5ma 峰值电流 100ma 数码管使用注意事项说明: ()数码管表面不要用手触摸,不要用手去弄引角; ()焊接温度:度;焊接时间: ()表面有保护膜的产品,可以在使用前撕下来。 全日历 led 数字显示屏的设计 15 3.3 键盘控制电路 该设计需要校对时间,所以用三个按键来实现。按 hour 来调节小时的时间,按 minute 来调节分针的时间,按 sceond 来调节秒的时间。下图是按键硬件连接图。 图 3-5 按键控制电路的硬件连接图 当用手按下一个键时,如图 3-6 所示,往往按键在闭合位置和断开位置之间跳几 下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。 抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于 10ms。很容易想到, 抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题, 这就是通过延迟 10ms 来等待抖动消失,这之后,在读入键盘码。 图 3-6 按键抖动信号波形 键按下 前沿抖动后沿抖动 闭合 稳定 全日历 led 数字显示屏的设计 16 4 数字钟的软件设计 系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行软件 (完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以 下几个方面的问题: (1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总 体结构,使软件开发清晰、简洁和流程合理; (2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于 调试、链接,又便于移植和修改; (3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数; (4)绘制程序流程图; (5)合理分配系统资源; (6)为程序加入注释,提高可读性,实施软件工程; (7)注意软件的抗干扰设计,提高系统的可靠性。 4.1 系统软件设计流程图 这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。 主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就 可以显示时间。 图 4-1 主程序流程图 开始 启动定时器 按键检测 时间显示 全日历 led 数字显示屏的设计 17 按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加 1;如果没有按下, 就检测分按键是否按下,分按键如果按下,分就加 1;如果没有按下,就检测时按键是 否按下,时按键如果按下,时就加 1;如果没有按下,就把时间显示出来。 图 4-2 按键处理流程图 定时器中断时是先检测 1 秒是否到,1 秒如果到,秒单元就加 1;如果没到,就检 测 1 分钟是否到,1 分钟如果到,分单元就加 1;如果没到,就检测 1 小时是否到,1 小时如果到,时单元就加 1,如果没到,就显示时间。 n y n y n y hour 加 1 显示时间 结束 开始 sceond 按键按下? sceond 加 1 minute 按键按下? minute 加 1 hour 按键按下? 全日历 led 数字显示屏的设计 18 图 4-3 定时器中断流程图 时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示, 再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。 n 24 小时到? 分单元清零,时单元加 1 n n n y y 时单元清零 时间显示 中断返回 开始 一秒时间到? 60 秒时间到? 60 分钟到? 秒单元加 1 秒单元清零,分单元加 1 y y 全日历 led 数字显示屏的设计 19 图 4-4 时间显示流程图 时十位计算显 示 结束 开始 秒个位计算显 示 秒十位计算显 示 分个位计算显 示 分十位计算显 示 时个位计算显 示 全日历 led 数字显示屏的设计 20 4.2 数字钟的原理图 用 protues 软件,根据要求画出数字电子钟的原理图如下所示。 图 4-5 数字钟的原理图 在此有必要介绍一下数字电子钟的工作原理。 工作原理 : 数字电子钟是一个将“ 时” , “分” , “秒”显示于人的视觉器官的计时装置。它 的计时周期为 24 小时,显示满刻度为 23 时 59 分 59 秒,另外还有校时功能。因此, 一个基本的数字钟电路主要由显示器“时” , “分” , “秒”和单片机,还有校时电路组 成。8 个数码管的段选接到单片机的 p0 口,位选接到单片机的 p2 口。数码管按照数 码管动态显示的工作原理工作,将标准秒信号送入“秒单元” , “秒单元”采用 60 进制 计数器,每累计 60 秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。 “分单元”也采用 60 进制计数器,每累计 60 分钟,发出一个“时脉冲”信号,该信 号将被送到“时单元” 。 “时单元”采用 24 进制计时器,可实现对一天 24 小时的累计。 显示电路将“时” 、 “分” 、 “秒”通过七段显示器显示出来。校时电路时用来对“时” 、 “分” 、 “秒”显示数字进行校对调整,校时电路时用来对“时” 、 “分” 、 “秒”显示数 全日历 led 数字显示屏的设计 21 字进行校对调整,按一下 second,秒单元就加 1 ,按一下 minute,分就加 1,按一下 hour,时就加 1。 4.3 中断子程序 timer0 (void) interrupt 1 using 1 u+; th0=(65536-50000)/256; tl0=(65536-50000)%256; 4.4 延时程序 void delay() unsigned int time,p; for(time=30;time0;time-) for(p=0;p char mod=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; char sceond,minute,hour,i,k,l,j,x,y; int u; sbit p1_0=p10; sbit p1_1=p11; sbit p1_2=p12; void main() tmod=0x01; 全日历 led 数字显示屏的设计 22 th0=(65536-50000)/256; tl0=(65536-50000)%256; ea=1; et0=1; tr0=1; do kongzhi(); xianshi(); while(1); 在这里,我们有必要介绍一下单片机的中断系统,以利于我们的学习。 中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机 cpu 的效率, 也可以对突发事件处理。所谓中断就是当 cpu 正在执行程序 a 时,发生了另一个急需 处理的事件 b,这是 cpu 暂停当前执行的程序 a,立即转去执行处理事件 b 的程序,处 理完事件 b 后,再返回到程序 a 继续执行,这个过程被叫做中断。关于中断的概念有 下列几个名词:(1)程序 a 称为主程序,(2)处理事件 b 的程序称为中断服务程序, (3)主程序中转向中断服务程序的地方称为断点,(4)引起中断的原因即事件 b 称 为中断源,(5)转去执行中断服务程序称为中断响应。关于中断的概念可以打个如下 的比喻。领导(cpu)在自己的房间办公(执行主程序),下属(外设)有问题打电话 来请示(中断源),领导停下正在进行的工作,通过电话给下属做指示(执行中断服 务程序),指示完后,领导挂断电话,继续做自己的工作(返回主程序继续执行)。 中断是一个过程,当中央处理器 cpu 在处理某件事情时,外部又发生了另一紧急 事件,请求 cpu 暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来 被中断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断 源。 单片机一般允许有多个中断源,当几个中断源同时向 cpu 请求中断时,就存在 cpu 优 先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队, 全日历 led 数字显示屏的设计 23 优先处理最紧急事件的中断请求,于是便规定每一个中断源都有一个中断优先级别, 并且 cpu 总是响应级别最高的中断请求。 当 cpu 正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源 请求,如果 cpu 能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的 中断源请求,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为 中断嵌套。 4.6 led 显示子程序 void xianshi() if(u=20) u=0; sceond+; while(sceond=60) sceond=0; minute+; if(minute=60) minute=0; hour+ ; if(hour=24) hour=0; x=hour%10; 全日历 led 数字显示屏的设计 24 y=hour/10; l=minute%10; j=minute/10; i=sceond%10; k=sceond/10; p2=0x7f; p0=modi; delay(); p2=0xbf; p0=modk; delay(); p2=0xdf; p0=0x40; delay(); p2=0xef; p0=modl; delay(); p2=0xf7; p0=modj; delay(); p2=0xfb; p0=0x40; delay(); p2=0xfd; p0=modx; delay(); p2=0xfe; p0=mody; delay(); 全日历 led 数字显示屏的设计 25 4.7 按键控制子程序 void kongzhi() if(p1_0=0) tr0=0; while(p1_0=0); while(1) if(p1_1=0) sceond+; if(sceond=60) sceond=0; while(p1_1=0); if(p1_2=0) sceond-; if(sceond0 时表示电子钟秒单元数值刷新滞后,即走 时误差为“慢” ;反之,s0 表示秒单元数值的刷新超前,即走时误差为“快” 。 本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误 差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本 应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成 与基准时间产生偏差,造成走时误差。 6.3 软件调试问题及解决 软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试 可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真 器即可;后者一般需要仿真系统的支持。本次课题,keil 软件来调试程序,通过各个 模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。 仿真部分采用 protus 7.5 professional 软件,此软件功能强大且操作较为简单,可以很容 全日历 led 数字显示屏的设计 31 易的实现各种系统的仿真。 首先打开 protus 7.5 professional 软件,在元件库中找到要选用的所有元件,然后进 行原理图的绘制;绘制好后再选择已经编译好的*.hex 文件,选择运行,观察显示结果, 根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。 全日历 led 数字显示屏的设计 32 结 论 有日子我起初认为单片机是个噩梦,因为自己在单片机这一块存在着太大的缺陷, 幸运的是我终于完成了这次考试论文。一开始按照老师布置的流程,一步步去实现那 个目标,找资料,读懂程序,写写流程图,当然不懂就去找李老师,通过自己的勤奋 和同学之间的取长补短,目标一步步的被我找到和实现,时间尽管很短但是我在单片 机这一块的缺陷正在慢慢缩短和知识的不断上升,对单片机也有了很大的兴趣,并且 使数字钟能够顺利运行,完成了预期的目标。从单片机模块数字钟的设计过程中也找 到了一些单片机开发的规律:先了解所有元件的具体内容,从而画出其电路图,使数 字钟从简易变成多功能的方式,虽没有做多功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考物理复习专题1物理学史估测题课件
- 冀少版八年级生物上册第三单元第一节种子萌发的过程课件
- 幼儿印染课件教学课件
- 第四节区域经济联系教案
- 《建筑材料》教案
- 住宅小区电梯安装招标细则须知
- 绵阳市羽毛球馆租赁合同
- 印刷厂操作员聘用协议
- 教育资源共享办法
- 福州市停车场突发事件应急预案
- ICU患者失禁性皮炎的预防及护理新进展
- 中秋节来历课件
- 架线工程强制性条文执行记录
- 2023版监理规范(含表格)
- 传媒公司签约艺人合同
- 资金集中管理五大模式
- 2023年FURUNOECDISMultipleChoiceTest古野电子海图题库测试题
- “葫芦丝进初中音乐课堂的策略研究”课题结题报告
- GB/T 28708-2012管道工程用无缝及焊接钢管尺寸选用规定
- GB/T 10822-2014一般用途织物芯阻燃输送带
- 青少年成才优秀家庭教育-感恩教育主题班会
评论
0/150
提交评论