可调式电子时钟设计.docx
《可调式电子时钟设计.docx》由会员分享,可在线阅读,更多相关《可调式电子时钟设计.docx(10页珍藏版)》请在冰豆网上搜索。
可调式电子时钟设计
可调式电子时钟设计
目录
第一部分课程设计任务书1
一、课程设计题目1
二、课程设计时间1
三、课程设计提交方式1
四、设计要求1
第二部分课程设计报告2
一、单片机发展简史2
二、MCS-51单片机系统简介2
三、设计思路2
四、硬件设计电路2
五、软件设计流程2
六、程序源代码2
七、结束语2
八、参考文献2
第一部分课程设计任务书
1、课程设计题目
可调式电子时钟设计
二、课程设计时间
一周
三、课程设计提交方式
提交打印课程设计报告
4、设计要求
1准确显示时、分、秒的时钟,并可以调时
2准确计时,以数字形式显示时间,24时制;具备时、分调整
第二部分课程设计报告
1、单片机发展概况
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
起初模型
1.SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。
因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
嵌入式系统
单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
2、MCS-51单片机系统简介
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
3、设计思想
此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:
显示电路用8个共阴数码管分别显示,,小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。
单片机采用AT89c51系列,这种单片机应用简单,适合电子钟设计。
利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
四硬件设计图
5、软件设计框图
6、程序源代码
#include
sbitksec=P3^0;
sbitkmin=P3^1;
sbitkhour=P3^2;
unsignedcharsecshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0;
unsignedintnum=0,sec=0,min=0,hour=0;
unsignedcharcode
table[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
voiddelay(unsignedint);
voidkeyscan();
voiddisplay();
main()
{TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;ET0=1;TR0=1;
while
(1)
{display();
keyscan();
}
}
voiddelay(unsignedintz)
{unsignedintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
voidtime0()interrupt1
{num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
voiddisplay()
{if(num==20)
{num=0;
sec++;
if(sec==60)
{sec=0;
min++;
if(min==60)
{min=0;
hour++;
if(hour==24)
{hour=0;
min=0;
sec=0;
}
}
}
}
secge=sec%10;
secshi=sec/10;
minge=min%10;
minshi=min/10;
hourge=hour%10;
hourshi=hour/10;
P2=0xfe;
P0=table[secge];
delay(5);
P2=0xfd;
P0=table[secshi];
delay(5);
P2=0xfb;
P0=0x40;
delay(5);
P2=0xf7;
P0=table[minge];
delay(5);
P2=0xef;
P0=table[minshi];
delay(5);
P2=0xdf;
P0=0x40;
delay(5);
P2=0xbf;
P0=table[hourge];
delay(5);
P2=0x7f;
P0=table[hourshi];
delay(5);
}
voidkeyscan()
{if(ksec==0)
{delay(10);
if(ksec==0)
{sec++;
if(sec>=60)
{sec=0;min++;}
}
while(ksec==0)
display();}
if(kmin==0)
{delay(10);
if(kmin==0)
{min++;
if(min>=60)
{min=0;hour++;}
}
while(kmin==0)
display();
}
if(khour==0)
{delay(10);
if(khour==0)
{hour++;
if(hour>=24)
hour=0;
}
while(khour==0)
display();
}
}
7、结束语
通过完成这次电子钟设计之后,让我学到了很多知识。
能够和同学一起成功的做出来实物我自己觉得很有成就感和自豪感。
我在单片机这方面的知识掌握得不牢固是在做这次课程设计明显的体现出来了,平时听课的时候感觉大部分都听懂了,课后也没有花很多时间去复习和钻研它,相信这也是很多同学的通病,不是老师讲的不好,而是学生们不知道怎么来验证自己学的怎么样,因此我提出建议,老师讲课可以不那么细致入微,且作业也不必要做很多,但是要保障是学生亲自完成的.
另外,我想老师也可尝试着把做课程设计的时间提前到二年级的时候,让同学们更早的体会的学习单片机的乐趣,有了乐趣,就可以。
8、参考文献
1张鑫.单片机原理与应用.北京:
电子工业出版社,2010.
2模拟电子技术.北京:
电子工业出版社,2008.
3邱关源.电路基础.北京:
高等教育出版社,2004.
4数字电子技术.北京:
电子工业出版社,2008.