基于液晶显示的万年历设计_毕业论文(编辑修改稿)内容摘要:

该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 MOVX和 MOVC 指令才能将 ALE 激活。 此外,该引脚会被微弱拉高,单片机执行 外部程序时,应设置 ALE 禁止位无效。 PSEN: 程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当AT89S52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP: 外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为0000HFFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端), CPU则执行内部程序存储器的指令。 FLASH 存储器编程时,该引脚加上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。 XTAL1: 振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2: 振荡器反相放大器的输出端。 LC1602 简介 1602 液晶也叫 1602 字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。 它由若干个 5X7 或者 5X11 等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它 不能很好地显示图形(用自定义 CGRAM,显示效果也不好)。 LCD1602 是指显示的内容为 16X2,即可以显示两行,每行 16 个字符液晶模块(显示字符和数字)。 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 9 市面上字符液晶大多数是基于 HD44780 液晶芯片的,控制原理是完全相同的,因此基于 HD44780 写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 特性 ( 1) 或 5V 工作电压,对比度可调。 ( 2)内含复位电路。 ( 3) 提供各种控制命令 ,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。 ( 4) 有 80 字节显示数据存储器 DDRAM。 ( 5)内建有 192 个 5X7 点阵的字型的字符发生器 CGROM。 ( 6) 8 个可由用户自定义的 5X7 的字符发生器 CGRAM。 管脚功能 图 22: LCD1602 引脚图 1602 采用标准的 16 脚接口,其中: 第 1 脚: VSS 为电源地 第 2 脚: VCC 接 5V 电源正极 第 3 脚: V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度)。 第 4 脚: RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令 寄存器。 第 5 脚: RW 为读写信号线,高电平 (1)时进行读操作,低电平 (0)时进行写操作。 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 10 第 6 脚: E(或 EN)端为使能 (enable)端 ,高电平( 1)时读取信息,负跳变时执行指令。 第 7~ 14 脚: D0~ D7 为 8 位双向数据端。 第 15~ 16 脚:空脚或背灯电源。 15 脚背光正极, 16 脚背光负极。 时钟 芯片 DS1302 工作原理 DS1302 是美国 DALLAS公司推出的一种高性能、低功耗、带 RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 ~。 采用三线接口与 CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM数据。 DS1302内部有一个 31 8的用于临时性存放数据的 RAM寄存器。 DS1302是 DS1202的升级产品,与 DS1202兼容,但增加了主电源 /后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。 引脚功能及结构 DS1302的引脚排列 ,其中 Vcc1为后备电源, VCC2为主电源。 在主电源关闭的情况下,也能保持时钟的连续运行。 DS1302由 Vcc1或 Vcc2两者中的较大 者供电。 当 Vcc2大于 Vcc1+, Vcc2给 DS1302供电。 当 Vcc2小于 Vcc1时, DS1302由 Vcc1供电。 X1和 X2是振荡源,外接 晶振。 RST 是复位 /片选线,通过把 RST输入驱动置高电平来启动所有的数据传送。 RST 输入有两种功能:首先, RST接通控制逻辑,允许地址 /命令序列送入移位寄存器;其次, RST 提供终止单字节或多字节数据的传送手段。 当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302进行操作。 如果在传送过程中 RST 置为低电平,则会终止此次数据传送, I/O 引脚变为高阻态。 上电运行时,在 Vcc≥ 之前, RST 必须保持低电平。 只有在 SCLK 为低电平时,才能将 RST 置为高电平。 I/O 为串行数据输入输出端 (双向 )。 SCLK 为时钟输入端。 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 11 图 23 DS1302引脚图 数字温度传感器 DS18B20 工作原理 DS18B20的读写时序和测温原理与 DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20测温原理如图 3所示。 图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。 高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2的脉冲输入。 计数器 1和温度寄存器被预置在-55℃所对应的一个基数值。 计数器 1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1的预置值减到 0时,温度寄存器的值将加 1,计数器 1的预置将重新被装入,计数器 1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2计数到 0时,停止温度寄存器值的累加 ,此时温度寄存器中的数值即为所测温度。 图 3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1的预置值。 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 12 图 24 DS18B20内部结 引脚 说明 (1)DQ 为数字信号输入 /输出端; (2)GND 为电源地; (3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。 图 25 DS18B20 引脚图 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 13 第三章 硬件设计与实现 电子时钟至少包括秒信号发生 器、时间显示电路、按键电路、供电电路等 四部分,另外,本设计要求该电子钟能够采集温度,所以还需要温度采集 电路 ,硬件电路框图如 图 31。 图 31 硬件电路框图 该系统使用 AT89C52 单片机为核心 微控制器 ,通过读取时钟日历芯片DS1302 和温度传感器 DS18B20 的数据,完成电子时钟的主要功能 ——时钟 /日历和环境温度采集,使用 比较 直观的 LCD1602 显示,同时显示年月日,星期,时分秒 以及环境温度值。 键盘是为了完成时钟 /日历的校准。 整个电路使用了 +5V电源 供电。 单片机最小系统的设计 AT89S52 单片机为 40引脚双列直插芯片 ,有四个 I/O 口 P0,P1,P2,P3, MCS51单片机共有 4 个 8 位的 I/O 口( P0、 P P P3),每一条 I/O 线都能独立地作输出或输入。 单片机的最小系统如图 31 所示 ,18 引脚和 19 引脚接时钟电路 ,XTAL1 接外部晶振和微调电容的一端 ,在片内它是振荡器倒相放大器的输入 ,XTAL2 接外部晶振和微调电容的另一端 ,在片内它是振荡器倒相放大器的输出。 第 9 引脚为复位输入端 ,接上电容 ,电阻及开关后够上电复位电路 ,20 引脚为接 地端 ,40 引脚为电源端。 AT89S52 LCD1602显示器 DS1302 时钟 温 度 传感 器DS18B20 键盘 +5V电源 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 14 图 32 单片机最小系统 时钟电路的设计 本系统采用有 DS1302 串行时钟芯片作为主时钟电路,该电路使用单独的 的晶振和单独的电源供电,减小主控的负担。 电路图如图 33 所示。 图 33 时钟电路 温度采集模块的设计 采用数字式温度传感器 DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P 与 DS18B20 的 I/O 口连接加一个上拉电阻 ,Vcc 接电源 ,Vss 接地。 电路图如图 34所示。 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 15 图 34 温度采集电路 LCDM1602 显示模块设计 图 35 LCD显示电路 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 16 第四章 系统软件设计与实现 89S52单片机可以应用汇编语言和 C语言进行编程。 汇编语言与机器语言指令一一对应 ,所以用汇编语言编写的程序在单片机里运行起来效率较高。 C语言程序可读性高 ,更便于理解 , 本设计采用 C语言编程 [11]。 主程序设计 第一次上电 ,系统先进行初始化 ,LCD显示初始时间 “ 03:25:00” ,并开始走时 ,初始日期为 “ 2020430”。 单片机依次开始调用 DS1302子程序, DS18B20子程序,键盘子程序返回开头循环运行 [3]。 主序流程图如图 41。 图 41主序流程图 实时时钟日历子程序设计 该程序主要实现对 DS1302写保护、充电,对年、月、日、星期、时、分、秒等寄存的读写操作。 在读写操作子程序中都执行了关中断指令,因为在串行通开始 初始化 显示子程序 DS1302子程序 DS18B20子程序 延时 程序 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 17 信时对时序要求比较高,而且在此是用 单片 机内部 软件模拟串行时钟脉冲, 并由I/O口 输出, 所以在通信过程中最好保证传输的连续性,不要允许中断,其流程图如图 42。 DS1302每次上电 后会 自动处于暂停状态,必须把秒寄存器的位 7置位 0,时钟才开始计时。 如果 DS1302一直没有掉电则不会存在此问题。 在进行写操作时,需要先解除写保护寄存器的 “禁止 ”状态。 当用多字节模式进行操作时,必须写够 8个字节。 图 42 对 DS1302操作流程图 环境温度采集子程序设计 DS18B20是 1wire单线器件, 它在一根数据线上实现数据的双向传输,这就需要一定的协议来对读写数据提出严格的时序要求, AT89C51单片机并不支持单线传输。 因此,必须采用软件的方法来模拟单线的协议时序 [6]。 主机操作单线器件 DS18B20必须遵循下面的顺序。 ; ROM操作命令 ; ;。 开始 初始化 写入时钟初值 开始计时 读出数据 返回 无锡科技职业学院毕业设计(论文) 基于液晶显示的万年历设计 18 实现环境温度采集转换并读取数据的程序流程图 如图 43。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。