基于单片机控制lcd显示电子时钟设计内容摘要:

表 32 LCD1602 管脚功能表 ( 2)基本操作时序: LCD1602 读写操作时序是直接记忆和总结读写时电平高低和变化,下面就基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 10页 列出典型读写的时序要求,以方便编写程序 [13]。 读状态 输入: RS=L, R/W=H, E=H 输出: D0D7=状态字 写指令 输入: RS=L, R/W=L, D0D7=指令码, E=高脉冲输出:无 读数据 输入: RS=H, R/W=H, E=H 输出: D0D7=数据 写数据 输入: RS=H, R/W=L, D0D7=数据, E=高脉冲输出:无 ( 3)状态字说明: 表 33 状态字表 对控制器每次进行读写操作之前,都必须进行读写检测,确保 STA7 为 0。 ( 4)指令说明: 表 34 显示模式设置表 表 35 显示开 /关及背光灯设置表 ( 5)数据控制 控制器内部有一个数据地址指针,用户可通过它们访问内部的全部 80 字节RAM[15]。 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 11页 ( 6)数据指针设置 表 36 数据指针设置表 ( 7)其他设置 表 37 其他设置指令表 ( 8) LCD1602 初始化过程 a、延时 15ms。 b、写指令 38H(不检测忙信号 )。 c、延时 5ms。 d、写指令 38H(不检测忙信号 )。 e、写指令 5ms。 f、写指令 38H(不检测忙信号 )。 g、之后每次写指令、读 /写数据操作之前均需检测忙信号。 h、写指令 38H:显示模式设置。 i、写指令 08H:显示关闭。 j、写指令 01H:显示清屏幕。 k、写指令 06H:显示光标移动设置。 p、写指令 0CH:显示及光标设置。 ( 9) LCD1602 的电路设计 液晶 LCD1602 的 D0D7 引脚与 STC89C52 芯片的 P2 口连接,而控制引脚RS, R/W, CS 则分别与 , , 连接。 引脚 3 接 一个 1K 的电位器 来调整对比度 , 从而达到 适合 的背光灯对比度 [16]。 液晶显示模块电路如图 33 所示。 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 12页 图 33 液晶显示模块 时钟电路模块的设计 (1)DS12887 功能特点 DS12887 是美国达拉斯半导体公司推出的时钟芯片, 此芯片是基于 CMOS技术 的 , 将 所需的晶振和外部锂电池相关电路集于芯片内部, 简化了外围电路,同时它与计算机常用的时钟芯片 MC146818B 和 DS1287 芯片引脚 兼容,可直接进行对等交换。 主要 功能 有 : •内含一个锂电池,断电 可以 运行十年 ,并且 不 会 丢失数据 ,时间功能正常运行。 •可计时至 2100 年前的 秒、分、时、星期、日、月、年 等日历信息 并 带 有闰年补偿功能。 •可通过编程选择 BCD 码 或者 二进制数表示日历和定 时 闹 钟。 •可通过编程选择 12 小时或 24 小时制, 12 小时时钟模式带有 PM 和 AM提示 , 此外还有 有夏令时功能。 •可选 择 MOTOROLA 和 INTEL 总线时序。 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 13页 •内部共 有 128 个 RAM 单元,其中 14 个字节作为时钟和控制寄存器, 114字节为通用 RAM,所有 ARAM 单元数据都具有掉电保护功能。 •中断信号输出 (IRQ)和总线兼容,定 时 闹 钟 中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试 [17]。 •三种可供选择的中断方式 a、时间性中断 b、周期性中断 c、时钟更新结束中断 (2) DS12887 的原理及管脚说明 图 34 显示了 DS12887 管脚排列图。 下面说明管脚功能: 图 34 DS12887 管脚图 GND:电源接地 VCC:直流电源 +5V 电压。 若外部提供的 VCC 电源小 于 ,读写 会 被禁止, 但芯片内部计时仍在继续,重新通上 +5V 电源后,通过编程即可显示当前时间 ; 若外部提供的 VCC 电源小于 3V, 电源方式 切换 为 内部锂电池 提供,同样可以保持芯片内部计时仍然继续。 MOT(模式选择 ):接 VCC( +5V) 时, 芯片在 MOTOROLA 时序 下工作 ,接 GND 时, 芯片在 INTEL 时序 下工作。 SQW(方波信号 ): 通过 15 个分频器抽头中的 13 个提供方波输出。 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 14页 AD0~ AD7(双向地址 /数据复用线 ): 数据和控制指令都通过此 8 个引脚来于单片机等控制器传输。 DS( 数据选通或读输入 ) : 该引脚 有两种操作模式, 视该芯片是出于MOTOROLA 模式或者 INTEL 模式 ,当使用 MOTOROLA 时序时, DS 是一正脉冲,出现在总线周期的后段,称为数据选通 ;若为 INTEL 时序, DS 称作 (RD),RD 与典型存贮器的允许信号 (OE)的定义相同。 R/W(读 /写输入 ): R/W 管脚 同样 也有两种操作模式。 此引脚的两种模式与DS 相似。 CS(片选输入 ):在访问 DS12887 的总线周期内,片选信号必须保持为低。 RESET(复位输出 ): 若要 保证 DS12887 有效复位 ,必须让 该脚保持低电平时间大于 200ms。 IRQ(中断申请输入 ):低电平有效,可作微处理的中断输入。 没有中断条件满足时, IRQ 处于高阻态。 IRQ 线是漏极开路输入,要求外接 上拉 电阻 [18]。 ( 3) DS12887 的内部功能地址分配图 DS12887 的 存储器 分配图如图 35 所示 ,其中 00H09H 为时钟信息和闹钟信息寄存器, 0AH0DH 为四个控制寄存器。 图 35 DS12887 存储器分配图 控制寄存器 •寄存器 A 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 15页 表 38 DS12887 寄存器 A UIP: 更新位。 若 UIP 为 1, 实时时钟的 更新转换 发生的 很快, 而当 UIP为 0,更新转换至少在 244181。 s 内不会发生。 DV0, DV1, DV2:用于晶振和复位分频链 的开启。 表 39 DS12887 周期中断率和方波频率 RS3, RS2, RS1, RS0:频率选择位 ,通过这四个位 用户可以: a、 用 PIE 位允许中断 ; b、 用 SQWE 位允许 SQAW 输出; c、 二者同时允许并用相同的频率; d、二者 都不允许。 •寄存器 B 表 310 DS12887 寄存器 B 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 16页 SET: 此位 为 0,时间更新正常进行,每秒计数走时一次,当 此位为 1,时间更新被禁止,程序可 对芯片进行 初始化 的操作和编程。 PIE:周期中断 允许 位, PIE 为 1,则允许以选定的频率拉低 IRQ 管脚, PIE为 0,则禁止中断。 AIE:定 时 闹 钟 中断允许位, AIE 为 1,允许中断,否则禁止中断。 UIE: 更新结束 中断允许位, AIE 为 1,允许中断,否则禁止中断。 SQWE:方波允许位,置 1 选定频率方波从 SQW 脚输出;为 0时, SQW 脚为低。 DM:数据模式位, DM 为 1 表明 为十进制数据,而 0 表明是 BCD 码的数据。 24/12:小时格式位, 1 表明 24 小时 制 ,而 0 表明 12 小时 制。 DSE:夏令时允许位,当 DSE 置 1 时允许两个特殊的更新,在四月份的第一 星期 日 , 时间从 1: 59: 59AM 时改变为 3: 00: 00AM;在十月的最后一个星期日的 1: 59: 59AM 时改变为 1: 00: 00AM。 当 DSE 位为 0,这种特殊修正不发生。 •寄存器 C 表 311 DS12887 寄存器 C IRQF:中断申请标志位。 当下列表达式 中一个或多个为真时,置 1。 PF=PIE=1; AF=AIE=1; UF=UIE=1; 即: IRQF=PFPIE+AFAIE+UFUIE 只要 IRQF 为 1, IRQ 管脚输出低 ,程序读寄存器 C 以后或 RESET 管脚为低后,所有标志位清零。 VF:更新周期结束标志位。 VF 为 1 表明更新周期结束。 AF:定闹中断标志位,只读, AF 为 1 表明现在时间与定闹时间匹配。 BIT0~ BIT3:未用状态位,读出总为 0,不能写入。 •寄存器 D VRT:内部锂电池状态位,平时应总读出 1,如出现 0,表明内部锂电池耗尽。 BIT0~ BIT6:未用状态位,读出总为 0,不能写入。 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 17页 表 311 DS12887 寄存器 D (4)DS12887 的电路设计 本设计中的 DS12887 芯片 AD0AD7 引脚与 STC89C52 芯片的 P2 口相连接。 MOT 引脚接地,为 INTEL 总线时序方式。 因此 R/W 和 DS 引脚也为对应 INTEL的操作模式 [19]。 时钟模块电路如图 36 所示。 图 36 时钟模块电路图 温度采集模块设计 温度传感器 DS18B20 的接法 很简单,它的 DQ 引脚与 STC89C52 芯片的 引脚相连接。 这里只用到一个温度传感器,若要使用多个则只需将所有的DS18B20 的 I/O 口接在一起即可,在具体操作时,通过读取每个芯片的内部序列号来识别 [20]。 按键调整系统模块设计 74LS21 芯片为两组 4 输入与门(正逻辑)。 本设计中的四个按键分别接到74LS21 芯片的 1A, 1B, 1C, 1D,即 4 输入与门的 4 个输入。 而 74LS21 的输出1Y 则接到 STC89C52 芯片的 (INT0)引脚,由于该引脚为低电平有效,当警报发生时按下四个按键中 任意一个都会使输出 1Y 变为低电平,则芯片发生中断,报警停止。 同时,四个按键 key1key4 也接到 STC89C52 芯片的 起到基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 18页 调节时间日期等功能 [21]。 按键模块电路如图 37 所示。 图 37 按键模块 蜂鸣器报警模块 蜂鸣器报警模块的作用:当定时闹钟时间到时,蜂鸣器发出预设的声音,而发光二极管则会随着音乐闪烁。 本模块采用 PNP 三极管为蜂鸣器放大电流,基极通过 电阻与单片机 STC89C52 的闲置引脚 相连接,集电极直接接地,发射极接发光二极管和蜂鸣器 [22]。 报警 模块电路如图 38 所示。 图 38 报警模块 基于单片机控制 LCD 显示电子时钟设计 作者: 共 26页 第 19页 第 4 章 软件设计 软件设计总体说明 本系统的程序采用 C 语言编写,为了便于修改和调试,系统软件采用模块化设计,程序的编写编译在软件 WAVE6000 中完成。 系统中有四个按键,即:设置键 S切换键 S上调键 S下调键 S4。 ( 1)按下 S1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。