2022年全日历数字显示屏的方案设计书_第1页
2022年全日历数字显示屏的方案设计书_第2页
2022年全日历数字显示屏的方案设计书_第3页
2022年全日历数字显示屏的方案设计书_第4页
2022年全日历数字显示屏的方案设计书_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、封面作者: PanHongliang 仅供个人学习全日历 LED数字显示屏的设计 摘要:20 世纪末, 电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了 社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使 现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。对 I / 29 于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。数码管显示的时 间简单明了而且读数快、时间准确显示到秒。而机械式的依赖于晶体

2、震荡器,可能会 导致误差。数字钟是采用数字电路实现对“ 时”、“ 分” 、“ 秒” 数字显示的计时装置。数字钟的精度、稳定度远远超过老式机械钟。在这次设计中,我们采用 LED 数码管显示时、分、秒,以 24 小时计时方式,根据数码管动态显示原理来进行显示,用 12MHz的晶振 产生振荡脉冲,定时器计数。在此次设计中,电路具有显示时间的其本功能,还可以 实现对时间的调整。数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。关键字: 数字电子钟单片机目录1 前言 0 1.1 数字电子钟的背景 0 1.2 数字电子钟的意义 0 1.3 数字电子

3、钟的应用 1 2 整体设计方案 1 2.1 单片机的选择 1 2.2 单片机的基本结构 3 3 数字钟的硬件设计 5 3.1 最小系统设计 5 3.2 LED 显示电路 8 3.3 键盘控制电路 9 4 数字钟的软件设计 9 4.1 系统软件设计流程图 10 4.2 数字钟的原理图 11 4.3 中断子程序 11 4.4 延时程序 11 II / 29 4.5 主程序和定时器中断子程序 12 4.6 LED 显示子程序 13 4.7 按键控制子程序 15 5 系统仿真 19 5.1 PROTUES软件介绍 19 5.2 电子钟系统 PROTUES仿真 19 6 调试与功能说明 19 6.1 系

4、统性能测试与功能说明 19 6.2 系统时钟误差分析 19 6.3 软件调试问题及解决 20 结论 20 参考文献( References ):21 附录 22 致谢 22 III / 29 1 前言1.1 数字电子钟的背景20 世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社 会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现 代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是 那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事 情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽

5、误可能酿成 大祸。CMOS 化、低功耗、目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着 小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的 主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计 思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片 机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控 制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的 装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使 用寿命,因此得

6、到了广泛的使用。1.2 数字电子钟的意义数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置 ,广泛用于个人家庭 ,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度 ,远远超过老式钟表 , 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定 时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关 烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化 为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。0 / 29 1.

7、3 数字电子钟的应用数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能 稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。2 整体设计方案2.1 单片机的选择片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微 型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央 处理器、存储器和 I/O 接口电路等。因此,单

8、片机只需要和适当的软件及外部设备相结 合,便可成为一个单片机控制系统。单片机经过 1、2、3、3 代的发展,正朝着多功能、高性能、低电压、低功耗、低 I/O 功能及较好的结构兼容性方向发展。其发展趋势不外乎以下 价格、大存储容量、强 几个方面:1、多功能单片机中尽可能地把所需要的存储器和I/O 口都集成在一块芯片上,使得单片机可以实现更多的功能。比如 A/D 、PWM、PCA(可编程计数器阵列) 、WDT (监视定时器 -看家狗)、高速 I/O 口及计数器的捕获 /比较逻辑等。有的单片机针对某一个应用领域, 集成了相关的控制设备, 以减少应用系统的芯片数量。例如,有的芯片以 51 内核为核心,

9、集成了 USB 控制器、 SMART CARD 接口、 MP3 解码器、 CAN 或者 I*I*C 总线控制器等, LED 、LCD 或 VFD 显示驱动器也开始集成在 8位单片机中。2、高效率和高性能为了提高执行速度和执行效率,单片机开始使用RISC、流水线和 DSP 的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片 机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内 ROM(FLASH )和 RAM 的容量都突破了以往的数量和限制。1 / 29 由于系统资源和系统复杂程度的增加,开始使用高级语言(如 C 语言)来开发单片机的程序。

10、使用高级语言可以降低开发 性,便于改进和扩充功能。3、低电压和低功耗难度,缩短开发周期,增强软件的可读性和可移植单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于 CMOS 等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V 或 0.9V),功耗已经降低到 uA 级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。4、低价格单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。下面大致介绍一下单片机的主要应用领域和特点。(1)家用电器领域用单片机控制系统取代传统的模拟和数字控制电

11、路,使家用电器(如洗衣机、空调、冰箱、微波炉、和电视机等)功能更完善,更加智能化和易于使用。(2)办公自动化领域单片机作为嵌入式系统广泛应用于现代办公设备,复印机、电话机和传真机等。(3)商业应用领域如计算机的键盘、 磁盘驱动、打印机、商业应用系统部分与家用和办公应用系统相似,但更加注重设备的稳定性、可靠性和安 全性。商用系统中广泛使用的电子计量仪器、收款机、条形码阅读器、安全监测系统、空气调节系统和冷冻保鲜系统等, 都采用了单片机构成的专用系统。 与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。(4)工业自动化 在工业控制和机电一体化控制系统中,除了采用

12、工控计算机外,很多都是以单片机为核 心的单片机和多机系统。(5)智能仪表与集成智能传感器 目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统,使得测 量系统具有存储、数据处理、查询及联网等智能功能。将单片机和传感器相结合,可以 构成新一代的智能传感器。它将传感器变换后的物理量作进一步的变化和处理,使其成 为数字信号,可以远距离传输并与计算机接口。(6)现代交通与航空航天领域 2 / 29 通常应用于电子综合显示系统、动力监控系统、自动驾驶系统、通信系统以及运行监视系统等。这些领域对体积、功耗、稳定性和实时性的要求往往比商用系统还要高,因此采用单片机系统更加重要。目前,我国生产

13、很多型号的单片机,在此,我们采用型号为 STC89C52 的单片机。因为: STC89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 4k bytes的可反复擦写的 Flash只读程序存储器和 128 bytes的随机存取数据存储器 (RAM ),器件采用 ATMEL公司的高密度、非易失性存储技术生产,兼容标准 MCS-52 指令系统,片内置通用 8 位中央处理器和 Flash存储单元,内置功能强大的微型计算机的 AT89C52 提供了高性价比的解决方案。 STC89C52 是一个低功耗高性能单片机,40 个引脚, 32 个外部双向输入 /输出( I/O)端口,同时内含 2 个外

14、中断口, 2 个 16 位可编程定时计数器 ,2 个全双工串行通信口,STC89C51 可以按照常规方法进行编程, 也可以在线编程。 其将通用的微处理器和 Flash存储器结合在一起,特别是可反复擦写的 2.2 单片机的基本结构MCS-52 单片机内部结构Flash存储器可有效地降低开发成本。8052 单片机包含中央处理器、 程序存储器 (ROM) 、数据存储器 (RAM) 、定时 /计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总 线,现在我们分别加以说明:中央处理器:中央处理器 (CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位

15、 完成运算和 二进制数据或代码, CPU 负责控制、 指挥和调度整个单元系统协调的工作,控制输入输出功能等操作。数据存储器 (RAM) 8052 内部有 128 个 8 位用户数据存储单元和128 个专用寄存器单元, 它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。图 2-1 单片机 8052 的内部结构3 / 29 程序存储器 (ROM) :805 2 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。定时/计数器 (ROM)

16、:8052有两个 16位的可编程定时 /计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出 (I/O)口:8052 共有 4 组 8 位 I/O 口(P0、 P1、P2或 P3),用于对外部数据的传输。全双工串行口:8052 内置一个全双工串行通信口, 用于与其它设备间的串行数据传送,该串行口既可以 用作异步通信收发器,也可以当同步移位器使用。中断系统:8052 具备较完善的中断功能,有两个外中断、两个定时 可满足不同的控制要求,并具有 2 级的优先级别选择。时钟电路:/计数器中断和一个串行中断,8052 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,

17、但 8052 单片机需外置振荡电容。单片机的结构有两种类型, 一种是程序存储器和数据存储器分开的形式,即哈佛 (Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿 (Princeton)结构。 INTEL 的 MCS-52 系列单片机采用的是哈佛结构的形式,而后续产品 16 位的 MCS-96 系列单片机则采用普林斯顿结构。下图是 MCS-52 系列单片机的内部结构示意图。图 2-2 MCS-52 系列单片机的内部结构MCS-52 的引脚说明:MCS-52 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接

18、DIP 结构,右图是它们的引脚配置, 40 个引脚中, 正电源和地线两根, 外置石英振荡器的时钟线两根, 4 组 8 位共 32 个 I/O 口,中断口线与P3 口线复用。现在我们对这些引脚的功能加以说明:MCS-51 的引脚说明:MCS-52 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构,右图是它们的引脚配置, 40 个引脚中, 正电源和地线两根, 外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与P3 口线复用。现在我们对这些引脚的功能加 4 / 29 以说明:图 2-3 单片机的引脚图in9:RESET/V

19、pd 复位信号复用脚,当 8052 通电,时钟电路开始工作,在 RESET 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 PC 指向0000H,P0-P3输出口全部为高电平, 堆栈指针写入 07H,其它专用寄存器被清 “ 0”。RESET由高电平下降为低电平后, 系统即从 0000H 地址开始执行程序。 然而,初始复位不改变RAM (包括工作寄存器 R0-R7)的状态, 8052 的初始态。8051 的复位方式可以是自动复位,也可以是手动复位,见下图 4。此外, RESET/Vpd还是一复用脚, Vcc 掉电其间,此脚可接上备用电源,以保证单片机内部 RAM

20、的数据不丢失图 2-4 上电自动和手动复位电路图图 2-5 内部和外部时钟方式图Pin30:ALE/ 当访问外部程序器时,ALE( 地址锁存 )的输出用于锁存地址的低位字节。而访问内部程序存储器时, ALE 端将有一个 1/6 时钟频率的正脉冲信号,这个信号可以用 于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程 序存储器, ALE 会跳过一个脉冲。如果单片机是 EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的 16 位地址数据将出现在 P0和 P2 口上,外部程序存储器则把指令数据放到P0 口上,由

21、CPU 读入并执行。Pin31:EA/Vpp 程序存储器的内外部选通线, 8051 和 8751 单片机, 内置有 4kB 的程序存储器,当 EA 为高电平并且程序地址小于4kB 时,读取内部程序存储器指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA 端必须接地。3数字钟的硬件设计 3.1 最小系统设计单片机的最小系统是由电源、复位、晶振、/EA=1 组成,下面介绍一下每一个组成5 / 29 部分。1.电源引脚 Vcc 电源端 GND 接地端 工作电压为 5V,另有 AT89LV51 工作

22、电压则是 2.7-6V, 引脚功能一样。2.外接晶体引脚图 3-1 晶振连接的内部、外部方式图 XTAL1 19 XTAL2 18 XTAL1 是片内振荡器的反相放大器输入端,XTAL2 则是输出端,使用外部振荡器时,外部振荡信号应直接加到 XTAL1 ,而 XTAL2 悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为 12MHz,时钟频率就为 6MHz。晶振的频率可以在 1MHz-24MHz内选择。电容取 30PF 左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89 单片机内部有一个用于构成振荡器的高增益反相放大器。引脚 XTAL1和 XTAL2 分别是此放大

23、器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容 C1 和 C2 构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容, 电容值约为 22 F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生 电容,更好地保证震荡器稳定和可靠地工作。3. 复位RST9 在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引腿时,将使单

24、片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后P0P3 口均置1 引脚表现为高电平,程序计数器和特殊功能寄存器SFR 全部清零。 当复位脚由高电平变为低电平时,芯片为 ROM 的 00H 处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST 通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的 S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是按钮复位电路。6 / 29 4.输入输出引脚 (1) P0 端口 P0.0-P0.7 P0 是一个 8 位漏极开路型双向 I/O 端口,

25、端口置 1(对端口 写 1)时作高阻抗输入端。作为输出口时能驱动 8 个 TTL 。对内部 Flash 程序存储器编程时,接收指令字节。校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,期间内部的上拉电阻起作用。P0 口是分时转换的地址 (低 8 位)/数据总线,访问(2) P1 端口 P1.0P1.7 P1是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个 TTL 。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash程序存储器编程时,接收低 8 位地址信息。(3) P2 端口 P2.0P2.7 P2是一个带有内部上拉电阻

26、的 8 位双向 I/0 端口。输出时可P3 引脚 兼用功能P3.0 串行通讯输入( RXD )驱动 4 个 TTL 。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。 对内部 Flash程序存储器编程时,接收高8 位地址和控制信息。在访问外部程序和 16 位外部数据存储器时, P2 口送出高 8 位地址。而在访问 8 位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3 端口 P3.0P3.7 P2是一个带有内部上拉电阻的 8 位双向 I/0 端口。输出时可驱动 4 个 TTL 。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 Flash 程序存储器编程

27、时,接控制信息。除此之外 具体请看下表。7 / 29 P3 端口还用于一些专门功能,P3.1 表 3-1串行通讯输出( TXD )WR P3.2 外部中断 0( INT0)P3.3 外部中断 1(INT1)P3.4 定时器 0 输入 (T0) P3.5 定时器 1 输入 (T1) P3.6 外部数据存储器写选通P3.7 外部数据存储器写选通RD P3 端口引脚兼用功能表3.2 LED 显示电路显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:发光二极管LED 显示器、液晶LCD 显示器、CRT 显示器等。 LED 显示器是现在最常用的显

28、示器之一,如下图所示。图 3-2 LED 显示器的符号图 发光二极管(LED)由特殊的半导体材料砷化镓、 磷砷化镓等制成, 可以单独使用,也可以组装成分段式或点阵式LED 显示器件(半导体显示器) 。分段式显示器( LED 数码管)由 7 条线段围成 8 字型,每一段包含一个发光二极管。外加正向电压时二极管导 通,发出清晰的光。 只要按规律控制各发光段亮、 灭,就可以显示各种字形或符号。 LED数码管有共阳、共阴之分。图是共阳式、共阴式LED 数码管的原理图和符号 . 图 3-3 共阳式、共阴式 LED 数码管的原理图和数码管的符号图显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需

29、要6 个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。LED 显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于 多位 LED 显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所 示。8 / 29 图 3-4 数码管的硬件连接示意图 数码管使用条件:a、段及小数点上加限流电阻b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定c、使用电流:静态:总电流80mA(

30、每段 10mA);动态:平均电流4-5mA 峰值电流100mA 数码管使用注意事项说明:()数码管表面不要用手触摸,不要用手去弄引角;()焊接温度:度;焊接时间:()表面有保护膜的产品 ,可以在使用前撕下来。3.3 键盘控制电路该设计需要校对时间,所以用三个按键来实现。按hour 来调节小时的时间,按minute 来调节分针的时间,按 sceond来调节秒的时间。下图是按键硬件连接图。图 3-5 按键控制电路的硬件连接图当用手按下一个键时,如图3-6 所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖 动的持续时间随键盘材料

31、和操作员而异,不过通常总是不大于 10ms。很容易想到,抖 动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就 是通过延迟 10ms来等待抖动消失,这之后,在读入键盘码。图 3-6 按键抖动信号波形 键按下4数字钟的软件设计系统的软件设计也是工具系统功能的设计。前沿抖动单片机软件的设计主要包括执行软件 (完 后沿抖动成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常要考虑以下几个 方面的问题:闭合(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总 稳定 体结构,使软件开发清晰、简洁和流程合理;9 / 29 (2)培养良好的编程风格

32、,如考虑结构化程序设计、实行模块化、子程序化。既便于 调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。4.1 系统软件设计流程图这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。图 4-1 主程序流程图 开始按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加 1;如果没有按下,就检测分按键是否按下,分按键如果按

33、下,分就加 启动定时器1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加 1;如果没有按下,就把时间显示出来。按键检测开始N 图 4-2 按键处理流程图 时间显示定时器中断时是先检测 1 秒是否到, 1 秒如果到,秒单元就加 sceond 按 键 按 1;如果没到,就检测 1 分钟是否到, 1 分钟如果到,分单元就加 1;如果没到,就检测 1 小时是否到, 1小时如果到,时单元就加Y 1,如果没到,就显示时间。sceond加 1 N 图 4-3 定时器中断流程图一秒时间到?时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再 N 然后是分十位显示,再就是时个位计

34、算显示,最后是时十位显示。minute 按 键 按Y 秒单元加 1 Y 图 4-4 时间显示流程图minute 加 1 开始N 60 秒时间到?N 秒 个 位 计 算 显 hour 按键按下?Y 秒单元清零,分单元加 示 10 / 29 1 Y N hour 加 1 4.2 数字钟的原理图 用 PROTUES 软件,根据要求画出数字电子钟的原理图如下所示。图 4-5 数字钟的原理图在此有必要介绍一下数字电子钟的工作原理。工作原理:数字电子钟是一个将“ 时”,“ 分” ,“ 秒” 显示于人的视觉器官的计时装置。它的计时周期为 24 小时,显示满刻度为 23 时 59 分 59 秒,另外还有校时功

35、能。因此,一个基本的数字钟电路主要由显示器“ 时”,“ 分” ,“ 秒” 和单片机,还有校时电路组成。8个数码管的段选接到单片机的 P0 口,位选接到单片机的 P2 口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“ 秒单元”,“ 秒单元” 采用 60 进制计数器,每累计 60 秒发出一个 “ 分脉冲” 信号,该信号将作为 “ 分单元” 的时钟脉冲。“ 分单元”也采用 60 进制计数器, 每累计 60 分钟,发出一个“ 时脉冲”信号,该信号将被送到 “ 时单元” 。“ 时单元”采用 24 进制计时器, 可实现对一天 24 小时的累计。 显示电路将“ 时” 、“ 分” 、“ 秒” 通

36、过七段显示器显示出来。校时电路时用来对“ 时”、“ 分” 、“ 秒” 显示数字进行校对调整,校时电路时用来对“ 时”、“ 分” 、“ 秒” 显示数字进行校对调整,按一下 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。11 / 29 for(time=30。time0 。time-

37、) for(p=0。p10。p+)。 4.5 主程序和定时器中断子程序#include char mod=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f。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=0 x01。 TH0=(65536-50000)/256 。 TL0=(65536-50000)%256。 EA=1。 ET0=1。 TR0=1。 do kongz

38、hi()。 xianshi()。 while(1)。 在这里,我们有必要介绍一下单片机的中断系统,以利于我们的学习。中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机 CPU的效率,也可以对突发事件处理。所谓中断就是当CPU正在执行程序 A时,发生了另一个急需处 12 / 29 理的事件 B,这是 CPU暂停当前执行的程序A,立即转去执行处理事件B 的程序,处理完事件 B后,再返回到程序 A 继续执行,这个过程被叫做中断。关于中断的概念有下列几个名词: (1)程序 A 称为主程序, (2)处理事件 B 的程序称为中断服务程序, (3)主程序中转向中断服务程序的地方称为断点,(4)引起

39、中断的原因即事件B 称为中断源,(5)转去执行中断服务程序称为中断响应。关于中断的概念可以打个如下的比喻。领导( CPU)在自己的房间办公(执行主程序),下属(外设)有问题打电话来请示(中 断源),领导停下正在进行的工作,通过电话给下属做指示(执行中断服务程序),指示完后,领导挂断电话,继续做自己的工作(返回主程序继续执行)。中断是一个过程,当中央处理器CPU在处理某件事情时,外部又发生了另一紧急事件,请求 CPU暂停当前的工作而去迅速处理该紧急事件。处理结束后,再回到原来被中 断的地方,继续原来的工作。引起中断的原因或发出中断请求的来源,称为中断源。单片机一般允许有多个中断源,当几个中断源同

40、时向CPU请求中断时,就存在CPU优先响应哪一个中断请求源的问题(优先级问题),一般根据中断源的轻重缓急排队,优先处理最紧急事件的中断请求, 于是便规定每一个中断源都有一个中断优先级别,并且 CPU 总是响应级别最高的中断请求。当 CPU正在处理一个中断源请求的时候,又发生了另一个优先级比它高的中断源请求,如果 CPU能够暂时中止对原来中断处理程序的执行,转而去处理优先级更高的中断 源请求,待处理完以后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌 套。4.6LED 显示子程序void xianshi() if(u=20) u=0 。 sceond+ 。 while(sceond=6

41、0) sceond=0 。13 / 29 minute+。 if(minute=60) minute=0。 hour+ 。 if(hour=24) hour=0。 x=hour%10 。 y=hour/10。 l=minute%10 。 j=minute/10。 i=sceond%10 。 k=sceond/10 。 P2=0 x7f 。 P0=modi。 delay()。 P2=0 xbf 。 P0=modk 。 delay()。 P2=0 xdf 。 P0=0 x40 。 delay()。 P2=0 xef 。 P0=modl。 delay()。 P2=0 xf7 。14 / 29 P0=

42、modj。 delay()。 P2=0 xfb 。 P0=0 x40 。 delay()。 P2=0 xfd 。 P0=modx 。 delay()。 P2=0 xfe 。 P0=mody 。 delay()。 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 。 15 / 29 while(P1_1=0)。 if(P1_2=0) sceond-。 if(sceond0) sceond=0 。 while(P1_2=0)

43、。 i=sceond%10 k=sceond/10。 P2=0 x7f 。 P0=modi 。 delay()。 P2=0 xbf 。 P0=modk 。 delay()。 if(P1_0=0) while(P1_0=0)。 while(1) if(P1_1=0) minute+ 。while(minute=60) minute=0 。 16 / 29 while(P1_1=0) 。 if(P1_2=0) minute-。 if(minute0) minute=0 。 while(P1_2=0)。 l=minute%10 。 j=minute/10。 P2=0 xef 。 P0=modl。 d

44、elay()。 P2=0 xf7 。 P0=modj。 delay()。 if( P1_0=0) while(P1_0=0)。 while(1) if(P1_1=0) hour+。 while(hour=24) hour=0 。 17 / 29 while(P1_1=0)。 if(P1_2=0) hour-。 if(hour0 时表示电子钟秒单元数值刷新滞后,即走时误差 为“ 慢” ;反之, S0 表示秒单元数值的刷新超前,即走时误差为“ 快”。本次设计的单片机电子钟系统中, 其误差主要来源包括晶体频率误差, 定时器溢出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,

45、本应这一 秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时 间产生偏差,造成走时误差。6.3 软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可 以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,Keil 软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用 protus 7.5 professional软件,此软件功能强大且操作较为简单,可以很容 易的实现各种系统的仿真。首先打开 protus 7.5 profes

46、sional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制; 绘制好后再选择已经编译好的*.hex 文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。结 论有日子我起初认为单片机是个噩梦,因为自己在单片机这一块存在着太大的缺陷,幸运的是我终于完成了这次考试论文。一开始按照老师布置的流程,一步步去实现那个 目标,找资料,读懂程序,写写流程图,当然不懂就去找李老师,通过自己的勤奋和同 学之间的取长补短,目标一步步的被我找到和实现,时间尽管很短但是我在单片机这一 块的缺陷正在慢慢缩短和知识的不断上升,对单片机也有了很大的兴趣,并且使数字钟 能够顺

47、利运行,完成了预期的目标。从单片机模块数字钟的设计过程中也找到了一些单 片机开发的规律:先了解所有元件的具体内容,从而画出其电路图,使数字钟从简易变 成多功能的方式,虽没有做多功能数字钟,却知晓了其方法。从而让我踏入了单片机应 用领域的第一步。然而在调试过程中有也有许多的不足之处:例如编写调试程序有点不 足。希望能够在以后的不断深入学习中能够弥补自己的不足之处。同时更是朝着单片机 20 / 29 应用领域迈进。当然通过这次的课程设计, 我了解了 Keil C51 集成环境和 PROTEUS 7.5仿真软件的使用,用此软件练习电子时钟的设计。仿真实现了把抽象的东西具体化,把 理论和实际结合起来,

48、更利于对单片机程序的理解掌握。并且,在这次的课程设计中,我知道了,要自己熟练地掌握一个软件,不能光看老师的演示过程,得自己去学习这个 软件,明白每一个步骤的确切含义,自己逐步的亲手去进行演示,这样才能变成自己的 知识来熟练应用。最后谢谢一直为我们默默付出的老师。参考文献( References ):1 于海生微型计算机控制技术M 清华大学出版社 1999-6 2 孙涵芳 MCS-51 系列单片机原理及应用 M 北京航空航天大学出版社1996-4 3 黄正谨综合电子设计与实践M 东南大学出版社 2002-3 4 杨欣等电子设计从零开始 M 清华大学出版社 2005-10 5 谢嘉奎电子线路 M

49、高等教育出版社 2003-2 6 夏路易,石宗义电路原理图与电路设计教程 社2002 Protel 99SEM 北京希望电子出版7 王毓银数字电路逻辑设计 M 高等教育出版社 2004-2 8 邱关源电路 M 高等教育出版社 2003-2 9 The Mathworks,IncMATLAB user S guide1 995 10 The Mathworks,IncMATLAB Referrence guide1 995 11 The Mathworks,IncSignal Processing Toolbox Referrence guide1995 12 TMS320C54x DSP As

50、sembly Language Tools UserS Guide Texas Instruments,2002 21 / 29 附 录图 2-1 单片机 8052 的内部结构,见 6图 2-2 MCS-52 系列单片机的内部结构,见 5图 2-3 单片机的引脚图,见 5图 2-4 上电自动和手动复位电路图,见 8图 2-5 内部和外部时钟方式图,见 8图 3-1 晶振连接的内部、外部方式图,见 10表 3-1 P3 端口引脚兼用功能表,见 12图 3-2 LED 显示器的符号图,见 13图 3-3 共阳式、共阴式 LED 数码管的原理图和数码管的符号图,见 13图 3-4 数码管的硬件连接示意图,见 14图 3-5 按键控制电路的硬件连接图,见 15图 3-6 按键抖动信号波形,见 15图 4-1 主程序流程

温馨提示

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

评论

0/150

提交评论