单片机课程设计24秒篮球计数器.docx

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

单片机课程设计24秒篮球计数器.docx

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

单片机课程设计24秒篮球计数器.docx

单片机课程设计24秒篮球计数器

1.引言

目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

数字钟是采用数字电路实现对时,分,秒。

数字显示的计时装置,广泛用于比赛,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

2设计要求

1、具有24s计时功能。

2、设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能。

3、计时器为24秒递减时,计时间隔为1秒。

4、计时器递减到零时,数码显示器不能灭灯,同时发出光电报警信号。

5、有直接清零然后恢复到24秒,准备重新开始计数。

学生在教师指导下,综合运用所学知识完成基于单片机的篮球比赛24秒计时器设计。

要求设计一个24秒计时电路,并具有时间显示的功能。

要求:

1、设置外部操作开关,控制计数器的直接清零、启动和暂停/连续计时。

2、要求计时电路递减计时,每隔1秒钟,计时器减1。

3、当计时器减到0时,显示器上显示00,同时发出光电报警信号。

3设计思路:

选用AT89C51作为主控芯片,晶振是6KHz,机械周期为1ms,所以循环10次为1s。

P0口作为段码输出,P2.0、P2.1作为位控,高电平有效。

数码管是液晶显示,采用动态显示,两个串行口作为中断入口,高电平有效,启动T0定时器/计数器进行计数,低电平有效。

图2.2.1是系统硬件设计电路图一。

时间设置完后,启动定时器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存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

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

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

管脚说明

  VCC:

供电电压。

AT89C51  GND:

接地。

  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只有在执行MOVX,MOVC指令是ALE才起作用。

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

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

  /PSEN:

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

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

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

  /EA/VPP:

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

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

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

  XTAL1:

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

  XTAL2:

来自反向振荡器的输出。

  振荡器特性:

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

该反向放大器可以配置为片内振荡器。

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

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

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

图2AT89S52单片机引脚图

6硬件电路图

6.1时钟电路模块

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

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

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

具体连接图如

图3所示:

 

图3晶振电路

6.2复位电路模块

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

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

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

复位电路在这里采用的是上电+按钮复位电路形式,具体连接电路如图4

图4复位电路

6.3报警模块

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

(图7)

图五报警电路

7源程序

#include

#include

#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>0;y--);

}

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

{

uchari;

while(x--)

{

for(i=0;i<13;i++){}

}

}

voidbeep(void)

{

uchari;

for(i=0;i<50;i++)

{

delay1(4);

BEEP=!

BEEP;

}

}

/*按键扫描函数*/

voidkeyscan()

{

if(key1==0)

{

delay(5);

if(key1==0)

{

while(!

key1);

TR0=1;

}

}

if(key2==0)

{

delay(5);

if(key2==0)

{

while(!

key2);

TR0=0;

while(!

key3);

num1=24;

TR0=1;

BEEP=1;

}

}

}

voidinit()

{

num1=24;

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

}

voiddisplay(ucharshi,ucharge)

{

P0=table[shi];

w1=1;w2=0;

delay

(2);

P0=table[ge];

w1=0;w2=1;

delay

(2);

if(num1==0)

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

当前位置:首页 > 人文社科 > 法律资料

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

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