万年历设计
- 格式:doc
- 大小:68.00 KB
- 文档页数:6
基于单片机的可调式万年历
实训报告
院系: 机电学院
专业: 电子信息工程
班级: ******
学生姓名: **
学号:******
指导教师: *****
重庆******学院
二○一一年十一月
基于单片机的可调式万年历
实训学时:32
实训目标:实训学生综合运用已学课程的基础知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计,调试和电路设计,分析及调试检测。
实训要求:利用单片机控制实现在LCD1602上显示出日期、星期、时间及温度。
一、本课题主要的研究工作
本项目是一种基于AT89C51片机的万年历设计,本方案以AT89C51片机作为主控核心,与时钟芯片DS1302、按键、LCD1602液晶显示器组成硬件系统。
在硬件系统中设有独立按键和LCD1602显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行更改,读取方便、显示直观。
1本设计的主要内容:
(1)熟悉万年历各模块的工作原理;
(2)选择适当的芯片和元器件,确定系统电路,绘制电路原理图,尤其是各接口电路;
(3)熟悉单片机使用方法和C语言,编写出相应模块的应用程序;
(4)分别在各自的模块中调试出对应的功能,在Proteus软件上进行仿真,并实现各种功能。
二、电路设计框图
根据设计方案给出了系统总体的设计框图,如图1所示:
图1
为使时钟走时与标准时间一致,校时电路是必不可少的,键盘模块用来校正液晶上显示的时间;STC89C51单片机通过输出各种电脉冲信号来驱动控制各部分正常工作;而系统的时间、等数据则最终通过液晶模块显示出来。
2.1 系统硬件概述
本电路是以STC89C51单片机为控制核心,该芯片具有在线编程功能,功耗低,能在3.3V的超低压下工作;
时钟芯片采用DS1302,它是一款高性能、低功耗、自带RAM的实时时钟芯片,具有掉电自动保存功能。
可自动对秒、分、时、日、周、月、年进行计数,具有闰年补偿功能,而且精度高位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。
显示模块采用1602显示屏,它内置192种字符,可显示32个符号或数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。
其工作电压为5v。
2.2 单片机主控制模块的设计
一个典型的单片机最小系统一般由时钟电路、复位电路、电源指示灯和外部扩展接口等部分组成。
单片机的最小系统如下图所示,单片机的XTAL0和XTAL1引脚用于连接晶振电路。
RESET 为复位引脚,连接复位电路,用于初始化MCU。
2.3时钟电路模块的设计
DS1302内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。
图中VCC1为后备电源,VCC2为主电源。
DS1302由VCC1或VCC2两者中的较大者供电。
所以在主电源关闭的情况下,也能保持时钟的连续运行。
X1和X2是振荡源,外接32.768KHz晶振用来为芯片提供计时脉冲。
RST是复位/
片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
DS1302
的硬件接线图如图2所示:
C2
C1
图2
时钟芯片DS1302的工作原理:
(1) DS1302的控制字节:DS1302控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出
(2) 数据输入输出(I/O):在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
(3) DS1302的寄存器:DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。
“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。
“WP”是写保护位,在任何的对时钟和RAM 的写操作之前,“WP”必须为0。
当“WP”为1时,写保护位防止对任一寄存器的写操作。
2.4显示模块的设计
本设计中要对时间、温度进行显示,液晶显示屏1602模块作为输出。
1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。
它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单。
1602
液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B (41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。
LCD1602引脚功能:
1 VSS 一般接地
2 VDD 接电源(+5V)
3 V0 液晶显示器对比度调整端。
4 RS RS为寄存器选择。
5 R/W R/W为读写信号线。
6 E E(或EN)端为使能(enable)端,下降沿使能。
1602主要管脚介绍:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生鬼影使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。
R/W为读写信号线端,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为高电平R/W 为低电平时可以写入数据。
E为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
将L1602的RS端和P2.0,R/W端和P2.1, E 端和P2.2相连,当RS=0时,对LCD1602写入指令;当RS=1时,对LCD1602写入数据。
当R/W端接高电平时芯片处于读数据状态,反之处于写数据状态,E端为使能信号端。
当R/W为高电平,E端也为高电平,RS为低电平时,液晶显示屏显示需要显示的示数。
图3 电路图
实训心得:
在整个设计过程中,充分发挥了人的主观能动性,自主学习,学到了许多没学到的知识。
程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考查资料,和同学讨论,理清了思路,完成对程序的编写。
通过设计提高了对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。
通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能力;通过这次设计熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。
最终较好的完成了设计,达到了预期的目的.。