您的当前位置:首页正文

基于单片机的时钟设计

2023-03-18 来源:个人技术集锦


基于单片机的时钟设计

摘要:20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置有更更长的使用寿命,因此得到了广泛的使用。本课题主要研究的是基于单片机的数字钟设计,采用AT89C51单片机作为系统的主控芯片,外接LED显示电路,按键电路,晶振电路,复位电路模块构成一个简单的数字钟。通过按键电路能对时、分、秒分别进行设置和实时调整,并将结果显示在数码管上。

关键词:数字钟;单片机;数码管

1 引言

在单片机技术日趋成熟的今天,其灵活的硬件电路和软件电路的设计,让单片机得到广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子[1],用数字电路实现对时分、

秒数字显示的计时装置。因为机具有体积小、功耗低、功能强、性价比高、易于推广应用的优点,在自动化装置、智能仪器表、过程控制、通信、家用电器等许多领域得到日益广泛的应用[2],因此具有很大的研究价值。

2 单片机介绍

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统[3]。由于单片机的这种结构形式及它所采取的半导体工艺[4],使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要有如下特点[5(1)性价比高;(2)集成度高、体积小、可靠性强。机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适

合在恶劣环境下工作;(3)控制功能强;(4)功耗小、电压低、便于生产的携式产品。;(5)外部总线采用串行总线连接,以此缩小了体积;(6)单片机的系统扩展和系统配置典型、规范,容易构成各种规模的应用系统。

3 数字钟硬件设计

3.1 系统方案的确定

硬件电路是一个系统的重要部分,在本次设计中主要是以AT89C51为核心控制器,外加一些控制电路来实现数字钟的基本功能。单片机芯片作为控制系统的核心部件,它除了具备微机CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制[6],外围控制电路主要包括晶振电路模块、复位电路模块、按键电路模块以及数码管显示电路模块,通过这些控制电路的连接构成完整的电路,其结构框图如图1所示。

3.2 功能分析

1.准确计时,以数字形式显示时、分、秒的时间;2. 小时的计时为24小时制分和秒的计时要求为60进位;3. 八位数码管显示HH-MM-SS(时分秒),按键“模式键”依次选择调整“时”,“分”,“秒”,按键“加键”依次加1,按键“减键”依次减1 ;4.晶振电路起到减小误差,提高精确度的作用;5.复位电路是对单片机的初始化操作。

3.3数字钟设计原理

数字钟的实现一般有两种方法:其一是直接用单片机的定时计数器产生固定时间,这种方法的优点是可以省去一些外围的芯片,其缺点是只能适用于一些要求不是十分精确、不作长期保留的场合;而对于要求较高的场合,则必须选用专用的芯片[7],本设计采用的是第一种方法。

直接用单片机的定时计数器产生固定时间,这种方法的工作原理是利用单片机芯片的定时器产生固定时间,模拟时钟的时、分、秒。基于这一原理构成的数钟系统主要由以下几部分组成:89C51单片机控制器电路,按键开关电路,8位数码管显示电路,复位电路,晶振电路五部分构成。其工作原理电路图如图2所示。

3.3.1键盘控制电路

数字钟最基本的功能除了能正常显示时间外,还需要对时间进行设置和调整,所以要配以相应的键盘控制电路。该设计的键盘控制电路主要包括3个按键:P3.0作为系统的模式选择键,用来选择是正常走时还是分别对时、分、秒进行调整;P3.1作为进行时分秒调整时的增加时间按键;而P3.2作为进行时分秒调整时的减少时间按键。键盘控制电路的硬件连接图如图3所示。

3.3.2晶振电路

晶振的全称叫晶体振荡器,它在单片机系统里作用非常大,主要作用是单片机所需的时钟频率,单片机执行程序所需的时间完全取决于单片机晶振所提供的时钟频率,时钟频率越高,那么单片机运行速度就越快[8]。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。晶振电路如图4所示。

3.3.3复位电路

复位是单片机的初始化操作。单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作:07H写入堆栈指针SP,P0口—P3口均置1,程序计数器PC和其他特殊功能寄存器SFR全部清零。只要RST持续为高电平,单片机就处于循环复位状态[9]。

单片机的复位方式有上电自动复位和手工复位两种,本设计采用的是手动复位方式,其电路图如图5所示。

3.3.4数码显示电路

发光二极管显示器驱动(点亮)的方法有两种。一种是静态驱动法,即给欲点亮的LED通以恒定的定流。这种驱动方法要有寄存器,译码器,驱动电路等逻辑部件。当需要显示的位数增加时,所需的逻辑部件及连线也相应增加,成本也增加。另一种是动态驱动方法,这种方法是给欲点亮的LED通过通以电流,此时LED的亮度是通断的平均亮度。为保证亮度,通过LED的脉冲电流应数倍于其额定电流值。利用动态驱动法可以减少需要的逻辑部件和连线,单片机应用系统中采用用动态驱动法[1]数码管有两种接法即共阳极接法和共阴极接法。所谓共阳共阴,是针对数码管的公共脚而言的。一个1位典型的数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。共阳指的是公共脚是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚接高电平时,对应的段码位就能点亮,进而组合形成我们看到的数字或字母。共阴刚好相反,也就是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时,对应段码位点亮[11],本次设计选择共阴极数码管,其中有6位显示“时”,“分”,“秒”,剩下两位显示“—”数码管A~DP接单片机P1端口用于段选,1~9接单片机P2端口用于位选。各个段码实际上是一个发光二极管,既然是发光二极管,就有正负极,为了防止驱动数码管电流过大而损坏,各端口接1K电阻。8位共阴极LED数码显示电路如图6所示。

4 数字钟的软件设计

4.1程序设计内容

单片机软件设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。设计步骤如下所示。

1. 采用模块化程序结构设计软件,首先将整个软件分成若干功能模块; 2. 根据流程图,编写源程序; 3. 上机调试各模块程序;

4. 与硬件一起联调,最后完成全部调试工作

4.2 系统设计流程图 4.2.1主程序流程

4.2.2定时器中断流程

定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间,定时器中断流程图如图8所示。

4.2.3时间显示流程图

时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示.,时间显示流程图如图9所示。

5 系统调试

5.1 Keil C51软件环境简介

Keil C51集成开发环境是基于80C51内核的微处理器软件平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立、管理、程序编译、链接、目标代码生成、软硬件仿真等完整的开发流程[12]。尤其是C编译工具在产生代码的准确性和效率方面达到了较高水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。Keil C51集成开发环境的主要功能有以下几点[13];

(1)uVision2 for Windows 一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;(2)C51国际标准优化C交叉编译器。

代码产生可重定位的目标模块;(3)A51宏汇编器。从80C51汇编源代码产生可重定位的目标模块;(4)BL51链接/定位器。组合由C51和A51产生可重定位的目标模块,生成绝对目标模块;(5)LIB库管理器。从目标模块生成连接器可以使用的库文件;(6)OH51目标文件至HEX格式的转换器。从绝对目标模块生成Intel HEX文件;(7)RTX-51实时操作系统。简化了复杂的实时应用软件项目的设计。keil C51软件编译环境如图10所示。

5.2 Proteus软件环境简介

本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件集成了高级原理绘图、混合模式SPICE电路仿真,PCB板设计以及自动布线来实现一个完整的电子设计系统[14]。

Proteus软件由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑软件。

Proteus软件主要具有以下几个方面的特点[15]:

(1)设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。 (2)它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。 (3)它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。 (4)它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。 (5)在设计综合性方案中,还可以利用ARES开发印制电路板。Proteus软件仿真环境如图11所示。

5.3 数字钟系统PROTUES仿真调试结果

5.3.1引脚连接

8位高亮共阴极型数码管,单片机P1.0~P1.7接数码管A~DP脚,P2.0~P2.7接数码管9~1脚, P3.0~P3.2接模式键,加键,减键三个控制键,晶振电路连接单片机18,19端口(XTAL1,XTAL2),复位电路连接单片机端口9(RST),单片机的31号端口接VCC, (注意:20和40引脚分别接地和VCC),如图12所示。

5.3.2仿真结果(电路原理图)

5.3.3元件列表

6 论文总结

本文通过对电子时钟的设计仿真,使自己对单片机和c语言有了进一步的温故掌握。在设计过程中,吸收了前辈的一些先进的理论成果,也对彭小军同志的时钟设计经验进行了借鉴。我在设计中总结出了一个重要的经验:一切问题都要结合实际进行设计。因为不同的设计技术或者设计思想都有自身的优点和局限性,只有根据具体的设计要求,才能顺利地进行设计仿真,也才能对己有的设计方法进行创新。

本装置所实现的功能为时钟功能。由于时间和日期都是通过特定的芯片来获得的,单片机只起到控制和转换的作用,在精度方面不受单片机性能和程序的限制,故容易保障其精度和效率。本次设计有较大的进展,取得了较好的效果,对单片机软硬件资源和接日扩展都有深入的学习。也学习了时钟芯片12887的基本原理和使用方法。本设计是学习单片机的较佳选择。但是设计还有诸多功能没有完善,以后有机会会继续完善其相应的功能。设计不足:本系统所采用的显示模块LED较多,占用了不少资源,包括线路板、 单片机端口等,同时使得电路稳定性下降; 由于时间比较紧迫,未能开发出更多的功能以体现单片机电子时钟的优越性。

参考文献

[1]周昌七,电大理工,2006年11月,总第225期,《桌面电子时钟制作》 [2],彭小军,新余高专学报,2006年4月,第9卷第2期《用单片机实现电子时钟》

[3]陈同洲,郭华帅,中国传媒大学学报,2009年3月,第16卷第1期,《电子时钟仿真及FPGA实现》 [4]吴镇宇,2005年9月,《片上时钟系统的研究与的设计》 [5] 李建忠,2004年,西安电子科技大学出版社,《单片机原理及应用》 [6]孙彩兰 蒋海琳,计算机与信息技术,软件纵横,《基于C语言为内核的电子时钟设计》

[7]彭小军,新余高专学报,2006年4月,第9卷第2期,《用单片机实现电子时钟》

[8]颜学超,2006年5月,《一种实时时钟芯片的设计》

[9]翟玉文 徐宏亮 赵岩,吉林化工学院学报,2007年1月,《实用多功能电子时钟设计》

[10]陈同洲,郭华帅,中国传媒大学学报,2009年3月第16卷第1期,《电子时钟仿真及FPGA实现》

[11]吴镇宇,2005年9月,《片上时钟系统的研究与的设计》 [12]简宁,企业科技与发展,2010年第16期,《电子时钟仿真实现》 [13]徐得波,葛广英,2004年9月,自然科学,《单片机动态可调电子时钟系统》 [14]戴勇,刘斌儒,《国外电子元器件》2008年第7期,《基于AVR单片机Mega16的电子时钟的设计》

[15] 何翠萍,刘晓刚,周功海,煤矿现代化,2007年1月第1期,《单片机控电子时钟的设计》

因篇幅问题不能全部显示,请点此查看更多更全内容