电子万年历课程设计报告Word文档下载推荐.docx

上传人:b****8 文档编号:22874113 上传时间:2023-02-05 格式:DOCX 页数:47 大小:302.68KB
下载 相关 举报
电子万年历课程设计报告Word文档下载推荐.docx_第1页
第1页 / 共47页
电子万年历课程设计报告Word文档下载推荐.docx_第2页
第2页 / 共47页
电子万年历课程设计报告Word文档下载推荐.docx_第3页
第3页 / 共47页
电子万年历课程设计报告Word文档下载推荐.docx_第4页
第4页 / 共47页
电子万年历课程设计报告Word文档下载推荐.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

电子万年历课程设计报告Word文档下载推荐.docx

《电子万年历课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子万年历课程设计报告Word文档下载推荐.docx(47页珍藏版)》请在冰豆网上搜索。

电子万年历课程设计报告Word文档下载推荐.docx

更加也体会到以后在工作中团队合作的重要性和必要性!

通过本次课程设计,可以使同学们更熟练的使用单片机的软件仿真,如使用protues,keilC,wave等软件,同时也使同学们学会电子器件的基本焊接技术,对单片机的使用有更深的理解。

1.2课程设计的要求

1、能够显示时分秒、星期;

2、能够显示年月日;

3、能够自动清除屏幕以前的废弃信息;

4、能够修改时间;

5、能够定时;

6、要求划分功能模块,各个功能分别使用函数来完成;

7、源代码程序要有必要的注释;

8、能够半点报时和整点报时。

2系统设计

2.1基本工作原理

该系统主要是通过时钟芯片DS1302产生稳定的日期和时间,然后通过单片机控制时钟芯片和显示器LCD,从而输出稳定的时间,改系统的仿真图如图:

图1

从图1可知,该系统主要由到单片机控制系统,时钟产生系统和显示系统构成。

2.2系统设计

2.2.1系统组成方案

该系统主要由单片机控制系统,显示系统及时间信号产生系统构成。

控制系统有单片机机保证单片机工作的外围元件构成;

显示系统主要由16*2双排显示LCD构成;

时间产生系统主要由DS1302产生。

此外系统还有正常工作时的调时按键,定时时的调时按键以及复位按键,还有报时所需的蜂鸣器等。

2.2.2正常工作时按键、显示功能的定义

正常工作时,共用到四个键,一个为接到RST端的复位键,一个为接到P1.0端的功能键另外;

两个未分别接至P1.1、P1.2端的调时增减键。

正常工作时能调节时分秒,年月日及星期的时间,可加可减。

调时时光标闪烁。

2.2.3定时系统的功能及按键的定义

启动定时模式时,第一排首先显示“Dingshi!

”第二排显示日期和时间,此时共用到三个键,一个为功能键,选择调节对象,另外两个为加减键,对调节对象进行加减。

2.3系统总体设计

2.3.1主程序框图及清单

清单:

STC89C52,DS1302,LCD1602,排阻,5V电源,3V锂电池,蜂鸣器,6M晶振,32.768M晶振各一个;

33pF电容两个;

10pF电容一个;

100k电阻一个;

10k电阻一个。

3硬件设计

3.1主控制器

3.1.1STC89C52引脚封装与功能表

STC89C52与我们学过的AT89C51相似,但硬件配置更高,且更容易导入程序,所以使用比AT系列更广泛。

功能特性描述

  STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程Flash

3.1.2振荡电路及复位电路

振荡电路及复位电路原理图

3.2DS1302原理及引脚介绍

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

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

工作电压宽达2.5~5.5V。

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

DS1302的外部引脚分配如图1所示及内部结构如图2所示。

DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。

图1DS1302的外部引脚分配

图2DS1302的内部结构

各引脚的功能为:

Vcc1:

主电源;

Vcc2:

备份电源。

当Vcc2>

Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2<

Vcc1时,由Vcc1向DS1302供电。

SCLK:

串行时钟,输入,控制数据的输入与输出;

I/O:

三线接口时的双向数据线;

CE:

输入信号,在读、写数据期间,必须为高。

该引脚有两个功能:

第一,CE开始控制字访问移位寄存器的控制逻辑;

其次,CE提供结束单字节或多字节数据传输的方法。

DS1302有下列几组寄存器:

①DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h~8Dh,写时80h~8Ch),存放的数据格式为BCD码形式,如图3所示。

图3DS1302有关日历、时间的寄存器

小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。

当为高时,选择12小时模式。

在12小时模式时,位5是,当为1时,表示PM。

在24小时模式时,位5是第二个10小时位。

秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。

当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;

当该位置为0时,时钟开始运行。

控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。

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

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

②DS1302有关RAM的地址

DS1302中附加31字节静态RAM的地址如图4所示。

图4

③DS1302的工作模式寄存器

所谓突发模式是指一次传送多个字节的时钟信号和RAM数据。

突发模式寄存器如图5所示。

图5

④此外,DS1302还有充电寄存器等。

2读写时序说明

DS1302是SPI总线驱动方式。

它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。

要想与DS1302通信,首先要先了解DS1302的控制字。

DS1302的控制字如图6。

图6控制字(即地址及命令字节)

控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。

位6:

如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;

位5至位1(A4~A0):

指示操作单元的地址;

位0(最低有效位):

如为0,表示要进行写操作,为1表示进行读操作。

控制字总是从最低位开始输出。

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

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

数据读写时序如图7。

图7数据读写时序

具体操作见驱动程序。

3.3LCD显示驱动电路

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。

一般1602字符型液晶显示器实物如图10-53:

图10-531602字符型液晶显示器实物图

10.8.2.11602LCD的基本参数及引脚功能

1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图10-54所示:

图10-541602LCD尺寸图

1602LCD主要技术参数:

显示容量:

16×

2个字符

芯片工作电压:

4.5—5.5V

工作电流:

2.0mA(5.0V)

模块最佳工作电压:

5.0V

字符尺寸:

2.95×

4.35(W×

H)mm

引脚功能说明

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

3

VL

液晶显示偏压

11

D4

4

RS

数据/命令选择

12

D5

5

R/W

读/写选择

13

D6

6

E

使能信号

14

D7

7

D0

15

BLA

背光源正极

8

D1

16

BLK

背光源负极

表10-13:

引脚接口说明表

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

10.8.2.31602LCD的指令说明及时序

1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:

序号

指令

清显示

光标返回

*

置输入模式

I/D

S

显示开/关控制

D

C

B

光标或字符移位

S/C

R/L

置功能

DL

N

F

置字符发生存贮器地址

字符发生存贮器地址

置数据存贮器地址

显示数据存贮器地址

读忙标志或地址

BF

计数器地址

写数到CGRAM或DDRAM)

要写的数据内容

从CGRAM或DDRAM读数

读出的数据内容

4软件设计

4.1DS1302时间产生软件设计

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

DS1302模块

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

//地址数据发送子程序

voidw1302sj(unsignedcharaddr,unsignedchardat)

{

unsignedchari,temp;

rst1302=0;

sclk1302=0;

rst1302=1;

for(i=8;

i>

0;

i--)

{

temp=addr;

io1302=(bit)(temp&

0x01);

addr>

>

=1;

sclk1302=1;

}

temp=dat;

dat>

}

//数据读取子程序

unsignedcharr1302sj(unsignedcharaddr)

unsignedchari,temp,dat1;

{

sclk1302=0;

temp=addr;

io1302=(bit)(temp&

sclk1302=1;

//上升沿写入

}

{sclk1302=0;

ACC>

//一定要加在前边才行,最后一次io输出直接输到ACC.7上

ACC7=io1302;

//仍然是上升沿输出

dat1=ACC;

return(dat1);

//初始化1302

voidc1302cs(void)

w1302sj(xie_baohu,0x00);

//允许写

w1302sj(xie_miao,0x00);

//开始计时

4.2数据处理显示程序设计

LCD1602模块

//@写命令子程序

voidw1602zl(ucharzl)

rs1602=0;

//写命令时rs1602=0;

P0=zl;

delay

(1);

e1602=1;

//拉高使能端

e1602=0;

//降低使能端,下降沿写入数据

//@写数据子程序

voidw1602sj(ucharsj)

rs1602=1;

//写数据时rs1602=1;

P0=sj;

//年月日显示程序

voidwnyr(uchardz,ucharsj)

ucharge,shi;

ge=sj%10;

shi=sj/10;

w1602zl(one+dz);

//第一行首地址+要写入的地址

w1602sj(0x30+shi);

w1602sj(0x30+ge);

//0的显示码为0x30

//时分秒显示程序

voidwsfm(uchardz,ucharsj)

w1602zl(tw0+dz);

//第二行首地址+要写入的地址

//星期天写入函数

voidwxq(ucharxq)

w1602zl(one+0x0f);

w1602sj(0x30+xq);

//LCD初始化函数

voidlcdcs()

uchark;

w1602zl(0x38);

//16*2,5*7点阵,8位数据

w1602zl(0x0c);

//开显示,不显示光标,不闪烁

w1602zl(0x06);

//显示光标,光标右移

w1602zl(0x01);

//清屏

w1602zl(one);

//写入第一行不改变的部分

for(k=0;

k<

16;

k++)

w1602sj(xian1[k]);

w1602zl(tw0+4);

//写入第二行不改变的部分

8;

w1602sj(xian2[k]);

//LCD1初始化函数

voidlcdcs1()

9;

w1602sj(xian3[k]);

5系统操作说明

最后成型的万年历操作比较怕简单,总共7个按键,分三个模块,正常调时有功能键,加减键;

定时模式有三个键,分别是所调对象,以及对所条对象的加减键;

复位模式有一个复位键。

此外还有一个调节液晶显示亮度的可调电阻。

界面比较简单易懂。

6结束语

课程设计的目的并不只是为了让我们做出一个简单的硬件出来,我们首先要完善我们的软件系统,这样做出来的硬件才会更见完美。

当然,完善的软件首先建立在我们对硬件的了解。

软硬件结合,加上过硬的焊工,我相信,我们做出来的课程设计一定最完美。

课程设计让我们更加贴近生活,了解我们所学的知识在生活中的应用,增加学习的兴趣,同时吧我们这一学期所学的知识做一个总结,也为我们下学期所要学的嵌入式打下基础。

7参考文献

1.郑峰等编著.51单片机应用系统典型开发大全(第二版).[M]中国铁道出版社,2011.3

2.张毅刚,彭喜元编著.单片机原理与应用设计.[M]北京:

电子工业出版社,2008.4

3.张义和等编著.例说51单片机(C语言版)(第3版).[M]北京:

人民邮电出版社,2010.6

8系统原理图

附录1

程序清单

//声明变量

#include<

reg51.h>

#defineuintunsignedint

#defineucharunsignedchar

#defineone0x80

#definetw00xc0

#definedu_miao0

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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