基于At89C系列的电子万年历毕业设计论文_第1页
基于At89C系列的电子万年历毕业设计论文_第2页
基于At89C系列的电子万年历毕业设计论文_第3页
基于At89C系列的电子万年历毕业设计论文_第4页
基于At89C系列的电子万年历毕业设计论文_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1 扬扬 州州 市市 职职 业业 大大 学学 毕毕 业业 设设 计计(论论 文文) 设计(论文)题目:基于基于 At89CAt89C 系列的系列的 电子万年历电子万年历 系别:电子工程系1 专业:通信工程1 班级:07级 姓名:李永 学号:07060203121 指导教师:乔有田 完成时间:2010年5月 2 摘要摘要 在当代繁忙的工作与生活中在当代繁忙的工作与生活中, 时间与我们每一个人都有非常密切的关系时间与我们每一个人都有非常密切的关系, 每个人都受到时间的影响。我们必须对时间有一个度量,因此产生了钟表。每个人都受到时间的影响。我们必须对时间有一个度量,因此产生了钟表。 钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式 钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能计时,只计时,只 是工作原理不同而已是工作原理不同而已,在人们的使用过程中在人们的使用过程中,逐渐发现了钟表的功能太单一逐渐发现了钟表的功能太单一, 没有更大程度上的满足人们的需求。因此在这里,我想能不能把一些辅助功没有更大程度上的满足人们的需求。因此在这里,我想能不能把一些辅助功 能加入钟表中去。在此设计中所设计的钟表具有钟表的功能。能加入钟表中去。在此设计中所设计的钟表具有钟表的功能。 本系统采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部本系统采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部 分大为简化分大为简化,提高了系统稳定性提高了系统稳定性,并采用并采用 LCD 显示电路显示电路、键盘电路键盘电路,本方案本方案 设计出的万年历可以显示日期时间、农历,设置闹铃功能。设计出的万年历可以显示日期时间、农历,设置闹铃功能。 In busy job of the present age and life, time has very close something to do with all of us , everyone all accepts the time effect. we must have a magnanimity to time , have produced clock and watch therefore. Development of clock and watch is very prompt , use clock and watch to the digital from just originally mechanical dyadic clock and watch to now commonly, even if now clock and watch is exceedingly strange, they accomplish but one kind of time function of function all only , are only operating principle diversity, in the process of peoples usage, the function having discovered clock and watch gradually is very unitary, need not having the satisfied people on bigger degree. Want to be able to I put some auxiliary function in going to in clock and watch therefore in here. Function designing that middle what be designed that clock and watch has average clock and watchs . And the monolithic machine technology that this system has adopt to use broad usage has been that core , soft hardware combine , the hardware part has facilitated a messenger extremely , has raised system stability, adopt LCD demonstrates circuit , keyboard circuit , The perpetual calendar that the scheme designs out can demonstrate date time , unar calendar , set up the noisy bell function. 关键字:关键字:AT89C52、字符液晶显示模块、DS1302 3 目目录录 摘要2 关键字2 第一章第一章 概概 述述4 1.1 课题的背景研究意义4 1.2 本课题实现的功能及要求4 1.3 方案论证4 1.4 章节安排4 第二章第二章 系统硬件设计系统硬件设计 2.1 硬件电路设计总框图5 2.2 主控制器 AT89C52 的介绍5 2.3 其余应用电路的介绍8 第三章第三章软件设计软件设计 3.1 软件设计总述13 3.2 程序模块介绍13 第四章第四章调试和总结调试和总结 4.1 硬件调试20 4.2 软件调试20 4.3 联调21 第五章第五章心得体会心得体会22 参考文献参考文献 附录一 汇编源程序23 附录二 仿真电路图35 附录三 参考文献36 4 第一章第一章概述概述 1.11.1 课题的背景、研究意义课题的背景、研究意义 随着电子技术的迅速发展,时间的流逝,从观察太阳、摆钟到现在的电子钟, 人类不断研究、不断 创新。现市场的电子钟具有低功耗的实时时钟电路,它们可以对年、月、日、周日、时、分、秒进行计 时,还具有润年补偿等功能,且使用寿命长、误差小、使用方便。电子万年历的出现给人们的生活带来 的诸多方便。目前,国际上的电子万年历正从模拟式向数字式、由集成化向智能化的方向飞速发展。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电 子仪器仪表的发展趋势,具有广阔的市场前景。 1.21.2 实现的功能及要求实现的功能及要求 ()基本要求()基本要求 具有年、月、日、星期、时、分、秒等功能; 具备年、月、日、星期、时、分、秒校准功能 。 校准时具有闪烁功能。 ( ( 2 2 ) ) 创新要求创新要求 1具有上、下课响铃功能; 1.31.3 方案论证方案论证 显示模块选择方案和论证:显示模块选择方案和论证: 方案一:采用 LED 数码管动态扫描,LED 数码管价格适中,对于显示数字最合适,而且采用动态扫描 法与单片机连接时,占用的单片机口线少。但这里显示位数多,所要求的数码管多,成本更高。 方案二:采用 LCD 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可 见,虽价格昂贵,但接口线多,所以在此设计中采用 LCD 液晶显示屏。 时钟芯片的选择方案和论证:时钟芯片的选择方案和论证: 方案一:采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、 时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,结构简单。所以采用 DS1302 时钟芯片。 方案二:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。 采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。且算法复杂,所以不采用 此方案。 经论证本次设计采用采用 AT89S52 作为主控制系统; DS1302 提供时钟; 采用 LCD 液晶作为显示。 1.41.4 章节安排章节安排 第一章概述 第二章系统硬件设计 第三章系统软件设计 第四章调试 第五章心得体会 5 第二章第二章系统硬件设计系统硬件设计 2.12.1 硬件的设计总框图硬件的设计总框图 本次设计的基于单片机控制的电子万年历,其具有年、月、日、星期、时、分、秒的显示等功能; 具有时间与阴、阳历能够自动关联;可以设置闹铃的功能。其具体实现过程就是由主控制发送信息给 DS1302 时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给 LCD 显示信息。并且可以在键盘设 置模块输入修改时间,设置闹铃等信息,当键盘设置时间、日期时,单片机主控制根据输入信息,通过 串口通信传送给 DS1302 时钟芯片,DS1302 芯片读取当前新信息产生反馈传送给单片机,然后单片机根 据控制最后输送显示信息到 LCD 模块上显示。 2.22.2 主控制器主控制器 AT89C52AT89C52 介绍介绍 1 1AT89C52AT89C52 功能介绍功能介绍 AT89C52 是 8 字节 FLASH 闪速存储器,256 字竹内部 RAM , 32 个 I/O 口线,3 个 16 位定时计 数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c52 可降至 OHz 的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止 CPU 的工作,但 允许 RAM,定时计数器串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器 停止工作并禁止其它所有部件工作直到下一个硬件复位. 2.2.功能引脚说明:功能引脚说明: Vcc:电源电压 GND:地 P0:P0 口是一组 8 位漏极开路型双向 1/O 口,也即地址/数据总线复用口。作为输出口用时每 位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问 期间激活内部 上拉电阻。 在 FLASH 由编程时,P0 口接收指令字节,而在程序校验时,输出指令字 节,校验时,要求外接 上拉电阻。 P1 口:PI 是一个带内部上拉电阻的 8 位双向 I/O 口,Pl 的输出缓冲级可驱动(吸收或输出电流 4 个 TTL 逻辑门电路。对端口写“1” ,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作 输入口使用时,因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流 IIL 与 AT89C51 不同之处是,Pl.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(Pl.0/T2 )和 输入(P1.1/T2EX) , FLASH 编程和程序校验期间,Pl 接收低 8 位地址。 PI.O 和 PI.l 的第二功能: P2 是一个带有内部上拉电阻的 8 位双向 I/O 口, P2 的输出缓冲级可驱动 (吸收或输出电流) 4 个 TTL 逻辑电路。对端口 P2 写“l,通过内部的上拉电阻把端口拉到高电平,此时可作输入口, 6 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(llt ) 。 在访问外部程序存储器或 16 位地址的外部数据存储器,P2 送出高 8 位地址数据。 在访问 8 位地址的外 部数据存储器、如执行 MOVXRI 指令)时,P2 口输出 P2 锁存器的内容。 FLASH 编程或校验时,P2 亦接收高位地址和一些控制信号。 P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电 流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时, 被外部拉低的 P3 口将用上拉电阻输出电流(IIL) . P3 口除了作为一般的 I/0 口线外,更重要的用途是它的第二功能,如下表所示: P3.0 RXD(串行输入口 P3.1 TXD(串行输出口 P3.2 INTO(外中断 0 P3.3 INTO(外中断 l) P3.4 TO (定时计数器 0 ) P3.5 Tl (定时计数器 l ) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3 口还接收一些用于 FLASH 闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的 低 8 位字节一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟 或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程 期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单 元的 D0 位置位可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活,此外,该 引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN:程序储存允许 PSEN 输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取 指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储 器,将跳过两次 PSEN 信号。 EA/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH ) , EA 端必须保 持低电平(接地) 需注怠的是:如果加密位 LBI 被编程,复位时内部会锁存 EA 端状态。 3 3最小系统最小系统 单片机最小系统包括时钟电路、电源和复位电路等,是单片机工作的基本要求。单片机控制整个系 统的工作,一方面读取日历时钟芯片中的日期等数据,检测是否需要设置,并处理相应的按键。另一方 面,控制显示器的工作,将各种数据送到液晶显示器去显示。 7 (1 1)时钟电路时钟电路 80C52 型单片机内有一增益反相放大器, 振荡频率取决于石英晶体的振荡频率。 范围可取 1。 212MHZ,C01、C02 主要起频率微调和稳定作用。 (2 2)复位电路复位电路 单片机在开关机时都需要复位,以便中央处理器 CPU 及其他功能部件都 RC 构成处于一个确定 的初始状态,并从这个状态开始工作。80C51 的 RST 引脚是复位信号的输入端。复位信号高电平 有效,持续时间需要 24 个时钟周期以上。 RC 构成微分电路,在接电瞬间,产生一个微分脉冲,其宽度若大于 2 个机器周期,80C51 型 单片机将复位。为保证微分脉冲宽度足够大,RC 时间常数应大于 2 个机器周期。一般取 10uF 电 容、8.2K 欧姆电阻。 4 4振荡器特性:振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡 8 和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一 个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.32.3 其余电路介绍其余电路介绍 2.3.12.3.1 显示电路显示电路 液晶显示器的接口有两种:一种是总线式接口电路方式;另一种是非总线接口电路方式。总线式 接口方式是把液晶显示器看做外部的数据存储器,访问液晶显示器就像访问数据存储器的一个单元一 样,采用这种方式能充分发挥单片机的总线读写功能,便于升级和扩展。而非总线方式是直接利用 IO 口进行读写,较灵活,不便于升级。这里采用总线式接口方式。接口时要注意显示器的功能信号 E 是高 电平有效,所以要取反。这里使用的液晶显示器为 LCD1602 为字符点阵式液晶显示器。可以显示 162 个字符,而要显示日期字符有 23 个,可以满足要求。 1 1、LCDLCD 模块接口引脚功能模块接口引脚功能 液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应 用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。 这里向大家介绍一款LCD1602液晶显示模块,它可以显示两行,每行16个字符,采用单+5V电源供电,外 围电路配置简单,价格便宜,具有很高的性价比。 9 2.2. 硬件电路硬件电路 DS1302 的 4、5、6 的三个管脚是其控制位。其 7、8、9、10、11、12、13、14 管脚是总线接口。1 管脚是电源地。2 管脚是电源接口。 3 3、LCD1602LCD1602 与与 AT89c52AT89c52 的接口的接口 AT89c52 的 P1 口直接与液晶模块的数据总线 D0D7 相连;P2 口的 0,1,2 脚分别与液晶模块的 RS、 RW、E 脚相连。滑动变 阻器用于调整液晶显示的亮度。 液晶显示器的接口有两种:一种是总线式接口电路方式;另一种是非总线接口电路方式。总线式接 口方式是把液晶显示器看做外部的数据存储器,访问液晶显示器就像访问数据存储器的一个单元一样, 采用这种方式能充分发挥单片机的总线读写功能,便于升级和扩展。而非总线方式是直接利用 IO 口进 行读写,较灵活,不便于升级。这里采用总线式接口方式。接口时要注意显示器的功能信号 E 是高电平 有效,所以要取反。这里使用的液晶显示器为 LCD1602 为字符点阵式液晶显示器。可以显示 162 个字 符,而要显示日期字符有 23 个,可以满足要求。 2.3.22.3.2 时钟电路时钟电路 DS1302 的引脚排列,其中 Vcc1 为后备电源,VCC2 为主电源。在主电源关闭的情况下, 也能保持时钟的连续运行。DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电。当 Vcc2 大于 Vcc1 0.2V 时,Vcc2 给 DS1302 供电。当 Vcc2 小于 Vcc1 时,DS1302 由 Vcc1 供电。X1 和 X2 是振荡源,外接 32.768kHz 晶振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动 所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移 位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所有的 数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电平,则会终止 此次数据传送,I/O 引脚变为高阻态。上电运行时,在 Vcc2.0V 之前,RST 必须保持低电平。 只有在 SCLK 为低电平时,才能将 RST 置为高电平。I/O 为串行数据输入输出端(双向),后面有 详细说明。SCLK 为时钟输入端。 下图为 DS1302 的引脚功能图: (一)引脚功能(如图 6) 10 VCC1VCC2:电源引脚 。 其中 VCC2 接主电源 VCC1 接备用电源。 GND:接地。输出数据。 X1、X2:32.768kHz。晶振引脚。 RST为复位端, 高电平时允许IO端进行数据传输, 低电平则禁止数据传送且使IO端呈高阻状态; IO为串行数据输入、输出端,所有输入、输出数据的传送顺序均以最低位LSB打头,最高位MSB结束; SCLK为同步时钟脉冲端, 其上升沿将IO端数据按位写入DS1302, 下降沿使DS1302按位输出数据至IO 端;VCC2、VCC1为主电源和备份电源端,当主电源VCC2大于备份电源VCC1+02V时,由VCC2对芯片供电, 否则,由VCC1对芯片供电。工作电压范围为2555 V,工作电源和备份电源双引脚输入,功耗很低, 当工作电压为25 V时正常工作,所需电流不超过300 nA。另外,如果选择了涓流充电功能,在正常情 况下,主电源还可对备份电源进行慢速充电,有效延长了备份电源的使用寿命,保证了系统时间的连续 可靠运行。 内部有振荡器。若采用外部振荡信号时。32768Hz的信号从 X1脚输入x2脚悬空。CE:片选端, 高电平有效 , 在有些早期资料中该引脚标成爪ST, 实际功能一样。 CE端接通控制逻辑, 当其为 0” 时 , IO引脚变为高阻截状态,所有的数据传送中止,当其为1时,允许数据传送。CE由0至1时。 SCIX必须为“0” 。 DS1302 的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及 RAM 组成。每 次操作时,必须首先把 CE 置为高电平。再把提供地址和命令信息的 8 位装入移位寄存器。数据在 SCLK 的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始 8 位将 指定内部何处被进行访问。在开始 8 个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随 其后的时钟在读操作时输出数据. 2.3.32.3.3 串口电路串口电路 DS1302 与微处理器的接口电路如下图所示。该微处理器采用宏晶科技推出 AT89C51 单片机作为主 控芯片,该产品具有片内资源丰富、超强抗干扰、高抗静电、超低功耗、宽电压、不怕电源抖动、在系 统可编程、加密性强、无法解密、可降低单片机时钟对外部电磁辐射等特点,其良好的性能保证了各个 器件的协调可靠工作及控制要求。在电路中单片机的 P17 控制 DS1302 的复位输入端,P14 与数据 输入输出引脚相连,P13 用来作为 DS1302 的输入时钟 SCLK 控制端。由于单片机复位时,所有单片 机的端口均为高电平,如果直接用单片机的某一口线同 DS1302 的 RST 相连,则影响了系统加电时对 DS1302 的初始化,从而造成 DS1302 计时的不稳定。因此,本主电源(5 V)接 VCC2,备份电池采用可充 电镉镍电池(36 V)接 VCC1,可启用内部涓流充电器在主电压正常时向电池充电,以延长电池使用时 间。 备份电池也可用 1 微法以上的超容量电容代替, 但需要注意的是备份电池电压应略低于主电源工作 电压。 11 2.3.42.3.4 键盘设置电路键盘设置电路 1. 键盘接口介绍键盘接口介绍 (1)独立式键盘独立式键盘 独立式键盘是指直接用 I/O 口线构成单个按键电路,每个按键占用一条 I/O 口线,当 某个键闭合时,相应的 I/O 口线变为低电平,当 CPU 查询到为低电平的 I/O 口线时,就可 以判别出与其对应的键处于释放状态。 (2)行列式键盘行列式键盘 将 I/O 口线的一部分作为行线,另一部分作为行线,按键设置在行线的交叉点上。CPU 通过其电平的高低来判别键是否被按下。 但每根线上接有 4 个按键, 任何键按下都有可能使 其电平变低,到底是哪个键按下呢?这是采用了“时分复用”的方法,即在一个查询周期里 把时间分为 4 个间隔,每个时间间隔对应一个键,在哪个时间间隔查到低电平,则代表是与 之相对应的键被按下。时间间隔的划分是通过列线 P1.4P1.7 来实现的。 依次使列线 P1.4P1.7 中的一根输出为低电平,则只有与之对应的键按下时,才能使 行线为低电平,此时其他列线都输出高电平,与它们对应的键按下,不能使行线电平变低, 所以就实现了行线的时分复用。 由于行列式键盘的按键数量比较多,为了使程序简洁,一般在键处理程序中,给予每个 键一个键号, 由从列线 I/O 口输出的数据和从行线 I/O 口读入的数据得到按键的键号, 然后 由该键号通过散转表进入各按键的服务程序。 2 2设置电路介绍设置电路介绍 设置电路的功能主要是把时间和日期设置到当前的时间,可以在系统运行中进行。用 4 个独立式 按键完成,分别接到单片机 P1 口的高 4 位。第 1 个按钮表示是否进行设置,按下时表示设置,并且每 按一次,在显示器上分别在年、月、日等日期时间上跳转,表示对相应的项进行更改;第 2 个按钮按下 表示对第 1 个按钮选中的项进行加 1 操作; 第 3 个按钮按下表示进行减 1 操作; 第 4 个按钮按下表示停 止设置。只有在第 1 个按钮按时才可进行加减操作。其电路如图 3 所示。其中电容的作用是消除按键的 抖动,也可用双稳态触发器去除按键时的抖动,同时为了提高可靠性,硬件去抖动的同时,还可以用软 件去抖动的方法。 12 13 第三章第三章系统软件设计系统软件设计 3.13.1 软件设计总述软件设计总述 系统软件设计主要包括主程序设计、日期数据采集子模块程序设计、按键处理子模块程序设计和 显示子模块程序设计等。主程序主要完成器件的初始化,并判断有无按键按下,并根据判断的结果调用 相应的子模块程序;日期数据采集子模块程序完成相应的数据采集、处理和保存 ,按键处理子模块程 序完成日期的设置,而显示子模块程序只要把上述子模块储存的数据送去显示即可。 程序流程图程序流程图 3.23.2 程序模块介绍程序模块介绍 3.2.13.2.1 显示模块显示模块 1.LCD16021.LCD1602 的指令系统的指令系统 液晶模块内部的控制器共有 11 条控制指令,如表 1 所示, 14 指令 指令码 说明 RS R/WD0 D1 D2 D3 D4 D5 D6 D7 清屏0000000001清显示,光标回位 光标返回000000001*ADD=0 时,回原位 输入方式00000001I/DS决定是否移动以及移动方向 显示开关000001DCBD-显示,C-光标,B-光标闪烁 移位000001S/C R/L*移动光标及整体显示 功能设置00001DLNF*DL-数据位数,N-行数,F-字体 CGRAM 地址设置0001A5A4A3A2A1 A0设置 CGRAM 的地址 DDRAM 地址设置001A6 A5A4A3A2A1 A0设置 DDRAM 的地址 忙标志/读地址计数器01BF AC6AC5 AC4AC3AC2 C1 AC0读出忙标志位(BF)及 AC 值 CGRAM/DDRAM 数据写10写数据将内容写入 RAM 中 CGRAM/DDRAM 数据读11读数据将内容从 RAM 中读出 补充说明 I/D:1-增量方式、0-减量方式 S:1-位移 S/C:1-显示移位、0-光标移位 R/L:1-右移、0-左移 DL:1-8 位、0-4 位 N:1-2 行、0-1 行 F:1-5X10 字体、0-5X7 字体 BF:1-正在执行内部操作、0-可接收指令 DDRAM:显示数据 RAM CGRAM:字符发生器 RAM ACG:CGRAM 地址 ADD:DDRAM 地址及光标地址 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明:1 为高电平、0 为低电平) 指令 1:清显示,指令码 01H,光标复位到地址 00H 位置 指令 2:光标复位,光标返回到地址 00H 指令 3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S: 屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 指令 4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 指令 5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 指令 6:功能设置命令 DL:高电平时为 4 位总线,低电平时为 8 位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示 5x7 的点阵字符,高电平时显示 5x10 的点阵字符 指令 7:字符发生器 RAM 地址设置 指令 8:DDRAM 地址设置 指令 9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令 或者数据,如果为低电平表示不忙。 15 指令 10:写数据 指令 11:读数据 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志 为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告 诉模块在哪里显示字符,表 2 是 HS162-4 的内部显示地址. 显示位置12345678910111213141516 第 1 行808182838485868788898A8B8C8D8E8F 第 2 行C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF 即,第 1 行的显示地址应为:80H+显示位置;第 2 行的显示地址应为:C0H+显示位 置。 2.2. 控制器接口时序说明(控制器接口时序说明(HD44780HD44780及兼容芯片)及兼容芯片) 读操作时序读操作时序 写操作时序写操作时序 16 3.3. 液晶程序液晶程序 初始化初始化 设置工作方式设置工作方式 确定当前设置确定当前设置 位置位置 液晶显示液晶显示 结束结束 4.4.子程序流程图子程序流程图 17 3.2.23.2.2 时钟模块设计时钟模块设计 对年、月、13、时、分、秒进行计时 1.1.编程思想编程思想 DS1302 所进行的一切工作必须先由 CPU 向 DS1302 发送命令字节, 命令字节格式如图 3 所示。 各 位定义如下:命令字节的最高位 7 必须为 “1” ,否则禁止对 DS1302 进行操作。第 6 位是时 钟日 历或 RAM 选择位,如它为 “1, ,可对 内部 RAM 读写,如它为“0”可对时钟日历操作。此处所谓 日历型数据即数据格式为压缩型 BCD 码, 且数值必须在它的定义域内; 例如, “月份” 的定义域 为 1 12, “秒”的定义域为 059 等等。所谓 RAM 型数据 即指一般 16 进制数据。位 5 至位 1 为 DS1302 内部寄存器地址。DS1302 有单字节和多 字节两种读、写方式。所谓单字节读、写方式即每 次只能从 DS1302 中读、写 1 字节数据。所谓多字节读、写方式则每次可从 DS1302 中连续读、写若干字节数据。 当位 5 至位 1 各位均为“1”时,DSI302 为多字节读、写方式。最低位 0 为“0”表示写操作,否则 为读操作。命令字节的传输都是从最低位开始。 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式,其日 历、时间寄存器及其控制字见表。DS1302 所有的时间数据都放到数据寄存器中: 18 2.2. 读,写时序读,写时序 DS1302 采用串行方式与微控制器通讯。在片选信号 RST 变为高电平后,可向芯片发送指令及读取 数据。DS1302 的命令字的传输从最低位开始。当对 DS1302 进行写数据时,首先发写控制指令,在控制 指令字输入后的下一个 SCLK 时钟的上升沿,数据被写入 DS1302,数据输入从低位即位 0 开始。当对 DS1302 进行读数据时,首先发读控制指令,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿 读出 DS1302 的数据,读出数据时从低位 0 位至高位 7。注意在 SCLK 为高电平期问,不能读 I0 线, 此期间 lO 端为高阻状态。因此,在程序设计时应保证在 SCLK 上升沿之前读 IO 线,即可正确读 出时钟数据。 DS1302 的读,写时序如网所示。输入数据时在 SCLK 上升沿 砌 输入的数据位被有效接受输 出数据时,在 SCLK 下降沿时砌 输出数据位。要注意的是在读 DS1302 时当 8 位命令字写入后紧跟 着的第一个下降沿芯片即开始输出数据。 3.3.时钟子程序设计时钟子程序设计 实时时钟软件首先应将 Et 历信息初值秒、分、时、日、月、星期、年等按序写入到 DS1302 相关寄存器中,此后,时钟便以此初值为基准进行计时,只要主电源 VCC2 和备份电源 VCC1 尚有一个 工作正常,则计时就不会终止。初始化 El 历信息程序分为三部分: (1)发送“解除写保护”命令字 8EH 和内容 COH,以开放 DS1302 写操作。 (2)发送 “涓流充电” 命令字 90H和内容 A7H, 以开放 DS1302内部 充 电 电路。 本 系统 选择DSI302 19 内部充电电路为一只串联二极管和 8kn 限流电阻,因此常规情况下,主电源 VCC2 对备份电源 VCC1 之 最大充电电流为 Imax:(VDD 一二极管压降)限流电阻一(5-07)-8=0538mA。 (3)发送“多字节写 日历型数据”或“单字节写日历型数据”命令字写入日历信息初值。上述第 1、 第 2 部分属于对 DS1302 内部功能寄存器操作,因此必须以“单字节”方式进行发送;而第 3 部分属于 对 DS1302 一般寄存器操作,故可以采用“多字节”方式发送,以便提高效率。同时, 在仪表工作过 程中需要读取时间日历信息时,可根 据具体需要采用“多字节”方式或“单字节”方式。这里,无论 采用“单字节”还是“多字节”方式,能否 可靠、准确地读出这些信息,其技术关键是和硬件密切相 联的 DS1302 读写驱动程序的设计。该驱动程序的功能是产生正确的同步时钟脉冲,并在同步时钟脉冲 上升沿将数据按位写人 DS1302 或在同步时钟脉冲的下降沿按位从 DS1302 中读出日历型数据,从而完 成 1 字节数据的发送或接收。对于“多字节”方式,只需改变命令控制字和增加循环次数即可完成多 字节的连续读写。 (4)流程图 20 3.2.33.2.3 键盘模块设计键盘模块设计 1.程序流程图程序流程图 2.出现的问题出现的问题 键的消抖键的消抖 理想的按键信号是方波形,是一个标准的负脉冲,但实际情况并非如此。按下和释放都需要经 过一个过程才能达到稳定,这一过程是处于高低电平之间的一种不稳定状态,称为抖动。抖动持续 时间的长短、频率的高低与按键的机械特性及人的操作有关,一般在 510ms 之间。这就有可能造 成 CPU 对一次按键过程做多次处理。为了避免这种情况的发生,应采取措施消除抖动。消除抖动的 方法有两种,一种是采取硬件来实现,如用滤波器电路、双稳态电路等。 一键一操作一键一操作 一键一操作的原理就是当按键按下再弹起时才会有数据传送给主控制器, 所以在程序中要有指 令,否则会引起误操作,从而成为一键几操作的现象。 21 第四章第四章调试调试 系统调试包括硬件调试和软件调试。 硬件调试的任务是排除系统的硬件电路故障, 包括设计性错误 和工艺性故障。软件调试是利用开发工具进行在线仿真调试,处发现和解决程序错误外,也可以发现硬 件故障。 4.14.1 硬件调试硬件调试 单片机应用系统的硬件调试和软件调试十分不开的,许多硬件故障时在调试软件时发现的,但通常 是先排除系统中明显的硬件故障后,在和软件结合起来调试。 (1)常见的硬件故障 逻辑错误。 样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的, 包括 错线、开路和短路等几种,其中短路是最常见的故障。当某一元件虚焊或短路时电路都无法调试成 功。 元器件失效。元器件失效的原因有两个方面:一是器件本身已经损坏或性能不符合要求;二 是由于组装错误造成的元器件失效,如电解电容、二极管的极性错误或集成块安装方向错误等。 可靠性差。引起系统不可靠的因素很多,如接插件接触不良会造成系统时好时坏,内部和外 部的干扰、 电源纹波系数过大或器件负载过大等造成逻辑电平不稳定, 另外走线和布局不合理等会 引起系统的可靠性差。 电源故障。若样机中存在电源故障,则加点后将造成器件损坏。电源故障包括电压值不符合 设计要求、电源引出线和插座不对应、电源功率不足和负载能力差等。 (2)硬件调试方法 联机调试。 通过脱机调试可排除一些明显的硬件故障, 有些硬件故障需要通过联机调试才能 发现和排除。通电后,执行读写指令,对用户样机的存储器、I/O 端口进行读写和逻辑检查等操作, 用示波器等设备观察波形(如输出波形、读/写控制信号、地址数据波形和有关控制电平) ,通过波 形的观察分析,发现和排除故障。 脱机调试。 脱机调试实在样机加电之前, 先用万用表等工具, 根据硬件电气原理图和装配图, 仔细检查样机线路的正确性,并核对元器件的型号、规格和安装是否符合要求。 特别注意电源的走线, 防止电源之间的短路和极性错误, 重点检查系统的总线或其他信号线之 间是否存在相互的短路。 样机所用的电源,事先必须单独调试后才能加到系统中。在不差芯片的情况下,加电检查各插 件上引脚的电位是否正常,仔细测量各点电位是否正常,尤其应注意单片机插座上的各点电位是否 正常。 4.24.2 软件调试软件调试 软件调试方法与选用的软件结构和程序设计技术有关。 如果采用模块设计技术, 则逐个模块调好以 后,再进行系统程序总调试。 对于模块结构程序,要对子程序逐个进行调试。调试子程序是,一定要符合入口条件和出口条件, 调试手段可采用单步运行方式和断点运行方式,通过检查用户系统 CPU 的现场、RAM 的内容和 I/O 口的 状态,检测程序执行结果是符合设计要求。通过检测可以发现程序中的死循环错误、机器码错误和转移 地址的错误,同时也可以发现用户系统中的硬件故障,软件算法和硬件设计错误,在调试过程中不断调 整用户系统的软件和硬件,完成每个程序模块的调试。 每个程序模块通过后,可以联合各功能模块进行整体程序综合调试。在这一阶段如果发生故障,可 以分析子程序在运行时是否破坏现场、缓冲单元是否发生冲突、零位的建立和清除在设计上是否失误、 堆栈区域是否溢出或输入设备的状态是否正常等。 若用户系统是在开发系统的监控程序下运行, 还要考 虑用户缓冲单元是否和监控程序的工作单元发生冲突。 22 单步运行只能验证程序正确与否,而不能确定定时精度、CPU 的实时响应等问题,所以单步和断点 调试后,还应进行连续调试。除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求, 以及安排的用户操作是够合理等,必要时还要做适当修正。 DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位 MSB(D7)必须为逻辑 1,如果 D7=0,则禁止写 DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定 RAM 数据;D5D1 指定输入或输出的特定寄存器;最低位 LSB(D0)为逻辑 0,指定写操作(输入), D0=1, 指定读操作(输出)。 在 DS1302 的时钟日历或 RAM 进行数据传送时,DS1302 必须首先发送命令字节。若进行单字节传 送,8 位命令字节传送结束之后,在下 2 个 SCLK 周期的上升沿输入数据字节,或在下 8 个 SCLK 周期的 下降沿输出数据字节。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的 RAM 寄存器,在此方式下可一次性读、写所有的 RAM 的 31 个字节。 要特别说明的是备用电源 B1,可以用电池或者超级电容器(0.1F 以上)。虽然 DS1302 在主电源掉 电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上 的 3.6V 充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。 100 F 就可以保证 1 小时的正常走时。DS1302 在第一次加电后,必须进行初始化操作。初始化后就可 以按正常方法调整时间。 4.34.3 联调联调 联调是指让用户系统的软件在其硬件上实际运行,进行软、硬件联合调试,从中发现硬件故障或软、 硬件设计错误。这是对用户系统检验的重要一关。 联调主要解决以下问题: 软、硬件能否按预定要求配合工作,如果不能,那么问题出在哪里?如何解决? 系统运行中是否有潜在的设计是难以预料的错误,如硬件延时过长造成工作时序不符合要求、 布线不合理造成有信号串扰等; 系统的动态性能指标(包括精度、速度参数)是否满足设计要求。 系统联调时,首先采用单步、断点、连续运行方式调试与硬件相关的各程序段既可以检验这些用户 程序段的正确性,又可以在各功能独立的情况下,检验软、硬件的配合情况。然后,将软、硬件按系统 工作要求进行综合运行, 采用全速断点、 连续运行方式进行总调试, 以解决在系统总体运行的情况下软、 硬件的协调与提高系统动态性能。在具体操作中,用户系统在开发系统环境下,先借用仿真器的 CPU、 存储器等资源进行工作。若发现问题,按上述软、硬件调试方法准确定位错误,分析错误原因,找出解 决办法。用户系统调试完后,将用户程序固化到用户系统的程序存储器中,再借用仿真器 CPU 使用户系 统运行。若无问题,则用户系统插上单片机即可正确工作(注意,不要忘记用户系统时钟、复位电路的 调试) 。 23 第五章第五章心得体会心得体会 在此次毕业设计中,收获颇多。如果说我们以前学的都是一些理论知识和分散的知识,那么在这次 毕业设计中则是系统的把大学里所学的连贯的灵活运用起来。 从最简单的电阻电容的识别和个电阻阻值 的选择,以及各种电子元器件的识别、使用及其检测,到电烙铁的正确使用以及焊接的要求及注意点、 PCB 板的布局及其制作了解,都有了更详细和更专业的学习和实践。 这次的毕业设计对我来说无疑是一次较好的动手锻炼机会,因此从一开始就抱着一种较认真的态 度,无论是从了解电子万年历背景、意义、及其实现原理,还是后来的焊接对我来说都是一种提高。 在此次设计中,我负责的是硬件部分

温馨提示

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

评论

0/150

提交评论