AT89C52实现篮球计分计时器,并通过proteus仿真

一、设计环境与器材

Keil开发uVision4开发环境,window10系统。

二、设计内容

a.设计内容分析:

1.能够记录整个赛程的比赛时间并可同时用数码管显示。

2.可通过键盘修改当前的比赛成绩。

3.能够通过数码管显示篮球比赛成绩。(由于数码管数量的限制,比赛时间和分数轮流显示)

4.比赛中场和结束时,能发出报警。

b.设计方案:

硬件使用网络标号连接,用到的AT89C52单片机引脚口:P0口八个引脚接上拉电阻,用于驱动数码管显示,P2口中P2.3引脚接FM,控制蜂鸣器,P2.6控制段码锁存器锁存数据,P2.7控制位码锁存器锁存数据,P3口八个引脚接矩阵键盘的4个行和4个列。所有引脚均作为IO口使用。

LED采用6个八位共阴数码管,前三位数码管交替显示分(minute)和第一个队的比分(蓝队),后三位数码管显示时钟秒数(second)和第二个队的比分。用锁存器将数码管的位码先锁存,然后再锁存段码。LED和锁存器之间加入上拉电阻(为了高电平驱动数码管段码显示),数码管从1~6交替显示,利用视觉暂留,能同时显示,显示一段时间分钟和秒钟后转到显示分数,然后时间数和分数交替显示。

扫描二维码关注公众号,回复: 15321408 查看本文章

 锁存器:

键盘检测:矩阵键盘的列加上拉电阻便于检测(不需要程序内对列线置为高电平),矩阵键盘的行用来单片机置低电平,然后单片机进行列扫描。

蜂鸣器:三极管接蜂鸣器,高电平驱动蜂鸣器发声音。

三、设计电路图(仿真及实际电路图)

四、C程序

下面列出了部分函数mian()

/********************************************************************
* 名称 : main()
* 功能 : 初始化 调用数码管显示 开启中断和定时器 
* 输入 : 无
* 输出 : 无
***********************************************************************/
void main()
{
    //主函数
    uint8 i=0;
    uint8 number_key;
    P3=0xff;
    WELA = 0;
    DULA = 0;
    FM=0;
    //初始化数码管引脚
    SEG_PIN = 0x00;
    delay(1);
    DULA=1;
    delay(1);
    DULA=0;  ;
    //定时器0,方式1   tmod 00000001     0x01
    TMOD=0x01;
    TH0=(65536-50000)/256 ;//50ms
    TL0=(65536-50000)%256 ;
    while(key_scan()!=13)     //点击键盘上的开始比赛 才能进行记录分数,开始计数
    {
    
    };
    EA=1; //总中断
    ET0=1;        //定时器1中断
    TR0=1;
    
    while(1)
    {
        for(i=0;i<100;i++)
        {
        number_key=key_scan();
        display(now_second,SECOND,1);
        key_function(number_key);
        key_last=number_key;  //上一次的键值
        display(now_minute,MINUTE,0);
        number_key=key_scan();
        key_function(number_key);
        key_last=number_key;  //上一次的键值
        }
        for(i=0;i<100;i++)
        {
        number_key=key_scan();
        display(blue_score,BLUE,2) ;
        key_function(number_key);
        key_last=number_key;  //记录上一次的键值
        display(red_score,RED,2);
        number_key=key_scan();
        key_function(number_key);
        key_last=number_key;  //上一次的键值
        }
        

完整的程序和proteus工程图:

(55条消息) 单片机应用技术,AT89C51,篮球比赛计分、计时器-单片机文档类资源-CSDN文库https://download.csdn.net/download/weixin_52013159/85436389注意,积分下载的目的是为了让大家更好地借鉴其中的方法,同时防止滥用,请勿为了完成作业而照搬!

如有疑惑,评论区联系。

猜你喜欢

转载自blog.csdn.net/weixin_52013159/article/details/124908528