基51单片机的电子万年历黄雨龙.docx

上传人:b****4 文档编号:4344637 上传时间:2022-11-30 格式:DOCX 页数:45 大小:1.07MB
下载 相关 举报
基51单片机的电子万年历黄雨龙.docx_第1页
第1页 / 共45页
基51单片机的电子万年历黄雨龙.docx_第2页
第2页 / 共45页
基51单片机的电子万年历黄雨龙.docx_第3页
第3页 / 共45页
基51单片机的电子万年历黄雨龙.docx_第4页
第4页 / 共45页
基51单片机的电子万年历黄雨龙.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

基51单片机的电子万年历黄雨龙.docx

《基51单片机的电子万年历黄雨龙.docx》由会员分享,可在线阅读,更多相关《基51单片机的电子万年历黄雨龙.docx(45页珍藏版)》请在冰豆网上搜索。

基51单片机的电子万年历黄雨龙.docx

基51单片机的电子万年历黄雨龙

 

河南机电高等专科学校

 

毕业设计论文

论文题目:

基51单片机的电子万年历

 

系部电子通信工程系

专业应用电子技术

班级

学生姓名

学号

指导教师白宏伟

2012年3月10日

摘要2

Abstract3

一、设计要求与方案论证4

1.1 设计要求4

1.2系统基本方案选择和论证4

1.2.1单片机芯片的选择方案和论证4

1.2.2显示模块选择方案和论证4

1.2.3时钟芯片的选择方案和论证5

1.2.4键盘模块的选择5

二.系统的硬件设计与实现6

2.1电路设计框图6

2.2系统硬件概述6

2.3主要单元电路的设计6

2.3.1单片机主控制模块的设计6

2.3.2时钟电路模块的设计7

2.3.3蜂鸣器模块设计8

2.4电路原理及说明8

2.4.1时钟芯片DS1302的工作原理9

2.4.2Nokia5110显示模块工作原理10

2.4.3键盘模块工作原理17

三、系统的软件设计18

3.1主程序流程框图18

3.2设置模块流程图18

四、系统功能简介19

五、设计总结20

致谢20

参考文献20

附录一系统原理图21

附录2PCB21

附录3源程序代码22

摘要

单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。

单片机是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。

它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。

而51系列单片机是各单片机中最为典型和最有代表性的一种。

这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

  本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。

系统由主控制器AT89S52、时钟电路DS1302、显示电路、按键电路、和复位电路等部分构成,能实现年月日时分秒及周信息,具有可调整日期和时间功能。

 

关键词:

单片机,时钟芯片DS1302,nokia5110显示屏

Abstract

SCMapplicationtechnologydeveloprapidly,lookingaroundusnowinallspheresoflife,frommissiles,navigationequipment,tothevariousinstrumentsontheaircraftcontrolfromacomputernetworkcommunicationsanddatatransmission,industrialautomationtoreal-timeprocesscontrolanddataprocessing,andourlivesextensiveuseofthesmartcard,electronicpets,whichisinseparablefromthemicrocontroller.Monolithicsingle-chipisthesetofCPU,RAM,ROM,thetiming,numberandvarietyofinterfaceintegratedmicrocontrollers.Itssmallsize,lowcost,highperformance,whicharewidelyusedinsmartindustries,andindustrialautomation.And51SeriesSCMisthemosttypicalandthemostrepresentativeone.ThegraduationdesignThroughthestudy,andtherebyachievethestudy,design,developmenthardwareandsoftwarecapabilities.

Inthispaper,amicrocontroller-baseddesigntoachieveaperpetualcalendarfunctionelectronicclock,soastoachievethelearning,understandingtheapplicationofSCM-relatedinstructioninallaspects.ThesystemofDS1302bythemastercontrollerAT89S52,clockcircuits,circuit,circuitbutton,andresetcircuitparts,toachievethedate,hourandweeks,withadjustabledateandtimefunctions.

 

Keywords:

SCM,ClockchipDS1302,nokia5110display

一、设计要求与方案论证

1.1 设计要求

1具有年、月、日、星期、时、分、秒等显示功能;

2具备年、月、日、星期、时、分、秒调整功能;

3利用单片机自身功能实现闹钟;

1.2系统基本方案选择和论证

1.2.1单片机芯片的选择方案和论证

方案一:

采用89C51芯片作为硬件核心,采用FlashROM,内部具有4KBROM存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。

方案二:

采用AT89S52,片内ROM全都采用FlashROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KBROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。

由于此次制作的万年历程序较大,4KB可能会不够,而且AT89S52调试更为方便,所以选择采用AT89S52作为主控制系统.

1.2.2显示模块选择方案和论证

方案一:

采用LCD1602作为显示模块。

能显示两行数据,体积精小,成本低,但是不能显示中文。

方案二:

采用LCD12864作为显示模块。

能显示多行数据并能显示图片和中文,但体积庞大,成本高。

方案三:

采用LED数码管动态扫描,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。

但是不能显示汉字,字母。

方案五:

采用nokia5110液晶屏,其控制与驱动芯片为PCD8544,PCD8544是一块低功耗的CMOSLCD控制驱动器,设计为驱动48行84列的图形显示.所有必需的显示功能集成在一块芯片上,包括LCD电压及偏置电压发生器,只需很少外部元件且功耗小.而且现在拆机的屏幕价格便宜,性价比较高。

本次设计的万年历需要显示年,月,日,时,分,秒,农历…所以最终选择了价格便宜,显示效果相对出色的nokia5110液晶显示屏。

1.2.3时钟芯片的选择方案和论证

方案一:

AT89S52单片机内部带有定时/计数功能,此定时功能是通过对外部晶振的脉冲进行计数,从而达到计时功能,,因此可以利用此功能实现计时,但因为只有单一的计时功能要实现“万年历”的功能需要较复杂的程序,而且时间误差较大。

方案二:

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。

实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。

工作电压宽达2.5~5.5V。

采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。

利用单片机强大的控制功能就可实现实时计时的功能,而且消耗的系统资源少,程序简单。

为了简化程序,避免掉电数据丢失所以采用方案二。

1.2.4键盘模块的选择

在对日期和时间进行切换,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。

方案一:

使用独立式键盘。

独立式键盘是指直接用I/O口线构成的单个按键电路。

独立式按键电路配置灵活,软件结构简单。

方案二:

使用矩阵式键盘。

矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。

其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。

根据以上的论述,因本系统需要的按键较少而且方案一软件设计相对简单。

所以采用方案一独立式键盘。

 

二.系统的硬件设计与实现

2.1电路设计框图

图2-1电路设计框图

2.2系统硬件概述

本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。

可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示模块是诺基亚5110手机显示屏,其控制与驱动芯片为PCD8544,设计为驱动48行84列的图形显示.可以显示4行汉字。

采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源和地在内的信号线仅有9条。

支持多种串行通信协议(如AVR单片机的SPI、MCS51的串口模式等),传输速率高达4Mbps,可全速写入显示数据,无等待时间。

可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更换。

采用低电压供电,正常显示时的工作电流在200μA以下,且具有掉电模式。

2.3主要单元电路的设计

2.3.1单片机主控制模块的设计

AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,31引脚为EA/VPP,当输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。

当地址超出4KB时,将自动执行片外程序存储器的程序。

当EA输入低电平时,CPU仅访问片外程序存储器。

40引脚为电源端.如图2-2所示

图2-2主控制系统

2.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引脚变为高阻态。

上电运行时,在Vcc>2.0V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

I/O为串行数据输入输出端(双向),后面有详细说明。

SCLK为时钟输入端。

下面两个图分别为DS1302的引脚功能图,DS1302与单片机的接口电路。

图2-3DS1302功能引脚

图2-4DS1302与单片机接口电路

2.3.3蜂鸣器模块设计

当前时间等于闹钟所设置时间时蜂鸣器便会发出声音提示,该模块与单片机连接如图2-5所示。

图2-5蜂鸣器与单片机连接

2.4电路原理及说明

2.4.1时钟芯片DS1302的工作原理

(一)DS1302的基本操作

DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。

图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。

对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。

位1至位5指操作单元的地址。

位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。

控制字节总是从最低位开始输入/输出的。

表6为DS1302的日历、时间寄存器内容:

“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。

“WP”

是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。

当“WP”为1时,写保护位防止对任一寄存器的写操作。

(2)DS1302的控制字节

DS1302的控制字如表2-1所示。

控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出

表2-1DS1302的控制字格式

RAMRD

1A4A3A2A1A0

/CK/WR

(3)数据输入输出(I/O)

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。

同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

如下图2-6所示

图2-6DS1302读/写时序图

(4)DS1302的寄存器

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2-2。

表2-2DS1302的日历、时间寄存器

此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。

时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。

DS1302与RAM相关的寄存器分为两类:

一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。

2.4.2Nokia5110显示模块工作原理

(一)Nokia5110显示屏原理图与封装图

图2-7Nokia5110液晶屏原理图

图2-8Nokia5110液晶屏pcb封装图

(二)各个引脚功能说明

表2-3各个引脚功能说明

(三)  SPI接口时序写数据/命令

Nokia5110(PCD8544)的通信协议是一个没有MISO只有MOSI的SPI协议,如果单片机有富裕的SPI接口,也可以利用硬件SPI,但通常没有必要,只需要软件程序模拟即可。

图2-9为串行总线协议传送一个字节时序图。

 

图2-9串行总线协议传送一个字节时序图

/***********************************************************

函数名称:

LCD_write_byte

函数功能:

模拟SPI接口时序写数据/命令LCD

入口参数:

data:

写入的数据;

command:

写数据/命令选择;

出口参数:

备注:

***********************************************************/

voidLCD_write_byte(unsignedchardat,unsignedcharcommand)

{

unsignedchari;

LCD_CE=0;//5110片选有效,允许输入数据

if(command==0)//写命令

LCD_DC=0;

elseLCD_DC=1;//写数据

for(i=0;i<8;i++)//传送8bit数据

{

if(dat&0x80)

SDIN=1;

else

SDIN=0;

SCLK=0;

dat=dat<<1;

SCLK=1;

}

LCD_CE=1;//禁止5110

}

管脚D/C(LCD_DC)用于选择写的是命令(D/C=0)还是数据(D/C=1)。

(四)  Nokia5110的初始化

接通电源后,内部寄存器和RAM的内容是不确定的,这需要一个RES低电平脉冲复位一下。

当VDD变为高电平,达到VDDmin(或更高)之后,最多100ms,RST输入低电平(电平幅度<0.3VDD)。

图2-10为Nokia5110液晶屏复位时序图。

 

图2-105110复位时序

/***********************************************************

函数名称:

LCD_init

函数功能:

5110初始化

入口参数:

出口参数:

备注:

***********************************************************/

voidLCD_init(void)

{

LCD_RST=0;//产生一个让LCD复位的低电平脉冲

delay_1us();

LCD_RST=1;

LCD_CE=0;//关闭LCD

delay_1us();

LCD_CE=1;//使能LCD

delay_1us();

LCD_write_byte(0x21,0);//使用扩展命令设置LCD模式

LCD_write_byte(0xc8,0);//设置液晶偏置电压

LCD_write_byte(0x06,0);//温度校正

LCD_write_byte(0x13,0);//1:

48

LCD_write_byte(0x20,0);//使用基本命令,V=0,水平寻址

LCD_clear();//清屏

LCD_write_byte(0x0c,0);//设定显示模式,正常显示

LCD_CE=0;//关闭LCD

}

(五)设置Nokia5110液晶的坐标

Nokia5110(PCD8544)的命令集:

 

表2-4Nokia5110命令集

命令字符解释:

表2-5命令字符解释

要注意的是“功能设置”命令的“H”和“V”。

H=0使用基本指令集命令,H=1使用扩展指令集命令。

V=0水平寻址,V=1垂直寻址。

图2-11格式和寻址

48*84点阵的格式如上图,数据以字节8bit为单位下载到PCD8544的48*84bit显示数据RAM矩阵。

列通过地址指针寻址,地址范围为X0~83(1010011),Y0~5(101)。

地址不允许超过这个范围。

图2-12用垂直寻址方式(v=1)往RAM写数据的次序

在垂直寻址(V=1),Y地址在每个字节之后递增,经最后的Y地址(Y=5)之后,Y绕回0,X递增到下一列的地址。

 

图2-13用水平寻址方式(v=0)往RAM写数据的次序

在水平寻址模式(V=0),X地址在每个字节之后递增,经最后的X地址(X=83)之后,X绕回0,Y递增到下一行的地址。

经每一个最后地址之后(X=83,Y=5),地址指针绕回地址(X=0,Y=0)。

/***********************************************************

函数名称:

LCD_set_XY

函数功能:

设置LCD坐标函数

入口参数:

X:

0-83

Y:

0-5

出口参数:

备注:

***********************************************************/

voidLCD_set_XY(unsignedcharX,unsignedcharY)

{

LCD_write_byte(0x40|Y,0);//column

LCD_write_byte(0x80|X,0);//row

}

2.4.3键盘模块工作原理

(一)按键开关去抖动问题

按键开关在电路中的连接如图所示。

按键未按下时,A点电位为高电平5V;按键按下时,A点电位为低电平。

A点电位就用于向CPU传递按键的开关状态。

但是由于按键的结构为机械弹性开关,在按键按下和断开时,触点在闭合和断开瞬间还会接触不稳定,引起A点电平不稳定,如图2-14b)所示,键盘的抖动时间一般为5~10ms,抖动现象会引起CPU对一次键操作进行多次处理,从而可能产生错误。

因此必须设法消除抖动的不良后果。

 

图2-14按键开关电路及按键抖动

消除抖动的不良后果的方法有硬、软件两种。

为了节省硬件,通常在单片机系统中,一般不采用硬件方法消除键的抖动,而是用软件消除抖动的方法。

根据抖动特性,在第一次检测到按键按下后,执行一段延时5~10ms让前延抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认真正有键按下。

当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后才转入该键处理程序。

三、系统的软件设计

3.1主程序流程框图

图3-1主程序流程图

 

3.2设置模块流程图

图3-2设置模块流程图

四、系统功能简介

该万年历采用DS1302作为时钟芯片,NOKIA5110手机屏幕作为显示设备,AT89S52作为主控芯片,而且采用备用电池供电正正实现了掉电时间正常,而且时钟芯片精确度很高,一天只有几秒钟误差,nokia5110显

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1