数字电子万年历的毕业论文

更新时间:2023-07-25 06:15:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电子万年历

摘要:本设计以数字集成电路技术为基础,单片机技术为核心。软件设计采用模块化结构,汇编语言编程。系统通过LED显示数据,可以显示公历日期(年、月、日、时、分、秒)。在内容安排上首先描述系统硬件工作原理,着重介绍了各硬件接口技术和各个接口模块的功能;其次,详细的阐述了程序的各个模块和实现过程。 关键词:单片机;万年历

Electronic calendar

LIU TAO

Xian aviation technology college

Abstract: The design is based on digital integrate circuit, microcontroller technology is the core of the system. The software design uses module structure and adapts microcontroller assemble language. The system can display calendar date, including year, month, week, hour, minute, second and week. The work principle of the system is discussed in this paper, hardware interface and module function are reported primarily in the system.

目 录

前言 ……………………………………………………………………………………...II 第一章 设计要求 ……………………………………………………………….……….1 第二章方案论证与设计 …………………………………………………………...2

2.1控制器部分方案论证 2.2显示部分的方案论证 2.3系统设计

第三章各硬件介绍 …………………………………………………………………6

3.1 AT89S51的引脚说明

3.2 74LS164简介

第四章系统硬件设计所需的器材………………………………………………….8 第五章系统软件总体设计 …………………………………………………………10 第六章主程序流程图及按键功能的介绍 …………………………………………14 第七章 闰年、月份计算流程框图…………………………………………………15 第八章安装制作 …………………………………………………………………...16 第九章 程序 ………………………………………………………………………..17 第十章结束语 ………………………………………………………………………22 参考资料 ………………………………………………………………………… 23附表1

前 言

电子万年历是实现对年,月,日,时,分,秒数字显示的计时装置,广泛用于个人家庭,车站, 码头,办公室,银行大厅等场所,成为人们日常生活中的必需品。数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的万年历精度高,功能易于扩展。可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用有着非常现实的意义。本设计就是数字时钟简单的扩展应用。

第一章设计要求

本设计准备实现的功能

(1)显示公历日期功能(年、月、日、时、分、秒),并且是双位显示。

(2)可随时调校年、月、日或时、分

(3)可每次增一进行时间调节。

第二章方案论证与设计

2.1控制器部分方案论证

方案一:可采用ALTERA公司的FLEX10K系列PLD器件。设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。从成本上来讲,用可编程逻辑器件来设计也没有什么优势。

方案二:凌阳16位单片机有丰富的中断源和时基。它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。I/O口功能也比较强大,方便使用。用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录制播放和识别。这些都方便对设计进行扩展,使设计更加完善。成本也相对低一些。但是,在控制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高,而且就需要完成万年历这个不太复杂的设计可以不必用凌阳16位单片机来完成,采用51单片机既能够实现既定功能,成本也不高。综合考虑最后选择用51单片机来作为中心控制器件。

硬件控制电路主要用了AT89S51芯片处理器、LCD显示器等。根据各自芯片的功能互相连接成电子万年历的控制电路。软件控制程序主要有主控程序、电子万年历的时间控制程序、时间显示及星期显示程序等组成。主控程序中对整个程序进行控制,进行了初始化程序及计数器、还有键盘功能程序、以及显示程序等工作,时间控制程序是电子万年历中比较重要的部分。时间控制程序体现了年、月、日、时、分、秒及星期的计算方法。时间控制程序主要是定时器0计时中断程序每隔10ms中断一次当作一个计数,每中断一次则计数加1,当计数100次时,则表示1秒到了,秒变量加1,同理再判断是否1分钟到了,再判断是否1小时到了,再判断是否1天到了,再判断是否1月到了,再判断是否1年到了,若计数到了则相关变量清除0。先给出一般年份的每月天数。如果是闰年,第二个月天数不为28天,而是29天。再用公式s=v-1 +〔(y-1/4)-〔(y-1/100)+〔(y-1/400)+ d计算当前显示日期是星期几,当调节日期时,星期自动的调整过来。闰年的判断规则为,如果该年份是4或100的整数倍或者是400的整数倍,则为闰年;否则为非闰年。在我们的这个设计中由于只涉及100年范围内,所以判断是否闰年就只需要用该年份除4来判断就行了。足条件的情况下,显示器的状态才变化。

2.2显示部分的方案论证 方案一:

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

采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,对于电子万年历而言,一个1602的液晶屏即可,但LCD液晶显示屏显示出来的不便于观看,所以不采用。 方案三:

采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少,数码管动态扫描需要借助74LS164移位寄存器进行移位,显示起来比较直观并且显示清楚,所以采用LED数码管显示。 2.3系统设计 2.3.1时钟电路

内部时钟电路如图所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件通常石英晶体和电容组成的并联谐振回路,晶体振荡器选择12MHZ,电容采用30PF。

2.3.2复位电路

影响单片机系统运行稳定性的因素可大体分为外因和内因两部分: (1)外因

射频干扰,它是以空间电磁场的形式传递在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁屏蔽和合理的布线/器件布局衰减该类干扰;

电源线或电源内部产生的干扰,它是通过电源线或电源内的部件耦合或直接传导,可通过电源滤波、隔离等措施来衰减该类干扰 。 (2)内因

振荡源的稳定性,主要由起振时间频率稳定度和占空比稳定度决定 起振时间可由电路参数整定稳定度受振荡器类型温度和电压等参数影响复位电路的可靠性。 2.3.3复位电路的可靠性设计

复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。 复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开 关或电源插头分-合过程中引起的抖动而影响复位。

2.3.4按键部分

本设计总的用了四个按扭开关作为键盘,其中一个是复位键,另三个中的其中两个是调整时间增加、减少的键,第三个是切换年、月、日及时、分、秒的显示状态并在所切换的显示状态下配合加减两个键调整时间。

2.3.5根据各模块的功能互相连接成电子万年历的控制电路

第三章各硬件介绍

3.1 AT89S51的引脚说明

AT89S51系列单片机中有PDIP,PLCC,TQFP多种封装形式。本设计采用的是PDIP封装

40

2-2

图9 AT89S51的PDIP封装引脚图

Fig.9 AT89S51

40个引脚中, 4组8位共32个I/O口,正电源和地线两根,外置石英振荡器的时钟线两根,现在对这些引脚的功能加以说明:

(1)Pin9:RESET/Vpd复位信号复用脚,当AT89S51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统开始复位。而RESET由高电平下降为低电平后,系统即从0000H地址单元开始执行程序。

(2)Pin29:PESN当访问外部程序存储器时,此脚输出负脉冲选通信号,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

(3)Pin30:ALE/PROG地址锁存允许信号端。单片机上电后,ALE引脚不断向外输出正脉冲信号, ALE信号可以用作对外输出时钟或定时信号。

(4)Pin31:EA/Vpp程序存储器的内外部选通线,89S51单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

3.2 74LS164简介

74HC164、74HCT164是高速硅门CMOS器件,与低功耗肖特基型TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。

时钟 (CP) 每次由低变高时,数据右移一位,输入到Q0, Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。

主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。

第四章系统硬件设计所需的器材

5V电源 3V电源 AT89S51单片机1个 LED共阴极数码管12个 74LS164 12个

电阻1 K的2个、4.7K的2个4.7欧排阻 晶振12M的一个 电容(30P的两个) 22μf电容1个 轻触开关5个

第五章系统软件总体设计

系统的软件设计采用汇编语言,对单片机进行编程实现各项功能。程序在WindowsXP环境下采用KIELC51软件编写。软件控制程序主要有主控程序、显示程序、延时程序、运算程序。 主控程序主要是进行一些简单的处理,通过调用子程序来完成年、月、日、时、分、秒的运算。显示程序主要是把计算所得的结果显示出来。

显示程序主要是把计算所得的年、月、日、时、分、秒通过串口传送到74LS164并且显示出来。

延时程序是用于秒的显示的,因为本设计用的是软件延时,所以需要专门的延时程序进行一秒的延时。

运算程序主要是用于闰年,平年和月份天数的计算。计算方法就是让年份除以4看余数是否为零,为零闰年反之为平年,单片机中刚好又除法指令。 (1) 显示程序:主要是通过串口传送数据 XS: MOV SCON,#00H

MOV DPTR,#TAB MOV B,#10 DIV AB MOV R5,A MOV A,B

MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ MOV A,R5

MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ RET

DB 3FH,06H,5bh,4FH,66H,6DH,7DH,07H,7FH,6FH

TAB:

(2) 延时程序:采用单片机内部的定时器进行延时 DL: MOV R7,#6 WW:

MOV TMOD,#01H ;50毫秒延时

MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB TF0,$ CLR TF0 DJNZ R7,WW RET

(3) 月份天数定义程序:把相同天数的月份归类 RX11: CJNE R4,#2,L391

MOV A,R3 CLR CY SUBB A,#30 SJMP L231

L391: CJNE R4,#1,L341

MOV A,R3 CLR CY SUBB A,#32 SJMP L231

L341: CJNE R4,#3,L351

MOV A,R3 CLR CY SUBB A,#32 SJMP L231

L351: CJNE R4,#5,L151

MOV A,R3 CLR CY SUBB A,#32

L151: CJNE R4,#7,L161 MOV A,R3 CLR CY SUBB A,#32

SJMP L231

L161: CJNE R4,#8,L171 MOV A,R3 CLR CY SUBB A,#32

SJMP L231

L171: CJNE R4,#10,L181 MOV A,R3 CLR CY SUBB A,#32

SJMP L231

L181: CJNE R4,#12,L191 MOV A,R3 CLR CY SUBB A,#32

SJMP L231

L191: CJNE R4,#4,L201 MOV A,R3 CLR CY SUBB A,#31

SJMP L231

L201: CJNE R4,#6,L211 MOV A,R3 CLR CY

SUBB A,#31

L211: CJNE R4,#9,L221 MOV A,R3 CLR CY SUBB A,#31

SJMP L231

L221: CJNE R4,#11,L231

MOV A,R3

(4) 调时程序:对年、月、日、时、分、秒进行调整TS: MOV R0,#00 L565: LCALL XS1 INC R1 LCALL DL JB P1.0,L1 CJNE R1,#60,L565 MOV R1,#00H

SJMP TS

TS1:

MOV R0,#00

L5651: LCALL XS1 INC R2 LCALL DL JB P1.1,L1 CJNE R2,#24,L5651 MOV R2,#00H

SJMP TS1

TS2:

MOV R0,#00

L5652: LCALL XS1 INC R3 LCALL DL

JB P1.2,L1

CJNE R3,#31,L5652 MOV R3,#00H SJMP TS2

MOV R0,#00

TS3:

L5653: LCALL XS1

INC R4 LCALL DL JB P1.3,L1 CJNE R4,#13,L5653 MOV R4,#00H SJMP TS3

MOV R0,#00

TS4:

L5654: LCALL XS1

INC R6 LCALL DL JB P1.4,L1 CJNE R6,#99,L5654 MOV R6,#00H SJMP TS4

6按键功能介绍

本设计用了五个按键,分别是年键、月键、日键、时见、分键。各自的主要功能是校时用的。

第六章主程序流程图及按键功能的介绍

五个按键,分别是年键、月键、日键、时见、分键。各自的主要功能是校时用的。

第七章 闰年、月份计算流程框图

第八章安装制作

8.1 清理元器件,重点辩别认清电阻器阻值及相应代号,对电阻、电容、等要用万用表一一检测。

8.2 焊完元器件后,在覆铜面剪掉多余元器件的引线,工具最好用斜口钳,可防止因剪线而使覆铜皮损坏。

8.3 焊接完后,请认真对照电路原理图、安装图检查电路板上有无漏焊、错焊、短路、断路等错误现象,确认无误后才能通电。

第九章 程序

/*********主程序`**************/ L1: JNB P1.0,TS ORG 0000H MOV SCON,#00H MOV A,#3FH MOV SBUF,A JNB TI,$ CLR TI

SJMP L14

TS3:

MOV R0,#00

L5653: LCALL XS1 INC R4 LCALL DL JB P1.3,L1 CJNE R4,#13,L5653 MOV R4,#00H

SJMP TS3

TS4:

MOV R0,#00

L5654: LCALL XS1 INC R6 LCALL DL JB P1.4,L1 CJNE R6,#99,L5654 MOV R6,#00H

SJMP TS4

L14: MOV R4,#1 L13:

MOV R3,#1

L4: MOV R2,#0 L3: MOV R1,#0 L2: MOV R0,#0

JNB P1.1,TS1 JNB P1.2,TS2 JNB P1.3,TS3 JNB P1.4,TS4 LCALL XS1 INC R0 LCALL DL LCALL DL CJNE R0,#60,L1 INC R1 CJNE R1,#60,L2 INC R2 CJNE R2,#24,L3 INC R3 MOV B,#4 MOV A,R6 MOV R7,A JZ L0009 DIV AB MOV A,R7 MOV R6,A MOV A,B

CJNE A,#0,L000

L0009: LCALL RX11

LJMP L334

L000: LCALL RXS L334: JC L4

INC R4

CJNE R4,#13,L13 INC R6 SJMP L14

TS: MOV R0,#00 L565: LCALL XS1 INC R1 LCALL DL JB P1.0,L1 CJNE R1,#60,L565 MOV R1,#00H

SJMP TS

TS1:

MOV R0,#00 L5651: LCALL XS1 INC R2 LCALL DL JB P1.1,L1 CJNE R2,#24,L5651 MOV R2,#00H

SJMP TS1

TS2:

MOV R0,#00

L5652: LCALL XS1 INC R3 LCALL DL JB P1.2,L1 CJNE R3,#31,L5652 MOV R3,#00H SJMP TS2

/*********显示序`**************/ XS: MOV SCON,#00H MOV DPTR,#TAB MOV B,#10 DIV AB MOV R5,A MOV A,B

MOVC A,@A+DPTR MOV SBUF,A JNB TI,$ MOV A,R5

MOVC A,@A+DPTR MOV SBUF,A JNB TI,$

RET

TAB:

DB

3FH,06H,5bh,4FH,66H,6DH,7DH,07H,7FH,6FH

/**********延时**********/ DL: MOV R7,#5 WW: MOV TMOD,#01H ;50毫秒

延时 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB TF0,$ CLR TF0 DJNZ R7,WW

RET

RX11: CJNE R4,#2,L391

本文来源:https://www.bwwdw.com/article/k6lm.html

Top