当前位置:文档之家› 单片机_数字钟

单片机_数字钟

单片机系统设计项目(三级项目)设计说明书(题目: _______数字钟______________数字钟是一种非常广泛日常计时工具,对现代社会越来越流行。

它可以对年、月、日、时、分、秒进行计时,设置闹钟等很多种功能,对于数字钟采用直观的数字显示,可以同时显示年、月、日、时、分、秒等信息,还具有时间校准等功能。

本设计是基于51系列的单片机进行设计,可以显示年月日时分秒信息,具有可调整日期和时间功能,有秒表以及闹钟功能。

程序采用高级语言C进行编写,以便更简单地实现调整时间。

所有程序编写完成后,在确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。

1、单片机简介1.1单片机的特点单片机的集成度很高,他将微型计算机的主要部件都集成在一块芯片上,具有下列特点:1. 体积小、重量轻、价格便宜、耗电少;2. 根据工程环境要求设计,且许多功能部件集成在芯片内部,其信号通道受外界影响小,故可靠性高,抗干扰性能优于采用一般的CPU。

3. 控制功能强,运行速度快。

其结构组成与指令系统都着重满足工控要求,又极丰富的条件分支指令,有很强的位处理功能和I/O口逻辑操作功能。

4. 片内存储器的容量不可能很大;引脚也嫌少,I/O引脚常不够用,且兼第二功能,第三功能但存储器和I/O口都易于扩展。

1.3 80C51单片机介绍51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。

该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。

目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。

80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。

采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM 单元及4K的ROM。

80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。

80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。

1.4单片机硬件资源单片机(microcontroller,又称微控制器)是在一块硅片上集成了各种部件的微型计算机。

这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。

图1-1是8051单片机的基本结构图图1-18051单片机的结构特点有以下几点:8位CPU;片内振荡器及时钟电路;32根I/O线;外部存储器ROM和RAM,寻址范围各64KB;两个16位的定时器/计数器;5个中断源,2个中断优先级;全双工串行口;布尔处理器1.5定时器/计数器8051内部有两个16位可编程定时器/计数器,记为T0和T1。

16位是指他们都是由16个触发器构成,故最大计数模值为216-1。

可编程是指他们的工作方式由指令来设定,或者当计数器来用,或者当定时起来用,并且计数(定时)的范围也可以由指令来设置。

这种控制功能是通过定时器方式控制寄存器TMOD 来完成的。

如果需要,定时器在计到规定的定时值是可以向CPU发出中断申请,从而完成某种定式的控制功能。

在计数状态下同样也可以申请中断。

定时器控制寄存器TCON用来负责定时器的启动、停止以及中断管理。

在定时工作时,时钟由单片机内部提供,即系统时钟经过12分频后作为定时器的时钟。

技术工作时,时钟脉冲由TO和T1输入。

1.6中断系统8051的中断系统允许接受五个独立的中断源,即两个外部中断申请,两个定时器/计数器中断以及一个串行口中断。

外部中断申请通过INTO和INT1(即P3.2和P3.3)输入,输入方式可以使电平触发(低电平有效),也可以使边沿触发(下降沿有效)。

两个定时器中断请求是当定时器溢出时向CPU提出的,即当定时器由状态1转为全零时提出的。

第五个中断请求是由串行口发出的,串行口每发送完一个数据或接收完一个数据,就可提出一次中断请求。

1.7 8051的芯片引脚如图1-2所示图1-2P0口: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.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

2、数字钟设计2.1 单片机定时/计数器在数字钟的使用8051系列单片机至少有两个16位内部定时器/计数器。

8052有三个定时器/计数器,其中连个基本定时器/计数器是定时器/计数器0和定时器/计数器1。

他们既可以编程为定时器使用,也可以编程为计数器使用。

若是计数内部晶振驱动时钟,则它是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。

8051的T/C时加一计数的。

定时器实际上也是工作在技术方式下的,只不过对固定频率的脉冲计数;由于脉冲周期固定,由计数值可以计算出时间,有定时功能。

当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加一,频率加=fosc/12。

晶振为6MHz,计数频率=500KHz,每2Us计数加一。

当T/C工作在计数器时,计数脉冲来自外部脉冲输入引脚T0或T1。

当T0或T1脚上负跳变需2个机器周期,即24个振荡周期。

所以T0或T1脚输入的计数外部脉冲的最高频率为fosc/12。

当晶振为12MHz时,最高技术频率为500KHz,高于此频率将计数出错。

2.2与T/C有关的特殊功能寄存器(1)计数寄存器TH和TLT/C是16位的,计数寄存器有TH高8位TL低8位构成。

在特殊功能寄存器中,对应T/C0为TH0和TL0;对应T/C1为TH1和TL1。

定时器/计数器的初始值通过TH1/TL1和TH0/TL0设置TR0、TR1:定时器/计数器0、1启动控制位。

1是启动,0是停止TCON复位后清零,T/C需要受到软件控制才能启动计数;当计数计满时,产生向高位的进位TF,即溢出中断请求标志C/T:计数器或定时器选择位。

1位计数器,0位定时器GATE:门控信号。

1时T/C的启动控制受到双重控制,即要求TR0/TR1和INT0/INT1同时为高;0时T/C的启动仅受TR0/TR1控制2.3 定时器/计数器的初始化(1)初始化步骤在使用8051的定时器/计数器前,应对它进行编程初始化,主要是对TCON 和TMOD编程,还需要计算和装载T/C的计数初值。

一般完成以下几个步骤:确定T/C的工作方式----编程TMOD寄存器。

计算T/C中的计数初值,并装载到TH和TL。

T/C在中断方式工作时,须开CPU中断和源中断----编程IE寄存器。

启动定时器/计数器----编程TCON中TR1和TR0位(2)计数初值的计算在定时器方式下,T/C是对机器周期脉冲计数的,如果fosc=6MHz,一个机器周期为2Us,则方士0 13位定时器最大时间间隔=(213-1)*2Us=16.384ms;方式1 16位定时器最大时间间隔=(216-1)*2Us=131.072ms;方式2 8位时器最大时间间隔=(28-1)*2Us=512Us若使T/C工作在定时器方式1,要求定时1ms,求计数初值。

如设计数初值为x,则有(216-1)*2Us=1000usx=216-500因此,TH,TL可置65536-500。

2.4 查询式键盘在多功能数字钟的设计中,我们用到了查询式键盘。

查询式键盘也是键盘控制电路中比较常用到的一种。

2.4.1 查询式键盘的工作原理如图2-1时查询式键盘与单片机的连接。

在电路中我们看到P0口作为输入口。

在端口作为外部输入线时,也就是读引脚时,要先通过指令,把端口锁存器置1,然后再执行读引脚操作,否则就可能读入出错。

相关主题