LED数字倒计时器单片机课程设计Word格式.docx

上传人:b****3 文档编号:17059157 上传时间:2022-11-28 格式:DOCX 页数:23 大小:310.71KB
下载 相关 举报
LED数字倒计时器单片机课程设计Word格式.docx_第1页
第1页 / 共23页
LED数字倒计时器单片机课程设计Word格式.docx_第2页
第2页 / 共23页
LED数字倒计时器单片机课程设计Word格式.docx_第3页
第3页 / 共23页
LED数字倒计时器单片机课程设计Word格式.docx_第4页
第4页 / 共23页
LED数字倒计时器单片机课程设计Word格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

LED数字倒计时器单片机课程设计Word格式.docx

《LED数字倒计时器单片机课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《LED数字倒计时器单片机课程设计Word格式.docx(23页珍藏版)》请在冰豆网上搜索。

LED数字倒计时器单片机课程设计Word格式.docx

2.1LED数字倒计时器的组成2

2.2LED数字倒计时器的系统设计图2

3LED数字倒计时器硬件电路设计与主要元器件分析错误!

未定义书签。

3.1AT89C51单片机错误!

3.2晶振电路8

3.3复位电路9

3.4按键电路10

3.5数码管显示电路11

3.6蜂鸣电路13

4LED数字倒计时器系统仿真图14

5LED数字倒计时器原件清单15

6LED数字倒计时器的软件设计16

6.1程序流程图16

6.2程序清单17

7总结22

8参考文献23

9评分表24

1.LED数字倒计时器的功能及需求分析

1.1功能分析:

可实现倒计时功能,计时时间可通过按键进行设定,设定完成后启动倒计时,倒计时还剩下两秒时,蜂鸣电路会报警提示。

(1)可实现倒计时功能:

本设计的LED数字倒计时采用六位数码管显示时间,分别显示小时、分钟、秒钟,最大的倒计时时间为24小时,倒计时时间为24

小时内任意时间可调。

(2)计时时间可通过按键进行设定:

通过运用独立的按键控制时,分,秒的设定。

按键B1控制小时让小时以加一方式设定,按键B2控制分钟让分钟以加一方式设定,按键B3控制秒让秒以加一方式设定,按键B4控制定时器开关。

(3)设定完成后启动倒计时:

通过按下独立按键k4控制倒计时器开关,按一下开始倒计时。

(4)当倒计时时间还剩下两秒时,蜂鸣电路会报警,这些功能都是通过软件实现的。

LED数字倒计时器的功能,原理上,和电子表的闹钟定时功能没什么两样,但是,与之不同的是,LED数字倒计时器不仅具有提醒功能,还能直接倒计时显示,还有多长时间到达设置的时间,并且,能够通过按钮调节,24小时内任

意倒计时时间均可以调节,可以调节小时、分钟以及秒钟,有按钮复位,能够实现取消定时,有按钮能够实现开始倒计时。

1.2需求分析

近年来随着计算机在社会领域的渗透,单片机的应用正在不断深入人们的生活,同时带动传统控制检测日新月异。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,针对具体应用特点与软件结合。

本次课程设计研究了LED

数字倒计时器的设计与制作,此方案线路简单,成本低,应用前景广阔。

例如,在所有大学以及初高中的每个教室里都可以安装一个LED数字倒计时器,

教室前面有个大的LED数字倒计时器,在平时不仅可以同学们还有多长时间上课下课,更主要的是,能在学校的考试或者十分重要的大型考试,如中考,高考,四六级考试,公务员考试,研究生考试等中发挥重要作用,方便考生把握考试时间发挥出最好的水平。

总而言之,LED数字倒计时器,在未来会有十分广阔的前景。

2.LED数字倒计时器的设计方案

2.1LED数字倒计时器的组成:

a)AT89C51单片机

b)晶振电路

c)复位电路

d)按键电路

e)六位数码管显示电路

f)蜂鸣器电路

2.2LED数字倒计时器的系统设计图

图2.2

3.LED数字倒计时器硬件电路设计与主要元器件分析

3.1AT89C51单片机

331AT89C51的原理图

UI

19

>

XTAL1PO.O/ADD

PO.VAD1

PO.2/AD2

XTAL2P03JAD3

P0.4/AD4

P05MD5

P0.6/AD6

RSTP0.7/AD7

P2.O/A8

P2.1/A9

P2.2/A10

PSENP2.3/A11

ALEP2.4/A12

EAP2.5/A13

P2.S/A14

P2.7/A15

P1.0P3.0/RXD

P11P3.1/TXD

P1.2P32^NT0

P13P3.3/INT1

F1.4P3.4/T0

P1.5P3.5/T1

P16P36/WR

P1.7P3.7/RD

39

38

18

37

~36

35

34

33

9

32

21

22

23

29

24

30

25

31

26

27

"

^8

10

11

14

6

l"

7

16

8

ft.T89C51

监!

丨|I|!

丨!

图3.3.1

331AT89C51的原理和性能介绍

(一)AT89C51的原理

a)VCC:

供电电压。

b)GND:

接地。

c)P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

d)P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

e)P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“T时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

f)P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C5啲一些特殊功能口,如下表所示:

口管脚备选功能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口同时为闪烁编程和编程校验接收一些控制信号。

g)RST:

复位输入。

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

平时间。

h)ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址

的地位字节。

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

在平时,ALE

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

因此它

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

然而要注意的是:

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

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

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

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

如果微处理器在外部执行状态ALE禁止,置位无效。

i)/PSEN:

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

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

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

j)/EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(OOOOH-FFFFH,

不管是否有内部程序存储器。

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

在FLASH编程期间,此引脚

也用于施加12V编程电源(VPP。

k)XTAL1:

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

l)XTAL2:

来自反向振荡器的输出。

(二)AT89C51的性能分析

a)主要特点:

AT89C5是一种带4K字节闪烁可编程可擦除只读存储器(FPERO—Falsh

ProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

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

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C5是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

b)振荡器特性:

TAL2分别为反向放大器的输入和输出。

该反向放大为片内振荡器。

石晶

振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL亦不接。

余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉

宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

c)芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“T且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU亭止工作。

但RAM定时器,

计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM勺内容并且冻

结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

 

3.2晶振电路

321晶振电路原理图

3.2.2晶振电路分析

a)晶振电路的原理:

晶振是通过电激励来产生固定频率的机械振动,而振动又会产生电流反馈给电路,电路接到反馈后进行信号放大,再次用放大的电信号来激励晶振机械振动,晶振再将振动产生的电流反馈给电路,如此这般。

当电路中的激励电信号和晶振的标称频率相同时,电路就能输出信号强大,频率稳定的正弦波。

整形电路再将正弦波变成方波送到数字电路中供其使用。

b)晶振电路的特点:

晶振是石英振荡器的简称,英文名为Crystal,晶振分为有源晶振和无源晶振两种,其作用是在电路产生震荡电流,发出时钟信号。

它是时钟电路中最重要的部件,它的作用是向IC等部件提供基准频率,它就像个标尺,工作频率不稳定会造成相关设备工作频率不稳定,自然容易出现问题。

由于制造工艺不断提高,现在晶振的频率偏差、温度稳定性、老化率、密封性等重要技术指标都很好,已不容易出现故障,但在选用时仍可留意一下晶振的质量。

3.3复位电路

331复位电路的原理图

3.3.2复位电路的原理和作用

a)复位电路的原理:

系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。

为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分

-合过程中引起的抖动而影响复位。

RC复位电路可以实现上述基本功能,但解决不了电源毛刺和电源缓慢下降(电池电压不足)等问题,而且调整RC常数改

变延时会令驱动能力变差。

左边的电路为高电平复位有效,右边为低电平有效,复位按键为手动复位开关,电容可避免高频谐波对电路的干扰。

b)复位电路的作用:

复位电路是为确保微机系统中电路稳定可靠工作必不可少的一部分,复位电

路的第一功能是上电复位。

一般微机电路正常工作需要供电电源为5V±

5%,即

4.75〜5.25V。

由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。

3.4按键电路

341按键电路的原理图

图3.4.1

3.4.2按键电路的原理分析

(—一)按键电路的原理:

按键B1/B2/B3/B4断开时,P1.0/P1.1/P1.2/P1.3输入为高电平;

按键B1/B2/B3/B4闭合后,P1.0/P1.1/P1.2/P1.3输入为低电平。

每按一次按键,就会有一次低电平,单片机就会对低电平计数,从而来调节定时时间。

由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,这种抖动对于计算机来说,是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级。

你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了,所以必须运用延时程序消除按键的抖动。

(二)按键电路的功用:

每次复位之后,三个两位数码管全部都会显示为0,而与P1.0相接的按钮

B1,每次按下一次,就会产生一次低电平,单片机就会计数一次,从而调节倒计时的小时时间,B2则调节分钟,B3则调节秒钟,与这三个按键分别控制数码管的显示倒计时的小时、分钟、秒。

与这三个按键不同的是,按键B3的作用是开

始倒计时。

这些按键的功能都是通过编程来控制的。

3.5数码管显示电路

3.5.1数码管显示电路的原理图

图3.5.1

3.5.2数码管显示电路的原理分析

(一)数码管显示电路的组成:

a)六位数码管:

分别显示小时,分钟和秒钟。

b)含有八个电阻带电源的排阻:

分别与三个数字显示的数码管并联,电源给数码管提供电压,电阻的作用是保护数码管不被烧坏。

c)将P0口的八位与数码管和排阻连载一起的导线,将P2口的六位分别与六位

数码管的六个位选引脚接在一起。

(二)数码管显示电路的工作原理:

a)七段数码管的的结构:

7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。

当发光二极管导通时,相应的一个点或一个笔画发光。

控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。

发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴

极数码管。

7段数码管内部字段LED和引脚分布共阳极

图3.5.2

b)七段数码管的驱动方法:

发光二极管(LED是一种由磷化傢(GaP等半导体材料制成的,能直接将

电能转变成光能的发光显示器件。

当其内部有一一电流通过时,它就会发光。

7

段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为5〜10mA正向电压随发光材料不同表现为1.8~2.5V不等。

c)七段数码管的动态显示:

所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的

每一位而言,每隔一段时间点亮一次。

虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是

多个字符“同时”显示。

显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。

调整电流和时间参烽,可实现亮度较高较稳定的显示。

若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。

3.6蜂鸣电路

361蜂鸣电路的组成图

3.6.1图

3.6.2蜂鸣电路的结构和原理

a)蜂鸣电路的组成:

100欧姆的电阻,一个蜂鸣器,

两个阻值为一千欧姆的电阻,一个阻值为一个三极管,一个接地,以及导线。

b)蜂鸣电路的工作原理:

蜂鸣电路是利用I/O定时翻转电平产生驱动波形对蜂鸣器进行驱动。

在程序上,可以使用TIMERO来定时,将TIMERO的预分频设置为/1,选择TIMERO的始终为系统时钟(主振荡器时钟/4),通过按键可以在TIMERO的载入/计数寄存器内调节设置时间,就能将TIMERO的中断设置设置为倒计时时间,当需要I/O口驱动的蜂鸣器鸣叫时,只需要在进入TIMERO中断的时候对该I/O口的电平

进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O口的电平设置为低电平

即可。

不鸣叫时将I/O口的输出电平设置为低电平是为了防止漏电。

4.LED数字倒计时器的仿真图

V

XI

D

Z.TK

Z•血-TE^l

|n

-Jtlk

h-^THLI

UJL-'

D」

humuo1

•n.E.

■II^WIM

P?

«

AS

M/hE

毗aia

PZ4.i-12

BC

?

LXi1*

i事产

ii-ij

fiZflm

F>

l3

m4

HiAfini

U"

rifl

ris/rsjir

riiiflTL

■tr?

~T~~

-J

..

=-\

a

-

E

5丄ED数字倒计时器元件清单

元件名称

型号

数量/个

用途

单片机

AT89C51

控制核心

晶振

12MHz

晶振电路

电容

30pF

电解电容

22卩F/10V

复位电路

电阻

10kQ

按键

按键电路和复位电路

数码管

共阳

显示器

三极管

2N5088

蜂鸣器

喇叭

8Q/0.5W

1kQ

100Q

330Q

排阻

电源

+5V/0.5A

提供+5V

表5

6.LED数字倒计时器软件设计

6.1LED数字倒计时器的程序流程图

图6.1

6.2LED数字倒计时器程序清单

#include<

reg51.h>

sbitkh=PMO;

〃定义kh为与P1.0相连接的按键B1

sbitkm=P1A1;

//定义km为与P1.1相连接的按键B2

sbitks=P1A2;

〃定义ks为与P1.2相连接的按键B3

sbitst=PM3;

//定义st为与P1.3相连接的按键B4

sbitb=P3A7;

//定义b为P3.7

unsignedchar

table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

//LED数码管从0到F的显示

unsignedchari=0,hour=0,minute=0,second=0;

定义无符号的变量并赋初值

voiddelayms(unsignedintx)

{

unsignedchara=160;

/定义无符号变量a的值为160,指延时时间为160个及

其周期乘以x,160可以为180、200等,自己设置

while(x--)

while(a--);

a=160;

}

}//定义延时程序的延时时间为160个及其周期乘以X,避免按键抖动的影响

main()

TH0=(65536-50000)/256;

〃设置定时时间对高八位赋值,50000是50000个机器周期,0.05秒

TL0=(65536-50000)%256;

//设置定时时间对低八位赋值,50000是50000个机

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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