单片机控制的倒计时显示器.docx

上传人:b****5 文档编号:27799109 上传时间:2023-07-05 格式:DOCX 页数:22 大小:210.97KB
下载 相关 举报
单片机控制的倒计时显示器.docx_第1页
第1页 / 共22页
单片机控制的倒计时显示器.docx_第2页
第2页 / 共22页
单片机控制的倒计时显示器.docx_第3页
第3页 / 共22页
单片机控制的倒计时显示器.docx_第4页
第4页 / 共22页
单片机控制的倒计时显示器.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片机控制的倒计时显示器.docx

《单片机控制的倒计时显示器.docx》由会员分享,可在线阅读,更多相关《单片机控制的倒计时显示器.docx(22页珍藏版)》请在冰豆网上搜索。

单片机控制的倒计时显示器.docx

单片机控制的倒计时显示器

绪论

在生活和生产的各个领域中,凡是有自动化控制要求的地方都会有单片机的身影,从简单到复杂,从空中地面到地下,凡是能想象到的地方几乎都有使用片机的需要,尽管现在单片机已经很普遍了,但仍有许多地方可以用单片机控制而尚未实现的项目,因此单片机的应用有很大的拓展空间。

例如在工业自动化方面,仪器仪表方面,家用电器方面,信息通信方面,军事装备方面。

单片机的应用有利于产品的小型化,多功能化,有利于提高劳动生产率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。

随着科学技术的高速发展,单片机的发展也得到了较快发展,

单片机课程在学校大量开设,人们开始运用所学单片机知识解决生活中的实际技术问题。

 

一、控制要求

(一)基本控制要求

我设计的电路是利用单片机控制的时间继电器。

电路的核心是单片机89C51芯片,首先该电路可实现0000--9999秒的长定时。

按键电路中有两个按钮,一个按钮控制定时器的启动\设定。

一个按钮控制定时器定时时间修改,在设定状态下,时间修改按钮按一次定时值加1,当设定按键启动后定时开始,定时值每秒减1,直到0000停止。

这样就实现了定时目的。

当四位LED数码管显示时间减到0000时,即定时时间到,继电器得电工作。

电路具体由复位电路,按键电路,晶振电路,动态显示组成,由于外部电路只有一继电器工作,所以本文不予过多说明。

(二)电路框图设计

89C51芯片外接复位电路,按键电路,晶振电路,等到数码显示管显示的时间为0时,继电器得电工作。

根据以上思路设计出电路的大概框图。

 

电路框图

单片机



电路原理图

 

二、单片机简介

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

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如左图所示

(一)主要特性

·与MCS-51兼容

·4K字节可编程闪烁存储器

·寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24Hz

·三级程序存储器锁定

·128×8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

 

图289C51芯片引脚排列图

(二)管脚说明:

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.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。

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

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,

置位无效。

 /PSEN:

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

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

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

    /EA/VPP:

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

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

在FLASH编程期间,此引脚也用于施加12V编程电

源(VPP)。

 XTAL1:

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

   XTAL2:

来自反向振荡器的输出。

三、单元电路介绍

(一)按键电路

单片机使用键盘分为独立式和矩阵式两种。

从按一个键到键的功能被执行主要应包括两个工作:

一是键盘识别,另一个是键功能的实现。

键盘接口应完成以下操作功能:

1、

键盘扫描,以判定是否有键被按下。

2、键识别,一确定闭合键的行列位置。

3、产生闭合键的键码

4、排除多键、串键及去抖动。

我们这里用的是独立式按键。

按键按下后,P口为低电平,断开

键,为高电平。

SB1控制定时器定时时间修改。

SB2启动/设定

图3按键电路

(二)复位电路

89C51芯片上的RST引脚是复位信号的输入端,复位信号是高电平有效。

复位操作有上电自动复位(上图a)和按键手动复位两种方式按键手动复位又分为电平方式(上图b)和脉冲方式(上图c)。

我在电路设计中采用按键电平复位方式,只要按下按钮电源通过电阻R2给RET一个高电平,使电路复位。

(三)晶振电路

AT89C51单片机的时钟信号通常由两种方式产生:

一是内部振荡方式(下图a),二是外部时钟方式(下图b)。

 

(a)内部方式时钟电路(b)外部方式时钟电路

1、内部振荡方式

在89C51单片机内部有一个高增益的反相放大器,用于构成振荡

器,反相放大器的输入端为XTAL1,输出端为XTAL2。

内部振荡方式是在XTAL1和XTAL2引脚两端跨接石英晶

体振荡器和两个电容构成稳定的自激振荡电路。

电容C1和C2通常取30pF,对振荡频率有微调作用。

晶振

频率范围是1.2MHz~12MHz。

2、外部时钟方式

外部时钟方式是把外部已有的时钟信号引入到单片机内。

AT89C51:

外部时钟由XTAL2输入,直接送入内部时钟电路,XTAL1接地;

AT89C51:

外部时钟由XTAL1输入,XTAL2悬空。

外部时钟信号为高电平持续时间要大于20ns,且频率低于

12MHz的方波。

(四)LED数码显示

1、数码管的分类

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极

接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

本论文采用四位共阳极数码管(如左图所示)图4四位共阳极数码管2、数码管的驱动方式

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以

分为静态式和动态式两类。

本电路采用动态显示驱动。

动态显示驱动:

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

(五)电路原理图

SBI控制电路的复位,按下SB1电路上电复位。

SB3是启动/设定按钮,第一次按启动,第二次按设定,SB2是时间修改按钮,在设定状态下,按一次时间值加一,定时时间设好后,按下SB3经过程序运行,定时时间自减一,直到为0,继电器得电开始工作。

D1起保护继电器的作用。

图5电路原理图

三、程序设计

程序设计主要运用了中断和定时器/计数器知识在编写程序之前先把这两个系统的基本情况介绍一下。

(一)中断席统

1、中断的概念

(1)在单片机中,当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止在执行的程序,而转向执行一处用于处理该随机事件的程序并处理完后又返回被停止的程序处继续执行,这一过程就称为中断。

(2)单片机处理中断的4个步骤:

中断请求、中断响应、中断处理和中断返回。

(3)向CPU发出中断请求的来源,或引起中断错原因称中断源。

中断源要求服务的请求称为中断请求。

中断源可分为两大类:

一类来自单片机内部,称之为内部中断源;另一类来自单片机外部,称之为外部中断源。

图6中断流程图

2、中断系统结构

(1)8051单片机的中断系统主要由与中断有关的4个特殊功能寄存器和硬件查询电路等组成。

1)定时器控制寄存器TCON——主要用于保存中断信息。

2)串行口控制寄存器SCON——主要用于保存中断信息。

3)中断允许寄存器IE——主要用于控制中断的开放和关闭。

4)中断优先级寄存器IP——主要用于设定优先级别。

5)硬件查询电路——主要用于判定5个中断源的自然优先级别。

(2)8051单片机的中断源有五个,可分为三类。

1)外部中断

2)定时中断

3)串行口中断

(3)中断系统控制

定时器控制寄存器TCON

定时器控制寄存器TCON的作用是控制定时器的启动与停止,并保存T0、T1的溢出中断标志和外部中断、的中断标志。

TCON的格式:

各位的功能说明:

1)TF1(TCON.7):

定时器1溢出标志位。

定时器1被启动计数后,从初值开始进行加1计数,当定时器1计满溢出时,由硬件自动使TF1置1,并申请中断。

该标志一直保持到CPU响应中断后,才由硬件自动清0。

也可用软件查询该标志,并由软件清0。

2)TR1(TCON.6):

定时器1启停控制位。

3)IT1(TCON.2):

外部中断1触发方式选择位。

4)IE1(TCON.3):

外部中断1请求标志位。

IEl=1表示外部中断1向CPU申请中断。

当CPU响应外部中断1的中断请求时,由硬件自动使IE1清0(边沿触发方式)。

5)TF0(TCON.5):

定时器0溢出标志位。

其功能同TF1。

6)TR0(TCON.4):

定时器0启、停控制位。

其功能同TR1。

7)IE0(TCON.1):

外部中断0请求标志位。

其功能同IE1。

8)IT0(TCON.0):

外部中断0触发方式选择位。

其功能同IT1。

(二)定时器/计数器

1、定时器/计数器的工作方式寄存器TMOD

定时器/计数器是一种可编程部件,在工作之前必须通过软件设定它的工作方式,即对工作方式寄存器TMOD中每位进行设定。

下面介绍每位的含义:

TMOD(89H)

其中,低4位用于决定T0的工作方式,高4位用于决定T1的工作方式。

(1)M1和M0工作方式控制位

M0和M1为工作方式控制位,确定4种工作方式,如表7-1所示。

(2)C/T定时器/计数器方式选择位

C/T=0,设置为定时方式,对机器周期进行计数;

C/T=1,设定为计数方式,对外部信号进行计数,外部信号接至T0(P3.4)或T1(P3.5)引脚。

2、定时器/计数器的控制寄存器TCON

设定好了定时器/计数器的工作方式后,它还不能进入工作状态,必须通过设置控制寄存器TCON中的某些位来启动它工。

要使定时器/计数器停止运行,也必须通过设置TCON中的某些位来实现。

当定时器/计数器计满溢出,或有外部中断请求时,TCON能标明溢出和中断情况。

下面介绍控制寄存器TCON每位的含义:

TF1:

定时器T1溢出标志位。

当定时器T1溢出时,由硬件自动使TF1置1,并向CPU申请中断。

CPU响应中断后,自动对TF1清零。

TF1也可以用软件清零。

TR1:

定时器T1运行控制位。

可由软件置1(或清零)来启动(或关闭)定时器T1,使定时器T1开始计数。

用指令SETBTR1(或CLRTR1)使TR1置1(或清零)。

TF0:

定时器T0溢出标志位。

其功能与TF1相同。

TR0:

定时器T0运行控制位。

其功能与TR1相同。

IE1:

外部中断1请求标志位。

IT1:

外部中断1触发方式控制位。

IE0:

外部中断0请求标志位。

IT0:

外部中断0触发方式控制位。

IE1、IT1、IE0、IT0这4位将在第3节讲述。

控制寄存器TCON的位地址是88H,可以对它进行位寻址。

(三)流程图和程序

程序中有两个中断上面是开中断,下面为两个中断服务程序。

ORG0000H;设置初始地址

AJMPMAIN

ORG000BH;中断LT0地址

AJMPLT0

ORG001BH;中断LT5地址

AJMPLT5

ORG0030H;

MAIN:

MOVTMOD,#11H;定时工作方式1

MOVTH1,#3CH;设置初始值

MOVTL1,0B0H;秒计数时间50MS

MOVTH0,#0ECH;显示时间5MS

MOVTL0,#78H

SETBEA;开中断

SETBET0;定时0允许中断

SETBTR0;开定时器0

SETBET1;定时1允许中断

MOVR1,#14H;设置循环20次

MOV30H,#05H;赋显示值

MOV31H,#00H

MOVP2,#0FEH;设位显初位

MOVDPTR,#TAB;查表

CLRF0;用户标志位清零

MAIN1:

MOVA,30H;

CJNEA,#00H,Q1;判30H=0?

MOVA,31H

CJNEA,#00H,Q1;判31H=0?

CLRF0;30H、31H=0,F0清零

CPLP1.0;继电器得电

AJMPQ2

Q1:

MOVP1,#0FFH;使继电器失电

Q2:

JBP3.6,L3;判有无启动

ACALLLOOP

JBP3.6,L3;

ACALLLOOP

JBP3.6,L3

ACALLLOOP

L0:

JNBP3.6,L0

CPLF0;用户标志位取反

L3:

JBF0,L1;判F0=1?

CLRTR1;关定时1

JBP3.7,MAIN1;判增量键无按下

ACALLLOOP

JBP3.7,MAIN1

ACALLLOOP

L2:

JNBP3.7,L2

CLRC

MOVA,30H

INCA;(30H)+1

DAA

MOV30H,A

MOVA,30H

CJNEA,#99H,L3;判(30H)=99?

MOVA,31H

CLRC

INCA;(31H)+1

DAA

MOV31H,A

AJMPMAIN1

L1:

SETBTR1;开定时器1

AJMPMAIN1

LT0:

JBP2.0,LT1;判是否显示个位

MOVA,30H

ANLA,#0FH;屏蔽十位

MOVCA,@A+DPTR

MOVP0,A;段显

AJMPLT6

LT1:

JBP2.1,LT2;判是否显示十位

MOVA,30H

SWAPA;高低字节转换

ANLA,#0FH;

MOVCA,@A+DPTR

MOVP0,A;段显

AJMPLT6

LT2:

JBP2.2,LT3;判是否显示百位

MOVA,31H

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

AJMPLT6

LT3:

JBP2.3,LT6;判是否显示千位

MOVA,31H

SWAPA

ANLA,#0FH

MOVCA,@A+DPTR

MOVP0,A

MOVA,31H

LT6:

MOVA,P2

RLA

MOVP2,A

JBP2.4,L;判有无显示超位

MOVP2,#0FEH;重设位初显

L:

MOVTH0,#0ECH;初值重赋

MOVTL0,#78H

RETI;中断返回

LT5:

MOVTH1,#3CH;初值重赋

MOVTL1,#0B0H

DJNZR1,L4;判断循环20次

MOVR1,#14H;重赋20次

MOVA,30H

CJNEA,#00H,L11;再判30H=0?

MOVA,31H

CJNEA,#00H,L7;再判31H=0?

AJMPL9

L11:

ANLA,#0FH;屏蔽个位

JZL6

CLRC

MOVA,30H

DECA;显示数减1

MOV30H,A

AJMPL4

L6:

MOVA,30H

ORLA,#09H;个位赋9

SUBBA,#10H;十位减1

MOV30H,A

AJMPL4

L7:

MOVA,31H

ANLA,#0FH;屏蔽百位

JZL8

CLRC

MOVA,31H

DECA;百位减1

MOV31H,A

MOV30H,#99H;30H送99

AJMPL4

L8:

MOVA,31H

ORLA,#09H

SUBBA,#10H

MOV31H,A

MOV30H,#99H

AJMPL4

L9:

CLRF0;用户标志位

CPLP1.0;继电器得电

L4:

RETI

LOOP:

MOVR5,#0AH

LOOP1:

MOVR4,#7CH

LOOP2:

NOP

NOP

DJNZR4,LOOP2

NOP

DJNZR5,LOOP1

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H

DB99H,92H,82H,0F8H

DB80H,90H

END

 

(四)结论

本论文研究的是单片机控制的定时继电器,其中中断和定时器知识的运用是重点。

用单片机实现的定时继电器,电路结构简单,可操作性强。

继电器工作以后可以拖动外部负载工作。

通过该论文的研究学习锻炼了自己的程序编写能力。

使自己对单片机有了更加深刻的认识。

谢辞

论文经过几个星期的撰写和修改终于完成了,在撰写的过程中,遇到不少问题,但是在指导老师的悉心点拨下,我解决了一个又一个问题,在此我要向沈蓬和都晔凯两位指导老师表示衷心的感谢!

 

参考文献:

《单片机基础》,北京航空航天大学出版社;

《MCS-51系列单片微型计算机及其应用》,东南大学出版社

 

元件清单

名称

个数

名称

个数

继电器

1个

续流二极管

1个

40脚插座

1个

共阳数码管

4位

24脚插座

1个

电阻330Ω

9个

12MHZ晶振

1个

电阻10K

4个

电容20pf

2个

电阻520Ω

4个

电解电容47uf

1个

按钮

3个

三极管

5个

电子板

1块

AT89C51芯片

1个

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

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1