多功能时钟课程设计Word格式.docx
- 文档编号:7727777
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:23
- 大小:251.28KB
多功能时钟课程设计Word格式.docx
《多功能时钟课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《多功能时钟课程设计Word格式.docx(23页珍藏版)》请在冰点文库上搜索。
鉴主13楼电子科学与技术实验室。
指导教师签名:
年月日
系主任(或责任教师)签名:
摘要
从古代编程的滴漏更鼓到近代的机械钟,从电子表到目前的数字时钟,为了准确的测量和记录时刻,人们一直在尽力改良着计时工具。
钟表的数值化,大力推动了计时的精准和靠得住性。
最多见的数字钟通常利用单片机模块操纵,一种用单片机原理实现时、分、
秒计时的装置,与机械时钟相较具有更高的准确性和直观性。
且无机械装置,具有更长的利用寿命,因此取得了普遍的利用。
本次课程设计确实是用单片机实现时钟计时,并附加闹钟,时刻设置等多项功能。
关键词:
单片机;
时钟;
多功能
Abstract
Fromancienttomodernprogrammingdrippingskillfulcraft,themechanicalclockfromtheelectronicdigitalclockatpresent,inordertoaccuratelymeasureandrecordthetime,peoplehavebeentryingtoimprovethetimingtool.Theclock,vigorouslypromotethenumericalprecisionandreliabilityofthetime.
Themostcommonuseofadigitalclockusuallychip,akindofcontrolmoduleMCUrealizationprinciple,minutesandsecondswhenthetimingdevice,andthemechanicalclockishigherthantheaccuracyandintuition.Andnomachinery,withlongerservicelife,soithasbeenwidelyused.
Thiscourseisdesignedusingsinglechipmicrocomputer,andadditionalalarmclock,timesettingetc.
Keywords:
SCM,Theclock,multi-functional
1绪论
20世纪末,单片机技术取得了飞速的进展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的进展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代节拍也愈来愈快。
目前单片机正在朝着高性能和多品种方向进展。
进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价钱等几个方面进展。
单片机的应用意义还在于,它从全然上改变了传统的操纵系统设计思想和设计方式。
之前必需由模拟电路或数字电路实现大部份的功能,此刻已能用单片机通过软件的方式来实现了。
这种软件代替硬件的操纵技术也成为微控技术,是传统操纵技术的一次革命。
数字钟是对年、月、日、周、时、分、秒,数字显示及到时提示的计时装置,普遍应用于个人家庭,车站,码头办公室等公开场合,成为人们日常生活中不可缺少的必需品。
由于数字集成电路的进展和石英晶体振荡器的普遍应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生活带来了极大的便利,而且大大地扩展了钟表原先的报时功能。
诸如按时自动报警、按时自动打铃、按时广播乃至何种按时电气的自动启用等。
所有这些,都是以钟表数字化为基础的。
因此,研究数字时钟扩大及其应用,有着超级现实的意义。
2设计内容及要求
设计的目的及要紧任务
设计的目的
①依照设计要求,完成对多功能数字时钟的设计。
②初步了解单片机的工作结构原理及其在时钟方面的应用拓展。
设计任务及要紧技术指标
设计思想
本次设计时钟电路,利用了AT89C52单片机芯片操纵电路,单片机操纵电路简单且省去了很多复杂的线路,使得电路简明易懂,利用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行按时提示,同时利用C语言程序来操纵整个时钟显示,使得编程变得更易,如此通过四个模块:
功能按键、芯片、蜂鸣器、显示屏即可知足设计要求。
3设计原理及单元模块设计
设计原理及方式
此设计原理框图如图3-1所示,此电路包括以下四个部份:
单片机,键盘,闹铃电路及显示电路。
图3-1设计原理框图
系统大体方案选择
数字时钟的设计具体有两种方式。
一是通过的数字电路实现;
二是利用单片机来操纵实现。
本次设计选用了较为简单和方便的单片机操纵。
以下是我在这次设计中所用的方案。
芯片的选择
采纳AT89S52芯片,其为高性能CMOS8位单片机,该芯片内含有8kbytes的可反复擦写Flash闪速存储器空间、256*8bytes的内部存储器(RAM)、32位可编程I/O口线、2个16位按时/计数器、8个中断电源、可编程串行UART通道及低功耗空闲和掉电模式。
(图3-1)
显示模块的选择
采纳LED八位数码管显示,显示较为清楚,相关于用LCD显示硬件电路会比较复杂,由于实验要求用LED显示,故采纳数码管显示。
在电路仿真时期选择了八位数码管,在实际购买进程中只买到了两个4为数码管。
因此在电路焊接当选用的是两段4位数码管(3-2-1)。
并在之间接一个锁存器,利用的是74HC573。
用锁存器来实现电流的放大,数码管的段选接在单片机的P0口。
时钟信号的选择
时钟信号能够选择历时钟芯片(如DS1302)产生,精度高。
也能够采纳单片机按时计数器提供的秒信号,利用程序实现年、月、日周、分、秒计数。
采纳第二种方案能够减少芯片的利用,节约本钱,实现的时刻误差较小。
因此本次课设中采纳第二种方案。
按时闹铃元件
本设计用报时和闹铃采纳的是蜂鸣器组成的发声电路,蜂鸣器接在单片机的P3.7口,在之间接一个三极管实现电流的放大,如此才能够正常的发作声音。
三极管采纳PNP型的8550.(图3-3)
电路设计最终方案决定
综上方案所述,这次数字时钟的方案选定为:
采纳AT89C52作为主操纵系统;
并由其本身自带的按时计数器提供时钟;
两头4位LED数码管作为显示电路,外接蜂鸣器作为闹钟提示,来实现功能。
图3-1图3-2
图3-3
系统硬件概述
该电路是由单片机为操纵核心,单片机操纵电路简单且省去了很多复杂的线路,使得电路简明易懂,利用键盘键上的按键来调整时钟的时分秒,用一个蜂鸣器来进行按时提示。
同时利用C语言程序来操纵整个时钟显示,使得拓展功能更易实现。
如此通过四个模块:
功能按键、AT89C52芯片、蜂鸣器、显示屏就能够够知足设计要求。
总电路图如下:
图3-4
4系统软件设计
主程序流程
操纵电路的C语言源程序
依照流程图,通过认真分析得出操纵电路的源程序,见附录II。
5电路仿真
本次采纳Protues进行仿真,以下是部份仿真内容。
输入程序,开始仿真的示用意如上。
程序设定为从12-00-00开始运行。
上图是闹铃设定的截图。
6心得体会
通过一周的单片机课程设计,已大体完成课题要求。
功能上大体达标:
时钟的时、分、秒显示,按时闹铃功能,调时功能。
时钟显示功能,精准度完全能够知足日常生活显示时刻的需要;
调时功能,方便快捷;
按时功能准确靠得住,还有扩展成音乐闹钟的余地。
硬件设施合乎要求,软件设计能够配合硬件实现要求功能。
可是由于时刻比较短,显现部份不足:
闹铃部份不能专门好地实现。
只是,我相信,若是时刻充沛,将软件改良,完全能够专门好实现所有功能。
另外,在本次设计的进程中,咱们发觉很多的问题,尽管以前没有做过如此的设计但通过这次设计我学会了很多东西,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,尽管以前写过几回程序,但咱们觉的写好一个程序并非是一件简单的事,比如写一个程序看其功能很少以为编写程序简单,但到编的时候才发觉一些细微的知识或低级错误常常犯做不到最后常常失败,因此有些东西只有学精弄懂而且要细心才行,只学习理论有些东西是很难明白得的,更谈不上把握。
从这次的课程设计中,咱们真真正正的意识到,在以后的学习中,要理论联系实际,把咱们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在常常的练习的进程中才能提高,我想这确实是我在这次课程设计中的最大收成。
参考文献
[1]李叶紫.王喜斌.胡辉.孙东辉.编著MCS_51单片机应用教程清华大学出版社..
[2]陆剑.单片机应用技术指导书河南工业职业技术学院.
[3]汪道辉.单片机系统设计与实践.电子工业出版社
(50页时、分、秒计时器设计,59页键盘及接口技术).
[4]第二版.51系列单片机设计实例.北京航空航天大学出版社(81—89页数码管时钟电路的设计).
[5]辛友顺、胡永生、薛小玲.单片机应用系统设计与实现.福建科学技术出版社(184-186页LED显示接口,190-193页键盘接口).
[6]黄庆华、张永格.单片机开发与实例.电子工业出版社(127-162页数字式电子时钟的设计).
[7]闫玉德、俞红.MCS-51单片机原理与应用(C语言版).机械工业出版社(49-104页单片机的C程序设计)
附录Ⅰ:
元件清单
原件清单
蜂鸣器
1个
40p插座
排阻
10k
晶振
12M
开关(不带锁)
7个
电容
33p*2、μF
电阻
1k*2、10k*1
杜邦线
若干
ISP下载口
LED
LG5641AH*2
单排针
锁存器
74HC573
单片机
AT89S52
20p底座
附录II:
C语言源程序
#include<
>
unsignedcharcodedisplayCode[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
unsignedcharhour,minute,second;
unsignedcharclockhour,clockminute;
unsignedintnum;
unsignedcharselect,oneminute;
bitbdatamodeselect;
voiddelay();
voiddisplay(unsignedchartemp,unsignedcharmode);
voidsound()
{
while(num<
2000)
{
P3_7=0;
}
P3_7=1;
}
voidinitial()
{
P0=0;
TMOD=0x22;
IE=0xCF;
IT0=1;
IT1=1;
T2CON=0;
RCAP2L=0xf0;
RCAP2H=0x1f;
TH2=0x1c;
TL2=0xf0;
IP=0X06;
TH0=0x48;
TL0=0x48;
TH1=0X48;
TR0=1;
PCON=0x01;
hour=12;
minute=0;
second=0;
num=0;
select=0;
clockhour=12;
clockminute=0;
modeselect=0;
voidinterrupt0()interrupt0using3
{TR1=1;
select++;
if(select==7)
select=0;
if(select==1)
ET2=1;
oneminute=second-1;
voidtimer0()interrupt1using3
num++;
if(num==5000)
{
num=0;
second++;
}
if(second==60)
minute++;
second=0;
if(minute==60)
hour++;
minute=0;
if(hour==24)
hour=0;
voidinterrupt1()interrupt2using3
oneminute=second-1;
modeselect=0;
ET2=!
ET2;
switch(select)
case4:
hour++;
if(hour==24)
hour=0;
break;
}
case5:
minute++;
if(minute==60)
minute=0;
case6:
second++;
if(second==60)
second=0;
case2:
clockhour++;
if(clockhour==24)
clockhour=0;
case3:
clockminute++;
if(clockminute==60)
clockminute=0;
default:
break;
voidtimer1()interrupt3using3
if(select)
if(second==oneminute)
{
select=0;
TR1=0;
}
voidtimer2()interrupt5using3
sound();
TF2=0;
if(minute!
=clockminute&
&
hour==clockhour)
TR2=0;
voiddelay()
unsignedchari=255;
while(--i)
;
voiddisplay(unsignedchartemp,unsignedcharmode)
if(temp==4||temp==2)
else
P0=1;
if(mode)
P1=displayCode[hour/10];
P1=displayCode[clockhour/10];
delay();
P0=2;
P1=displayCode[hour%10];
P1=displayCode[clockhour%10];
if(temp==1||temp==2||temp==3)
else
P0=4;
P1=0xbf;
if(temp==5||temp==3)
P0=8;
P1=displayCode[minute/10];
P1=displayCode[clockminute/10];
P0=16;
P1=displayCode[minute%10];
P1=displayCode[clockminute%10];
P0=32;
if(temp==6)
P0=64;
P1=displayCode[second/10];
P1=displayCode[0];
P0=128;
if(mode)
if(ET2)
P1=displayCode[second%10]+128;
else
P1=displayCode[second%10];
voidmain()
initial();
while
(1)
switch(select)
case0:
display(0,1);
break;
case1:
if(num<
=2500)
{
display(1,0);
}
else
{
display(0,0);
}
case2:
display(2,0);
display(3,0);
display(4,1);
display(0,1);
display(5,1);
display(6,1);
default:
if(second==0)
{
if(minute==0||minute==30)
sound();
if(minute==clockminute&
TR2=1;
modeselect=1;
if(modeselect==1&
hour==clockhour&
!
((minute-clockminute)%5))
TR2=1;
本科生课程设计成绩评定表
姓名
佘磊
性别
男
专业、班级
电子科学与技术0803
课程设计题目:
多功能数字钟的设计
课程设计答辩或质疑记录:
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 时钟 课程设计