久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2914|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于單片機(jī)的籃球計(jì)分器程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:355915 發(fā)表于 2018-6-21 12:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg51.h>
#define uchar unsigned char
uchar code tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF}/*1~9、空格和-的字型碼*/
                        ,display[8]={1,2,4,8,16,32,64,128};//動(dòng)態(tài)顯示數(shù)碼管
uchar score[2]={0,0},time[2]={12,0},byte[8]={0},j=0,h=0;//score數(shù)組記錄A、B兩隊(duì)份數(shù)time
//數(shù)組記錄倒計(jì)時(shí)分、秒時(shí)間,byte
//數(shù)組記錄八個(gè)數(shù)碼管的顯示字,j記
//錄按鍵s0按下的次數(shù),h記錄時(shí)間
//中斷1的次數(shù);
bit start=0;                                                                //start為12分倒計(jì)時(shí)是否開(kāi)始時(shí)的標(biāo)志位;
sbit alrm=P3^0;                                                        //alrm為響鈴脈沖輸出端
unsigned int t=0;                                                        //響鈴脈沖個(gè)數(shù)
void delay1(uchar t)                                                //延時(shí)程序,最短5ms
{
        unsigned char m,n,k;
        for(m=t;m>0;m--)
        for(n=10;n>0;n--)
        for(k=250;k>0;k--);
}

void jishi()                                        //倒計(jì)時(shí)程序
{
  if(start==1)                                                //如果倒計(jì)時(shí)標(biāo)志有效,則開(kāi)始倒計(jì)時(shí)
  {
  if(time[1]==0)                                       
  {
  if(time[0]==0)                        //如果分秒位都為0時(shí),開(kāi)啟時(shí)間中斷0,輸出響鈴脈沖
  {
  start=0;
  ET0=1;
  TR0=1;
  }
  else                                        //如果秒位為0,分位不為0,則秒位跳為59,分位減1
  {
  time[0]--;
  time[1]=59;
  }
  }
  else time[1]--;                        //如果分秒位都不為0,則秒位減1
  }
}
void TIMER0() interrupt 1 using 0                        //時(shí)間中斷0;用于產(chǎn)生響鈴脈沖
{         
        TH0=0xfc;                                                //1ms的計(jì)數(shù)初始狀態(tài)
        TL0=0x18;
        t++;
        alrm=!alrm;
        if(t==5000)                                                //如果輸出5000個(gè)脈沖,則停止響鈴
        {
        t=0;
        ET0=0;
        TR0=0;
        }
}
void TIMER1() interrupt 3 using 1
{
        TH1=0x63;
        TL1=0xc0;                        //50ms初始值;
        if((h++)==20)
        {                            // 一秒是否到,如果到,則進(jìn)行倒計(jì)時(shí)程序
        h=0;
        jishi();
        }
}
void INT_0() interrupt 0 using 2                //外部中斷0,記錄按鍵按下次數(shù)
{        
        ET0=0;
        delay1(1);                        //延時(shí)消抖
        j++;
        if(j==5)                                //如果按鍵s0按下五次,則歸零
        j=0;
        ET0=1;
}

void jiaohuan()                        //分?jǐn)?shù)交換,AB兩隊(duì)換場(chǎng)程序
{
        uchar temp;
        temp=score[0];
        score[0]=score[1];
        score[1]=temp;
}

void INT_1() interrupt 2 using 3                //外部中斷1
{        
        ET1=0;                                                //延時(shí)消抖
        delay1(1);
        if(j==1)                                                //如果s0按下的次數(shù)為1次,則score[1]加1
        {
                score[1]++;
                if(score[1]==100)                        //分?jǐn)?shù)到100后歸零
                score[1]=0;
        }
        else if(j==2)
                {
                score[0]++;                                //如果s0按下的次數(shù)為2次,則score[0]加1
                if(score[0]==100)                        //分?jǐn)?shù)到100后歸零
                score[0]=0;
                }
        else if(j==3)                                //如果s0按下的次數(shù)為3次,則兩隊(duì)分?jǐn)?shù)交換
                jiaohuan();
        else  if(j==4)                 //如果s0按下的次數(shù)為4次        ,則打開(kāi)倒計(jì)時(shí)或關(guān)閉倒計(jì)時(shí)        
start=!start;
        else;
        ET1=1;        

}
void by(void)
{        
                byte[5]=11;                        //第五個(gè)數(shù)碼管一直顯示為"-"
                if(j==4)                                //如果s0按下的次數(shù)為4,則顯示倒計(jì)時(shí)
                {
                         byte[3]=time[0]/10;
                        byte[4]=time[0]%10;
                        byte[6]=time[1]/10;
                        byte[7]=time[1]%10;

                }
                else                         //否則顯示比分
                {        
                        byte[3]=score[0]/10;
                        byte[4]=score[0]%10;
                        byte[6]=score[1]/10;
                        byte[7]=score[1]%10;        
                }

}
void blank()
{
        if(j==1)                //如果s0按下1次;第7、8個(gè)數(shù)碼管閃爍跳動(dòng)
        {
                byte[7]=10,byte[6]=10;
        }
        else if(j==2)        //如果s0按下2次;第4、5個(gè)數(shù)碼管閃爍跳動(dòng)
        {
                byte[3]=10,byte[4]=10;
        }
        else if(j==3)        //如果s0按下3次;第4、5、7、8個(gè)數(shù)碼管閃爍跳動(dòng)
        {
        byte[7]=10,byte[6]=10;
        byte[4]=10,byte[3]=10;
        }
        else;

}
void bitshow()
{        if(h<=10)                //前半秒正常顯示,后半秒根據(jù)s0按下的次數(shù)相應(yīng)的數(shù)碼管閃爍
                by();        
        else
                blank();
}
void dis()
{        uchar  i;
           while(1)                        //        死循環(huán)顯示
        {        
                bitshow();                        //求每一位的顯示
                for(i=3;i<=7;i++)
                {
                P0=~display[i];                //P0口控制掃描顯示的數(shù)碼管
                P1=tab[byte[i]];                //P1口輸出字型碼
                delay1(1);                        //延時(shí)5ms,增加顯示亮度
                }
        }

}        
void main(void)
{        
        TMOD=0x11;
        EA=1;
        EX0=1;
        EX1=1;
        ET1=1;
        IT1=1;
        IT0=1;
        TR1=1;                                        //開(kāi)啟時(shí)間中斷1,兩個(gè)外部中斷
        IP=5;                                        //中斷優(yōu)先級(jí)控制
        dis();                                        //顯示子程序

}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:334984 發(fā)表于 2018-6-24 17:48 | 只看該作者
有仿真圖嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一级h片| 亚洲精品久久久9婷婷中文字幕 | 中文字幕视频在线免费 | 国产一区二区三区色淫影院 | 亚洲免费一区二区 | 国产精品久久久久久久久久久久久 | 天天操天天干天天透 | 51ⅴ精品国产91久久久久久 | 麻豆精品国产91久久久久久 | 亚洲精品女优 | 国产亚洲网站 | 欧美一级黄色免费看 | 日韩中文字幕免费在线观看 | 神马久久久久久久久久 | 日日干日日操 | 久久久精品一区二区 | 久久精品久久久 | 国产亚洲精品美女久久久久久久久久 | 亚洲社区在线 | 岛国二区 | 午夜男人天堂 | 欧美精品久久久 | 色资源在线 | 粉嫩av久久一区二区三区 | 国产精品一区在线 | 青娱乐一区二区 | 久久精品国产a三级三级三级 | 天天干b| 美女黄视频网站 | 中文字幕日韩欧美一区二区三区 | 亚洲 欧美 日韩 在线 | 羞羞的视频在线 | 综合色站导航 | 亚洲不卡一 | 蜜月aⅴ免费一区二区三区 99re在线视频 | 精品成人在线视频 | 日韩三级电影一区二区 | 91性高湖久久久久久久久_久久99 | 在线观看你懂的网站 | 国产精品久久国产精品 | 日韩一区精品 |