数字万年历毕业设计.doc_第1页
数字万年历毕业设计.doc_第2页
数字万年历毕业设计.doc_第3页
数字万年历毕业设计.doc_第4页
数字万年历毕业设计.doc_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

2012 届届毕业设计说毕业设计说明明书书 基于单片机的数字万年历设计 系 、 部: 学生姓名: 指导教师: 职称 专 业: 班 级: 完成时间: 2 摘 要 随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断 研究,不断创新纪录。美国 DALLAS 公司推出的具有涓细电流充电能的低功耗实 时时钟电路 DS1302。它可以对年、月、日、星期、时、分、秒进行计时,还具 有闰年补偿等多种功能,而且 DS1302 的使用寿命长,误差小。对于数字电子万 年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信 息,还具有闹铃功能。该电路采用 AT89S52 单片机作为核心,功耗小,能在 3V 的低压工作,电压可选用 35V 电压供电。 综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本 低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。 本设计是基于 51 系列的单片机进行的电子万年历设计,可以显示年月日时 分秒及周信息,具有可调整日期和时间功能。通过此次设计能够更加牢固的掌 握单片机的应用技术,增强动手能力、硬件设计能力以及软件设计能力。 本文介绍的万年历运用了 AT89S52 单片机、DS1302 时钟芯片、液晶显示屏。 关键字:万年历;AT89S52;DS1302;C 语言编程;液晶显示屏 3 ABSTRACT Along with the rapid development of technology, the passage of time, to view the sun, from the pendulum clocks are now electric clock, human continuously research, innovation record. The United States out Juan DALLAS has fine current charge of low power consumption can real time clock circuit DS1302. It can be to year, month, day, Sunday, when, minutes and seconds for the time, also has a leap year compensation and other functions, and the DS1302 long service life and small error. For digital electronic calendar using intuitive digital display, can also shows that year, month, day, Sunday, when the minutes and seconds, and other information, also has alarm function. This circuit AT89S52 SCM as the core, power consumption is small, can be in 3 V of low-pressure work, voltage can choose 3 5 V voltage power supply. To sum up the calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, conform to the trend of the development of electronic instruments, and has a broad market prospect. This design is based on the single chip microcomputer 51 series of electronic calendar design, can display date and weeks determined when information, which can adjust the date and time of the function. Through this design can be more solid mastery of the single chip microcomputer application technology, enhance the beginning ability, hardware design and software design ability ability. In this paper, the use of the calendar AT89S52 SCM, DS1302 clock 4 chip, LCD display screen. Key words: calendar; AT89S52 devices; DS1302; The C programming language; LCD screen 目录 1 设计任务要求 .12 2 2 设计方案及比较(设计可行性分析).13 2.1 单片机芯片的选择方案和论证 .13 2.2 显示模块选择方案和论证: .13 2.3 时钟芯片的选择方案和论证: .14 2.4 按键模块方案的选择与比较 .14 3 硬件电路设计.15 3.1 系统总体方案设计 .15 3.2 系统框图 .15 3.3 系统硬件概述 .16 3.4 主要单元电路的设计 .16 3.4.1 系统核心部分-单片机主控模块 .16 3.4.2 时钟电路模块的设计 .20 3.4.3 按键电路模块的设计 .23 3.4.4 液晶显示电路模块 .23 3.4.5 闹铃电路 .32 4 软件设计.34 4.1 系统软件设计 .34 4.2 系统主程序的流程图 .34 5 系统仿真测试.36 5.1 仿真软件简介 .36 5.2 仿真步骤 .36 5 6 测试与结果分析.39 6.1 硬件测试结果 .39 6.2 软件测试 .40 6.3 测试结果分析与结论 .40 6.3.1 测试结果分析 .40 6.3.2 测试结论 .40 参考文献.41 致谢.42 附录.43 附录一:系统程序如下:.43 附录二:系统原理图.64 附录三: 液晶显示和 DS1032 时钟的 PCB 图 .65 附录四:键盘的 PCB 图.66 6 1 设计任务要求 1.平年 365 天(52 周+1 天) ,闰年 366 天(52 周+2 天) ,平年 2 月 28 天,闰年 2 月 29 天。 2.每 400 年整一闰,或每 4 年且不为百年的一闰,即凡能被 400 整除,或不能 被 100 整除但能被 4 整除的年份为闰年。 3.每 4 年(3 个平年+1 个闰年)共 208 周+5 天 每百年共 100*(208 周+5 天)-1 天=5217 周+5 天 每 400 年共 4*(5217 周+5 天)+1 天(整 400 年闰)=20871 周+0 天,即每 400 年一个轮回。 4.显示年、月、日、星期、时、分、秒的功能。 5.具有调节功能,通过键盘加减调整万年历。 7 2 2 设计方案及比较(设计可行性分析) 2.1 单片机芯片的选择方案和论证 方案一: 采用 89C51 芯片作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储 空间,能于 3V 的超低压工作,而且与 MCS-51 系列单片机完全兼容,但是运用于电 路设计中时由于不具备 ISP 在线编程技术, 当在对电路进行调试时,由于程序 的错误修改或对程序的新增功能需要写入程序时,对芯片的多次拔插会对芯片 造成一定的损坏。 方案二: 采用 AT89S52,芯片内 ROM 全都采用 Flash ROM;能以 3V 的超底压工作;同 时也与 MCS-51 系列单片机完全兼容,该芯片内部存储器为 8KB ROM 存储空间, 同样具有 89C51 的功能,且具有在线编程可擦除技术,当在对电路进行调试时, 由于程序的错误修改或对程序的新增功能需要写入程序时,不需要对芯片多次 拔插,所以不会对芯片造成损坏。 所以选择采用 AT89S52 作为主控制系统. 2.2 显示模块选择方案和论证: 方案一: 采用 LED 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字、图形, 显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用 LED 液晶显示屏. 方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成, 8 对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以 也不用此种作为显示. 方案三: 采用 LCD12864 液晶显示模块显示,由于其屏幕是四行八列的,可以显 示很大的信息量。 2.3 时钟芯片的选择方案和论证: 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、 时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现 的时间误差较大。所以不采用此方案。 方案二: 采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的时钟芯片,可 自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高, 位的 RAM 做为数据暂存区,工作电压 2.5V5.5V 范围内,2.5V 时耗电小于 300nA. 2.4 按键模块方案的选择与比较 方案一: 矩阵式键盘,行线的一端通过上拉电阻与单片机的 P1 口线的高四位相连, 列线的一端也通过上拉电阻与单片机的 P1 口线低四位相连。矩阵式键盘结构性 好,使用于按键较多时的情况。 方案二: 独立式键盘, 每个按键的电路是独立的,都有单独一根数据线输出键的通 断状态。单片机一条 I / O 口线对应一个按键。独立式键盘结构简单,易于编程,适 用本实验按键较少的情况。 由于这次设计中,使用的功能键比较多,若采用独立式键盘占有的 I/O 口 比较多,所以在这里采用矩阵式键盘。 综上各方案所述,对此次作品的方案选定: 采用 AT89S52 作为主控制系统; DS1302 提供时钟; LCD12864 液晶显示模块作为显示;矩阵式键盘。 9 3 硬件电路设计 3.1 系统总体方案设计 万年历采用 LCD12864 液晶显示时间。LCD12864 液晶和矩阵式键盘都是单 片机用扩展 I/O 接口实现的,当把程序下载到单片机,就显示年、月、日、星 期并且电子钟开始走时。按调试键按秒、分、时、星期、日、月、年的调整运 算。按加减进行调整,每次调整时询问“秒分”单元不能满 60、 “时”单元是 不能满 24、 “日”单元是否满 30 以及“月”单元是否 12。若满足条件则清零并 向高位进 1,若不满足则继续计数。以“秒分”单元为例,当满 60 秒时“秒” 单元便清零,同时“分”单元加 1。当满 60 分时“分”单元清零,同时“时” 单元加 1。修改完时间后按下确定键,时钟继续走。 , 3.2 系统框图 显示采用 LCD12864 液晶显示模块,设置时间按键采用矩阵式键盘,时间生 成采用 DS1302 时钟芯片,系统框图如下: AT89S52 主控制模 块 LCD 液晶显示屏 显示模块 10 图 1 系统设计框图 3.3 系统硬件概述 本电路是由 AT89S52 单片机为控制核心,具有在线编程功能,低功耗,能 在 3V 超低压工作;时钟电路由 DS1302 提供,它是一种高性能、低功耗、带 RAM 的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具 有闰年补偿功能,工作电压为 2.5V5.5V。采用三线接口与 CPU 进行同步通信, 并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302 内部有一 个 31*8 的用于临时性存放数据的 RAM 寄存器。可产生年、月、日、星期、时、 分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功 能;用液晶显示。 3.4 主要单元电路的设计 3.4.1 系统核心部分-单片机主控模块 AT89S52 单片机为 40 引脚双列直插芯片,有四个 I/O 口 P0,P1,P2,P3, MCS- 51 单片机共有 4 个 8 位的 I/O 口(P0、P1、P2、P3) ,每一条 I/O 线都能独立 地作输出或输入。 AT89S52 具有下列主要性能: 8KB 可改编程序 Flash 存储器(可经受 1000 次的写入/擦除周期) 全静态工作:0Hz24MHz 三级程序存储器保密 1288 字节内部 RAM 32 条可编程 I/O 线 2 个 16 位定时器/计数器 6 个中断源 可编程串行通道 片内时钟振荡器 AT89S52 的引脚及功能 DS1302 时钟模块 键盘模块 11 AT89S52 单片机的管脚说明如图 2 所示。 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 RST 9 P3.0(RXD) 10 P3.1(TXD) 11 P3.2(INT0) 12 P3.3(INT1) 13 P3.4(T0) 14 P3.5(T1) 15 P3.6(WR) 16 P3.7(RD) 17 XTAL2 18 XTAL1 19 GND 20 P2.0(A8) 21 P2.1(A9) 22 P2.2(A10) 23 P2.3(A11) 24 P2.4(A12) 25 P2.5(A13) 26 P2.6(A14) 27 P2.7(A15) 28 PSEN 29 ALE/PROG 30 EA/VPP 31 P0.7(AD7) 32 P0.6(AD6) 33 P0.5(AD5) 34 P0.4(AD4) 35 P0.3(AD3) 36 P0.2(AD2) 37 P0.1(AD1) 38 P0.0(AD0) 39 VCC 40 图 2 AT89S52 的管脚 (1) 主要电源引脚 VCC 电源端 GND 接地端 (2) 外接晶体引脚 XTAL1 和 XTAL2 XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的 反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把 此信号直接接到内部时钟发生器的输入端。 XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反 相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。 (3) 控制或与其它电源复用引脚 RST、ALE/PROG、/PSEN 和/EA/VPP RST 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的 高电平将使单片机复位。 ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁 存地址的低位字节。即使不访问外部存储器,ALE 端仍以不变的频率(此频率 为振荡器频率的 1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的 时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳 过一个 ALE 脉冲。在对 Flash 存储器编程期间,该引脚还用于输入编程脉冲 (/PROG)6。 /PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。 当 AT89S52/LV52 由外部程序存储器取指令(或常数)时,每个机器周期两次 12 /PSEN 有效(既输出 2 个脉冲) 。但在此期间内,每当访问外部数据存储器时, 这两次有效的/PSEN 信号将不出现。 /EA/VPP 外部访问允许端。要使 CPU 只访问外部程序存储器(地址为 0000HFFFFH) ,则/EA 端必须保持低电平(接到 GND 端) 。当/EA 端保持高电平 (接 VSS 端)时,CPU 则执行内部程序存储器中的程序。 (4) 输入/输出引脚 P0.0 P0.7、P1.0P1.7、P2.0 P2.7 和 P3.0P3.7 P0 端口(P0.0 P0.7) P0 是一个 8 位漏极开路型双向 I/O 端口。作为 输出口用时,每位能以吸收电流的方式驱动 8 个 TTL 输入,对端口写 1 时,又 可作高阻抗输入端用。 P1 端口(P1.0 P1.7) P1 是一个带有内部上拉电阻的 8 位双向 I/O 端 口。P1 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口 时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 P2 端口 (P2.0P2.7) P2 是一个带有内部上拉电阻的 8 位双向 I/O 端 口。P2 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2 作输入 口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电 流。 P3 端口(P3.0P3.7) P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口, 可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平, 并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流,这是由于 上拉的缘故。 P3 口也可作为 AT89S52 的一些特殊功能,这些特殊功能见表 1。 表 1 P3 端口的特殊功能 端口引脚 兼 用 功 能 P3.0RXD (串行输入口) P3.1TXD (串行输出口) P3.2/INT0 (外部中断 0) P3.3/INT1 (外部中断 1) P3.4T0 ( 定时器 0 的外部输入) P3.5T1 (定时器 1 的外部输入) P3.6/WR (外部数据存储器写选通) P3.7/RD (外部数据存储器读选通) AT89S52 单片机为 40 引脚双列直插芯片, MCS-51 单片机共有 4 个 8 位的 13 I/O 口(P0、P1、P2、P3) ,每一条 I/O 线都能独立地作输出或输入。 单片机的最小系统如下图所示,18 引脚和 19 引脚接时钟电路,XTAL1 接外部 晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2 接外部晶 振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第 9 引脚为复位 输入端,接上电容,电阻及开关后够上电复位电路,20 引脚为接地端,40 引脚为电 源端. 如图 3 所示 图 3 单片机最小系统 14 3.4.2 时钟电路模块的设计 图 4 示出 DS1302 的引脚排列,其中 Vcc1 为后备电源,Vcc2 为主电源。 在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由 Vcc1 或 Vcc2 两 者中的较大者供电。当 Vcc2 大于 Vcc1+0.2V 时,Vcc2 给 DS1302 供电。当 Vcc2 小于 Vcc1 时,DS1302 由 Vcc1 供电。X1 和 X2 是振荡源,外接 32.KHz 晶 振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。 RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位 寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电 平时,所有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RSTS 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电动行时, 在 Vcc 大于等于 2.5V 之前,RST 必须保持低电平。中有在 SCLK 为低电平时, 才能将 RST 置为高电平,I/O 为串行数据输入端(双向) 。SCLK 始终是输入端。 图 4 DS1302 的引脚图 DS1302 的性能特性 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; 用于高速数据暂存的 318 位 RAM; 最少引脚的串行 I/O; 2.55.5V 电压工作范围; 15 2.5V 时耗电小于 300nA; 用于时钟或 RAM 数据读/写的单字节或多字节(脉冲方式)数据传送方式; 简单的 3 线接口; 可选的慢速充电(至 VCC1)的能力。 (1) 时钟芯片 DS1302 的工作原理: DS1302 在每次进行读、写程序前都必须初始化,先把 SCLK 端置 “0” , 接着把 RST 端置“1” ,最后才给予 SCLK 脉冲;读/写时序如下图 5 所示。表 2 为 DS1302 的控制字,此控制字的位 7 必须置 1,若为 0 则不能把对 DS1302 进 行读写数据。对于位 6,若对程序进行读/写时 RAM=1,对时间进行读/写时, CK=0。位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行读操作时,该 位为 1;该位为 0 则表示进行的是写操作。控制字节总是从最低位开始输入/输 出的。表 3 为 DS1302 的日历、时间寄存器内容:“CH”是时钟暂停标志位,当 该位为 1 时,时钟振荡器停止,DS1302 处于低功耗状态;当该位为 0 时,时钟 开始运行。 “WP” 是写保护位,在任何的对时钟和 RAM 的写操作之前,WP 必须为 0。当“WP”为 1 时,写保护位防止对任一寄存器的写操作。 (2) DS1302 的控制字节 DS1302 的控制字如表 2 所示。控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写入 DS1302 中,位 6 如果 0,则表示存取日历 时钟数据,为 1 表示存取 RAM 数据;位 5 至位 1 指示操作单元的地址;最低 有效位(位 0)如为 0 表示要进行写操作,为 1 表示进行读操作,控制字节总 是从最低位开始输出 RAM RD 1 A4 A3 A2 A1 A0 / CK /WR 表 2 DS1302 的控制字格式 (3) 数据输入输出(I/O) 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入 DS1302,数据输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下 一个 SCLK 脉冲的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 7。如下图 5 所示 16 图 5 DS1302 读/写时序图 (4) DS1302 的寄存器 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数 据位为 BCD 码形式,其日历、时间寄存器及其控制字见表 3。 表 3 DS1302 的日历、时间寄存器 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄 存器及与 RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄 存器外的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是 单个 RAM 单元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。 17 3.4.3 按键电路模块的设计 接按键的单片机端口接上 10k 欧姆的上拉电阻,以保证在无按键按下时端 口是高电平,而按键按下时对应的 I/O 口为低电平。 图 6 矩阵式键盘原理图 3.4.4 液晶显示电路模块 (1) 12864C-1 液晶中文显示模块概述 12864C-1 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,内部 含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为 12864, 内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ASCII 字符集.利用该 模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界 面。可以显示 84 行 1616 点阵的汉字. 也可完成图形显示.低电压低功耗是 其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示 模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略 低于相同点阵的图形液晶模块。 基本特性: 低电源电压(VDD:+3.0-+5.5V) 显示分辨率:12864 点 内置汉字字库,提供 8192 个 1616 点阵汉字(简繁体可选) 内置 128 个 168 点阵字符 2MHZ 时钟频率 显示方式:STN、半透、正显 驱动方式:1/32DUTY,1/5BIAS 18 视角方向:6 点 背光方式:侧部高亮白色 LED,功耗仅为普通 LED 的 1/51/10 通讯方式:串行、并口可选 内置 DC-DC 转换电路,无需外加负压 无需片选信号,简化软件设计 工作温度: 0 - +55 ,存储温度: -20 - +60 (2) 液晶显示模块接口说明 表 4 液晶显示模块各引脚接口 管脚号名称LEVEL功能 1VSS0V电池地 2VDD+5V电源正(3.0V5.5V) 3V0-对比度(亮度)调整 4CSH/L模组片选端,高电平有效 5SLDH/L串行数据输入端 6CLKH/L串行同步时钟:上升沿时读取 SID 数据 15PSBLL:串口方式 17/RESETH/L复位端,低电平有效 19AVDD背光源电压+5V 20KVSS背光源负端 0V 19 表 5 并行接口 管脚号管脚名称电平管脚功能描述 1VSS0V电源地 2VCC3.0+5V电源正 3V0-对比度(亮度)调整 4 RS(CS)H/L RS=“H”,表示 DB7DB0 为显示数据 RS=“L”,表示 DB7DB0 为显示指令数据 5 R/W(SID)H/L R/W=“H”,E=“H”,数据被读到 DB7DB0 R/W=“L”,E=“HL”, DB7DB0 的数据被写到 IR 或 DR 6E(SCLK)H/L使能信号 7DB0H/L三态数据线 8DB1H/L三态数据线 9DB2H/L三态数据线 10DB3H/L三态数据线 11DB4H/L三态数据线 12DB5H/L三态数据线 13DB6H/L三态数据线 14DB7H/L三态数据线 15PSBH/LH:8 位或 4 位并口方式,L:串口方式(见注释 1) 16NC-空脚 17/RESETH/L复位端,低电平有效(见注释 2) 18VOUT-LCD 驱动电压输出端 19AVDD背光源正端(+5V) (见注释 3) 20KVSS背光源负端(见注释 3) *注释 1:如在实际应用中仅使用并口通讯模式,可将 PSB 接固定高电平,也可 以将模块上的 J8 和“VCC”用焊锡短接。 *注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端 悬空。 *注释 3:如背光和模块共用一个电源,可以将模块上的 JA、JK 用焊锡短接。 (3) 液晶显示模块主要硬件构成说明 控制器接口信号说明: 1、RS,R/W 的配合选择决定控制界面的 4 种模式如下表 6。 20 表 6 RS,R/W 的配合选择决定控制界面的 4 种模式 RSR/W功能说明 LLMPU 写指令到指令暂存器(IR) LH读出忙标志(BF)及地址记数器(AC)的状态 HLMPU 写入数据到数据暂存器(DR) HHMPU 从数据暂存器(DR)中读出数据 表 7 E 信号 E 状态执行动作结果 高低I/O 缓冲DR配合/W 进行写数据或指令 高DRI/O 缓冲配合 R 进行读数据或指令 低/低高无动作 忙标志:BF BF 标志提供内部工作情况.BF=1 表示模块在进行内部操作,此时模块不接受 外部指令和数据.BF=0 时,模块为准备状态,随时可接受外部指令和数据. 利用 STATUS RD 指令,可以将 BF 读到 DB7 总线,从而检验模块之工作状态. 字型产生 ROM(CGROM) 字型产生 ROM(CGROM)提供 8192 个此触发器是用于模块屏幕显示开和关 的控制。DFF=1 为开显示(DISPLAY ON),DDRAM 的内容就显示在屏幕上,DFF=0 为关显示(DISPLAY OFF)。 DFF 的状态是指令 DISPLAY ON/OFF 和 RST 信号控制的。 显示数据 RAM(DDRAM) 模块内部显示数据 RAM 提供 642 个位元组的空间,最多可控制 4 行 16 字 (64 个字)的中文字型显示,当写入显示数据 RAM 时,可分别显示 CGROM 与 CGRAM 的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM 字 型及 CGROM 的中文字型,三种字型的选择,由在 DDRAM 中写入的编码选择,在 0000H0006H 的编码中(其代码分别是 0000、0002、0004、0006 共 4 个)将 选择 CGRAM 的自定义字型,02H7FH 的编码中将选择半角英数字的字型,至于 A1 以上的编码将自动的结合下一个位元组,组成两个位元组的编码形成中文字 型的编码 BIG5(A140D75F) ,GB(A1A0-F7FFH) 。 字型产生 RAM(CGRAM) 字型产生 RAM 提供图象定义(造字)功能, 可以提供四组 1616 点的自定义 图象空间,使用者可以将内部字型没有提供的图象字型自行定义到 CGRAM 中, 便可和 CGROM 中的定义一样地通过 DDRAM 显示在屏幕中。 地址计数器 AC 地址计数器是用来贮存 DDRAM/CGRAM 之一的地址,它可由设定指令暂存器来 21 改变,之后只要读取或是写入 DDRAM/CGRAM 的值时,地址计数器的值就会自动 加一,当 RS 为“0”时而 R/W 为“1”时,地址计数器的值会被读取到 DB6 DB0 中。 光标/闪烁控制电路 此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定 DDRAM 中 的光标或闪烁位置。 (4) 液晶显示模块指令说明 模块控制芯片提供两套控制命令,基本指令和扩充指令如下表 8、表 9: 表 8 指令表 1:(RE=0:基本指令) 指 指 令 码功 能 令RSR/WD7D6D5D4D3D2D1D0 清除 显示 0000000001 将DDRAM填满 20H,并且设定DDRAM的 地址计数器 (AC)到00H 地址 归位 000000001X 设定DDRAM的地址计数器 (AC)到00H, 并且将游标移到开头原点位置;这个指 令不改变DDRAM 的内容 显示状 态开/ 关 0000001DCB D=1: 整体显示 ON C=1: 游标 ON B=1:游标位置反白允许 进入点 设定00000001I/DS 指定在数据的读取与写入时,设定 游标的移动方向及指定显示的移 位 游标或 显示移 位控制 000001S/C R/LXX 设定游标的移动与显示的移位控 制位;这个指令不改变 DDRAM 的内 容 功能 设定 00001DLXREXX DL=0/1:4/8 位数据 RE=1: 扩充指令操作 RE=0: 基本指令操作 设定 CGRAM 地址 0001AC5 AC4 AC3 AC2 AC1 AC0 设定 CGRAM 地址 设定 DDRAM 地址 0010AC5 AC4 AC3 AC2 AC1 AC0 设定 DDRAM 地址(显示位址) 第一行:80H87H 第二行:90H97H 读取忙 标志和 地址 01BFAC6 AC5 AC4 AC3 AC2 AC1 AC0 读取忙标志(BF)可以确认内部动 作是否完成,同时可以读出地址计 数器(AC)的值 写数据 到 RAM 10数据将数据 D7D0 写入到内部的 RAM (DDRAM/CGRAM/IRAM/GRAM) 读出 RAM 的 值 11数据从内部 RAM 读取数据 D7D0 (DDRAM/CGRAM/IRAM/GRAM) 22 表 9 指令表 2:(RE=1:扩充指令) 指 指 令 码功 能 令RSR/WD7D6D5D4D3D2D1D0 待命 模式 0000000001 进入待命模式,执行其他 指令都棵终止 待命模式 卷动地址 开关开启 000000001SR SR=1:允许输入垂直卷动 地址 SR=0:允许输入IRAM和 CGRAM地址 反白 选择 00000001R1R0 选择 2 行中的任一行作 反白显示,并可决定反 白与否。初始值 R1R000,第一次设定 为反白显示,再次设定 变回正常 睡眠 模式 0000001SLXX SL=0:进入睡眠模式 SL=1:脱离睡眠模式 扩充 功能 设定 00001CLXREG0 CL=0/1:4/8 位数据 RE=1: 扩充指令操作 RE=0: 基本指令操作 G=1/0:绘图开关 设定绘 图 RAM 地址 001 0 AC6 0 AC5 0 AC4 AC3 AC3 AC2 AC2 AC1 AC1 AC0 AC0 设定绘图 RAM 先设定垂直(列)地址 AC6AC5AC0 再设定水平(行)地址 AC3AC2AC1AC0 将以上 16 位地址连续写 入即可 备注:当 IC1 在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即 读取 BF 标志时,BF 需为零,方可接受新的指令;如果在送出一个指令前并不检查 BF 标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待 前一个指令确实执行完成。 (5) 液晶显示模块读写时序图 数据传输过程 23 图 7 8 位和 4 位数据线的传输过程 图 8 串口数据线模式数据传输过程 24 时序图 图 9 MPU 写资料到 ST7920(8 位数据线模式) 图 10 MPU 从 ST7920 读资料(8 位数据线模式) 串口读写时序: 图 11 串口方式下 MPU 写数据到 ST7920 25 (6) 液晶显示模块应用 1、使用前的准备 先给模块加上工作电压,再按照下图的连接方法调节 LCD 的对比度,使其显 示出黑色的底影。 此过程亦可以初步检测 LCD 有无缺段现象。 2、字符显示 12864C-1 每屏可显示 4 行 8 列共 32 个 1616 点阵的汉字,每个显示 RAM 可显示 1 个中文字符或 2 个 168 点阵全高 ASCII 码字符,即每屏最多可实现 32 个中文字符或 64 个 ASCII 码字符的显示。12864C-1 内部提供 1282 字节的 字符显示 RAM 缓冲区(DDRAM) 。字符显示是通过将字符显示编码写入该字符显 示 RAM 实现的。根据写入内容的不同,可分别在液晶屏上显示 CGROM(中文字 库) 、HCGROM(ASCII 码字库)及 CGRAM(自定义字形)的内容。三种不同字符/ 字型的选择编码范围为:00000006H(其代码分别是 0000、0002、0004、0006 共 4 个)显示自定义字型,02H7FH 显示半宽 ASCII 码字符,A1A0HF7FFH 显示 8192 种 GB2312 中文字库字形。字符显示 RAM 在液 晶模块中的地址 80H9FH。字符显示的 RAM 的地址与 32 个字符显示区域有着 一一对应的关系,其对应关系如下表 10 所示。 表 10 液晶模块地址 80H81H82H83H84H85H86H87H 90H91H92H93H94H95H96H97H 88H89H8AH8BH8CH8DH8EH8FH 98H99H9AH9BH9CH9DH9EH9FH 3 、图形显示 先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标 地址) 垂直地址范围 AC5.AC0 水平地址范围 AC3AC0 绘图 RAM 的地址计数器(AC)只会对水平地址(X 轴)自动加一,当水平地址 =0FH 时会重新设为 00H 但并不会对垂直地址做进位自动加一,故当连续写入 多笔资料时,程序需自行判断垂直地址是否需重新设定。GDRAMGDRAM 的坐标地址与 资料排列顺序如下图 26 图 12 坐标地址与资料排列顺序 4、应用说明 用 12864C-1 显示模块时应注意以下几点: 欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地 址,再写入中文字符编码。 显示 ASCII 字符过程与显示中文字符过程相同。不过在显示连续字符时,只 须设定一次显示地址,由模块自动对地址加 1 指向下一个字符位置,否则, 显示的字符中将会有一个空 ASCII 字符位置。 当字符编码为 2 字节时,应先写入高位字节,再写入低位字节。 模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取 BF 标志时 BF 需为“0” ,方可接受新的指令。如果在送出一个指令前不检查 BF 标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前 一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说 明。“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后, 以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同 指令集时,无需每次均重设“RE”位。 (7) LCD1602 液晶显示电路设计 以上我们完成了对 LCD12864 的基本特征、模块接口、控制器接口信号说明、 模块指令、读写时序的学习,根据 LCD 读写的时序模拟总线的方式与单片机进 行数据的通讯,首先将数据从 I/O 口读入或送出,再选择 R/W 和 RS 的电平进 行不同的操作,在使能端 E 下降沿时触发数据的读入或送出。如图 13 所示 27 图 13 液晶显示模块与单片机引脚的连接(网络标号) 3.4.5 闹铃电路 当系统显示当前时间与设置的闹铃时间相同时,闹铃自动闹铃,设定的闹 铃时间只可设定时和分,当前时间不断与设定的闹铃时间比较,不相等时不产 生任何现象,一旦相等,输出一个高电平使三极管导通,从而使蜂鸣器工作, 闹铃起作用。闹铃电路如图 14 所示。 28 图 14 闹铃电路 29 4 软件设计 4.1 系统软件设计 整个软件系统采用模块化思想,把独立式键盘编程模块、 LCD12864、DS1302 的驱动程序分模块编写,在功能程序中调用。采用

温馨提示

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

评论

0/150

提交评论