单片机课程设计24秒篮球计数器Word文档格式.docx

上传人:b****5 文档编号:19283079 上传时间:2023-01-05 格式:DOCX 页数:10 大小:422.39KB
下载 相关 举报
单片机课程设计24秒篮球计数器Word文档格式.docx_第1页
第1页 / 共10页
单片机课程设计24秒篮球计数器Word文档格式.docx_第2页
第2页 / 共10页
单片机课程设计24秒篮球计数器Word文档格式.docx_第3页
第3页 / 共10页
单片机课程设计24秒篮球计数器Word文档格式.docx_第4页
第4页 / 共10页
单片机课程设计24秒篮球计数器Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

单片机课程设计24秒篮球计数器Word文档格式.docx

《单片机课程设计24秒篮球计数器Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计24秒篮球计数器Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

单片机课程设计24秒篮球计数器Word文档格式.docx

时间设置完后,启动定时器T0开始定时计数。

计时采用倒计时,比如:

设置的时间为24秒钟,则在LED上显示24两位数。

定时T0计数24秒后中断返回,继续定时计数下一个24秒;

同时则在2位LED显示器上显示,表示时间已经过去1秒钟,即为23秒。

这样一直持续下去。

知道变为“00”时表示赛程结束。

如果比赛中裁判叫停,则只要按下键,即可暂停计时。

3.1总体设计框图

图1倒计时设计总体框图

4基本原理

24秒计时器的总体参考方案框图如图1所示。

它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路(简称控制电路)等五个模块组成。

其中计数器和控制电路是系统的主要模块。

计数器完成24秒计时功能,而控制电路完成计数器的直接清零、启动计数、暂停/连续计数、译码显示电路的显示与灭灯、定时时间到报警等功能。

秒脉冲发生器产生的信号是电路的时钟脉冲和定时标准,但本设计对此信号要求并不太高,故电路可采用单片机定时器。

译码显示电路由共阴极七段LED显示器组成。

报警电路在实验中用发光二极管和鸣蜂器。

主体电路:

24秒倒计时。

24秒计数芯片的置数端清零端共用一个开关,比赛开始后,24秒的置数端无效,24秒的倒数计时器的倒数计时器开始进行倒计时,逐秒倒计到零。

选取“00”这个状态,通过组合逻辑电路给出截断信号,让该信号与时钟脉冲在与门中将时钟截断,使计时器在计数到零时停住。

5硬件电路设计

单片机STC89C51简介

AT89C51是一种带4K字节FLASH存储器(FPERO—MFlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

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

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

管脚说明

VCC:

供电电压。

AT89C51GND:

接地。

P0口:

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

当P0口的管脚第一次写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脚两个机器周期的高电平时间。

ALE/PROG:

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

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

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

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

然而要注意的是:

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

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

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

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

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

/PSEN:

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

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

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

/EA/VPP:

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

注意加密方式1

时,/EA将内部锁定为RESE;

T当/EA端保持高电平时,此间内部程序存储器。

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

XTAL1:

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

XTAL2:

来自反向振荡器的输出。

振荡器特性:

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

该反向放

大器可以配置为片内振荡器。

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

如采用

外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必

0DA/0.01DA/1.02DA/2.03DA/3.04DA/4.05DA/5.06DA/6.07DA/7.08A/0.29A/1.201A/2.21A/3.221A/4.231A/5.241A/6.251A/7.2DXR/0.3DXT/1.30TNI/2.31TNI/3.30T/4.31T/5.3RW/6.3DR/7.3

.71P.61P.15P.41P.31P.12P.11P.10P

711651141321101827262524232212233345336733893

图2AT89S52单片机引脚图

6

硬件电路图

6.1时钟电路模块

时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。

为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。

具体连接图如图3所示:

6.2复位电路模块

复位是单片微机的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。

除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。

RST引脚是复位信号的输入端。

复位

6.3报警模块

蜂鸣器通过一NPN三极管进行驱动,如图触发信号有基极引入。

(图7)

 

R3

0R1

Q2

NPN

图五报警电路

7源程序

#include<

reg52.h>

intrins.h>

#defineuintunsignedint

#defineucharunsignedchar

sbitw1=P2^0;

sbitw2=P2^1;

sbitkey1=P3^2;

sbitkey2=P3^3;

sbitkey3=P3^4;

sbitBEEP=P1^1;

uintnum,num1,shi,ge;

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};

voiddelay(uintz)

{

uintx,y;

for(x=z;

x>

0;

x--)for(y=110;

y>

y--);

}

/*voiddelay1(ucharx)//x*0.14MS

uchari;

while(x--)

{for(i=0;

i<

13;

i++){}

voidbeep(void)

for(i=0;

50;

i++)

delay1(4);

BEEP=!

BEEP;

/*按键扫描函数*/

voidkeyscan()

if(key1==0)

delay(5);

while(!

key1);

TR0=1;

if(key2==0)

key2);

TR0=0;

key3);

num1=24;

BEEP=1;

voidinit()

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

voiddisplay(ucharshi,ucharge){

P0=table[shi];

w1=1;

w2=0;

delay

(2);

P0=table[ge];

w1=0;

w2=1;

if(num1==0)

BEEP=0;

voidmain()

init();

while

(1)

keyscan();

if(num==20)

num=0;

num1--;

}ge=num1%10;

shi=num1/10;

display(shi,ge);

voidtime1()interrupt1

TH1=(65536-50000)/256;

TL1=(65536-50000)%256;

num++;

8仿真结果

9心得体会

通过了三个星期的动手操作,我已经非常熟悉了计时器的工作原理。

虽然我没能在电路仿真中实现预期的效果,但是我依旧掌握了许多AT89C51的知识。

在这三个想起多的时间里,我花了好长时间去尽自己的最大努力去完成,期间问了许多同学和学长,但我最后还是很遗憾,没有做出24秒计时器。

但是我确实花了很多时间去认真的设计学习,我已经尽了自己最大的努力了。

本次课设是本人到目前为止觉得最有意义也是收获最大的一次实习。

身为通信的学生,设计是我们将来必需的技能。

而这次课设恰恰给我们提供了一个应用自己所学知识的平台。

从通过理论设计,到仿真软件仿真,再到确定具体方案。

整个过程都需要我充分利用所学的知识进行思考、借鉴。

可以说,本次课设是针对前面所学的知识进行的一次比较综合的检验。

总的来说,这次课设虽然累,但非常充实。

在这次实习中,正确的思路是很重要的,只有你的设计思路是正确的,那你的设计才有可能成功。

因此我们在设计前必须做好充分的准备,认真查找详细的资料,为我们设计的成功打下坚实的基础。

前面电路的理论设计是一件多么令人头痛的事。

因为是在仿真软件上较理论上还是存在一定的差距,仿真能出来结果的在实际电路不一定就能出来,这就需要我们有耐心,寻找一个比较正确的调试方法。

虽然我没有按预想的做出24秒篮球计数器,但是我认真地付出了时间去设计,所以我有些遗憾和不甘心。

同时,在这期间我学到了许多知识,不管是单片机AT89C51还是计时器的程序,我多有了更深的理解和学习。

谢谢在这期间帮助过我的同学和老师们。

《单片机课程设计》

篮球24秒倒计时计时器

学院:

物电学院班级:

xxx班姓名:

xxx学号:

12013241958指导老师:

xxx完成时间:

2015.12.

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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