收藏 分销(赏)

基于单片机的数字时钟.doc

上传人:a199****6536 文档编号:2482022 上传时间:2024-05-30 格式:DOC 页数:35 大小:467KB
下载 相关 举报
基于单片机的数字时钟.doc_第1页
第1页 / 共35页
基于单片机的数字时钟.doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述
泰 山 学 院 本科毕业论文(设计) 基于单片机的数字时钟 张璐 2007080123 专 业 名 称 通信工程 申请学士学位所属学科 工学 指导教师姓名、职称 曹会国副教授 2011 年 5 月 6 日 摘要 本文介绍了多功能数字时钟的系统设计,系统具有时间设置及显示,闹钟等功能。系统以AT89S52为核心,主要进行基于AT89S52低功耗MCU的字符型数字时钟机器系统的研究。系统带有液晶显示器,配合按键提供有好的用户界面,操作简单,该数字时钟能长期,连续,可靠,稳定的工作;同时还具有体积小,功耗低等特点,便于携带,使用方便。系统软件设计包括单片机编程。 系统采用了AT89S52单片机系统来控制系统的工作,采用时钟芯片,这样就可以根据自己和场合的需要实时显示时钟,日历等,如果选用液晶显示电路,还可以进行文字显示,用于温馨提示,消息或新闻的发布等。本处只用蜂鸣器实现半阴的提示功能。该系统由于采用了单片机的软件编程实现控制各模块电路的工作,并且可以通过键盘进行参数的设置,实现了自动控制,使得该系统变得更加完整,功能更多,同时可以进行扩展。 单片机软件编程主要实现按键,液晶显示,时钟,计时,闹钟等模块。 关键词:数字时钟;单片机;液晶显示器。 Abstract This abstract introduced the multi-function digital clock system design, system with time setting and display, alarm clock, and other functions. AT89S52 as the core, system based on major AT89S52 low power consumption MCU character type digital clock machine system is studied. System with LCD, provide a good drink buttons with user interface, simple operation, the digital clock can long-term, continuous, reliable and stable job, It also has the features such as small volume, power consumption, easy to carry, use convenient. System software design including microcontroller programming. Single-chip microcomputer software programming mainly realizes the keys, LCD display, clock, timing, alarm module. Keywords: Digital clock; Single-Chip Microcontroller, LCD monitor. 目录 1.引言 1 1.1毕业设计要求 1 1.2毕业设计目的 2 2.单片机的应用 3 2.1 单片机的应用分类 3 3.数字时钟的构成 4 3.1 数字时钟的构成 4 3.2 方案选择 5 3.3 AT89S52 5 3.3.1 引脚功能及各端口介绍 6 3.3.2 中断 9 3.3.3 单片机存储器结 11 3.3.4 单片机复位电路与时钟电路 12 3.3.5 看门狗定时器 13 3.4 DS1302 的原理及应用 14 3.4.1 DS1302的结构及工作原理 14 3.4.2 引脚功能及结构 14 3.4.3 DS1302的控制字节 16 3.4.4 数据输入输出(I/O) 17 3.4.5 DS1302的寄存器 17 3.5 LCD模块的原理及应用 19 3.5.1 LCD结构及工作原理 19 4.电路设计 22 4.1系统硬件设计 22 4.1.1 结构框图 22 4.1.2工作原理 23 4.1.3 中断方式应注意的问题 24 4.1.4 定时准确性的讨论 24 4.1.5 软件消抖 24 4.2 设计流程 25 4.2.1 数字时钟的操作 25 主要参考文献 28 致 谢 29 1.引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力的推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏越来越快。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法,从前必须有模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了,这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 数字时钟在单片机模块里比较常见,数字时钟是一种用0数字电路技术实现时,分,秒计时的装置,与机械式时钟相比较具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 数字时钟是采用数字电路实现对时,分,秒数字显示的计时器装置,广泛应用于个人家庭,车站,码头,办公室等公共场所,成为人们日常生活中不可缺少的必需品,由于数字集成电路的发展和石英振荡器的广泛应用,使得数字时钟的精度远远 超过老式时钟,它的数字化给人们生产生活带来了极大的方便,而且大大的扩展了钟表原先的报时功能,诸如定时自动报警,按时自动打铃,时间程序自动控制,定时广播,自动开启闭路灯,定时开关烘箱,通断动力设备,甚至各种定时电器的自动启用等,因此,研究数字时钟及扩大其应用,有着非常现实的意义。 1.1设计要求 1.掌握AT89C51实验开发系统中的实验模块原理,画出电路原理图。 2.综合运用实验模块,用89S52开发设计具有一定功能的单片机控制系统,进行软,硬件设计及调试。 3.写出完整的设计任务书,课题的名称,系统的功能,硬件原理图,软件框图,程序清单,参考资料。 4.时间包括年,月,日,星期,时,分,秒的显示。 5.为了保证计时的稳定及准确须由晶体振荡器提供表针时间基准信号。 1.2设计目的 1.巩固加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。 2.培养针对课题需要,选择和查阅有关手册,标记文献资料的自学能力,提高组成系统,编程,调试的动手能力。 3.通过对课题设计方案的分析,熟悉单片机的系统开发,研制的过程,软硬件设计的方法。 2.单片机的应用 2.1 单片机的应用分类 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用   单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中。 2.在工业控制中的应用   用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 3.在家用电器中的应用   可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 4.在计算机网络和通信领域中的应用   现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件。 5.单片机在医用设备领域中的应用   单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 6.在各种大型电器中的模块化应用 某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。 3.数字时钟的构成 3.1 数字时钟的构成 数字时钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间一致,故需要在电路上加一个校时电路,同时标准的1MHZ时间信号必须做到准确稳定,通常使用石英晶体振荡电路构成数字时钟。 (1)晶体振荡电路 晶体振荡电路给数字时钟提供一个频率稳定准确的12MHZ的方波信号,可保证数字时钟的走时准确及稳定,不管是指针式的数字时钟还是数字显示的电子时钟都使用了晶体振荡电路。 (2)时间计数器电路 时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器电路构成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器。 3.2 方案选择 单片机模块选择方案: 方案一:基本门电路搭建,用基本电路来实现数字时钟,电路结构复杂,故障系数大,不易调试。 方案二:单片机编程,用单片机设计电路,由于使用软硬件结合的方式,所以电路结构简单,调试也相对方便。与第一种方案比较优点是非常明显的。我选择了第二种方案。 3.3 AT89S52 AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 3.3.1 引脚功能及各端口介绍 图1 AT89S52引脚 VCC : 电源 GND: 地 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口。P1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。 表1 P1口第二功能 P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P2输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在flash编程和校验时,P3口也接收一些控制信号。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表2所示。 表2 P3口第二功能 RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。 PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。 EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。 在flash编程期间,EA也接收12V VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 3.3.2 中断 AT89S52 有6个中断源:两个外部中断(INT0 和INT1),三个定时中断(定时器0、1、2)和一个串行中断。这些中断源如表3所示每个中断源都可以通过置位或清除特殊寄存器IE 中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。如表3所示,IE.6位是不可用的。对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清零。实际上,中断服务程序必须判定是否是TF2 或EXF2激活中断,标志位也必须由软件清零。定时器0和定时器1标志位TF0 和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2 的标志位TF2 在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。 表3 中断允许控制寄存器(IE) 注:中断允许控制位=1,允许中断 中断允许控制位=0,禁止中断 表4 中断允许控制寄存器的详细说明 图2 中断源 3.3.3 单片机存储器结 MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。 程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA接VCC,程序读写将从内部存储器(地址为0000H—1FFFH)开始,接着从外部寻址,寻址地址为:2000H—FFFFH。 数据存储器:AT89S52有256字节片内数据存储器。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,直接寻址指令MOV 0A0H,#data访问0A0H(P2口)存储单元,使用间接寻址方式访问高128字节RAM。例如,下面的间接寻址方式中,R0内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV @R0,#data堆栈操作也是间接寻址方式。因此,高128字节数据RAM也可用于堆栈空间。 3.3.4 单片机复位电路与时钟电路 复位是单片机的初始化操作,只要给RESET引脚加上两个机器周期以上的高电平信号,就可以使AT89S52单片机复位。复位的主要功能是把程序寄存器(PC)初始化为0000H,使单片机从0000H单元开始执行程序,同时复位操作还对一些寄存器有影响。AT89S52的复位是由外部的复位电路来实现的,复位电路分为上电复位和按键复位两种方式。其电路图3所示, 图3 复位电路 单片机的时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定。常见的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。本系统选用内部时钟方式,AT89S52内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2,这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器,AT89S52时钟电路如图4所示。电路中的电容的取值通常在20pF—30pF之间,对外间电容的值没有严格的要求,但电容的大小会影响振荡器频率的高低和振荡器的稳定性及起振的快速性。由于单片机要进行串行通信,为了获取准确波特率,选择晶振的频率为12MHz。 图4 时钟电路 3.3.5 看门狗定时器 WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作,为了激活WDT,户用必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚一个高个电平输出。 为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H 和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT 溢出。当计数达到8191(1FFFH)时,13 位计数器将会溢出,这将会复位器件。晶振正常工作,WDT激活后,每一个机器周期WDT 都会增加。为了复位WDT,用户必须向WDTRST 写入01EH 和0E1H(WDTRST 是只读寄存器)。WDT 计数器不能读或写。当WDT 计数器溢出时,将给RST 引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。 在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT 喂狗,就如同通常AT89S52 复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。 3.4 DS1302 的原理及应用 3.4.1 DS1302的结构及工作原理 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行充电的能力。 3.4.2 引脚功能及结构 图5为DS1302的引脚排列,其中Vcc2为后备电源,VCC1为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc1大于Vcc2+0.2V时,Vcc1给DS1302供电。当Vcc1小于Vcc2时,DS1302由Vcc2供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),DS1302的引脚及内部结构如图4所示,引脚功能如表5所示 图5 DS1302管脚图及内部结构图 表5 DS1302引脚功能表 3.4.3 DS1302的控制字节 DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 表6 DS1302的控制字节 3.4.4 数据输入输出(I/O)  在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 图6 数据读写时序 3.4.5 DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见图7. 图7 日历,时间寄存器及其控制字 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。DS1302与单片机连接的电路原理图如图7所示。Vcc2在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。Vcc1在双电源系统中提供主电源,在这种运用方式下Vcc2连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。 图8 DS1302与单片机连接图 3.5 LCD模块的原理及应用 3.5.1 LCD结构及工作原理 1602B可以显示2行16个字符,有8位数据总线D0-D7和RS,R/W,EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。该模块也可以只用D4-D7作为四位数据分两次传送。这样的话可以节省MCU的I/O资源。 1602B的引脚说明: 表7 LCD液晶显示器各引脚功能及结构 注意事项:该模块的正面看,引脚排列从右向左为:15脚,16脚,然后才是1-14脚(线路板上已将标明)。 VDD:电源正极,4.5-5.5V,通常使用5V电压; VL:LCD对比度调节端,电压调节范围为0-5V。接正电源时对比度最弱,接地电源时对比对最高,但对比度过高时会“产生鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地; RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平,写入数据; E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。 D0-D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。本充电器就是采用4位数据传送方式; BLA:LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右; BLK:LED背光地端。 图8 LCD与单片机连接图 4.电路设计 4.1系统硬件设计 4.1.1 结构框图 我的数字时钟包括以下几个部分:时钟模块,键盘输入模块,显示模块,计时模块,闹钟模块。为了方便使用,我把数据采集单独使用一个单片机系统,而把时钟闹钟系统由DS1302与单片机设计完成。然后把键盘输入,显示,计时,闹钟等数据通过串行通信传输给单片机进行显示。其总体框图如图9所示 图9 结构框图 该系统采用了AT89S52单片机系统来控制系统的工作,采用时钟芯片,这样就可以根据自己和场合的需要实时显示时钟,日历等,如果选用液晶显示电路,还可以进行文字显示,用于温馨提示,消息或新闻的发布等。本处只用蜂鸣器实现半阴的提示功能。该系统由于采用了单片机的软件编程实现控制各模块电路的工作,并且可以通过键盘进行参数的设置,实现了自动控制,使得该系统变得更加完整,功能更多,同时可以进行扩展。 4.1.2工作原理 图10 设计图 该系统由AT89S52单片机最小系统电路为主要结构,利用其I/O口进行数据的采集和控制。该电路的工作原理是:首先在保证时钟芯片DS1320正常工作的情况下,再通过单片机AT89S52给这个时钟芯片发送各种指令,使它运行或者校正时间,从DS1302内部时钟寄存器里读出时间信息,并把它显示出来。单片机数字时钟要求的基本功能是计时和校时,另外还可以增加闹钟,报警等功能。此时单片机马上读取当前时间,并与之前单片机设定的时间段进行比较,如果发现当前时间落在所设时间段范围内,则向报警电路发出控制信号,把相应时间段的内容送到报音电路,然后由报音电路通过放大电路放大后驱动扬声器,发出相应的声音;若发现当前时间没有落在所设时间段范围内,则不响应该次送进来的中断信号,即后面的全部工作将不再进行下去,而是等待下一个中断信号的过来。 4.1.3 中断方式应注意的问题 有影响的状态位,寄存器,必须恢复为复位状态的值采用中断的方式,最好将定时器中断的优先级设置为最高级,关于程序数据的稳定性应注意两个问题:第一,在低优先级中断响应时,应在入栈保护数据时禁止高优先级的中断响应。第二,在入栈保护有关数据后,对终端程序执行有影响的状态位,寄存器,必须恢复为复位状态的值。 4.1.4 定时准确性的讨论 程序中定时器,一直处于运行状态,也就是说定时器是理想运作的,其中中断程序每隔0.1秒执行一次,在理想状态下,定时器定时是没有系统误差的,但由于定时器中断溢出后,定时器从0开始计数,直到被重新置数,才开始正确定时,这样中断溢出到中断响应到定时器被重新置数,期间消耗的时间就造成了定时器定时的误差。如果在前述定时器不关的情况下,在中断程序的一开始就给定时器置数,此时误差最小,误差大约为每0.1秒,误差7--12个机器周期。当然这是在定时器定时刚好为0.1秒时的情况,由以上分析,如果数字时钟设计为查询的方式或是在中断的方式下将定时器中断设置为最高级,我们在定时值设置时,可以适当的扣除9个机器周期的时间值。但如果在中断的情况下,没有将定时器中断设置为最高级,那就要是中断程序的大小,在定时值设置时,扣除响应的时间值。 4.1.5 软件消抖 消抖可以采用硬件(施密特触发器)的方式,也可以采用软件的方式。在此只讨论软件的方式。软件消抖有定时器定时和利用延时子程序两种方式。第一种,定时器定时消抖可以不影响显示模块扫描速度,其实现方法是:设置标志位,在定时器中断中将其置位,然后在程序中查询。将其中断优先级设置为低于时钟定时中断,那么它就可以完全不影响时钟定时。第二种,在采用延时子程序中,如果显示模块的扫描速度本来就不是很快,此时可能会影响到显示的效果,一般情况下,每秒的扫描次数不应小于50次,否则,数码的显示会出现闪烁的情况。因此,延时子程序的延时时间应该小于20毫秒,如果采用定时器的方式,延时时间不影响时钟。如果,设置时采用的是中断的方式来完成有关操作,同样可以采用软件的方式来消抖,其处理思想是中断不能连续执行,两次之间有一定的时间间隔。 4.2 设计流程 4.2.1 数字时钟的操作 采用主从两个单片机系统,从系统对各个参数进行测量计算,然后以串行通信传送到上位机,进入下一轮检测。当主系统需要显示这些参数时,允许接收数据,然后进行处理显示。主系统中,初始化结束后,读DS1302内部时间数据并显示,然后进行按键判断,对按键请求进行进行处理,结束之后,程序回到读DS1302时间数据处形成循环。共三个键,低电平有效, P1.0口表示功能移位键,按键选择要调整的年,月,日,星期,小时,分钟,背光灯,闹钟。 P1.1口表示数字“+”键,按一下对应数字加1 P1.2口表示数字“-”键,按一下对应数字减1 模式选择: 状态0:model=0,数字钟正常时钟显示状态。 状态1:model=1,进入时,分,秒的调整。 状态2:model=2,进入年,月,日,星期的调整。 状态3:model=3,进入闹钟的设置。 状态4:model=4,进入背光灯的设置。 状态5:model=5,时间清零。 状态6:model=6,退出系统设置。 在模式一中,可用KEY1和KEY2分别对时,分,秒的数字进行加减设置,利用模式键更改设置对象,且设置对象将处于闪烁状态,完后可退出。 在模式二中,可用KEY1和KEY2分别对年,月,日,星期,时,分,秒的数字进行加减设置,利用模式键更改设置对象,且设置对象将处于闪烁状态,完后可退出。 在模式三中,可对闹钟的开关进行设置,当启动闹钟定时时进入时间选择模式,再次对所设定的时,分,秒进行设置。 在模式四中,对背光灯的亮度进行调节,强弱共有十级。 在模式五中,时间可清零,即读取DS1302中的初始值。 选择模式六即可退出系统设置。 图11 数字钟运行流程图 结语 本课题利用DS1302做实时时钟,利用单片机来实现一个数字时钟。通过这次设计我受益匪浅。毕业设计是四年大学学习的大综合;是一场综合的考试,是一次社会的实践,设计所涉及到的东西是前所未有的,要求知识的综合性较高,各方面都要用到一点,而我的知识又不能达到这样的要求,但是在困难面前没有低头,而是通过各方面的渠道来弥补。这恰恰就是我们在平时里没有注意到的自学能力,通过这次设计,培养了自学能力,为以后的继续学习打下基础。 由于单片机技术发展已经成熟,我更多的是借鉴前人的工作来完善设计。当然,我在前人的基础上向前走了一步,无论是元器件的选择还是程序的设计,都比他们做的复杂,这并不是简单意义上的重复,而是消化吸收和创新。 在设计的过程中,我一方面澄清了先前的一些错误理解,另一方面也真正的体会到了书本知识转化为实践时的困难,往往很不起眼的一件事,就是设计的关键,必需得搞清楚。为了查找相关的技术文献资料,我上网,上学校图书馆,虽然辛苦但令人欣慰的是学到了很多书本上没有的东西,同时也掌握了一些设计的方法。 三个月的时间很短,我的能力也有限,很可能设计中也存在这样或那样的不足,希望各位多多批评斧正。 主要参考文献 【1】胡乾斌 李光斌 李玲 喻红.单片机微型计算机原理及应用[M].华中科技大出版社.2005年8月第2版 【2】任为民.电子技术基础课程设计[M].中央广播电视大学出版社.1997年5月第1版 【3】谭浩强.C程序设计(第2版)[M].清华大学出版社.1999年12月第2 版。 【4】赵亮,侯国锐.单片机C语言编程与实例[M].北京人民邮电出版社.2003年 【5】范风强,兰婵丽.单片机语言C51应用实战集锦[M].电子工业出版社 【6】刘振海.单片机原理及应用技术[M].北京高等教育出版社,2003 【7】于复生,宋现春等.时钟芯片DS1302及其在数据记录中的应用 电子技术应用[M].2000年3月 【8】李宏.液晶显示器件应用技术[M].北京机械工业出版社,2004 【9】John P.Uycmura.数字系统设计入门教程——集成方法(英文影印版)[M].科学出版社.2002年3月第1版。 【10】张景元.基于单片机的多用途定期的设计与实例[M].电子工程师 2000年第8期 【11】李洪涛.一种单片机控制的定时打铃器.电子世界[M].1990年第2期 【12】何业军,李超.基于单片机控制的高精度定时打铃器的设计[M].沈阳航空工业学院学报.2004年6月第21卷第3期 【13】ATMEL.Microcontroller[M],Data book,2002 【14】范立南.单片机微机接口与控制技术[M].沈阳辽宁大学出版社 1996 【15】张友德.单片机微机原理应用与实践[M].上海复旦大学出版社,1992 【16】李华.MCS-51系列单片机实用接口技术[M].北京航天航空大学出版社,1993年 【17】沈红卫.单片机应用系统设计实例与分析[M].北京航天航空大学出版社,2002 致 谢 在本文即将完成之时,首先感
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服