基于单片机的简易电子时钟设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
吉林大学
论文题目
基于单片机的简易电子时钟设计班级:xxxxxx
专业:电子信息工程
学生姓名:xxxx
指导教师:xxxx
日期:xxxx-xx-xx
摘要
数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。
单片机具有体积小、功能强可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。
关键字:单片机,数字时钟。
Abstract
Digital clock has become an indispensable necessities in People's Daily life, widely used in personal family and office and other public places, to people's life, study, work, entertainment, bring great convenience. Due to the development of the digital integrated circuit technology and adopts the advanced quartz technology, walking make digital clock has advantages of accurate, stable performance, easy to carry, it is also used in timing, automatic feed and automatic control and other fields. Although already on the market at present the ready-made digital clock chip for sale, cheap, use is convenient, but in view of the single chip microcomputer timer function also can complete the design of the digital clock circuit, therefore is necessary for the design of digital clock. Here we will have learned more fragmented knowledge of digital circuit of the organic link, the system used in practice, to develop our comprehensive analysis and circuit design, programming, debugging circuit ability.
SCM has small volume and powerful function, high reliability, low price and a series of advantages, not only has become widely used in the field of industrial measurement and control intelligent control instruments, and has penetrated into every corner of the people work and life, effectively promote the industry's technological transformation and upgrading of products, the wide prospect of application.
Keywords: Single chip microcomputer,Digital clock.
目录
第一章设计方案 (5)
1.1 课程设计目的 (5)
1.2 设计要求 (5)
1.3 实现时钟计时的基本方法 (5)
1.4 电子钟的时间显示 (5)
1.5 电子钟的时间调整 (6)
1.6 总体方案介绍 (6)
1.6.1 计时方案 (6)
1.6.2 控制方案 (6)
第二章系统硬件电路设计 (7)
2.1 单片机模块设计 (7)
2.1.1 芯片分析 (7)
2.1.2 晶振电路 (8)
2.1.3 复位电路 (9)
2.2 数码显示模块设计 (9)
2.3 按键模块 (12)
第三章系统软件设计 (13)
3.1 软件设计分析 (13)
3.2 系统软件设计流程图 (13)
3.2.1 主程序流程图 (13)
3.2.2 定时器流程图 (13)
3.2.3 按键检测流程图 (14)
3.2.4 时间显示流程图 (14)
3.3 源程序清单 (15)
第四章系统仿真与实验测试 (20)
4.1 系统仿真 (20)
4.2 实验测试 (20)
小结 (21)
致谢 (22)
参考文献 (23)
附录 (24)
第一章设计方案
1.1 课程设计目的
(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;
(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;
(3)过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。
1.2 设计要求
1).时制式为24小时制。
2).采用LED数码管显示时、分,秒采用数字显示。
3).具有方便的时间调校功能。
4).计时稳定度高,可精确校正计时精度。
1.3 实现时钟计时的基本方法
利用MCS-51系列单片机的可编程定时/计数器、中断系统来实现时钟计数。
(1) 计数初值计算:
把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。
假设使用T/C0,方式1,50ms定时,fosc=12MHz。
则初值X满足(216-X)×1/12MHz×12μs =50000μs
X=15536→0011110010110000→3CB0H
(2) 采用中断方式进行溢出次数累计,计满20次为秒计时(1秒);
(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。
1.4 电子钟的时间显示
电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显示缓冲区共8个单元。
LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1
第5页共20页
时十位时个位分隔分十位分个位分隔秒十位秒个位
1.5 电子钟的时间调整
电子钟设置4个按键通过程序控制来完成电子钟的时间调整。
A键调整时(加);
B键调整时(减);
C键调整分(加);
D键调整分(减);
1.6 总体方案介绍
1.6.1 计时方案
利用STC12C5A08S2单片机内部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。
1.6.2 控制方案
STC12C5A08S2的P0口和P2口外接由八个LED数码管(LED8~LED1)构成的显示器,用P0口作LED的段码输出口,P2口作八个LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。
STC12C5A08S2 是一种低功耗,高性能的CMOS 8位微型计算机。
它带有8K Flash 可编程和擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片内Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。
简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本设计中采用此的设计方案。
第6页共20页
第二章系统硬件电路设计
根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路图2-1所示。
图2-1 硬件电路方框图
2.1 单片机模块设计
2.1.1 芯片分析
STC12C5A08S2单片机引脚图如图2-2所示:
图2-2 STC12C5A08S2引脚图
MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下:
VCC:+5V电源。
VSS:接地。
第7页共20页
RST:复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
P0口:P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,它不再需要多路转接电路MUX;因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。
P2口:P2口电路比P1口电路多了一个多路转接电路MUX,这又正好与P0口一样。
P2口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q端。
P3口:P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。
当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。
当输出第二功能信号时,该位应应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出。
2.1.2 晶振电路
下图所示为时钟电路原理图,在STC12C5A08S2芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。
时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
第8页共20页
图2-3 晶振电路
2.1.3 复位电路
单片机复位的条件是:必须使RST/VPD 或RST引(9)加上持续两个机器周期(即24个振荡周期)的高电平。
例如,若时钟频率为12 MHz,每机器周期为1μs,则只需2μs以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。
单片机常见的复位如图2-4所示。
电路为上电复位电路,它是利用电容充电来实现的。
在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。
只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。
该电路除具有上电复位功能外,若要复位,只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RESET 端产生一个复位高电平。
图2-4 单片机复位电路
2.2 数码显示模块设计
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一。
如图2-5所示。
第9页共20页
图2-5 LED显示器的符号图
发光二极管LED由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
LED数码管有共阳、共阴之分。
图2-6是共阳式、共阴式LED数码管的原理图和符号。
图2-6 共阳式、共阴式LED数码管的原理图和数码管的符号图
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。
采用动态显示方式显示时间,硬件连接如图2-7所示:时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。
LED显示器的显示控制方式按驱动方
第10页共20页
式可分成静态显示方式和动态显示方式两种。
对于多位LED显示器,通常都是采用动态扫描的方法进行显示。
其硬件连接方式如图2-7所示。
图2-7 数码管的硬件连接示意图
系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。
动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
数码管显示电路如图2-8所示:
图2-8 数码显示电路
数码管使用条件:
a、段及小数点上加限流电阻
b、使用电压:段:根据发光颜色决定;小数点:根据发光颜色决定
c、使用电流:静态:总电流80mA(每段10mA);动态:平均电流4-5mA峰值电流100mA。
数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引角;
(2)焊接温度260℃;焊接时间:5s;
(3)表面有保护膜的产品,可以在使用前撕下来。
2.3 按键模块
直接用I/O线构成的单个按键电路,每个独立式按键单独占用一根I/O口线,每根I/O口线上的按键工作状态,独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线。
在按键数量较多时,I/O口线浪费较大。
故在按键较少时,采用图2-9所示电路。
下图为按键模块电路原理图,A键调整时(加);B键调整时(减);C键调整分(加);D键调整分(减);
图2-9 按键模块电路原理图
第三章系统软件设计
3.1 软件设计分析
系统的软件设计也是工具系统功能的设计。
单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。
单片机的软件设计通常要考虑以下几个方面的问题:
(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;
(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。
既便于调试、链接,又便于移植和修改;
(3)建立正确的数学模型,通过仿真提高系统的性能,选取合适的参数;
(4)绘制程序流程图;
(5)合理分配系统资源;
(6)为程序加入注释,提高可读性,实施软件工程;
(7)注意软件的抗干扰设计,提高系统的可靠性。
3.2 系统软件设计流程图
3.2.1 主程序流程图
这次的数字电子钟设计用到很多子程序,它们的流程图如图3-1所示。
主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。
图3-1 主程序流程图
3.2.2 定时器流程图
定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1,如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1,如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。
程序流程图如图3-2所示:
图3-2 定时器流程图
3.2.3 按键检测流程图
按键处理是先检测分按键是否按下,分加按键如果按下,分就加1,分减按键如果按下,分就减1;再检测时按键是否按下,时加按键如果按下,时就加1,时减按键如果按下,时就减1,如果没有键按下,就把时间显示出来。
流程图如图3-3所示。
图3-3 按键检测流程图
3.2.4 时间显示流程图
时间显示是先将秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。
流程图如图3-4所示。
图3-4 时间显示流程图
3.3 源程序清单
#include <reg52.h>
#include <intrins.h>
//接口定义
sbit HU = P1^0;
sbit HD = P1^1;
sbit MU = P1^2;
sbit MD = P1^3;
unsigned int a=0,b=0,c=0,d=0,e=0,f=0,s=20;
unsigned char
disp[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
//微秒级延时子函数
void delayus(unsigned int us)
{
unsigned char t;
while(us--)
{
for(t=1;t>0;t--)
_nop_(); //if Keil,require use intrins.h }
}
//时间调整子函数
void timechange()
{
if(MU==0)
{
c=c+1;
}
if(MD==0)
{
c=c-1;
}
if(HU==0)
{
e=e+1;
}
if(HD==0)
{
e=e-1;
}
}
//主函数
void main() {
P2=0xff;
IE=0x82; TMOD=0x01; TH0=0x3C; TL0=0xb0;
TR0=1;
while(1)
{
P2=0xfe;
P0=disp[a]; delayus(150); P2=0xfd;
P0=disp[b]; delayus(150); P2=0xfb;
P0=disp[10]; delayus(150); P2=0xf7;
P0=disp[c]; delayus(150); P2=0xef;
P0=disp[d]; delayus(150); P2=0xdf;
P0=disp[10]; delayus(150); P2=0xbf;
P0=disp[e];
delayus(150);
P2=0x7f;
P0=disp[f];
delayus(150); timechange();
}
}
//中断服务程序
void timer0() interrupt 1 {
TR0=0;
TH0=0x3C;
TL0=0xb0;
s=s-1;
if(s==0)
{
a=a+1;
if(a==10)
{
a=0;
b=b+1;
if(b==6)
{
b=0;
c=c+1;
if(c==10)
{
c=0;
d=d+1;
if(d==6)
{
d=0;
e=e+1;
if(e==10)
{
e=0;
f=f+1;
}
}
}
}
}
if((f==2)&&(e==4))
{
f=e=0;
}
s=20;
}
TR0=1;
}
第四章系统仿真与实验测试
4.1 系统仿真
运用proteus软件进行仿真,先在proteus软件中建立一个新的文件,再根据自己的要求选择所需的器件,把器件进行适当的排位后进行连接,连接后运行软件进行仿真。
4.2 实验测试
电子时钟主要的设计要求是能够实现时钟的一般功能,以及包括时间的调整功能,这个基于单片机的电子时钟基本上实现了上述功能,能够通过时间调整电路对时间进行调整以及复位。
下述为18:30:30的仿真图:
图4-1 18:30:30时刻的仿真效果图
过去人们应用时钟仅仅是为了明确当前时间。
随着生产力的发展,社会的进步,生产生活对时钟的需求越来越大,对时钟的体型、功能的要求也各有不同。
所以多功能电子时钟在今后的应用也会越来越广泛。
基于单片机实现电子时钟,仅仅是众多方法之一。
并且市场上的实时时钟日历芯片品类繁多,IC化的传感器各种各样,显示方式也愈趋于人性化。
所以多功能电子时钟有多种实现方案,能够实现的功能也很多,笔者已经通过仿真和调试,实现了时间日历显示和校对、闹铃等功能。
本文采用51单片机C语言进行编程,当然也可以应用汇编语言编程。
由于笔者能力有限,提供的程序还可以进一步优化,并且还可以根据需求为电子时钟增设新功能。
单片机作为我们主要的专业课程之一,我觉得单片机课程设计很有必要,而且很有意义。
但当拿到题目时,确实不知道怎么着手,有些迷茫,上网查资料,问老师,在老师的帮助下,历时两个星期,解决一个又一个的困难,终于完成任务。
在这次课程设计中,运用到了很多以前的专业知识,虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的一大收获。
另外,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。
发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。
通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。
另外,要非常感谢我的指导老师,是她指引我克服一个由一个的困难,让我学会对困难无所畏惧,以及对问题的一些很重要的思考方法。
参考文献
[1] 郑君里,应启珩,杨为理. 信号与系统(第二版)上册[M]. 高等教育出版社,2000
[2] 郑君里,应启珩,杨为理. 信号与系统(第二版)下册[M]. 高等教育出版社,2000
[3] 谭浩强. C程序设计(第二版)[M]. 清华大学出版社,2003
[4] W.Richard Stevens,范建华译. TCP/IP详解卷1:协议[M]. 机械工业出版社,2000
[5] Androw S. Tanenbaum. 计算机网络(第4版)[M]. Pearson,2004
[6] 吴坚,刘高平.基于GPRS网络的点对点图像传输方案[J].计算机应用研究,2004,5:222-223,231
[7] W.Simpson, Editor. The Point-to-Point Protocol, RFC1661 [EB/OL]. July 1994
[8] WAVECOM. AT Commands Interface Guide, Revision 002[EB/OL].6th November 2003
附录
附录1 硬件电路总图
附录1 硬件电路总图
附录2 元器件清单
序号元件名称规格型号/参数数量(个)备注
1 单片机STC12C5A08S
2 1
2 显示驱动三极管A101
3 8
3 晶振11.0592MHz 1
4 电容30pF 2
5 电容22μF 1
6 按键BUTTON 5
7 排阻RESPACK-8/10K 1
附录2 元器件清单。