基于单片机的电子时钟课程设计_第1页
基于单片机的电子时钟课程设计_第2页
基于单片机的电子时钟课程设计_第3页
基于单片机的电子时钟课程设计_第4页
基于单片机的电子时钟课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计基于单片机电子时钟的设计摘要1 设计课题任务、基本原理及方案1.1 设计课题任务1.2 软时钟的基本原理1.3 设计课题总体方案2 设计课题硬件系统的设计2.1设计课题硬件系统各主要器件简要介绍2.2设计课题硬件系统各模块功能简要介绍硬件电路连接图2.3设计课题元器件清单3 设计课题软件系统的设计3.1设计课题使用单片机资源的情况3.2设计课题软件系统个模块功能简要介绍3.3设计课题软件系统程序流程框图3.4课程设计各部分程序介绍4 课程设计结论、误差分析、心得体会4.1设计课题的设计结论4.2设计课题的误差分析4.3设计体会5 参考文献101111111112141919192

2、020- 4 -摘要单片机即单片微型计算机,由 RAM ROM CPU构成,定时、计数和多种接口于一体的微控制器。它体积小、成本低、功能强,广泛应用于智能产业和工业自动化上。这次课程设计通过对它的学习、设计、开发软、硬的能力。1957 年, Ventura 发明了世界上的第一个电子表,从而奠定的电子时钟的基础, 电子时钟开始迅速发展起来。现代的电子时钟是基于单片机的一种计时工具, 采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒进一分,满六十分进一小时,满二十四小时自动清零,从而达到计时的功能。电子时钟是人民生活中不可缺少的工具。通常通过用单片机设计电子时钟有两种方法:

3、一是通过单片机内部的定时器/计数器,采用软件编程的方法实现时钟计时,一般称为软时钟。这种方法硬件电路简单,系统的功能一般与软件的设计有关;二是采用时钟芯片,它的功能强大, 功能部件集成在芯片的内部,自动产生时钟等相关的功能。这种方案硬件成本相对较高,软件编程简单,通常用在对时钟精度要求较高的场合。本次课程设计采用深圳宏晶公司的STC 89C52RC 单片机为核心,使用12MHz晶振与单片机STC 89C52RC相连接,通过软件编程的方法实现以24小时为一个周期的计时功能,并通过 8 位 7 段 LED 数码管显示当前的时间,显示的格式为:时分秒 (如12-25-09) 。 该电子时钟电路中有四

4、个按键:K0, K1 , K2, RST。对按键进行相应的操作可以达到调时、复位的功能。整个过程就是先设计和焊接好硬件电路,再通过汇编语言编写应用程序并下载到单片机上实现我们需要的功能。由于本实验的硬件电路的结构简单、直观,所以软件的编程及调试是本次课程设计的重点和难点。设计课题任务、基本原理及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。具有时间显示、并具有时间设定,时间调 整,复位重置的功能。1.2 软时钟的基本原理软时钟是利用了单片机内部的定时器/计数器来实现的,它的处理过程如下: 首先设定单片机内部的的一个定时器/计数器工作于定时方式,对机器周期计数 形成基准时间(如10m

5、s),然后用另一个定时器/计数器后软件计数的方法对基 准时间计数形成秒(对10ms计数100次),对秒计数60次形成分,对分计数60 次形成小时,对小时计数24次则表示计满了一天,单片机可以自动清零重新计 时。在计时的过程中可以通过数码管把技术的内容在相应的位置显示出来。数码管显示可以采用静态显示方法和动态显示方法。静态显示方法需要数据锁存器等 硬件,接口复杂,时钟显示一般用6个或8个数码管。由于系统没有其他的复杂 的任务需要处理,而且显示的时钟信息随时都可以变化,一般采用动态显示方法。 动态显示方法,线路相对简单,但需要动态扫描,扫描的频率要大于人眼的视觉 暂留频率(每秒24次),信息看起来

6、才稳定。译码方式可分为软件译码和硬件译 码,软件译码通过译码程序查询显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。在具体处理中,定时器/计数器采用中断方式工作,对时钟的形成在在中断 服务程序中实现。在主程序中只需要对定时器 /计数器初始化、调用显示自程序 和控制子程序。另外,为了使用方便,设计了简单的按键,可以通过按键实现对 时、分的调整,这样在主程序中就要加入键盘设置的子程序。1.3 设计课题总体方案图1.1总体设计方案图晶振电路复位电路47K电 阻+MPN 三极管2设计课题硬件系统的设计2.1设计课题硬件系统各主要器件简要介绍本设计的硬件系统主要采用

7、以下电子元器件:单片机 STC 89C52RC,锁存 器HD74LS373P,数码管(共阴极),NPN型三极管2N5551,电阻,电容,晶 振,按键。1单片机STC 89C52RC为本次课程设计的核心器件。(T2) P1.0 匚140 VCC(T2 EX) P 1 ,1 C239 PO.O (ADO)P I .2 匚338 P0.1 (AD1 )P L3匚437 P0.2 (AD2)P1.4 匚536 P0.3 (AD3)P1.5 635 P0 4 AD4)P1.6 匚734 P0.5 (AD5)P1 7匚633 P0.6 (AD6)RST匚932 PO T (ADZ)(RXD) P3.0 匚

8、1 031Zl E A/VPP(TXD) P3.1 匚1 130 ALEJPROG(INTO) P3.2 匚1229 PSEN(INT1 ) P3.3 匚1 328 P2.7 (A1 5)(TO) P3_4 匚I 427Zl P2.6 (Aid)(T1 ) P3.5 匚1 526 P2.5 (A1 3)(WR) P3.6 匚1625 P2.1 (A12)(RD) P3_7 匚1 724 P2.3 (A 1 1 )XTAL2 匚1 823 P2 2 (A IO)XTAL1 匚1 922 P2,1 (A 9)GND匚2 021 P2.0 (A8)图 2.1 STC 89C52RC 封装图在单片机S

9、TC 89C52RC中,有256KB的片内数据存储器和8KB的片内程 序存储器,因此在组建单片机的最小应用系统时, 不需要在单片机的外部扩展片 外存储器。单片机 STC 89C52RC中有四个8位的并行I/O接口: P0、P1、P2、P3。这 四个接口,既可以作输入,也可以作输出,既可以按8位处理,也可以按位处理。 P0 口也可以作数据/地址线使用,在本次课程设计中,P0作数据线使用,向锁存 器输出8位的字段码。P2 口也可以作地址线使用,在本次实验中,P2 口作位选码输出端。P1 口中选三个端口作按键输入端。单片机控制线介绍:RST:上电复位端,当单片机振荡工作时,在该引脚上出现两个机器周期

10、的 高电平,单片机就可实现复位操作,使单片机回到初始状态。XTAL1、XTAL2 :外接晶振引脚。/EA:片外程序存储器选用端,低电平有效。本次实验中不需要扩张存储器, 因此,在电路中此端口接高电平。/PSEN:片外程序存储器读选通信号输出端,低电平有效。本次试验中无片 外程序存储器,故此功能不需要,此端口接高电平或悬空。ALE:地址锁存信号输出端。本次试验中没有用到16位地址线,故此端口悬空处理。VCC:电源端,接+5V电源正端。GND:接地端,接+5V电源地端。2锁存器 HD74LS373POutputControl1iQID2D2Q3Q304040GND20而181615131211Vc

11、c8Q8D7D7Q6Q6D5D50Enable G图2.274LS373的结构图HD74LS373P是一个带输出三态们的8位锁存器,具有8个输入端D0D7 , 8个输出端Q0Q7, G位数据锁存控制端,G位高电平,则把输入的数据存入锁 存器中,/OE位输出允许端,低电平是把锁存器中的内容通过输出端输出。inputsOutputOutput controlEnable GDQLHHHLH一L一LLLX也|HXXINotes: H.tiigh level. L; lw.- levelr Xr irrelevantQi,回回 of Q before 故 rid cated steaoy-state

12、input condliocs were estaMiSecZ; an(righ-rpeciance| s:eor a three-stte outpul图2.374LS373的功能表【3】数码管(共阴极)图2.4数码管封装图2.2设计课题硬件系统各模块功能简要介绍本设计的硬件系统主要采用以下基本模块来实现:单片机最小系统模块,输入模块、输出模块。(1)单片机最小系统模块:包括单片机STC 89C52RC、复位电路、晶 振电路。本本模块STC 89C52RC系统控制核心,单片机系统复位由复位电路完 成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1 ,其输出端位位引脚XTAL

13、2 o通过这两个引脚在芯片外并接石英晶体振荡器和两只 电容。这样就构成一个稳定的自激振荡器。产工斗P3.5P3.6P3.7XTZL2XTAL1 VSS图2.5 晶振电路lUub3 4 5 6 7 T O 1 1 -1 1 JI S ?p p p p p R P图2.6复位电路当复位键K3未按下时,RST端是低电平。当复位键 K3按下时,RST端瞬 间上升到电源电压,及为高电平,电路中电源对电容快速充电。当复位键弹起时, 电容通过电阻向地端放电,RST端电压逐渐下降。在保证 RST端能得到大于两 个机器周期的高电平时,单片机完成复位初始化操作。图2.7单片机的最小系统(2)输入模块:本模块共用到

14、了 3个按键独立式按键:K0键是选择功能键, K1加一功能,K2减一功能。单片机通过计数 K0、K1、K2键被按下的次数, 做出相应的反应:没有按键,则时钟正常走时。当按下 K0键,进入调分状态, 时钟停止走动;按K1或K2键可进行加1或减1操作;继续按K0键可分别进行分和小时的调整;最后按 K0键将退出调整状态,时钟开始继续计时运行K2GND |ToP1.0Pl 1ri 2 ri甘KiGNL> |-1-0 0图2.8输入模块一E 1 3 鼻 4 5 b 7 科 M 双 0 D C D DDD口 G41 T吧(3)输出模块:本次设计显示为8位,采用八位七段式数码管(共阴极) 作为显示窗口

15、 .由于显示过程是采用了动态显示的方法,一次单片机只让一位数 码管显示,但以高频率连续扫描八位数码管,使得人看到的是稳定的数字。每一 次显示时,单片机的P0 口作为数据线,输出一个数码管显示所需的八位字段码, 并通过锁存器74LS373与数码管相连。P2 口作为位选码输出端,分别通过 NPN 型三极管与共阴极的数码管的公共端相连。P2 口的八位输出端每次只有一个端 口输出高电平,使得相对应的NPNH三极管导通,从而使得相连的数码管公共端 接地,则此公共端接地的数码管可以显示相应的字符。- 18 -图2.9输出模块注VU划国言鲁KJCS喈卜空 3J KT县 甘苣 S军 ustdS 口 口 3 7

16、 S 口 3 H 曾- - r - -AnfupefeH u 如a 行* AApefta tb*。日* 2fipf ft J c *D 7 0* AA图2.10硬件电路路2.3设计课题元器件清单序号产品名称规格型号数量1单片机STC89C52RC12晶振12MHz13独石电容30pF24电解电容47科F25电解电容10科F16按钮47RJ电阻10KQ48RJ电阻510a89RJ电阻4.7K810三极管2N5551 NPN811锁存器74LS3731128段式LED数码管8图2.11 元器件清单3设计课题软件系统的设计3.1 设计课题使用单片机资源的情况单片机资源使用的情况如下:P0 口作为段码

17、输出口,输出数码管显示的段码信号;P1 口作为按键输入口, 将按键上的信号输入到单片机内部;P3 口作为位码输出口,输出数码管的位显 示,输出数码管位选信号;晶振11.0592M;3.2 设计课题软件系统个模块功能简要介绍本设计的软件系统模块大致分为:主程序模块,中断服务程序,数码驱动显示程序,键扫程序。主程序:用于对程序进行全局控制,包括信号的输入输出,调用各个功能的 子模块,调配按键的使用。中断服务程序:用于产生1S的脉冲信号。键盘扫描模块:用于及时校正计时状态。数码驱动模块:用于驱动数码管的正确显示计时。3.3 设计课题软件系统程序流程框图主程序执行流程如下图:主程序先对显示单元和定时器

18、/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下,则转入相应的功能程序.定时器/计数器T0用于时间计时,选择方式1,定时时间设为50ms定时 时间到则中断,在中断服务程序中用一个计数器对 50ms计数,计20次则对秒单 元加1,秒单元加到60则对分单元加1,同时秒单元清零;分单元加到 60则对 时单元加1,同时分单元清零;时单元加到 24则对时单元清零,标志一天时间 计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。定时器 / 计数器 T0 中断服务程序流程图如下图:3.2按键扫描部分流程图:按键K0的扫描流程图如下,单片机在工作的过程中部端的对按键 K0经行

19、扫 描,一旦发现K0按下,就开始作出一系列的连续反应。按键 K1、K2的扫描方法 与按键K0的方法相似,单片机中一个储存单元记录 K0的按下的此时,K1、K2 对记录着分或小时的计数单元内的数值经行加或者减的处理。iE#q-K,停止林时:; 片村10叩、:K明阳I 肾 XUlJ =:按植计数林清等,I 步中断r堆缥甘叶'图 3.3按键扫描流程图3.4 课程设计各部分程序介绍采用8位LED软件译码动态显示程序。/ 使用 STC 89C52RCI片机,12MHzS振。/P0 口输出字段码,P2 口输出位选码,用共阴极LED数码管,key0为调时位选 择键,keyl为加1键,key2为减1键

20、。【 1】程序头文件部分及各储存单元的定义:#include "reg52.h"#include "stdio.h" #define char unsigned char char codedis_712=0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共阴极LED数码管09、灭和-的字段码char code scan_con8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/ 位选择码char data dis8=0x00,0x00,0x0b,0

21、x00,0x00,0xb0,0x00,0x00;/显示缓冲区,时、分、秒初始为0, 0x0b 为 - 的编码char data timedata3=0x00,0x00,0x00;/分别为秒、分和小时的值char data ms50=0x00,con=0x00,con1=0x00,con2=0x00;/ 计数次数初值sbit key0=P1A0;sbit key1=P1A1;sbit key2=P1A2;【2】1ms延时程序部分:/1ms 延时函数delay1ms(int t)int i,j;for (i=0;i<t;i+)for (j=0;j<120;j+);【 3】按键扫描,处理

22、部分:/ 按键处理函数keyscan( )EA=0;if (key0=0)/ 按下 K0delay1ms(10);/K0 去抖while(key0=0)con+;TR0=0;ET0=0;if (con>=3)con=0;TR0=1;ET0=1;if(con != 0)if (key1=0)delay1ms(10); /K1 去抖while (key1=0);timedatacon+;if (con=2) con1=24;else con1=60;if (timedatacon>=con1)timedatacon=0;if (con!=0)if (key2=0)delay1ms(10

23、); /K2 去抖while (key2=0);timedatacon-;if (con=2) con2=23;else con2=59;if (timedatacon<=0)timedatacon=con2;EA=1;【 4】数码管显示部分:/ 数码管显示函数scan( )char k;dis0=timedata0%10;dis1=timedata0/10;/ 秒dis3=timedata1%10;dis4=timedata1/10;/ 分dis6=timedata2%10;dis7=timedata2/10; / 时for (k=0;k<8;k+)P0=dis_7disk;P2

24、=scan_conk;delay1ms(1);P2=0x00; 【 5】主程序部分:对定时器 / 计数器 T0 经行初始化。调用显示子程序和扫描子程序。/ 主函数main( )TH0=0x3c;TL0=0xb0; /T0 定时 50msTMOD=0x01;ET0=1;TR0=1;EA=1;while (1)scan( );keyscan( );【 6】定时器/ 计数器T0 中断,形成秒,分,时:/ 定时器、计数器T0 中断服务函数void time_intt0(void) interrupt 1ET0=0;TR0=0;TH0=0x3c;TL0=0xb0;TR0=1;ms50+;if (ms50

25、=20)/循环 20 次,计 1sms50=0x00;timedata0+;/ 秒 +1if (timedata0=60)分 +1timedata0=0;timedata1+; /if (timedata1=60) timedata1=0;timedata2+; /小时 +1if (timedata2=24)timedata2=0; ET0=1;4 课程设计结论、误差分析、心得体会4.1 设计课题的设计结论本设计为基于单片机的电子钟的设计。本设计用八个共阳数码管做为显示器,它显示时间值;设计中有四个按键,其中K0 为启动/ 选择调整位置,K1 为加控制键、K2为减控制键,K3位复位键。上电之后

26、,电子时钟可以自动开始计 时,通过按键K0、K1、K2可以对电子时钟经行调整,通过复位键 K3可以让电子 时钟重新开始计时,这样的结果与设计要求完全相符,本设计成功。完成了设计任务。4.2 设计课题的误差分析该电子钟在运行中存在一定的误差,误差产生有三种可能:首先是采用的计时方案是软件计时的,计时优势利用中断来实现。而当电子钟运行时间1 秒时, 又得去执行中断程序,这个过程是需要时间的,所以就产生了一定的误差,当然这个误差是避免不了的;其次还有硬件系统也有一定的影响;第三,设计用到11.0592MHz的晶振,计算是满20次为一秒钟,但实际会慢 很多。4.3 设计体会经过为期一周的忙碌,终于完成了单片机的课程设计实验。在此期间,我不仅把

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论