于基单片机的电子时钟设计本科毕业设计.docx

上传人:b****5 文档编号:14619324 上传时间:2023-06-25 格式:DOCX 页数:38 大小:400.65KB
下载 相关 举报
于基单片机的电子时钟设计本科毕业设计.docx_第1页
第1页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第2页
第2页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第3页
第3页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第4页
第4页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第5页
第5页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第6页
第6页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第7页
第7页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第8页
第8页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第9页
第9页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第10页
第10页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第11页
第11页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第12页
第12页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第13页
第13页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第14页
第14页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第15页
第15页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第16页
第16页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第17页
第17页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第18页
第18页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第19页
第19页 / 共38页
于基单片机的电子时钟设计本科毕业设计.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

于基单片机的电子时钟设计本科毕业设计.docx

《于基单片机的电子时钟设计本科毕业设计.docx》由会员分享,可在线阅读,更多相关《于基单片机的电子时钟设计本科毕业设计.docx(38页珍藏版)》请在冰点文库上搜索。

于基单片机的电子时钟设计本科毕业设计.docx

于基单片机的电子时钟设计本科毕业设计

10722

学号

学校代码

公开

密级

TH714

分类号

本科毕业论文

基于单片机的电子时钟设计

题目

(中、英文)

TheDesignofElectronicClockBasedonMCU

作者姓名

电气工程及其自动化

专业名称

工科

学科门类

郝海燕

成绩评定

提交论文日期

指导教师

二〇一三年五月

摘要

单片机是一种数字集成电路芯片,是指集成在一块芯片上的微型计算机。

一个比较完整的单片机应该包括微处理器(CPU)、存储器(RAM和ROM)、并行输入/输出接口(I/O接口)电路、可编程全双工串行口、定时/计数器、中断系统以及复位电路。

由于它具有小巧灵活,成本低,可靠性好,控制功能强,易扩展等一系列优点,所以被越来越广泛地应用于各个领域。

而51系列的单片机就是最为典型和具有代表性的一种单片机。

本设计是基于单片机的简单电子时钟的设计,系统主要以单片机AT89C51为核心,结合按键模块来显示相应的时间,并可以对时、分、秒进行单独校对,使其达到标准时间。

本次设计以软件控制硬件以及软硬件结合为指导思想,充分发挥单片机功能。

同时,该系统的诸多优点使其具有很强的实用性,由于该系统实现的功能简单,因此具有很好的可扩展性。

关键词:

AT89C51;电子时钟;按键控制

 

Abstract

Thatthemicrocontrollerisintegratedonasinglechipmicrocomputerisadigitalintegratedcircuitchip.Shouldbeamorecompleteincludesingle-chipmicroprocessor(CPU),memory(RAMandROM),parallelinput/outputinterface(I/Ointerface)circuit,aprogrammablefull-duplexserialport,timer/counter,interruptsystem,andresetcircuit.Becauseofitscompactandflexible,lowcost,reliability,andcontrolfunctions,easytoexpandaseriesofadvantages,itismoreandmorewidelyusedinvariousfields.The51seriesisthemosttypicalandrepresentativeofasingle-chipmicrocontroller.

Theprojectisthedesignofsimpleelectronicclockbasedonmicrocontroller.ItisasthecoreofAT89C51microcontroller,withkeymoduletodisplayrelativetimeandmakehour,minutes,secondsseparateproofreadingtomakeituptostandardtime.Thedesigncontrolhardwareandsoftwarecombinationofhardwareandsoftwareastheguidingideology,givefullplaytothemicrocontrollerfeatures.Meanwhile,thesystemhassomanyadvantagesthatithasastrongpracticability,becauseofitssimplefunction,andthereforeithasgoodscalability.

Keywords:

AT89C51;Electronicclock;Keycontrol

 

1.引言

1.1单片机的发展历程

单片机是计算机技术、大规模集成电路技术和控制技术的综合产物。

经过30多年的发展历程,单片机应用已广泛深入人们生活中的方方面面。

根据Motorola公司的统计,1990年,平均每辆汽车使用12个单片机,而到了2000年就增加到35个。

所以可以毫不夸张的说,任何设备和产品的自动化、数字化和智能化都离不开单片机。

现在,凡是电脑控制的设备和产品,必有单片机嵌入在其中。

这一切表明,单片机已经成为人们生活中必不可少的助手。

单片机有两种基本结构:

一种是在通用计算机中广泛应用的,程序和数据存储器共用一个存储器空间的结构,称为VonNeumann结构。

另一种是将程序存储器和数据存储器分开,分别寻址的结构,称为Harvard结构,目前的单片机多采用这种结构[1]。

本文设计的单片机电子时钟系统的核心是当前应用很广泛的51系列单片机,配置了外围设备,构成了一个简单的计时系统,它具有体积小,可靠性比较高的特点,不仅能满足要求而且还可以扩展很多功能,在实际生活中应用很广泛。

1.2设计任务

本设计采用AT89C51单片机对电子时钟进行开发,通过Proteus软件来实现电子时钟系统的设计与仿真,并应用LED显示相应的时间。

1.3设计意义

在日常生活和工作中,我们常常用到定时控制。

早期常用的一些时间控制单元都是使用模拟电路设计而成的,它的定时准确性和重复精度都不很理想,而现在基本上都是一些基于数字技术的新型产品,随着单片机性本身价比的不断提高,新型产品的应用也越来越广泛。

有的可以运用于大工业里的过程控制系统,具有强大的控制功能;有的可以运用于智能家居控制,甚至可以用于小孩的电子玩具中。

它功能强大、体积小、质量轻、灵活好用,给它连接各种不同的控制芯片,就可以实现各种不同的功能[2]。

根据这些情况,设计了一个单片机电子时钟系统,它有基本的时间显示功能,还有定时功能,可扩展多种功能用来方便人们的生活。

2.电子时钟的设计原理

2.1电子时钟的特点

随着电子工业的发展,电子产品日新月异。

钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的功能。

诸如数字钟、万年历、电子表、定时自动报警、定时启闭电路、通断动力设备,甚至各种定时电气的自动启用、通信、网络等众多领域,所有这些都是以钟表数字化为基础的。

由于其功能的不断增加,使用方便性不断提高,很多产品已经成为人类日常生活中不可或缺的助手。

现在许多高精度的计时工具都使用了石英晶体振荡器,由于电子钟,电子表,石英表都采用了石英技术,因此工作时精度高,稳定性能好,用起来方便,不需要经常调试,数字电子时钟用集成电路计时时,译码代替机械式传动,用LED显示代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示的功能,还可以进行时和分的校对,片选的灵活性好[3]。

2.2电子时钟的应用

电子时钟除了在城市的主要营业场所、车站、码头等公共场所使用,还可以改装在摩托车和汽车上,LCD显示,带蓝色背光,白天在太阳光下也能非常清楚的看到显示时间,关钥匙可以关闭蓝色背光,时间还能显示也不会清零,因LCD的显示耗电量很省的,所以工作时也不用担心耗电问题。

在行路上,如果司机看时间可能会很麻烦甚至影响其他人的生命安危。

现在车上改装了一个蓝色的液晶电子钟,不管白天还是黑夜,随时可以看时间,非常方便[4]。

2.3电子钟的工作原理

本设计的电子时钟是由AT89C51,八段数码管等构成,采用晶振电路作为驱动电路,由计时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。

电路中的四个控制键拥有多种不同的功能,按下又松开,可以实现校对时间以及定时的功能,还可以达到省电的目的。

2.4电子时钟的设计流程

图1设计流程图

3.设计方案

3.1硬件电路的设计方案

本设计的硬件电路设计框图如图2所示:

图2总体结构框图

由图2可以看出:

本设计电路的硬件部分共由五部分组成,分别为按键模块、复位电路模块、振荡电路模块、发声模块、时间显示模块。

振荡电路模块负责给单片机提供时钟周期。

复位电路模块负责上电后自动复位,或按键后强制复位。

上电后,由单片机内部定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。

与此同时,按键扫描函数一直扫描按键引脚状态,一旦扫描按键被按下,即进入相应的功能函数。

如果检测到定时时间到,则驱动蜂鸣器发生提示。

3.2硬件电路的原理图

由上面的设计框图可以进一步得出本系统的电路原理图。

原理图如图3所示:

图3电路原理图

本设计是采用晶振电路作为驱动电路,由计时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。

电路中的四个控制键拥有多种不同的功能,按下又松开,可以实现校对时间以及定时的功能。

3.3硬件电路说明

3.3.1主控制模块

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机[5]。

AT89C51单片机引脚介绍:

Vcc:

电源

Vss:

地线

P0口:

P0口地址为80H,位地址为80H~87H。

各位口线是有完全相同但又相互独立的逻辑电路。

P0口的逻辑电路主要由D触发器构成的锁存器,FET(场效应管)构成的输出驱动电路,用于引脚数据输入缓冲的缓冲器,一个多路转接开关(MUX)构成。

8位口线的锁存器位构成一个口的锁存器,所谓的口地址就是锁存器的地址。

锁存器的功能是使数据在口中保留一段时间。

MUX的一个输入来自锁存器,另一个输入为“数据/地址”。

输入转接由控制信号控制,设置多路转接开关的原因是P0口既可以作为通用I/O口进行数据输入/输出,又可以作为单片机系统的地址/数据线使用。

设置多路转接开关可以方便的实现转换。

P1口:

P1是一个带有内部上拉电阻的8位双向I/O口。

P1口地址为90H,位地址为90H~97H。

P1口只能作为通用数据I/O口使用所以在电路结构上与P0口有些不同。

第一,因为它只能传送数据,所以不再需要多路转接开关(MUX);

第二,驱动电路中有上拉电阻。

其上拉电阻并不是真正的电阻,而是一个能起到上拉电阻作用的由两个场效应管构成的电路。

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2口地址为A0H,位地址为A0H~A7H。

P2口既可作为系统高位地址线使用,也可作为通用I/O口使用,所以P2口的电路逻辑与P0口类似,也有一个多路转接开关。

但多路转接开关的一个输入端不再是地址/数据,而是单一的地址,因为在构造系统总线时,P2口只能作为高位地址而不能作为数据线使用。

当P2口作为高位地址线使用时,多了开关倒向地址端;而当通用I/O口使用时,多路开关倒向锁存器的Q端。

图4AT89C51引脚排列图

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口的地址为B0H,位地址为BOH~B7H。

虽然P3口可以作为通用I/O口使用,但在实际应用中我们更多的使用的是他的第二功能信号。

P3.0RXD(串行数据接收)

P3.1TXD(串行数据发送)

P3.2INT0(外部中断0申请)

P3.3INT1(外部中断1申请)

P3.4T0(定时器/计时器0计数输入)

P3.5T1(定时器/计时器1计数输入)

P3.6/WR(外部RAM写选通)

P3.7/RD(外部RAM读选通)

RST:

复位信号。

当输入的复位信号延续2个机器周期以上的高电平时即为有效,用于单片机的复位操作。

ALE:

地址锁存控制信号。

在系统扩展时,ALE用于把P0口输出的低八位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。

此时由于ALE是以1/6晶振频率的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用

外部程序存储器读选通信号。

在读外部ROM是/PSEN有效,以实现外部ROM单元的读操作。

访问程序存储器控制信号。

当/EA信号为低电平时,对ROM的读操作是针对外部程序存储器的;而当/EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。

XTAL1和XTAL2:

外部晶体引线端。

当使用芯片内部时钟时,XTAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。

3.3.2按键模块

图5按键模块

在该模块中,采用四个按键作为对电子时钟的控制输入,通过按键来实现时钟的时间设置、定时功能。

电路中将四个按键的一端接地,而单片机的P2口默认为高电平,一旦按键被按下,则该按键对应的管脚被拉低,通过软件扫描按键即可知道用户所要实现的功能,调用相应的按键子程序来完成该操作[6]。

本设计中,四个按键K1、K2、K3、K4分别与AT89C51单片机的引脚P1.0、P1.1、P1.2、P1.3连接。

当按下K1时,开始进行“时”的校对,再次按下K1时,则切换到“分”的校对,第三次按下则切换到“秒”的校正,第四次按下则返回到正常时间显示。

当按下K2时,切换到闹钟模式,连续按下K2键时依次进行定时。

K3和K4键是实现加一和减一功能。

3.3.3复位电路

图6复位电路

单片机在上电以后内部的电路处于一种随机状态,这时如果开始工作则会出现混乱。

对单片机而言,复位也就是在做准备工作,是使单片机回到初始化状态的一种操作。

单片机系统上电后,从何处开始执行第一条指令是由系统复位后的状态决定的[7]。

RESET引脚是复位信号的输入端,高电平有效,低电平工作。

常用的复位电路有上电复位电路、按键电平复位电路、按键脉冲复位电路。

本设计中采用按键电平复位电路,如图6所示。

3.3.4振荡电路

图7振荡电路

AT89C51单片机内部有一个高增益反相放大器,它的作用就是用来构成振荡器,但要形成时钟,还需要一些附加的电路[8]。

AT89C51单片机的时钟产生有以下两种方法:

1.内部时钟方式。

利用单片机内部的振荡器,然后在引脚XTAL1和XTAL2两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30pF左右;这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHZ-12MHZ之间选择。

2.外部时钟方式。

此方式是利用外部振荡脉冲接入XTAL1和XTAL2。

本设计采用内部时钟方式。

振荡电路由两个皆为30PF的C1,C2及振荡频率为12MHZ的晶振组成,并配合单片机定时器0实现准确计时。

如图7所示。

3.3.5发声模块

图8发声模块

发声模块由电源,蜂鸣器两部分组成。

正常情况下,不发声,一旦按键按下,或定时时间到,蜂鸣器发声[9]。

3.3.6时间显示模块

LED是LightEmitingDiode(发光二极管)的缩写,发光二极管是能将电信号转换为光信号的电致发光器件。

由条形发光二极管组成“8”字形的LED显示器,也称数码管[10]。

通过数码管中发光二极管的亮暗组合,可以显示多种数字、字母以及其他符号。

数码管有7段数码管和8段数码管之分。

7段数码管由7个发光二极管组成,而8段数码管则是在7段发光二极管的基础上再加一个圆点型发光二极管,用以显示小数点。

8段数码管中发光二极管的排列形状以及数字显示的段组合如图9所示:

 

图9八段数字显示器及发光段组合图

在使用中,为了给发光二极管加驱动电压,它们有一个公共引脚,公共引脚共有两种连接方法,如图10所示,分别为共阴极接法与共阳极接法[11]。

1.共阴极接法。

把发光二极管的阴极连在一起构成阴极公共引脚,如图a所示。

使用时阴极公共引脚接地,这样阴极引脚上加高电平的发光二极管就导通点亮,而加低电平的则不点亮。

2.共阳极接法。

把发光二极管的阳极连在一起构成阳极公共引脚,如图b所示。

使用时阳极公共引脚接+5V。

这样阴极引脚上加低电平的发光二极管即可导通点亮,而加高电平的则不点亮。

 

a共阳极接法b共阴极接法

图10LED显示器接法

本设计中采用共阴极LED数码管显示方式,电路图如图11所示:

图11时间显示模块

4.控制系统的软件设计

4.1KEIL集成开发环境的应用与操作

4.1.1KEIL集成开发环境简介

KeilC51是KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

在Keil中使用C语言编程,在功能上、结构性、可读性、可维护性上有明显的优势[12]。

4.1.2KEIL集成开发环境的基本仿真流程[13]

1.新建与保存源程序[13]

第一步:

双击KEILuVision3的桌面快捷方式,启动KEIL集成开发软件。

第二步:

新建文本编辑界面或加入原有的程序文件。

选择“File(文件)”→“New”命令或菜单栏的“新建文本”命令,即可在项目界面的右侧打开一个新的文本编辑界面,默认文件名为“Text1”。

第三步:

在“Text1”中输入C语言源程序。

第四步:

保存源程序。

保存文件时必须加上文件的扩展名并选择路径和文件名进行保存,C语言程序文件的扩展名为“.C”。

2.建立新工程

第五步:

新建KEIL工程。

选择“Project(工程)”→“NewProject(新建工程)”命令,将出现保存对话框。

在保存工程对话框中输入工程文件名,工程名称不用输入扩展名。

输入名称后保存,将出现“SelectDeviceforTarget”对话框。

第六步:

选择CPU型号。

在对话框中选择“公司(Atmel)”→“CPU型号”,单击“确定”按钮返回主界面。

3.加入源程序到工程中

4.2Proteus软件简介

Proteus软件是目前世界上最先进的嵌入式系统设计与仿真平台,可以实现模拟电路、数字电路及各种电路系统的仿真和PCB设计等功能,是目前唯一一个能够对各种处理器进行实时仿真、调试与测试的EDA工具。

微控制器系统相关的仿真需建立编译和调试环境,可选择Keil5软件。

该软件支持许多芯片,集编辑、编译和程序仿真于一体,同时还支持汇编和C语言的程序设计。

它的界面简单易学,在调试程序、软件仿真方面有很强大的功能[14]。

其最关键的功能是:

将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如LED、开关等,实时看到运行后的输入、输出的结果,Proteus为我们建立了比较完整的电子设计开发环境[15]。

4.3程序流程图

图12主程序流程图

本设计的主程序是一个循环的过程,其流程是:

开始运行显示正常时间,如果扫描过程中,发现有键按下,则进行时间和闹钟模式的切换,再次按下,进行时分秒的校正;如果没有键按下,则正常显示时间;在正常时间显示过程中,若定时时间到,则闹钟自动响起,否则时间正常显示。

4.4仿真结果

仿真结果如下图13所示。

图13仿真结果

4.5仿真结果分析

本设计实现了时分秒的显示,设计简单,对时间的调节感觉不是很好,在闹钟定时方面还是比较满意。

在测试过程中,有很多小问题,通过多次的修改程序并在Proteus软件中进行仿真,最终解决可了这些问题,同时也反映出我在单片机设计和程序设计方面的不足[16]。

仿真效果达到了预期的效果,能通过调节控制键来矫正时间,是本人比较满意。

5.总结

首先,我觉得这次的单片机设计非常必要,通过这次的设计使我们学到了更多的关于单片机的实际应用知识,以前在课堂上只是简单的掌握了一些基础知识和简单指令,对于实际的应用还很陌生。

刚开始设计时,脑子里一片空白,不知道从哪开始下手,学过的知识不知道怎么运用。

设计,编程,仿真,每一步都感觉很难,尤其是编程这一块,老是有错误,后来我发现,应该把程序分开来,一块一块的进行编程,不能混在一起,否则程序太大了,容易混淆,很难发现里面存在的问题。

于是我把程序按照实现的功能不同分成几部分,然后进行逐一分析,进行编程,把每一部分实现的功能都实现后再对整个的程序进行整理。

这次设计让我深有感触的是做什么事都要细心,并且一定要有耐心,不然只会半途而废,而且思路很重要,当有了明确的思路之后再按照思路一步一步的按照步骤来走,注意细节,这样会大大提高效率,而且会节省很多时间和精力。

以上这些就是我在这次设计中学到的东西,而且将这些东西运用到以后的学习中。

 

参考文献

[1].李广弟,朱月秀,冷祖祁.单片机基础(第三版)[M].北京:

航空航天大学出版社,2007

[2].李朝青.单片机原理及接口技术(简明修订版)[M].北京:

北京航空航天大学出版社,1998

[3].THKACM-1型单片机实验系统实验指导书、KEIL软件、WAVE软件

[4].数字控制与PLC实验室“THKSCM-1型单片机实验系统”

[5].李光才.单片机课程设计实例指导[M].北京:

北京航空航天大学出版社2004

[6].耿永刚.单片机C51应用技术[M].北京:

电子工业出版社2011

[7].周润景,徐宏伟,丁莉.单片机电路设计、分析与制作[M].北京:

机械工业出版社2010

[8].林志琦,郎建军,李会杰,佟大鹏.基于Proteus的单片机可视化软硬件仿真[M].北京:

北京航空航天大学出版社2006

[9].李海滨,片春媛,许瑞雪.单片机技术课程设计与项目实例[M].北京:

中国电力出版社2009

[10].张鹏,王雪瑞.单片机原理与应用实例教程[M].北京:

海洋出版社2008

[11].戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲[M].北京:

电子工业出版社2006

[12].兰吉昌.51单片机应用设计实例[M].北京:

化学工业出版社2008

[13].杜立,张俊亮.单片机原理及应用-基于Proteus和KeilC(第二版)[M].北京:

电子工业出版社2013

[14].周润景,张丽娜,刘映群.Proteus入门实用教程[M].北京:

机械工业出版社2007

[15].朱清慧.Proteus电子技术虚拟实验室[M].北京:

中国水利水电出版社2010

[16].周润景,蔡雨恬.Proteus入门实例教程(第二版)[M].北京:

机械工业出版社2011

 

附录

程序

#include

#definetl0xba;

#defineth0x3c;

sbittime=P1^0;//时间设置

sbittimer=P1^1;//闹钟设置

sbitadd=P1^2;//加

sbitdec=P1^3;//减

sbitspeaker=P3^5;//闹钟输出

bitdisp_sd;//数码管闪动显示标志位

bitdisp_ms;//数码管显示时间/闹钟标志位

bitdisp_sdt;//数码管闪动间隔反转标志位

bit

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2