新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機課程設計(籃球記分器)

        單片機課程設計(籃球記分器)

        作者: 時間:2016-11-29 來源:網絡 收藏
        電路圖:


        本程序已經通過軟件仿真與硬件制作,
        首發于:www.51hei.com,代碼可任意修改,但不可用于商業目的.
        單片機型號是:stc89c52,晶振12兆赫.用了3個4為一體化的數碼管.
        完整代碼下載地址:http://www.51hei.com/f/lqwwe.rar
        #include
        #define uchar unsigned char
        #define uint unsigned int
        void delay(uchar x); //延時(時間較短)
        void delay1(uchar x); //延時(時間較長)
        void Js_Jf_Scan(void); //數碼管動態掃描顯示函數
        void Key_if(void); //A、B兩隊分值處理函數
        void Js_50ms(void); //定時50ms中斷函數
        void Key_Y(void); //預置時間函數
        void Ptime(uchar); //時間處理函數
        void sound(void); //鳴笛警示函數
        void jiaohuan(void); //場地交換
        sbit CL1=P2^0; //B隊4位計分數碼管位控線
        sbit CL2=P2^1;
        sbit CL3=P2^2;
        sbit CL4=P2^3;
        sbit KL1=P2^4; // A隊4位計分數碼管位控線
        sbit KL2=P2^5;
        sbit KL3=P2^6;
        sbit KL4=P2^7;
        sbit S1=P1^3; //驅動4位計時數碼管位控線
        sbit S2=P1^2;
        sbit S3=P1^1;
        sbit S4=P1^0;
        sbit YK1=P1^6; //預置分鐘的十位
        sbit YK2=P1^7; //預置分鐘的個位
        sbit music=P1^4; //P1.4接喇叭,發聲,鳴笛
        sbit Key1=P3^0; //B隊加分鍵
        sbit Key2=P3^1; //B隊減分鍵
        sbit Key3=P3^4; //A隊加分鍵
        sbit Key4=P3^5; //A隊減分鍵
        sbit JH=P1^5;
        sbit Int_Key=P3^2; //鳴笛鍵
        sbit Star=P3^6; //開始按鈕
        sbit Puse=P3^7; //停止按鈕
        int m=0,ms=0,mg=0; //秒鐘的十位、個位以及秒鐘的變量說明
        int fs=0,fg=0,f,fy,num=0; //分鐘的十位、個位以及分鐘的變量說明
        int g,s,b,q,sum=0; //B隊定義個十百位
        int g1,s1,b1,q1,sum1=0; // A隊定義個十百位
        int LED_Num[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x00,}; //段碼

        void main(void)
        {
        TMOD=0x01; //設置T0為工作方式1,作為16位計數器
        TH0=(65535-50000)/256; //設置T0的高8位,并且T0的計數值為50ms
        TL0=(65535-50000)%256; //設置T0的低8位
        music=0; //初值喇叭不響
        EA=1; //開放所有中斷
        ET0=1; //允許定時/計數器T0溢出中斷
        EX0=1; //允許外部中斷0
        IT0=1; //設置外部中斷0為邊沿觸發方式(下降沿)
        while(1) //無窮循環,程序一直運行
        {
        Key_Y(); //預置場次比賽時間
        if(Star==0&&f!=0&&Puse!=0) //按下“開始鍵”,設置好比賽時間,并且未按“停止”鍵時,比賽正式開始
        {
        TR0=1; //啟動定時器T0,開始計時
        Key_if(); //開始計分
        }
        else
        {
        TR0=0; //比賽還未開始或比賽結束時間到,停止計時
        }
        Js_Jf_Scan(); //將相應的分數、時間同步進行顯示
        }
        }


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 那曲县| 郸城县| 拉萨市| 射阳县| 富裕县| 安塞县| 苏尼特左旗| 隆子县| 白水县| 揭西县| 会理县| 拉孜县| 宽城| 苗栗市| 富蕴县| 塘沽区| 裕民县| 弥渡县| 巩留县| 新源县| 井研县| 荣成市| 永和县| 柞水县| 洪湖市| 房山区| 广州市| 海城市| 桐梓县| 金山区| 蒙自县| 蛟河市| 康定县| 乌审旗| 岳阳市| 南和县| 定兴县| 平顶山市| 中江县| 合水县| 花莲市|