数字万年历毕业设计.docx
《数字万年历毕业设计.docx》由会员分享,可在线阅读,更多相关《数字万年历毕业设计.docx(36页珍藏版)》请在冰点文库上搜索。
数字万年历毕业设计
数字万年历毕业设计
目录
第一章数字万年历需求分析1
§1-1万年历的概念1
§1-2需求分析1
第二章系统的硬件设计与实现2
§2-1系统电路示意图2
§2-2驱动电路2
§2-3时钟控制电路3
§2-4所需主要器件3
§2-5系统硬件概述4
第三章系统的软件设计15
§3-1程序流程框图15
§3-2程序设计18
第四章安装与调试24
§4-1安装24
§4-2调试24
§4-3软、硬件测试25
4-3-1硬件测试25
4-3-2软件测试25
§4-4测试结果分析与结论25
4-4-1测试结果分析25
4-4-2测试结论26
第五章总结26
致谢27
参考文献28
第一章数字万年历需求分析
§1-1万年历的概念
万年历我国古代传说中最古老的一部太阳历。
为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。
而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。
万年历只是一种象征,表示时间跨度大。
§1-2需求分析
在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。
为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。
钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时功能,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。
因此在这里,我想能不能把一些辅助功能加入钟表中去。
在此设计中所设计的钟表不但具有普通钟表的功能,它还能实现额外的功能:
世界时间、农历显示。
改革开放30年来,中国电子万年历市场从无到有,从小到大、从总量快速扩张到结构明显升级,逐步形成了有中国特色的多样化、多层次的消费市场。
电子万年历市场规模比改革初期扩大了几倍乃至几十倍,其发展成就令世人瞩目。
同时随着数字技术网络技术飞速发展,今天数字万年历也得到了迅猛的发展。
万年历早超越了单纯的钟表只显视时间的结构,它已经了发展成为一套完整的系统。
它在日常生活发挥着巨大的作用人们对它需求也越来越高。
本系统采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LED显示电路、键盘电路,使人机交互简便易行,此外结合音乐闹铃电路、看门狗和供电电路。
本方案设计出的万年历可以显示日期时间、世界时、农历,设置闹铃功能。
第二章系统的硬件设计与实现
§2-1系统电路示意图
图2.1系统电路图
备注:
ØP24接30K电阻到地时,上电初始显示12小时制,否则为24小时制。
ØP19接30K电阻到地时,为越南版。
ØC11的104电容要尽量靠近CPU的VDD与GND脚。
Ø若希望数码管更亮,请将R14-R28值调小。
§2-2驱动电路
驱动电路采用74LS164的芯片来驱动,在单片机系统中,如果并行口的IO资源不够,而串行口又没有其他的作用,那么我们可以用74LS164来扩展并行IO口,节约单片机资源它是一个8位并行输出门控串行输入移位寄存器,其显示数据以串行方式从单片机的输出口输出送往移位寄存器74LS164的A、B端,然后将转换的并行数据从输出端Q0~Q7输出,几乎同时驱动与之相接的LED数码管,各个数码管便以很短时间间隔轮流显示。
由于人眼的残留效应,所以各个数码管看上去几乎是同时显示的,74LS164的引脚定义及真值表,如下图2.1所示。
图2.2系统电路图
§2-3时钟控制电路
本设计的实时时钟电路用DS1302,如图2.4,它的工作电压一般为2.5-5.5V,它的主要特点是采用串行数据传输,同时增加了主电源/后背电源双电源引脚,可以为掉电保护电源提供可编程的充电功能。
采用32kHz的晶振,电容一般用10PF就可以起到稳定振荡频率和快速起振的作用了,如下图2.3所示。
图2.3时钟电路
DS1302是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
§2-4所需主要器件
元件名称
数量
元件名称
数量
元件名称
数量
电阻10Ω
1
电容104P
2
微动开关
4
电阻33Ω
8
电容181P
1
5P线
1
电阻47Ω
3
二极管4004
5
喇叭
1
电阻75Ω
7
二极管1N60
2
变压器
1
电阻100Ω
1
发光二极管
4
电源线
1
电阻150Ω
8
三极管8550
8
细线
2
电阻330Ω
7
三极管8050
1
3*6自动螺丝
8
电阻1.5K
4
稳压器7805
1
3*6带垫自攻螺丝
2
电阻10K
2
晶振32.768
1
3*10自攻螺丝
6
电阻390K
1
芯片T2518DD3
1
电路板
2
电阻470K
1
0.5’数码管
11
面板
1
电容22P
2
0.8’数码管
4
机壳
1
电容102P
1
电池卡
1
原理,安装电路图
1
图2.4所需主要器件
§2-5系统硬件概述
Ø电阻:
导电体对电流的阻碍作用称为电阻,用符号R表示,单位为欧姆、千欧、兆欧,分别用Ω、KΩ、MΩ表示,如下图2.5.1所示:
图2.5.1电阻
Ø电容:
所谓电容,就是容纳和释放电荷的电子元器件。
电容的基本工作原理就是充电放电,当然还有整流、振荡以及其它的作用。
另外电容的结构非常简单,主要由两块正负电极和夹在中间的绝缘介质组成,所以电容类型主要是由电极和绝缘介质决定的。
电容的用途非常多,主要有:
隔直流、旁路(去耦)、耦合、滤波、温度补偿、计时、调谐、整流、储能,如下图2.5.2所示。
图2.5.2电容
Ø电容发光二极管:
发光二极管(LED)是一种由磷化镓(GaP)等半导体材料制成的、能直接将电能转变成光能的发光显示器件。
当其内部有一定电流通过时,它就会发光。
发光二极管原理是它的发光原理可以用PN结的能带结构来解释:
当导带中的电子与价带中的空穴复合时,电子由高能级跃迁到低能级,电子将多余的能量以发射光子的形式释放出来,产生电致发光现象,如下图2.5.3所示。
图2.5.3发光二极管
Ø三极管
8550是一种常用的普通三极管,它是一种低电压,大电流,小信号的PNP型硅三极管。
其参数:
1、集电极-基极电压Vcbo:
-40V
2、工作温度:
-55℃to+150℃
3、和8050(NPN)相对
4、主要用途:
开关应用和射频放大
如图2.5.4所示。
图2.5.4三极管
8050是常用小功率的NPN三级管。
其参数:
1、类型:
开关型
2、极性:
NPN
3、材料:
硅
4、最大集存器电流(A):
0.5A
5、直流电增益:
10to60
6、功耗:
625mW
7、最大集存器发射电(VCEO):
25
8、频率:
150KHz
图2.5.5三极管8050
Ø稳压器7805
图2.5.6稳压管7805
7805概述
图2.5.7稳压管
电子产品中,常见的三端稳压集成电路有正电压输出的78××系列和负电压输出的79××系列。
顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。
它的样子象是普通的三极管,TO-220的标准封装,也有9013样子的TO-92封装。
用78/79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压,如7806表示输出电压为正6V,7909表示输出电压为负9V。
因为三端固定集成稳压电路的使用方便,电子制作中经常采用。
注意事项
在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率的条件下不用)。
当稳压管温度过高时,稳压性能将变差,甚至损坏。
当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,但应用时需注意:
并联使用的集成稳压电路应采用同一厂家、同一批
图2.5.8TO-220
号的产品,以保证参数的一致。
另外在输出电流上留有一定的余量,以避免个别集成稳压电路失效时导致其他电路的连锁烧毁。
在78**、79**系列三端稳压器中最常应用的是TO-220和TO-202两种封装。
这两种封装的图形以及引脚序号、引脚功能如附图所示。
从正面看①②③引脚从左向右按顺序标注,接入电路时①脚电压高于②脚,③脚为输出位。
如对于78**正压系列,①脚高电位,②脚接地,;对与79**负压系列,①脚接地,②脚接负电压,输出都是③脚。
如附图所示。
此外,还应注意,散热片总是和接地脚相连。
这样在78**系列中,散热片和②脚连接,而在79**系列中,散热片却和①脚连接。
7805应用电路
7805典型应用电路图,如下图。
图2.5.97805典型应用电路
78XX系列集成稳压器的典型应用电路如下图所示,这是一个输出正5V直流电压的稳压电源电路。
IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。
当输出电流较大时,7805应配上散热板。
下图为提高输出电压的应用电路。
稳压二极管VD1串接在78XX稳压器2脚与地之间,可使输出电压Uo得到一定的提高,输出电压Uo为78XX稳压器输出电压与稳压二极管VC1稳压值之和。
VD2是输出保护二极管,一旦输出电压低于VD1稳压值时,VD2导通,将输出电流旁路,保护7800稳压器输出级不被损坏。
下图为输出电压可在一定范围内调节的应用电路。
由于R1、RP电阻网络的作用,使得输出电压被提高,提高的幅度取决于RP与R1的比值。
调节电位器RP,即可一定范围内调节输出电压。
当RP=0时,输出电压Uo等于78XX稳压器输出电压;当RP逐步增大时,Uo也随之逐步提高。
下图为扩大输出电流的应用电路。
VT2为外接扩流率管,VT1为推动管,二者为达林顿连接。
R1为偏置电阻。
该电路最大输出电流取决于VT2的参数。
7805电参数:
参数
符号
测试条件
最小值
典型值
单位
输出电压
Vo
Tj=25℃
4.8
5.0
V
5.0mA<1o<1.0A,Po<15W
Vi=7.5vto20v
4.75
5.00
V
线性调整率
△Vo
Tj=25℃,Vi=7.5Vto25V
4.0
mV
Tj=25℃,Vi=8Vto12V
1.6
mV
负载调整率
△Vo
Tj=25℃,lo=5.0mAto1.5A
9
mV
Tj=25℃,lo=250mAto750mA
4
mV
静态电流
IQ
Tj=25℃
5.0
mA
图2.5.10TO-220
7805引脚及其介绍
同时运用78XX和79XX稳压器,可以组成正、负对称输出的稳压电路。
下图所示为±5V稳压电源电路,IC1采用固定正输出集成稳压器7805,IC2采用固定负输出集成稳压器7905,VD1、VD2为保护二极管,用以防止正或负输入电压有一路未接入时损坏集成稳压器。
Ø变压器
图2.5.11变压器
变压器是利用电磁感应原理,从一个电路向另一个电路传递电能或传输信号的一种电器,是电能传递或作为信号传输的重要元件。
变压器的功能主要有:
电压变换;阻抗变换;隔离;稳压(磁饱和变压器)等,变压器常用的铁芯形状一般有E型和C型铁芯。
本设计用的是AC220V转AC12V的变压器,220V转12V最适合的是用开关电源。
开关电源可适应AC/DC两种输入,并且输入范围很宽,输出稳定,功率大,效率高。
其参数如下:
1、可靠性指标:
平均无故障工作时间MTBF(m1)≥30000(m1为下限值)小时。
2、指标:
稳压范围:
(单项120-300V;三项260-460V)。
3、稳压精度:
<±1%-3%。
4、总恢复时间:
<10-90ms。
5、抗干扰能力:
尖峰抑制(常模输入2KW尖蜂信号,输出<40VP)。
6、常模噪声抑制:
<50Db。
7、功率因素cos∮≥0.95。
8、效率≥85%-92%。
9、输出波型失真<3%。
图2.5.12变压器的工作原理
Ø数码管:
数码管是一种半导体发光器件,其基本单元是发光二极管。
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
显示方法上采用:
静态显示驱动。
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:
),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
图2.5.13数码管
Ø芯片T2518DD3:
图2.5.14T2518DD3芯片
CPU采用T2518DD3万年历芯片,显示器采用8位led数码管(共阳),显示器的驱动采用动态扫描电路形式,以达到简化电路的目的。
t2518dd3是中国台湾生产的低电压,高性能cmos8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(perom)和256bytes的随机存取数据存储器(ram),与标准mcs-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(cpu)和flash存储单元,功能强大t2518dd3单片机适用于许多较为复杂控制应用场合。
1、功能简介:
Ø可选择用蜂鸣器代替喇叭。
不须要外挂音乐片,实现鸣叫功能。
Ø外挂一个595或164,可实现基本万年历+24节气+生肖功能。
Ø可实现简易版的“月”“日”与“小时”“分钟”轮换显示。
Ø可实现公历“月”“日”与农历“月”“日”轮换显示。
Ø可实现基本万年历+四位正、倒计天功能。
Ø星期显示方式可选择用数码管或7个LED,其中用8字数码管显示又可选择越南版(2—8)、中文版(1—6、8)、俄文版(1—7);用米字管数码管可选择英文版、法文版、西班牙版、意大利版、德国版,选项外销版本音乐为外国音乐。
ICICPU
图2.5.14T2518DD3芯片结构及其引脚
功能键原理图
图2.5.15按键
主要按键功能如下:
引脚
功能说明
P9
设置键,
P11
修改键,调整日期、时间的上调键。
P12
闹钟键。
P19
退出键/报时键
图2.5.16按键功能介绍
其它引脚功能:
引脚
说明
P1
VDD
P3
GND
P16
控制U10、U11、U12、U7、U8、U15显示
P17
控制U10、U11、U12、U3、U7、U8显示
P18
控制U10、U11、U12、U8显示
P23
控制U9、U10、U11、U12、U7、U8、U15显示
P24
控制U10、U11、U12、U8、U15、U13显示
P25
控制U10、U11、U12、U5、U8、U15显示,串D11
P26
控制U9、U10、U11、U12、U8、U15显示,串D12
P9\10\11\12\19\20\22
均串一只150Ω电阻控制U14、U6、U18、U4、U19显示
P13\14\21\27\28\29\30
均串一只330Ω电阻和8550三极管控制各数码管显示
图2.5.17T2518DD3芯片引脚介绍
注:
U3\U4:
年高、低位;U5\U6:
月高、低位;U7\U8:
日高、低位;U9\U10:
小时高、低位;U11\U12:
分钟高、低位;U13\U14:
农历月高、低位;U15\U16:
农历日高、低位;U19:
星期。
芯片封装:
图2.5.18芯片封装
Ø晶振(32.768khz):
图2.5.19晶振32.768
晶振一般叫做晶体谐振器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。
这种晶体有一个很重要的特性,如果给他通电,他就会产生机械振荡,反之,如果给他机械力,他又会产生电,这种特性叫机电效应。
晶振(32.768khz)与两只电容(22PF)并联构成时钟电路。
2的15次方等于32768,也就是一个计数器计数的过程。
计划外2768次计数器清零,也就是一秒。
Ø微动开关:
图2.5.20微动开关
微动开关的作用
在需频繁换接电路的设备中进行自动控制及安全保护等,广泛应用在电子设备、仪器仪表、矿山、电力系统、家用电器、电器设备,以及航天、航空、舰船、导弹、坦克等军事领域,无锡市创新开关电器有限公司品种齐全已经广泛应用于以上领域,开关虽小,但起着不可替代的作用。
Ø喇叭:
图2.5.21喇叭
扬声器作用:
扬声器,俗称“喇叭”他是一种将电能转换为声能的电声器。
第三章系统的软件设计
§3-1程序流程框图
图3.1主程序流程图
图3.2计算阳历程序流程图
图3.3时间调整程序流程图:
图3.4阴历程序流程图:
§3-2程序设计
;;;;主程序;;;;
;;;;;;;;;;;;;;;;;;;
START:
SETBEA
MOVSCON,#00H;;串行输出,方式0
MOVTMOD,#10H;计数器1,方式1
MOVTL1,#00H
MOVTH1,#00H
MOVDS1302_ADDR,#8EH
MOVDS1302_DATA,#00H;允许写1302
LCALLWRITE
MOVDS1302_ADDR,#90H
MOVDS1302_DATA,#0A6H;1302充电,充电电1.1MA
LCALLWRITE
MAIN1:
MOVDS1302_ADDR,#8DH;读出年
LCALLREAD
MOVyear,DS1302_DATA
MOVDS1302_ADDR,#8BH;读出星期
LCALLREAD
MOVweek,DS1302_DATA
MOVDS1302_ADDR,#89H;读出月
LCALLREAD
MOVmonth,DS1302_DATA
MOVDS1302_ADDR,#87H;读出日
LCALLREAD
MOVday,DS1302_DATA
MOVDS1302_ADDR,#85H;读出小时
LCALLREAD
MOVhour,DS1302_DATA
MOVDS1302_ADDR,#83H;读出分钟
LCALLREAD
MOVmintue,DS1302_DATA
MOVDS1302_ADDR,#81H;读出秒
LCALLREAD
MOVsecond,DS1302_DATA
MOVR0,year;年分离,送显示缓存
LCALLDIVIDE
MOV7BH,R1
MOV4BH,R1
MOV7CH,R2
MOV4CH,R2
MOV78H,week
MOV48H,week
MOVR0,month;月分离,送显示缓存
LCALLDIVIDE
MOV79H,R1
MOV49H,R1
MOV7AH,R2
MOV4AH,R2
MOVR0,day;日分离,送显示缓存
LCALLDIVIDE
MOV76H,R1
MOV46H,R1
MOV77H,R2
MOV47H,R2
MOVR0,hour;小时分离,送显示缓存
LCALLDIVIDE
MOV74H,R1
MOV44H,R1
MOV75H,R2
MOV45H,R2
MOVR0,mintue;分钟分离,送显示缓存
LCALLDIVIDE
MOV72H,R1
MOV42H,R1
MOV73H,R2
MOV43H,R2
MOVR0,second;秒分离,送显示缓存
LCALLDIVIDE
MOV70H,R1
MOV40H,R1
MOV71H,R2
MOV41H,R2
;;;;;;;;;;;;;;;;;
;;闪动调时程序;;
;;;;;;;;;;;;;;;;
INTT1:
PUSHACC
PUSHPSW
GFLASH:
CPL0FH
JB0FH,GFLASH1
MOV7CH,4CH;全部显示
MOV7BH,4BH
MOV7AH,4AH
MOV79H,49H
MOV78H,48H
MOV77H,47H
MOV76H,46H
MOV75H,45H
MOV74H,44H
MOV73H,43H
MOV72H,42H
MOV71H,41H
MOV70H,40H
GFLASHOUT:
POPPSW
POPACC
RETI
GFLASH1:
JB0AH,GFLASH2;调年闪
MOV7CH,#0AH
MOV7BH,#0AH
AJMPGFLASHOUT
GFLASH2:
JB0BH,GFLASH3;调月闪
MOV7AH,#0AH
MOV79H,#0AH
AJMPGFLASHOUT
GFLASH3:
JB0CH,GFLASH4;调日闪
MOV77H,#0AH
MOV76H,#0AH
AJMPGFLASHOUT
GFLASH4:
JB0DH,GFLASH5;调星期闪
MOV78H,#0AH
AJMPGFLASHO