单片机运用于限时投篮命中的统计(一)

时间:2024-08-21 15:04:33 电子信息工程毕业论文 我要投稿
  • 相关推荐

单片机运用于限时投篮命中的统计(一)

一、控制要求与运用
控制要求
1、当00~99计数时,设置按钮S1、S2、S3。当按下S1数值加1,当按下S2数值减1。其数值在00~99之间循环变化。S3为复位按钮,当按下S3系统计数值为00。
2、当00~99秒计时,数值从00~99循环变化,当按下S3时计时值为00。
3、当计数值小于60时,发光二极管以1HZ频率闪烁,但当计数值大于或等于60时,发光二极管以2HZ频率闪烁。
运用
1、00~99计时运用于投篮的时间
2、00~99计数运用于投篮命中的个数   
3、当投篮数大于等于60的时候,发光二极管以2HZ频率闪烁,则表示以过关

 

 二、硬件电路
(一)、单片机简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如左图所示       
(1)主要特性    
·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器· 5个中断源 ·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路

  图1  89C51芯片引脚排列图

 

(2)管脚说明:             
 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)复位电路
 89C51芯片上的RST引脚是复位信号的输入端,复位信号是高电平有效。

                              图3  复位方式
复位操作有上电自动复位(上图a)和按键手动复位两种方式按键手动复位又分为电平方式(上图b)和脉冲方式(上图c)。我在电路设计中采用按键电平复位方式,只要按下按钮电源通过电阻R2给RET一个高电平,使电路复位。

(2)按键电路
 单片机使用键盘分为独立式和矩阵式两种。
从按一个键到键的功能被执行主要应包括两个工作:一是键盘识别,另一个是键功能的实现。
键盘接口应完成以下操作功能:
键盘扫描,以判定是否有键被按下。
键识别,一确定闭合键的行列位置。
产生闭合键的键码
排除多键、串键及去抖动。
我们这里用的是独立式按键。
按键按下后,P口为低电平,断开键,为高电平。
SB1控制定时器定时时间修改。SB2启动/设定
 
    图4

(3)晶振电路
 AT89C51单片机的时钟信号通常由两种方式产生:一是内部振荡方式(下图a),二是外部时钟方式(下图b)。


 (a) 内部方式时钟电路        (b) 外部方式时钟电路
 
                    图 5
1、内部振荡方式
 在89C51单片机内部有一个高增益的反相放大器,用于构成振荡
 器,反相放大器的输入端为XTAL1,输出端为XTAL2。
 ⑴ 内部振荡方式是在XTAL1和XTAL2引脚两端跨接石英晶
体振荡器和两个电容构成稳定的自激振荡电路。
 ⑵ 电容C1和C2通常取30pF,对振荡频率有微调作用。晶振
频率范围是1.2MHz~12MHz。
2、 外部时钟方式
外部时钟方式是把外部已有的时钟信号引入到单片机内。
 ⑴AT89C51:外部时钟由XTAL2输入,直接送入内部时钟电路,XTAL1接地;
 ⑵AT89C51:外部时钟由XTAL1输入,XTAL2悬空。
 ⑶外部时钟信号为高电平持续时间要大于20ns,且频率低于
12MHz的方波。
(4)LED数码显示
1、数码管的分类
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极
接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

 

 

 

 


                         图6  四位共阳极数码管
本论文采用四位共阳极数码管 (如图6所示)                         

                    
                   
                  


                   2、数码管的驱动方式数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以
分为静态式和动态式两类。 ??(1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用得I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 ??(2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。


(三)、电路总原理图

 三、软件设计
(一)、程序设计
   程序设计主要运用了中断和定时器/计数器知识在编写程序之前先把这两个系统的基本情况介绍一下。
(1)中断系统
1、中断的概念
 (1)在单片机中,当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止⭣在执行的程序,而转向执行一处用于处理该随机事件的程序并处理完后又返回被停止的程序处继续执行,这一过程就称为中断。
(2)单片机处理中断的4个步骤:中断请求、中断响应、中断处理和中断返回。
(3)向CPU发出中断请求的来源,或引起中断错原因称中断源。中断源要求服务的请求称为中断请求。中断源可分为两大类:一类来自单片机内部,称之为内部中断源;另一类来自单片机外部,称之为外部中断源。


                     图  8
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。

 


(2)定时器/计数器
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:定时器T 1运行控制位。可由软件置1(或清零)来启动(或关闭)定时器T1,使定时器T1开始计数。用指令SETB TR1(或CLR TR1)使TR1置1(或清零)。
TF0:定时器T0溢出标志位。其功能与TF1相同。
TR0:定时器T0运行控制位。其功能与TR1相同。
IE1:外部中断1请求标志位。
IT1:外部中断1触发方式控制位。
IE0:外部中断0请求标志位。
IT0:外部中断0触发方式控制位。
IE1、IT1、IE0、IT0这4位将在第3节讲述。
控制寄存器TCON的位地址是88H,可以对它进行位寻址。
(二)、单片机控制的计时计数器设计
1、00~99计数,按钮S1、S2分别控制加1,减1计数在00~99之间循环变化,系统复位时计数值为00。
2、00~99秒计时,循环变化,复位时计时值为00。
3、但记数值小于60时,发光管以1HZ频率闪烁,但记数值大于等于60时,发光管以2HZ频率闪烁。


 ORG 0000H       ;设置初始地址
     AJMP MAIN     
     ORG 000BH       ;中断LT0地址
     AJMP LT0
     ORG 001BH       ;中断LT5地址
     AJMP LT5
MAIN:MOV TMOD,#11H;定时工作方式1
     MOV TH1,#0ECH  ;设置初始值
     MOV TL1,#78H
     SETB EA         ;开中断
     SETB ET1      ;定时器1允许中断
     SETB TR1        ;开定时1
     MOV P2,#0FEH   ;设置位控
     MOV 30H,#12H   ;显示初始值
     MOV 31H,#23H
     MOV TH0,#3CH   ;设置初始值
     MOV TL0,#0B0H
     SETB ET0      ;定时器0中断允许
     SETB TR0      ;开定时0
     MOV R0,#0AH  ;设置循环次数
     MOV R1,#14H
     MOV R2,#05H
     MOV DPTR,#TAB;定义字型码
MAIN1:JB P3.6,MAIN2 ;判加键是否按下
     ACALL LOOP   
     JB P3.6,MAIN2   ;判是否抖动
     ACALL LOOP   
     JB P3.6,MAIN2  ;再判加键是否按下
     ACALL LOOP  
  L1:JNB P3.6,L1     ;判键是否松开
   

 MOV A,30H    
     CLR C        
     INC A         ;显示数加1
     DA A         
     MOV 30H,A    ;显示数字
MAIN2:JB P3.7,MAIN1;判减键是否按下
     ACALL LOOP
     JB P3.7,MAIN1  ;判是否抖动
     ACALL LOOP
     JB P3.7,MAIN1
     ACALL LOOP
  L2:JNB P3.7,L2     ;判减键是否送开
     MOV A,30H
   
     ANL A,#0FH ;屏蔽十位
     JZ L3      
     MOV A,30H
     MOV 30H,A
     CLR C
     DEC A       ;显示数减1
     MOV 30H,A   ;送显示
     AJMP MAIN1
  L3:MOV A,30H  
     ANL A,#0F0H  ;屏蔽个位
     JZ L6
     MOV A,30H
     ORL A, #09H   ;个位送9
     SUBB A,#10H   ;十位减1
     MOV 30H,A
     AJMP MAIN1
 L6: MOV 30H,#99H  ;30H单元赋99
     AJMP MAIN1
LT5:MOV TH1,#0ECH  ;重新设置初值
     MOV TL1,#78H
     JB P2.0,LT1      ;判是否显示个位
     MOV A,30H
     ANL A,#0FH
     MOVC A,@A+DPTR
     MOV P0,A       ;段显
     AJMP LT6
 LT1:JB P2.1,LT2      ;判是否显示十位
     MOV A,30H
    SWAP A          ;高低字节转换
     ANL A,#0FH
     MOVC A,@A+DPTR
     MOV P0,A
     AJMP LT6
 LT2:JB P2.2,LT3       ;判是否显示个位
     MOV A,31H
     ANL A,#0FH
     MOVC A,@A+DPTR
     MOV P0,A
     AJMP LT6
 LT3:JB P2.3,LT6       ;判是否显示十位
     MOV A,31H
     SWAP A
     ANL A,#0FH
     MOVC A,@A+DPTR
     MOV P0,A
     MOV A,31H
     AJMP LT6
 LT6:MOV A,P2
    RL A           ;位左移
    MOV P2,A      ;位显示
    JB P2.4,L        
    MOV P2,#0FEH  ;位显值重赋
  L:RETI           ;LT0中断返回
LT0:MOV TH0,#3CH 
    MOV TL0,#0B0H
    MOV A,30H
    CJNE A,#60H,L8  ;数值比较转移
 L8:JC L9            ;判是否有溢出
    DJNZ R2,L9     ;判循环次数
    CPL P1.0       以2HZ点亮LED
    MOV R2,#05H
    AJMP L4
 L9:DJNZ R0,L7
    CPL P1.0
    MOV R0,#0AH  ;以1HZ点亮LED
L7: DJNZ R1,L4 ;判1秒到否
    CLR C
    INC 31H    ;显示数加1
    MOV A,31H
    DA A
    MOV 31H,A
    MOV R1,#14H
 L4:RETI
LOOP:MOV R5,#0AH  ;延时子程序
LOOP1:MOV R4,#7CH
LOOP2:NOP
      NOP
      DJNZ R4,LOOP2
      NOP
      DJNZ R5,LOOP1
      RET
 TAB:DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H
    DB 80H 90H 88H 83H
    DB 0C6H 0A1H 86H 8EH 0FFH
        END

 四  小结
 通过单片机控制的倒计时显示器学习,使我对单片机又有了更深刻的了解,提高了我对单片机学习的热情,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义.然在这次设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善,为今后的发展打下了良好的基础。
 

五   谢辞
 论文总于完成了,在写作过程中我遇到不少问题,但是在指导老师的悉心点拨和同学的帮助,我解决了一个又一个问题,在此我要向沈蓬和都晔凯两位指导老师和同学们表示衷心的感谢!
 
 
  六  参考文献
《单片机基础》,北京航空航天大学出版社;
《MCS-51系列单片微型计算机及其应用》,东南大学出版社

  七  元件清单

名称 个数 名称 个数 
40脚插座 1个 共阳数码管 4位 
24脚插座 1个 电阻330Ω 9个 
12MHZ晶振 1个 电阻10K 4个 
电容20pf 2个 电阻520Ω 4个 
电解电容47uf 1个 按钮 3个 
三极管 4个 发光二极管 1个 
AT89C51 1个 电子板 1块 

【单片机运用于限时投篮命中的统计(一)】相关文章:

会议发言限时器的设计方案(一)11-22

篮球投篮技术11-30

小学“限时作文”训练研究开题报告03-19

基于单片机技术的波形发生器采用单片机设计(一)03-07

英国大学限时论文的写作技巧11-17

有关多媒体CAI运用于乐器法教学的探讨03-20

一种简单串行鼠标控制的单片机实现03-18

熟悉PIC系列单片机的开发环境及简单编程(一)03-07

基于单片机的自动音乐播放器的设计(一)03-07