51单片机电子钟程序设计有问题求问

基于MCS-51单片机的电子时钟设计
&&& 单片机,是集CPU
,计数和多种接口于一体的微控制器。自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。
本课题通过MCS-51单片机来设计电子时钟,采用汇编语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,日的显示、定时报警功能。本次设计的电子时钟系统由时钟电路,LCD显示电路,定时报警电路,按键调整电路四部分组成。51单片机通过软件编程,在LCD1602液晶屏上实现小时,分,秒和年,月,日的显示;利用时钟芯片DS1302来实现计时,定时功能;通过两个按键开关,一个用于时钟的调节,一个用于闹钟的调节,来实现参数设置和调节功能;到达设置的闹钟时间时,由蜂鸣器发声,起报警作用。本次设计的电子时钟,经过对比测试,发现实际计时的走时精度较高,可满足多种场合的应用需求。
本文详细介绍了AT89C51单片机的基本原理,分析了AT89C51各个管脚的功能及它在设计电路中的作用。本文论述了LCD1602液晶屏和时钟芯片DS1302的工作原理及其软件设计过程。
关键词:单片机;电子时钟;时钟芯片
0.前言(1)
0.1 文献综述(1)
0.2 研究思路(3)
0.3 研究的意义(4)
1. AT89C51单片机介绍(5)
1.1 AT89C51内部结构图(5)
1.2 AT89C51的主要特性5)
1.3 AT89C51的管脚图(6)
1.4 AT89C51的振荡器特性(7)
1.5 AT89C51的芯片擦除功能(7)
2.硬件设计(8)
2.1电子时钟系统的结构(8)
2.2 硬件电路总体设计(8)
2.3时钟电路(9)
2.4 LCD 液晶显示电路(12)
2.5 报警电路(14)
2.6 按键设置电路(15)
3.软件设计(16)
3.1软件总体设计(16)
3.2时钟子程序(16)
3.3扫描显示子程序(20)
3.4定时报警子程序(22)
3.5参数调整子程序(24)
4.调试及性能分析(30)
4.1硬件调试(30)
4.2软件调试(30)
4.3性能分析(32)
5.总结(33)
参考文献(34)
致谢(35)
附录A 硬件电路原理图(36)
附录B PCB图(37)
附录C 电子时钟源程序(38)
附录D 电子时钟实物(60)
附录E 元件选型表(61)
附录F 英文文献1原文(62)
附录G 英文文献1翻译(69)
附录H 英文文献2原文(74)
附录I 英文文献2翻译(78)
附件1毕业设计任务书
附件2文献综述
附件3开题报告
附件4验收记录表
附件5答辩记录表
附件6评语表
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,单片机的使用领域已十分广泛,已经远远超出了计算机科学的领域,小到玩具,信用卡,大到航天器,机器人,从实现数据采集,过程控制,模糊控制等智能控制到人类的日常生活,可以说,在人们的生活生产中都离不开单片机,又如智能仪表、实时工控、通讯设备、导航系统、家用电器,电子万年历,到计时器,定时器,计数器,频率计,电子秤,电子血压表等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,“电脑型”,如智能型洗衣机,电脑温控冰箱等[1]。在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面。单片机的应用具有范围广的特点,对各个行业的技术改造和产品智能化的更新换代起着重要的推动作用[2]。
(1)& 单片机在智能仪表中的应用
单片机广泛地应用于各种仪表仪器,使仪表仪器智能化,提高它们的测量速度精度,加强控制功能。
(2)& 单片机在机电一体化中的应用
单片机的出现促进了机电一体化,它作为机电产品的控制器,充分地发挥了体积小,可靠性高,功能强,现场安装灵活方便等优点,大大强化了机器的功能,提高了机器的精度,自动化和智能化的水平[3]。
(3)& 单片机在实时控制中的应用
对于过程控制中的各种物理参数:如转速。位移,流量,压力,温度,湿度,化学成分的测量和控制。将测量技术,自动控制技术和计算机技术相结合,充分发挥数据处理和实时控制功能,使系统工作在最佳状态。
(4)& 单片机在分布式多机系统中的应用
单片机在这种多机系统中,往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时的测量和控制[4]。
电子时钟的理论基础主要涉及了51单片机应用中的数据转换显示,数码管显示原理。另外,也涉及到了单片机的动态扫描显示原理等一些内容。
单片机体积小、重量轻、可靠性高、灵活性好、开发较为容易。它功能强大,提供了相当多的相关功能模块,所以使用非常方便,用51单片机来设计电子时钟是完全可行的。
基于MCS-51的电子时钟设计,首先要有明确的设计目的和设计方案,要设计出硬件总体框架图,经过资料的查找,得到系统框架如图0.2.1所示。
0.3 研究的意义
通过MCS-51电子时钟的设计,可以对51单片机有了更加深刻的认识,对其各个引脚功能掌握的更为透彻。也再次认识到单片机的应用具有使用范围广的特点,对各个行业的技术改造和产品智能化的更新换代起着重要的推动作用。由于设计的电子时钟起定时,计时作用,所以在设计过程中,可以很好的了解其原理,掌握时钟芯片的结构和实现方法。
在设计电子时钟的过程中,需要完成硬件设计和软件设计,所以需要设计电路硬件原理图。在绘制原理图过程中,再次对PROTEL
99软件进行了熟悉和复习,对软件中的各个文件编辑器进行了掌握,并且知道了在原理图设计和绘制时,要对元件有合理的布局和放置。另外,在导线的绘制和网络标号的放置时,也要符合设计的要求。在PCB图设计过程中,复习了元件的封装步骤和由原理图生成网络表的过程,明确了PCB图设计和自动布线前的准备工作,这些对完成整个硬件电路设计过程有很大的帮助。
在软件设计时,再次熟悉了汇编语言,了解了汇编语言程序设计步骤:
建立数学模型
制订程序流程图
确定数据结构
写出源程序
上机调试程序
另外,通过这次研究,在自己动手设计硬件原理图和软件编程的过程中,可以很好的了解到电子时钟的总体设计过程和功能的实现过程,自己着手硬件和软件的制作,一定程度上提高了自己的动手能力和解决问题的能力。这次课题研究,可以很好的把大学四年所学的知识得以应用,自己查阅资料,在碰到问题时,想办法去解决,让自己在学习知识的同时,明白学以致用这个道理。
[1]李光飞,楼然苗,胡佳文.单片机课程设计实例指导[M].北京航空航天大学出版社,.
[2]韩志军,沈晋源等.单片机应用系统设计[M].&北京:机械工业出版社,2005(1):64-88.
[3]胡健,刘玉宾等.定时/计数器,单片机原理与接口技术[M].&北京:机械工业出版社,.
[4]彭小军.用单片机实现电子时钟[J].新余高专学报,):54-57.
[5]徐宏亮,艾学忠等.实现多功能电子时钟设计[J].吉林化工学院学报,):26-29.
[6]范立南,谢子殿等.单片机原理及应用教程[M].北京大学出社,.
[7]张齐等.显示技术及单片机应用系统设计技术[M].北京:电子工业出版社,2004(2):284-285.
[8]谢炳兴.电子时钟、闹铃芯片XLB331A(B)及应用[J] .东北电力学院学报,2004(4):40-42.
[9]杨刚,周群.电子系统设计与实践[M].电子工业出版社, 341-347 118-122.
[10]辛友顺,胡永生等.初步介绍单片机应用系统设计与实现[M].&福州:福建科学技术出版社,2005(1):7-10.
[11]万福君.单片机微机原理系统设计与应用[M].中国科学技术大学出版社,2005(2):171-203 29-52.
[12] Applications Group.Real Time Clock[J].Intersil
Corporation,):59-61.
[13]孙涵芳.MCS-51系列单片机原理及应用[M].北京航空航天大学出版社,1996(4):362-398.
[14] 贡雪梅.日历电子钟的设计[J]. 西安航空技术高等专科学校学报,):54-56.
[15] Atmel Corporation.AT89C52[J].Atmel
Corporation,):199-223.
垂询方式:QQ:(请注明:论文&
本人基本都隐身在线)
&&&&&&&&&&&&&
手机:(只接受短信)
&&&&&&&&&&&&&&EMAIL:&
交易方式:&先与本人取得联系,然后通过支付宝交易(首选)、银行卡支付、交话费等多种途径完成交易,我们第一时间把论文发到您指定的地方。
已投稿到:51单片机电子时钟掉电不丢失怎么设计?_单片机吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:146,417贴子:
51单片机电子时钟掉电不丢失怎么设计?收藏
不想用时钟芯片,靠单片机的定时器。
holtek单片机全国低价销售,原装正品,现货多,报价快,专业的服务团体,免费为您提供咨询:
有e2p的用e2p没得用外部ram 不过内部定时器过1天就不准了
科学的推动还是靠你们这些有奇怪想法的人。
你这语句有问题啊,又不想用时钟芯片,又想掉电后不丢失
登录百度帐号基于51单片机的电子钟设计_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于51单片机的电子钟设计
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩30页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢51单片机电子钟 通过按键调整时间
这块程序怎么写(方法)_百度知道
51单片机电子钟 通过按键调整时间
这块程序怎么写(方法)
51单片机电子钟通过按键调整时间这块程序怎么写(方法) 用汇编。讲讲实现的语法。越详细越好。急等我现在就时间调整这块不会写。我用三个按键来调整时 分 秒
我有更好的答案
MON&; write_com(0x0c); write_com(0x06); }void write_date(uchar date){ rs=1;/ shi=23; write_com(0x38);}void write_sfm(
write_com(0x0c),uchar date){ uchar shi, lcden=0; P0=}
if(s1num==2)
fen++;;void delay(uint z){
} TMOD=0x01; P0= EA=1..,以下是哪段教程的程序,比你如果只是不知道方法的话,可以去看下,肯定能得到解决的思路的.;sbit rd=P3^7;uchar count,s1char miao,shi,uchar code table[]=&}void write_com(uchar com){ rs=0; lcden=0; delay(5); lcden=1; delay(5); lcden=0; for(num=0;num&
write_sfm(7;
{ s1num++;
while(!s1)
if(s1num==1)
write_com(0x80+0x40+10);
write_com(0x0f);
if(s1num==2)
write_com(0x80+0x40+7);
if(s1num==3)
write_com(0x80+0x40+4);
if(s1num==4)
s1num=0..;0;15;num++)
write_date(table[num]);reg52;
if(fen==60)
fen=0;uchar code table1[]=&quot..;
delay(5); if(s1==0)
delay(5); delay(5).#include&lt..; TH0=()/256; TL0=()%256,miao);
delay(5);}void keyscan(){ rd=0:00&//
TR0=1.h&#define uchar unsigned char #define uint unsigned intsbit dula=P2^6;sbit wela=P2^7; for(x=z;x&num&12;
} write_com(0x80+0x40); for(num=0;x--)
for(y=110;
write_com(0x80+0x40+10);sbit s2=P3^1;sbit s3=P3^2;num++)
write_date(table1[num]),y; }void init(){ dula=0; wela=0; lcden=0;sbit rs=P3^5;sbit lcden=P3^4;sbit s1=P3^0;// shi=date/ miao=53;/y&0;y--)!=0)
while(!s2);
if(s1num==1)
if(miao==60)
write_sfm(10; lcden=1; delay(5); lcden=0;10; ge=date%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge),fen);
write_com(0x80+0x40+7);
if(s1num==3)
if(shi==24)
write_sfm(4,shi); fen=59汇编的我不知道,C语言的倒是很多的,建议你去看下郭天祥的《十天学会单片机》视频教程的第十讲,里面讲的非常的清楚的; ET0=1; TR0=1; write_com(0x01); write_com(0x80);
write_com(0x80+0x40+4);
while(!s3);
if(s1num==1)
/* if(miao==0)
write_sfm(10,miao);
write_com(0x80+0x40+10);
if(miao==-1)
write_sfm(10,miao);
write_com(0x80+0x40+10);
if(s1num==2)
if(fen==-1)
write_sfm(7,fen);
write_com(0x80+0x40+7);
if(s1num==3)
if(shi==-1)
write_sfm(4,shi);
write_com(0x80+0x40+4);
}}void main(){ init(); while(1) {
keyscan();
}// while(1);}void timer0() interrupt 1{ TH0=()/256; TL0=()%256; count++;if(count==18)
if(miao==60)
if(fen==60)
if(shi==24)
write_sfm(4,shi);
write_sfm(7,fen);
write_sfm(10,miao);
采纳率:32%
等待释放,若按住不放,跳上一条指令 AJMP SINC按下.5、秒程序
SEC EQU P3,#0SINC0,#0HINC0、分..kS,另一端接地 MIN EQU P3.6 HOUR EQU P3.7
.;调秒按键接P3,HINC0 MOV 28H;26H存放秒数据 MOV A,26H CJNE A,$-3
,#24: LCALL DISP JB SEC,KM未按下,转判调分按键
LCALL DISP JNB SEC: INC 28H MOV A,28H CJNE A,#60,转秒加1子程序 kM: JB MIN,KH LCALL DISP JNB MIN,$-3 AJMP MINCKH: JB HOUR: AJMP KH
.: AJMP KSMINC: INC 27H MOV A,SINC0 MOV 26H,K1 LCALL DISP JNB HOUR,$-3
AJMP HINC SINC: INC 26H
只给出按键调整时,27H CJNE A,#60,MINC0 MOV 27H,#0MINC0: AJMP KMHINC
主程序入口
跳转到标号MAIN执行ORG
定时器T0中断入口AJMP
跳转到标号PTF0执行HOUR
赋值伪指令MIN
EQU 4BHSEC
EQU 4CHBUFF
EQU 4DH;*************************************************************************************;主程序MAIN:
MOV HOUR,#00H
时,分,秒,标记清零
MOV SEC,#00H
MOV BUFF,#00H
MOV SP,#60H
设堆栈指针
MOV TH0,#3CH
定时器赋初值
MOV TL0,#0B0H
MOV 40H,#14H
设循环次数20次
MOV TMOD,#1
MOV IE,#82H
启动定时器LOOP:
ACALL DISPLAY
调用显示程序
P3.0,FEN校时键按否?否,跳转到FENZX:
A,#24H,BI时加到24时否?是,清零
SEC,#00H秒清零FEN:
P3.1,YY 校分键按下否?否,跳转到YYZC:
A,#60H,CI分加到60否?是,清零
SEC,#00H秒清零YY:
LOOP;***************************************************************************************;中断服务程序PTF0:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ 40H,XX
1秒到否?否,跳转到XX
MOV 40H,#14H
重写循环次数
CJNE A,#60H,PTF0R60秒到否?否,跳转到PTF0RJMIN:
MOV SEC,#00H
CJNE A,#60H, PTF0R60分到否?否,跳转到PTF0R
MOV MIN,#00H
分清零JHOUR:
MOV A,HOUR
MOV HOUR,A
CJNE A,#24H, PTF0R24时到否?否,跳转到PTF0R
MOV HOUR,#00H
跳转到PTF0RXX:
MOV R7,40H
给小数点做标记,1和0
CJNE R7,#0AH,NEQEQ:
BUFF,#0FFH
PTF0R PTF0R:
;***************************************************************************************;显示子程序DISPLAY:
MOV R5,BUFF
根据标记输出带点和不带点的数字
CJNE R5,#00H,CVB
根据标记查不同的表
MOV DPTR,#TAB1
LJMP TYUCVB:
MOV DPTR,#TABTYU:
显示分钟的个位
MOVC A,@A+DPTR
MOV P2,#0F0h
ACALL DELAY
显示分钟的十位
ANL A,#0FH
MOVC A,@A+DPTR
MOV P2,#0F0H
ACALL DELAY
MOV A,HOUR
显示时钟的个位
ANL A,#0FH
MOVC A,@A+DPTR
MOV P2,#0F0H
ACALL DELAY
MOV A,HOUR
显示时钟的十位
ANL A,#0FH
MOVC A,@A+DPTR
MOV P2,#0F0H
ACALL DELAY
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH不带小数点的字型码TAB1:
DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH带小数点的字型码;****************************************************************************************;延时子程序DELAY:
MOV R4,#20
MOV R5,#10SHI:
DJNZ R5,SHI
DJNZ R4,YAN
以前我的单片机课程设计,提供给你参考参考,不过只有调分和调时的。。。
为您推荐:
其他类似问题
您可能关注的内容
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。 上传我的文档
 下载
 收藏
粉丝量:31
该文档贡献者很忙,什么也没留下。
 下载此文档
基于51单片机的 电子时钟 设计
下载积分:1000
内容提示:基于51单片机的 电子时钟 设计
文档格式:DOC|
浏览次数:1780|
上传日期: 12:27:11|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
基于51单片机的 电子时钟 设计
关注微信公众号}

我要回帖

更多关于 单片机电子钟 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信