51单片机万年历毕业设计 联系客服

发布时间 : 星期三 文章51单片机万年历毕业设计更新完毕开始阅读e02a9b6d4a35eefdc8d376eeaeaad1f347931112

MOV 52H,#30 LC:

DJNZ 52H,LC CLR C

ORL C,DAT JC LB

MOV 58H,#80 LD:

ORL C,DAT JC LP

DJNZ 58H,LD SJMP LA LP:

MOV 52H,#250 LF:

DJNZ 52H,LF RET

3.2.2 读、写DS1302子程序 ;写1302程序WRITE: CLR SCLK NOP

SETB RST NOP

MOV A,32H MOV R4,#8 WRITE1:

RRC A ;送地址给1302 NOP NOP

CLR SCLK NOP NOP NOP

MOV IO,C NOP NOP NOP

SETB SCLK NOP NOP

DJNZ R4,WRITE1 CLR SCLK

WRITE111: MOV 53H,#8 W51HA:

SETB DAT MOV 54H,#8 RRC A CLR DAT W52HA:

DJNZ 54H,W52HA MOV DAT,C MOV 54H,#30 W53HA:

DJNZ 54H,W53HA DJNZ 53H,W51HA SETB DAT RET ERAD111: NOP

MOV A,31H MOV R4,#8 WRITE2: RRC A

NOP ;送数据给1302 CLR SCLK NOP NOP

MOV IO,C NOP NOP NOP

SETB SCLK NOP NOP

DJNZ R4,WRITE2 CLR RST RET

;读1302程序 READ:

CLR SCLK NOP NOP

CLR EA

MOV 58H,#8 RD1A:

CLR DAT MOV 54H,#6 NOP

SETB DAT RD2A:

DJNZ 54H,RD2A MOV C,DAT RRC A

MOV 55H,#30 RD3A:

DJNZ 55H,RD3A DJNZ 58H,RD1A SETB DAT RET

SETB RST NOP

MOV A,32H MOV R4,#8 READ1:

RRC A ;送地址给1302 NOP

MOV IO,C NOP NOP NOP

SETB SCLK NOP NOP NOP

CLR SCLK NOP NOP

DJNZ R4,READ1 MOV R4,#8 READ2: CLR SCLK NOP ;从1302中读出数据 NOP

NOP

MOV C,IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP SETB SCLK NOP

DJNZ R4,READ2 MOV 31H,A CLR RST RET

四: 指标测 4.1 测试仪器

序号 1 2 3 4 5 名称 PC机 双路直流稳压电源 V8通用单片机仿真器 数字万用表 ISP在线编程器 型号 LXB-HF769A CA17303D V8L DT9208 4.2硬件测试

电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。

在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:

(1)LED数码管的断码错乱,原因出于没有认真看清 a、b 、c等引脚信息。

解决:重新排列74LS47的输出端,相应接入LED数码管,即可解决出现在的断码或乱码。

( 2)对万年历修改时间或日期时,有时LED数码管被屏蔽掉,造成不亮现象。 解决:根据仪器的测试,发现电路的驱动能力不足,最后在DS1302时钟芯片的CS、SCLK、RET端接入5.1K的上拉电阻后,电路的驱动能力才能满足,即可解决不亮现象。

4.3软件测试

电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:

1.烧入程序后,LED数码管显示闪动,而且亮度不均匀。

解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子

令,最后解决了此问题。

2.修改时间、日期时没有农历没有自动对应上。

解决:把不相关的程序暂时屏蔽,地农历的子程序独立调试,发现在调用农历自动更新时,对十进制和十六进制处理不好,所以会造成错乱。最后把相应的十进制进行修改,使得可以与十六进制对应,最后解决了此问题.

3.加入温度的程序后,进行修改时间、日期时相应的数码管位没有按要求闪动。

解决:由于DS18B20是串行通信数据,只用一个口线传输,在处理采集的模拟信号时需要一定的时间,当把万年历的程序相接入时,会对延时有很大的影响。所以在调用温度子程序时,先关闭定时器1中断允许,在温度子程序反回时再打开定时器1中断允许。最终解决了此问题。

4.4测试结果分析与结论

4.4.1 测试结果分析 (1).在测试中遇到发光二极管、LED数码管为不显示时,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏. (2).LED 数码管显示不正常,还有亮度不够,首先使用试测仪对电路进行测试,观察电路是否存在短路现象。查看烧写的程序是否正确无误,对程序进行认真修改。 4.4.2 测试结论

经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对编程能力得到加强.同时对所学的知识得到很大的提高与巩固.

五:作品总结

在整个设计过程中,发挥团队精神,分工合作,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了作品。达到了预期的目的,在最初的设计中,发挥“三个臭皮匠,顶个诸葛亮”的作用。相互学习、相互讨论、研究。完了最初的设想。在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同组员的讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都在有耐心。此次比赛中学到了很多很多东西,这是最重要的。总之,参加电子竞赛我们的能力得到了全方位的提高。

参考文献:

[1] 王福瑞.单片微机测控系统设计大全.北京:北京航空航天大学出版社,1997 [2] 孙传友.测控系统原理与设计.北京:北京航空航天大学出版社,2006 [3] 孙传友.测控电路及装置.北京:北京航空航天大学出版社,2003 [4] 余发山.单片机原理及应用技术.中国矿业大学出版社,2003

[5] 李广弟.单片机基础.北京:北京航空航天大学出版社,2003 [6] 郑学坚.微型计算机原理及应用.北京:清华大学出版社,2004 [7] 刘文涛.单片机应用开发实例.北京:清华大学出版社,2005