万年历电子钟设计报告含电路图和源程序文档格式.docx

上传人:b****2 文档编号:13736772 上传时间:2022-10-13 格式:DOCX 页数:30 大小:440.55KB
下载 相关 举报
万年历电子钟设计报告含电路图和源程序文档格式.docx_第1页
第1页 / 共30页
万年历电子钟设计报告含电路图和源程序文档格式.docx_第2页
第2页 / 共30页
万年历电子钟设计报告含电路图和源程序文档格式.docx_第3页
第3页 / 共30页
万年历电子钟设计报告含电路图和源程序文档格式.docx_第4页
第4页 / 共30页
万年历电子钟设计报告含电路图和源程序文档格式.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

万年历电子钟设计报告含电路图和源程序文档格式.docx

《万年历电子钟设计报告含电路图和源程序文档格式.docx》由会员分享,可在线阅读,更多相关《万年历电子钟设计报告含电路图和源程序文档格式.docx(30页珍藏版)》请在冰豆网上搜索。

万年历电子钟设计报告含电路图和源程序文档格式.docx

方案二:

采用AT89S52,片内ROM全都采用FlashROM;

能以3V的超底压工作;

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

所以选择采用AT89S52作为主控制系统.

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

方案一:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比拟适合,如采用在显示数字显得太浪费,且价格也相对较高,所以不用此种作为显示.

方案二:

采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最适宜,但无法显示图形文字,在显示星期是也只能用数字表示,而且采用动态扫描法与单片机连接时,在编程时比拟复杂。

所以也不采用了LED数码管作为显示。

方案三:

采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样,清晰可见,所以在此设计中采用LCD液晶显示屏.

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

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进展计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5VX围内,2.5V时耗电小于300nA.但在,题目中明确规定不能选用不可以使用任何专用的时钟芯片和模块,因此不采用此方案。

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。

采用此种方案可以减少芯片的使用,也可以节约本钱。

所以采用此方案。

1.3电路设计最终方案决定

综上各方案所述,对此次作品的方案选定:

采用AT89S52作为主控制系统;

采用单片机定时器提供时钟;

液晶显示屏作为显示。

二、理论分析与计算

2.1,秒数的产生由定时器T0产生:

T0置10ms定时初值dc00H(2^16=65536D,dc00H=56320D)

定时时间=(65536-56320)*(1/11.0592)*12=10ms(单片机晶振f0=11.0592Mhz)

用累加的方法让定时时间累加一百次即可产生一秒时间:

100*10ms=1000ms=1s

2.2.总天数的算法:

首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否那么,为355。

然后判断输入的年是否为定义年,假设是,令总天数S=1,否那么,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,假设该月是闰年中的月份并且该月还大于二月,再使总天数加1,否那么,不加,既算出从定义年一月一日到输出年的该月一日的总天数。

2.3输出月份第一天为星期几的算法:

使总天数除以7取余加2得几既为星期几,假设是7,那么为星期日。

2.4.算出输出月份的完整日历算法:

算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。

5,计算某一天是星期几的算法:

蔡勒〔Zeller〕公式

历史上的某一天是星期几?

未来的某一天是星期几?

关于这个问题,有很多计算公式〔两个通用计算公式和一些分段计算公式〕,其中最著名的是蔡勒〔Zeller〕公式。

即:

w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

公式中的符号含义如下,w:

星期;

c:

世纪-1;

y:

年〔两位数〕;

m:

月〔m大于等于5,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比方2003年1月1日要看作2002年的13月1日来计算〕;

d:

日;

[]代表取整,即只要整数局部。

(C是世纪数减一,y是年份后两位,M是月份,d是日数。

1月和2月要按上一年的13月和14月来算,这时C和y均按上一年取值。

)算出来的W除以7,余数是几就是星期几。

如果余数是0,那么为星期日。

以2049年10月1日〔100周年国庆〕为例,用蔡勒〔Zeller〕公式进展计算,过程如下:

蔡勒〔Zeller〕公式:

=49+[49/4]+[20/4]-2×

20+[26×

(10+1)/10]+1-1

=49+[12.25]+5-40+[28.6]

=49+12+5-40+28

=54(除以7余5)

即2049年10月1日〔100周年国庆〕是星期5。

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

3.1电路设计框图:

AT89S52

主控制

模块

液晶显示模块

闹钟模块

3.2系统硬件概述:

本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;

显示部份LCD1602实现,能够同时显示16x02即32个字符;

闹钟局部由蜂鸣器构成,蜂鸣器是一种一体化构造的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、机、定时器等电子产品中作发声器件。

3.3主要单元电路的设计

3.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引脚为接地端,40引脚为电源端.如图-1所示

图-1主控制系统

3.3.2显示模块的设计

LCD1602液晶显示屏工业字符型液晶,能够同时显示16x02即32个字符。

〔16列2行〕,

有16个引脚,通过D0~D7的8位数据端传输数据和指令,引脚图如图6-5。

图6-5 LCD1602引脚示意图

LCD1602液晶显示屏引脚功能如表6-5所示:

表6-5LCD1602引脚功能

管脚1

Vss

一般接地

管脚2

Vdd

接电源〔+5V〕

管脚3

V0

液晶显示器比照度调整端,接正电源时比照度最弱,接地电源时比照度最高

管脚4

RS

RS为存放器选择,高电平1时选择数据存放器、低电平0时选择指令存放器

管脚5

R/W

R/W为读写信号线,高电平

(1)时进展读操作,低电平(0)时进展写操作。

管脚6

E

E(或EN)端为使能(enable)端,下降沿使能。

管脚7

DB0

底4位三态、双向数据总线0位

管脚8

DB1

底4位三态、双向数据总线1位

管脚9

DB2

底4位三态、双向数据总线2位

管脚10

DB3

底4位三态、双向数据总线3位

管脚11

DB4

高4位三态、双向数据总线4位

管脚12

DB5

高4位三态、双向数据总线5位

管脚13

DB6

高4位三态、双向数据总线6位

管脚14

DB7

高4位三态、双向数据总线7位

管脚15

BLA

背光电源正极

管脚16

BLK

背光电源负极

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

序号

指令

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

2

光标返回

*

3

置输入模式

I/D

S

4

显示开/关控制

D

C

B

5

光标或字符移位

S/C

R/L

6

置功能

DL

N

F

7

置字符发生存贮器地址

字符发生存贮器地址

8

置数据存贮器地址

显示数据存贮器地址

9

读忙标志或地址

BF

计数器地址

10

写数到CGRAM或DDRAM〕

要写的数据内容

11

从CGRAM或DDRAM读数

读出的数据内容

表10-14:

控制命令表

1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

〔说明:

1为高电平、0为低电平〕

指令1:

清显示,指令码01H,光标复位到地址00H位置。

指令2:

光标复位,光标返回到地址00H。

指令3:

光标和显示模式设置I/D:

光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平那么无效。

指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:

光标或显示移位S/C:

高电平时移动显示的文字,低电平时移动光标。

指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:

字符发生器RAM地址设置。

指令8:

DDRAM地址设置。

指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:

写数据。

指令11:

读数据。

将lcd的引脚与单片机连接,通过单片机实现对显示的输出,电路图实现如下:

3.3.3闹钟模块的设计

闹钟模块采用蜂鸣器实现,蜂鸣器是一种一体化构造的电子讯响器,采用直流电压供电。

通过单片机的p3.7引脚输出的电平变化来控制蜂鸣器的导通与否,设计如下:

3.3.4电源稳压模块

LM7805稳压

USB接口+5V供电

四、系统的软件设计

4.1程序流程框图

4.2闹钟模块流程图:

4.3按键调整模块流程图:

五、测试方案与测试结果分析

5.1测试仪器

名称

作用

KELL51软件

编写调试C程序并生成可烧录hex文件

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

当前位置:首页 > 自然科学 > 天文地理

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

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