基于单片机的万年历的设计与实现.docx

上传人:b****7 文档编号:16304669 上传时间:2023-07-12 格式:DOCX 页数:19 大小:422.35KB
下载 相关 举报
基于单片机的万年历的设计与实现.docx_第1页
第1页 / 共19页
基于单片机的万年历的设计与实现.docx_第2页
第2页 / 共19页
基于单片机的万年历的设计与实现.docx_第3页
第3页 / 共19页
基于单片机的万年历的设计与实现.docx_第4页
第4页 / 共19页
基于单片机的万年历的设计与实现.docx_第5页
第5页 / 共19页
基于单片机的万年历的设计与实现.docx_第6页
第6页 / 共19页
基于单片机的万年历的设计与实现.docx_第7页
第7页 / 共19页
基于单片机的万年历的设计与实现.docx_第8页
第8页 / 共19页
基于单片机的万年历的设计与实现.docx_第9页
第9页 / 共19页
基于单片机的万年历的设计与实现.docx_第10页
第10页 / 共19页
基于单片机的万年历的设计与实现.docx_第11页
第11页 / 共19页
基于单片机的万年历的设计与实现.docx_第12页
第12页 / 共19页
基于单片机的万年历的设计与实现.docx_第13页
第13页 / 共19页
基于单片机的万年历的设计与实现.docx_第14页
第14页 / 共19页
基于单片机的万年历的设计与实现.docx_第15页
第15页 / 共19页
基于单片机的万年历的设计与实现.docx_第16页
第16页 / 共19页
基于单片机的万年历的设计与实现.docx_第17页
第17页 / 共19页
基于单片机的万年历的设计与实现.docx_第18页
第18页 / 共19页
基于单片机的万年历的设计与实现.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的万年历的设计与实现.docx

《基于单片机的万年历的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机的万年历的设计与实现.docx(19页珍藏版)》请在冰点文库上搜索。

基于单片机的万年历的设计与实现.docx

基于单片机的万年历的设计与实现

编号:

_______________

商丘工学院

毕业论文(设计)

 

题目:

基于单片机的万年历的设计与实现

 

系别机械工程学院

专业机电一体化

学生姓名曾星星

学号17

成绩

指导教师蒋琳

2021年04月

摘 要 

单片机应用技术飞速进展,纵观咱们此刻生活的各个领域,从导弹的导航装置,到飞机上各类仪表的操纵,从运算机的网络通信与数据传输,到工业自动化进程的实时操纵和数据处置,和咱们生活中普遍利用的各类智能IC卡、电子宠物等,这些都离不开单片机。

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

它体积小,本钱低,功能强,普遍应用于智能产业和工业自动化上。

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

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

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

系统由主操纵器AT89C5一、时钟电路DS130二、显示电路、按键电路、和复位电路等部份组成,能实现时钟日历显示的功能,能进行时、分、秒的显示。

关键词:

单片机,农历查询,万年历

 

 

 

 

第一章引言

随着微电子技术的高速进展,单片机在国民经济的个人领域取得了普遍的运用。

单片机以体积小、功能全、性价比高等诸多优势,在工业操纵、家用电器、通信设备、信息处置、尖端武器等各类测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必需把握的技术。

而电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很经常使用的题目。

因为它的有专门好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的把握能力加倍强调了对单片机扩展的应用。

而且在操作的设计上要力求简练,功能上尽可能齐全,显示界面也要超卓。

数字显示的日历钟已经愈来愈流行,专门是适合在家庭居室、办公室、大厅、会议室、车站和广场等利用,壁挂式LED数码管显示的日历钟慢慢受到人们的欢迎。

LED数字显示的日历钟显示清楚直观、走时准确、能够进行夜视,而且还能够扩展出多种功能。

因此,电子万年历不管作为竞赛题目仍是练习题目都是很有价值。

 

第二章计算部份

要紧单元电路的器件

单片机主操纵模块

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

如下图。

1.内部结构

按功能分为8部份:

CUP,程序存储器,数据存储器,时钟电路,串行口,并行I/O口,中断系统,按时/计数器。

1).电源及时钟引脚

Vcc:

接+5V电源

Vss:

接地

XTAL1和XTAL2:

时钟引脚,外接晶体引线端。

当利用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当利用外部时钟时,用于接外部时钟脉冲信号。

2).操纵引脚

RST/Vpq:

RST是复位信号输入端,Vpd是备用电源输入端。

当RST输入端维持2个机械周期以上高电平常,单片机完成复位初始化操作。

当主电源Vcc发生故障而突然下降到必然低电压或断电时,第2功能Vpd将为片内RAM提供电源以爱惜片内RAM中的信息不丢失。

ALE/PROG:

地址锁存许诺信号输入端。

在存取外存储器时,用于锁存低8位地址信号。

当单片机正常工作后,ALE端就周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号。

此引脚的第2功能PROG是对片内带有4K字节EPROM的8751固外程序时,作为编程脉冲输入端。

PSEN:

程序存储器许诺输出端。

当片外程序存储器的读选通信号,低电平有效。

CPU从外部程序存储器取指令时,PSEN信号会自动产生负脉冲,作为外部程序存储器的选通信号。

EA/Vpp:

程序存储器地址许诺输入端。

当EA为高电平常,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令;当EA为低电平常,CPU只执行片外程序存储器指令。

3).I/O口引脚

~:

P0口8位双向I/O口;

~:

P1口8位准双向I/O口;

~:

P2口8位准双向I/O口;

~:

P3口8位准双向I/O口。

3.片外总线结构

分为三部份:

数据总线DataBus(DB),地址总线AddressBus(AB),操纵总线ControlBus(CB).

AT89S52

时钟电路模块

1.DS1302的结构及工作原理

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实不时钟电路,它能够对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为~。

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

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

DS1302是DS1202的升级产品,与DS1202兼容,但增

加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

2.引脚功能及结构图1所示出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始终是输入端。

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

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

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

其他模块器件

74LS164

它是个串入并出的8位移位寄放器,它经常使用于单片机系统中,下面终止一下那个元件的大体知识:

74LS164引脚图

74LS164_内部功能图

74LS164_逻辑符合表

串行输入带锁存

时钟输入,串行输入带缓冲

异步清除

最高时钟频率可高达36Mhz

功耗:

10mW/bit

74系列工作温度:

0°Cto70°C

Vcc最高电压:

7V

输入最高电压:

7V

高电平:

低电平:

8mA

CON8

它是一个排插符号,也确实是一个插座,能够通过一个插头将89C51的P0口引到外面的有关电路作扩展用,也能够作为备用。

其他元器件

电阻,电容,发光二极管,三极管假设干。

 

第三章结构设计部份

显示部份设计

大体显示原理:

时钟开始显示为0时0分0秒,也确实是数码管显示000000,然后每秒秒位加1,到9后,10秒位加1,秒位回0。

10秒位到5后,即59秒,分钟加1,10秒位回0。

依次类推,时钟最大的显示值为23小时59分59秒。

那个地址只要确信了1秒的定不时刻,其他位均以此为基准往上累加。

同不时钟达到最大值的时候天数也增加一名,明白显示了7后再变成1,同时阴历和阳历的天数也加1,依照不同的月份显示的天数阳历有28,29,30,31天,阴历就要通过计算取得,到了12个月后,年数自动增加1,以此类推,显示万年历的现实。

另外,连接方式总电路图上能够看到,那个地址就不做说明了,以下图为显示部份的电路图。

显示部份电路图

万年历优化算法

 

阳历的算法比较简单,每十月的总的天数相对来讲是固定的。

只有2月份,在闰年是29天,在非闰年是28天。

每一个月的日历排法.主若是确信每一个月第一天是礼拜几。

咱们明白1901年1月1日是礼拜二,礼拜的转变是7天一个周期,比如说要计算1901年2月1日是礼拜几,能够如此推算:

从1901年1月1日到1901年2月1日总共通过了31天(从表1可看出),31对7取模是3:

i901年1月1日是礼拜二,加三后,是礼拜五。

因此1901年2月1日是礼拜五。

同理,能够推算出从1901—2100年任何一天是礼拜几。

表1

月份

1

2

3

4

5

6

7

8

9

10

11

12

闰年

31

29

31

30

31

30

31

31

30

31

30

31

非闰年

31

28

31

30

31

30

31

31

30

31

30

31

 

阴历的算法比较复杂,它包括两个部份。

一部份是阳历日和阴历日的对应关系;另一部份那么是阳历日和农历骨气的对应关系。

下面只介绍与设计有关的阴历和阳历的关系。

表2

比特数

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

数据

!

!

!

!

!

1

!

!

!

1

!

1

x

x

x

x

咱们先要做一个数据表,那个数据内外面每2个字节,表示T一个阴所年彝个月份的天教2个字节(共16bit)的具体意义如表2。

其中“!

(0/1)中“0”表示30天,“1”表示29天。

“xxxx(4个比特可表示数值范围0~15)”表示该年中是不是有闰月,数值“0”表示无闰月,“1~12”表示某一个闰月。

闰月一样是29天;在200年中(1901~2100年),闰月是30天的,可用一个特殊语句来解决。

那个地址2OO年需要200x2=400个字节,组成阴历紧缩数据表。

有了阴历的数据表后,主若是要确信阳历日和胡历日的对应关系。

咱们明白阳历年1901年1月1日,对应的阴历年是对应的阴历日,可用以下算法:

(1)从阳历年1901年1月1日到1901年2月1日,计算出通过了31天;

(2)依照阴历数听说明白阴历年1900年11月有29天,因此31—29=2天。

原先阳历年1901年1月1日对应的阴历日是11日,那么有11+1=13;

(3)因为阴历1901年12月份有30天,而13<=30,因此阳历年1901年2月1日对应的阴历年是1900年12月13日。

若是上一步相加得出的散大于当前阴历月的总的天敢,别应该继续减去当前阴历月的总的天数,直到符合条件。

关于月份增加时,还要通过数据表查看是不是要通过闰月。

关于其他任何一个阳历日和阴历日的对应关系,都能够通过以上算法求得结果。

实现时钟,日历显示设计

DS1302能够对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能.

DS1302的寄放器

DS1302有12个寄放器,其中有7个寄放器与日历、时钟相关,寄存的数据位为BCD码形式,其日历、

时刻寄放器及其操纵字见表1。

另外,DS1302还有年份寄放器、操纵寄放器、充电寄放器、时钟突发寄放器及与RAM相关的寄放器等。

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

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

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

DS1302实时显示时刻的软硬件

DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。

图3示出DS1302与89C2051的连接图,其中,时钟的显示用LCD。

DS1302与CPU的连接

事实上,在调试程序时能够不加电容器,只加一个的晶振即可。

只是选择晶振时,不同的晶振,误差也较大。

另外,还能够在上面的电路中加入DS18B20,同时显示实时温度。

只要占用CPU一个口线即可。

LCD还能够换成LED,还能够利用北京卫信杰科技进展生产的10位多功能8段液晶显

示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔画,具有3-4线串行接口,可与任何单片机、IC接口。

功耗低,显示状态时电流为2μA(典型值),省电模式时小于1μA,工作电压为~,显示清楚。

整体设计

实现进程:

由串行的时钟芯片DS1302,送给单片机,单片机处置后输出。

而74LS164将串行信号变成并行信号,每一个164对应LED七段码,三个164对应三行LED数码管。

单片机连接七个三极管作列驱动,共七列数码管,(实际有两行是六列)行列扫描一起形成万年历。

其整个进程,如原理图所示。

系统软件设计

程序流程框图

 

图-C时刻调整程序流程图

 

第四章实验测试部份

测试结果分析与结论

测试结果分析

(1).在测试中碰到发光二极管、LED数码管为不显示时,第一利用试测仪对电路进行测试,观看是不是存在漏焊,虚焊,或元件损坏.

(2).LED数码管显示不正常,还有亮度不够,第一利用试测仪对电路进行测试,观看电路是不是存在短路现象。

查看烧写的程序是不是正确无误,对程序进行认真修改。

在DS1302的时钟日历或RAM进行数据传送时,DS1302必需第一发送死令字节。

假设进行单字节传送,8位命令字节传送终止以后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。

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

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

要专门说明的是备用电源B1,能够用电池或超级电容器以上)。

尽管DS1302在主电源掉电后的耗电很小,可是,若是要长时刻保证时钟正常,最好选用小型充电电池。

能够用老式电脑主板上的充电电池。

若是断电时刻较短(几小时或几天)时,就能够够用漏电较小的一般电解电容器代替。

100μF就能够够保证1小时的正常走时。

DS1302在第一次加电后,必需进行初始化操作。

初始化后就能够够按正常方式调整时刻。

测试结论

 

第五章结论

在整个设计进程中,发挥团队精神,分工合作,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识,完成了对万年历的设计,达到了预期的目的。

在最初的设计中,发挥“三个臭皮匠,顶个诸葛亮”的作用,彼此学习、彼此讨论、研究,完成了最初的假想。

在电路焊接时尽管没什么大问题,但从中也明白了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成,反而达到事半功倍的成效。

对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。

程序编写中,由于思路不清楚,开始时碰到了很多的问题,通过静下心来试探,理清了思路,终于能够完成它。

在这次设计中,明白了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。

也练就了咱们的耐心,做什么事都在有耐心。

这次设计中学到了很多很多东西,这是最重要的。

 

参考文献

1刘勇编数字电路电子工业出版社2004

2陈正振编电子电路设计与制作广西交通职业技术学院信息工程系2007

3杨子文编单片机原理及应用西安电子科技大学出版社2006

4国法能编单片机原理及应用科学出版社2004

5曹琳琳.单片机原理及接口技术【M】.北京:

国防科技大学出版社,2000年.

6许惠民.单片微型运算机原理、接口及应用fM】.北京:

北京邮电大学出版社,2000年.

7康华光.电子技术基础【M】.北京:

高等教育出版社,2001年.

 

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2