基于51单片机的数字时钟方案设计书.docx
- 文档编号:26095340
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:29
- 大小:172.50KB
基于51单片机的数字时钟方案设计书.docx
《基于51单片机的数字时钟方案设计书.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字时钟方案设计书.docx(29页珍藏版)》请在冰豆网上搜索。
基于51单片机的数字时钟方案设计书
摘要
近几年,单片机在各个领域得到广泛的应用。
从工业到人们的日常生活,大部分的科技产品都是通过单片机来控制。
在它问世之前,自动控制设备得不到广泛的应用,这是因为控制设备的体积庞大,耗电量大,价格昂贵。
在第一台微处理器成功研制不久,第一个单片机就问世了。
因为其小巧的体积,低功耗,以及高效的性能,单片机受到了大家的欢迎。
本设计利用Atmel公司的AT89C52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用C语言进行软件编程,并用Proteus软件进行演示、验证。
主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机80C51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机的数字电子时钟。
它的计时周期为24小时,显满刻度为“23时59分59秒”,且配有4个独立键盘,可以灵活地调节时间和日期,并具有一定的扩展性。
关键词:
单片机,数字时钟,动态显示,LED数码管显示,独立按键
Abstract
SingleChipMicrocomputerhasachievedaimmemsepopularityinallfiledsinrecentyears.Fromindustrytopeople’scommonlives,mostoftechnicalapplicationsarecontrolledbySCM.Beforeitappeared,theautomaticdevicescould’tbewidelyusedbecauseoftheirhugesize,largequantityofpowercostandhighprice.ThefirstSCMappearedassoonasthefirstMCU(MicroControllerUnit)wassuccessfullydeveloped.Duetoitssmallsize,lowpowercostandhighperformance,ithasbeenwelcomedbypeople.
ThisdesignusesAT89C52MCUtodevelopingelectronicclock,ithasdesignedtoachievetherequiredfunctionalityofthehardwarecircuit,usingtheCtoprogrammingsoftware,andusingproteustoshow.Describingthemethodtousethemicrocontroller'sinternaltimerandcountertoimplementelectronicclock,thedesignofthe80C51MCUcorechipsandLEDdigitaltubedisplay,supplementedbythenecessarycircuitrytoformasingle-chipdigitalclock.Itstimeperiodis24hours,fullscaleis"23:
59:
59",anditisequippedwithfourindependentkeyboard,adjustingthetimeanddateFlexible.Itisalsohavesomescalability.
Keywords:
Microcomputer。
Digitalclock。
Dynamicdisplay。
LEDdigitaltubedisplay。
Separatekeyboard
第一章绪论
1.1数字时钟设计的背景
单片机自从1976年由Intel公司推出MCS-48开始,迄今已有二十多年之久了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,单片机应用领域已经从面向工业控制、通讯、交通、智能仪表等方面迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
本文讨论的单片机数字电子时钟系统的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能多等多种特点。
不仅能满足所需要求而且还有很多功能可供扩展,有着广泛的应用实践领域。
第二章AT89C51单片机简介
2.1单片机介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可。
用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!
它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
2.2单片机的应用特点
随着集成电路技术的发展,单片机的功能越变越强,涉及到各个电子应用领域。
目前单片机的系列也十分多,各有各的特点,如目前的MCS51系列、PIC系列等等,通过这几年的应用,普通感觉到特别需要单片机具有如下几个应用特点:
1.低功耗、宽电压工作范围,内部看门狗;
2.高速指令系统,单字节指令,精简指令集易学易用;
3.内部ROM结构,且具有廉价OTP(一次性写入程式)ROM,以便小批量生产,减少MASK风险;
4.程序保密功能,防止拷贝,保护成果;
5.方便的开发工具(仿真器与烧入器)。
2.3单片机的应用领域
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。
2.4单片机的中断与定时系统
2.4.1MCS-51单片机中断系统
中断是一项重要的计算机技术,采用中断技术可以使多项任务共享一个资源,所以中断技术实质上就是一种资源共享技术。
1、中断源
MCS-51是一个多中断源的单片机,以80C51为例,有三类共五个中断源,分别是外部中断两个,定时中断两个和串行中断一个。
1)外中断
外中断是由外部原因引起的,共有两个中断源,即外部中断0和外部中断1。
它们的中断请求信号分别由引脚INT0(P3.2)和INT1(P3.3)引入。
外部中断请求有两种信号方式,即电平方式和脉冲方式,可通过有关控制位进行定义。
2)定时中断
定时中断是为满足定时或计数的需要而设置的。
3)串行中断
串行中断是为串行数据传送的需要而设置的。
2、中断控制
这里所说的中断控制是指提供给用户使用的中断控制手段,实际上就是一些专用寄存器。
在MCS-51单片机中,用于此目的的控制寄存器共有四个,即定时器控制寄存器、中断允许控制寄存器、中断优先控制寄存器以及串行口控制寄存器。
1)定时器控制寄存器(TCON)
该寄存器用于保存外部中断请求和以及定时器的计数溢出。
寄存器地址88H,位地址8FH~88H。
表1定时器控制寄存器位地址及内容
位地址
8F
8E
8D
8C
8B
8A
89
88
位符号
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
这个寄存器既有定时器/计数器的控制功能又有中断控制功能,其中与中断有关的控制位共六位:
IE0和IE1、IT0和IT1以及TF0和TF1。
2)中断允许控制寄存器(IE)
寄存器地址A8H,位地址AFH~A8H。
表2中断允许控制寄存器位地址及内容
位地址
AF
AE
AD
AC
AB
AA
A9
A8
位符号
EA
/
/
ES
ET1
EX1
ET0
EX0
其中与中断有关的控制位共六位:
EA、EX0和EX1、ET0和ET1、ES。
3)中断优先级控制寄存器(IP)
MCS-51的中断优先级控制只定义了高、低两个优先级。
各中断源的优先级由优先寄存器(IP)进行设定。
IP寄存器地址B8H,位地址为BFH~B8H。
寄存器的内容及位地址表示如下:
表3寄存器的内容及位地址
位地址
BF
BE
BD
BC
BB
BA
B9
B8
位符号
/
/
/
PS
PT1
PX1
PT0
PX0
PX0外部中断0优先级设定位;
PT0定时中断0优先级设定位;
PX1外部中断1优先级设定位;
PT1定时中断1优先级设定位;
PS串行中断优先级设定位。
为0的位优先级为低;为1的位优先级为高。
中断响应:
中断响应就是对中断源提出的中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求时,紧接着就进行中断响应。
中断响应的主要内容是由硬件自动生成一条长调用指令LCALL。
其格式为LCALLaddr16,这里的addr16就是程序存储器中断区中相应中断的入口地址。
在MCS-51单片机中,这些入口地址已由系统设定。
2.4.2MCS-51单片机的定时器/计数器
MCS-51单片机共有两个可编程的定时器/计数器,分别称定时器/计数器0和定时器/计数器1。
它们都是十六位加法计数结构,分别由TH0(地址8CH)和TL0(地址8AH)及TH1(地址8DH)和TL1(地址8BH)两个8位计数器组成。
这四个计数器均属专用寄存器之列。
MCS-51的每个定时器/计数器都具有定时和计数两种功能。
1.计数功能
所谓计数是指对外部事件进行计数。
外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。
2.定时功能
定时功能也是通过计数器的计数来实现的。
不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。
也就是每个机器周期计数器加1。
由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。
定时器/计数器提供给用户使用的有:
八位计数器TH和TL,以及有关的控制位。
这些内容只能以软件方法使用。
2.4.3MCS-51定时器/计数器的四种工作方式
1.定时器工作方式0
方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。
当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位。
在方式0下,当为计数工作方式时,计数值的范围是:
1~8192(213)
当为定时工作方式时,定时时间的计算公式为:
(213-计数初值)×晶振周期×12或(213-计数初值)×机器周期
其时间单位与晶振周期或机器周期相同(ms)。
2.定时工作方式1
方式1是16位计数结构的工作方式,计数器由TH0全部8位和TL0全部8位构成。
当为计数工作方式时,计数值的范围是:
1~65536(216)
当为定时工作方式时,定时时间计算公式为:
(216-计数初值)×晶振周期×12
或(216-计数初值)×机器周期
3.定时工作方式2
工作方式2是自动重新加载工作方式。
在这种工作方式下,把16位计数器分为两部分,即以TL作计数器,以TH作预置寄存器,初始化时把计数初值分别装入TL和TH中。
当计数溢出后,不是像前两种工作方式那样通过软件方法,而是由预置寄存器TH以硬件方法自动给计数器TL重新加载。
变软件加载为硬件加载。
初始化时,8位计数初值同时装入TL0和TH0中。
当TL0计数溢出时,置位TF0,同时把保存在预置寄存器TH0中的计数初值自动加载TL0,然后TL0重新计数。
如此重复不止。
这不但省去了用户程序中的重装指令,而且也有利于提高定时精度。
但这种工作方式下是8位计数结构,计数值有限,最大只能到255。
这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。
2.5AT89C51引脚功能介绍
1、主电源引脚(2根)
(1)VCC:
电源输入,接+5V电源
(2)GND:
接地线
2、外接晶振引脚(2根)
(1)XTAL1:
片内晶振电路的输入端
(2)XTAL2:
片内晶振电路的输出端
3、控制引脚(4根)
(1)RST/VPP:
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
(2)ALE/PROG:
地址所存允许信号。
(3)PSEN:
外部存储器读选通讯信号。
(4)EA/VPP:
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
5.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
第三章设计方案
通常通过单片机设计电子时钟有2种方法:
一是通过单片机内部的定时器计数器。
采用软件编程实现时钟计数,一般称为软时钟,这种方法硬件线路简单,程序比较复杂。
系统的功能一般与软件相关。
通常用于对时间精度要求不搞的场合。
二是采用时钟芯片他的功能强大,功能不见集成在芯片内需,自动产生时钟等相关功能。
硬件成本较高,软件编程仙丹。
通常对时钟精确度要求较高的场合。
电子时钟的系统软件程序有、由主程序和子程序组成,主程序包含初始化参数设置,按键处理,数码管显示模块等。
在设计时候、各个模块都采用子程序结构设计。
在主程序种调用。
由于定时器,计数器采用中断方式处理,应此还用辨析定时器,中断服务子程序,在定时器,计数器中断服务子程序种对时钟进行调整。
3.1主程序
主程序执行流程图如图1所示。
主程序先对显示单元和定时器计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有建按下,则转入相应的功能程序。
图1主程序执行流程图
3.2数码管显示模块
本设计的显示模块采用8位一体共阳极数码管,显示分为时钟显示和日期星期两种模式,当为显示时钟模式时,从右到左依次显示秒个位,秒十位,横线,分个位,分十位,横线,时个位,时十位;当为显示日期和星期模式时,从右到左一次显示星期,不显示,横线,日个位,日十位,月个月,月十位。
数码管显示的信息用8个内存单元存放,这8个内存单元为显示缓冲区,其中秒个位和秒十位,分个位和分十位,时个位和时十位分别由秒数据,分数据和小时数据分拆得到。
在本系统种数码管显示采用软件译码动态显示。
在存储器中首先建立一张显示信息字段码表,显示的时候,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出的所显示的字段码。
从P0口输出,同时在P2口将对应的位选码输出,选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。
3.3定时器计数器T0中断服务程序
定时器计数器T0用于时间计时,选择方式1,重复定时,定时时间设为100MS,定时时间到则溢出中断,在中断服务程序中用一个计数器对100MS计数,计10次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清零。
分单元加到60的时候,则对时单元加1,同时分单元清零,时单元加到24的时候则对时单元清零,标志一天时间计满,此时所以单元清零。
在对各单元计数的同时,把它们的值放到存储器单元的制定位置
3.4按键处理模块
按键处理设置为:
如果没有按键,则为时钟模式,时钟正常走时,当按下shijia按键的时候,时单元每次加1,当加到24后跳为00,当按下shijian按键的时候,时单元每次减1,当减到00的时候跳到23;当按下fenjia按键的时候,分单元每次加1,当加到60的时候跳为00,按下fenjian按键的时候,分单元每次减1,当减到00的时候跳为59;当xianshiqih建按下时,为显示日期模式,此时数码管显示日期和星期,当同时按下shijia按键的时候,月单元每次加1,当加到13后跳为00,当同时按下shijian按键的时候,日单元每次加1,如果月份为:
1月、3月、5月、7月、8月、10月、12月的时候,当日加到32的时候跳到1;如果月份为4月、6月、9月、11月的时候,当日加到31的时候跳到1,如果月份为2月的时候,当日加到29时跳到1。
当同时按下fenjia按键的时候,星期单元每次加1,当加到6的时候跳为0,“0”表示星期日。
第四章硬件电路设计
4.1复位电路
MCS-51单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位:
上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
按键复位:
电路在运行过程中,也可以通过按键进行复位。
当按下复位按键,复位引脚RST通过按键与地相接,得到低电平,从而实现复位。
电路图如图2所示:
图2复位电路
4.2时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
电路图如图3所示:
图3时钟震荡电路
MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
4.3按键电路
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。
电路图如图4所示:
图4按键电路
P1.4口所接的按键为模式切换按键,当不按下此按键时为时钟显示模式,当按下此按键时为日期和星期显示模式。
当为时钟显示模式的时候,P1.0到P1.3分别表示如下:
P1.0口表示调整小时“+”,按一下则时加1,当加到23后再加一次为0;
P1.1口表示调整小时“-”,按一下则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 数字 时钟 方案设计