娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

基于51單片機的籃球計分器設計

發布者:哈哈哈33最新更新時間:2019-10-19 來源: 51hei關鍵字:51單片機  籃球計分器  proteus 手機看文章 掃描二維碼
隨時隨地手機看文章

這是我以前做的51單片機籃球計分器設計,
花了一個星期時間,
附件里面包括源代碼;PCB原理圖,
和proteus的仿真文件以及課程設計的相關文檔,
都是自己原創的,大家多多指教

制作出來的籃球計分器實物圖如下:
 

電路原理圖如下:
 

籃球計分器仿真原理圖如下
 

Altium Designer畫的籃球計分器原理圖和PCB圖如下:
 

單片機籃球計分器程序源碼:

#include//51單片機頭文件

typedef unsigned char uchar;

typedef unsigned int  uint;

sbit K1=P3^2;//比賽倒計時開始/暫停

sbit K2=P3^3;//24s倒計時重新開始

sbit P20=P2^0;//乙隊+1按鍵

sbit P21=P2^1;//乙隊+2按鍵

sbit P22=P2^2;//甲隊+1按鍵

sbit P23=P2^3;//甲隊+2按鍵

sbit P24=P2^4;//甲隊+3按鍵

sbit P25=P2^5;//乙隊+3按鍵

sbit P26=P2^6;//預留按鍵

sbit P27=P2^7;

sbit beep=P3^6;//蜂鳴器接口  

sbit RS=P1^0;

sbit RW=P1^1;

sbit E=P1^2;

char second,minute,num,time,aa;

uchar dd,bb,cc;

uchar code table1[]={"H.T 000:000 T.H "};

uchar code table2[]={"12:00  SEC-1  24"};


//延時子函數

void delay(uint z)  

{

        uint x;

        uchar y;

        for(x=z;x>0;x--)

                  for(y=110;y>0;y--);

}

//LCD1602液晶寫指令子函數

void write_com(uchar com)

{        

    RW=0;

    RS=0;

        P0=com;

        delay(5);

        E=1;

        delay(5);

        E=0;

}

//LCD1602液晶寫數據子函數

void write_date(uchar date)

{

        RW=0;

        RS=1;

        P0=date;

        delay(5);

        E=1;

        delay(5);

        E=0;

}

//LCD1602液晶初始化子函數

void LCD1602_init()

{

        uchar i;

        bb=0;         //H.T分數初始化

        cc=0;         //T.H分數初始化

        time=0;

        TMOD=0x10;    //定時器1初始化

        TL1=0x00;

        TH1=0x4c;

        EA=1;         //開總中斷

        ET1=1;        //開定時器1

        TR1=0;        //開中斷0

        EX1=1;        //開中斷1

        IT0=1;        //中斷0為邊沿觸發

        IT1=1;        //中斷1為邊沿觸發

        E=0; 

        beep=0;

        second=0;

        minute=12;

        num=1;

        aa=24;

        write_com(0x38);  //LCD設置初始化

        write_com(0x0c);

        write_com(0x06);

        write_com(0x01);

        write_com(0x80);  //LCD顯示初始化

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

        {

                  write_date(table1[i]);

        }

        write_com(0x80+0x40);

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

        {

                  write_date(table2[i]);

        }

}

//分數更新子函數

void point_lcd(uchar add,uchar dat)

{

        write_com(0x80+add);

        write_date(0x30+dat/100);

        write_date(0x30+(dat%100)/10);

        write_date(0x30+dat%10);

        write_com(0x80+add);

}

//按鍵掃描子函數

void keyscan()

{

        P2=0xf0;

        if((P2&0xf0)!=0xf0)

        {

                delay(20);

        }

        if((P2&0xf0)!=0xf0)

        {

                P2=0xf7;

                        if(P24==0)

                        {

                                while(P24==0);         //P24按下H.T分數加1

                        bb++;

                          point_lcd(0x04,bb);  

                          if(P24==0)        

                                {

                                   while(P24==0);

                                    delay(20);

                                }

                        }

                        else if(P25==0)           //P25按下H.T分數加2

                        {

                                while(P25==0);

                                bb=bb+2;

                          point_lcd(0x04,bb);

                          if(P25==0)

                                {

                                 while(P25==0);

                                 delay(20);

                                }

                        }

                        else if(P26==0)       //P26按下H.T分數加3

                        {

                          while(P26==0);

                        bb=bb+3;

                          point_lcd(0x04,bb);

                           if(P26==0)

                                {

                                   while(P26==0);

                                   delay(20);

                                }


                        else if(P27==0)         //P27按下T.H分數加一

                        {

                         while(P27==0);

                       cc++;

                         point_lcd(0x08,cc);

                         if(P27==0)

                                 while(P27==0);

                                 delay(20);

                           }

                        }

                P2=0xfb;

              if(P24==0)           //P24按下T.H分數加2

                          {

                         while(P24==0);

                   cc=cc+2;

                         point_lcd(0x08,cc);

                         if(P24==0)

                           {

                                while(P24==0);

                                delay(20); 

                           }

                         }

                          else if(P25==0)      //P25按下T.H分數加3

[1] [2]
關鍵字:51單片機  籃球計分器  proteus 引用地址:基于51單片機的籃球計分器設計

上一篇:基于51單片機的智能晾衣架設計
下一篇:單片機太陽能自動追光系統程序+電路+仿真

推薦閱讀最新更新時間:2025-04-23 21:07

Proteus學習51單片機之流水燈
其實學單片機實在是應該去買一塊學習板的,我原本是買了一塊的,結果學了段時間,又去弄別的東西了,這次來北京,想繼續學習,又忘記帶了……BS一下自己。 單片機不做實驗肯定是不行的,剛好近段時間,一直有在用Proteus來模擬電路,而Proteus最強大的地方,是模擬單片機,不想再買一塊學習板,所以,就用Proteus來暫時代替學習板吧。 我的學習環境: Keil 8.18 Proteus 7.6 Windows 7 原來看的書,忘記了大半,所以只好再從頭看起咯。 看的書是郭天詳寫的《51單片機C語言教程——入門、提高、開發、拓展全攻略》 第一個實驗是流水燈,原理圖如下: 為了簡單,沒有使用單個的LED燈,而是利用了10個
[單片機]
用<font color='red'>Proteus</font>學習<font color='red'>51單片機</font>之流水燈
PIC單片機在proteus+MPLAB組合下的LED單燈閃爍實驗
先放電路圖,注意晶振兩側電容的選擇,注意LED與電壓之間電阻阻值的大小。 程序為:注意一定要包含pic.h文件,一定要先確定_XTAL_FREQ的大小才能使用__delay_ms這個宏,注意LED=~LED的妙用。 /* 功能:令LED按一定時間間隔閃爍 */ #include pic.h #define _XTAL_FREQ 4000000UL //振蕩器頻率 #define LED RC5 //因為led燈連在了RC5引腳上 void main() { TRISC = 0x00;//設置所有的PORTC為輸出 PORTC = 0xff;//將PORTC的輸出都設置為1 while(1) {
[單片機]
PIC單片機在<font color='red'>proteus</font>+MPLAB組合下的LED單燈閃爍實驗
proteus與keil Cx51的單片機仿真(串行口單工通信)
單片機U1、U2串行口均工作于方式1,其中U1做接收機,U2為發送機,波特率9600,U1接收U2發送的數據后,依次送P1、P0、P2口進行流水燈顯示,試編寫程序,并通過Proteus仿真。 電路圖: U1程序: #include reg51.h //包含單片機寄存器的頭文件 unsigned char receive(void)//接收一個字節數據 { unsigned char dat; while(RI==0); RI=0;//只要接收中斷標志位RI沒有被置1,等待,直至接收完(RI1) dat=SBUF;//將接收緩沖器中的數據存于dat return dat; } void main(void) { unsign
[單片機]
Proteus軟件調試實現的數字式指針溫度計
  本文主要敘述利用Proteus軟件實現的數字式指針 溫度計 的一種調試方法,采用MCS51單片機作為指針溫度計的數字信號 處理器 ,其中, 溫度采集 傳感器 選用Dallas公司的Ds1820單總線式數字溫度 傳感器 ,該溫度計的溫度值通過四個數碼管顯示,同時還可以通過刻盤指針指示。   硬件設計   硬件設計包括溫度采集模塊、單片系統及溫度顯示模塊等模塊,其中,刻度盤上指針的控制是設計中的一個重點。在設計數字電路的角位移控制時,一般選用步進電機或伺服電機,選用步進電機時,其步進角固定,同時,對于角位移的控制,會產生控制角度的動作位置不夠精確的問題;選用伺服電機也就是舵機時,其控制原理是通過MCS51單片機產生脈寬調制
[測試測量]
基于GSM模塊Q2403A和8051單片機實現短消息收發系統的應用方案
基于GSM短消息的業務不需要建立撥號連接,只需把待發的消息加上目的地址發送至短消息中心,再由短消息中心轉發到最終目標。GSM 短消息業務以其連接簡單、費用低廉、覆蓋范圍廣、實現方便等優點得到了廣泛的應用。運用 GSM 短消息實現遠程測控的可靠性較高、信號傳播距離遠、覆蓋面積廣,并且可以節省建網初期的巨額投資。 本文對基于GSM短消息收發系統的設計與實現作了具體描述,給出了系統的軟硬件設計方案,對主要硬件,即GSM模塊Q2403A 和8051單片機作了重點介紹。給出了系統的軟件設計,包括PC與單片機通信部分和短消息收發部分。最后實現系統監控功能。 系統硬件實現 總體系統結構 該系統硬件主要由8051單片機擴展電路、Q2403
[單片機]
基于GSM模塊Q2403A和80<font color='red'>51單片機</font>實現短消息收發系統的應用方案
8051單片機的內部的結構及運行過程解析
1.ROM:只讀存儲器,單片機的只讀存儲區大多用于存儲程序固又稱程序存儲器。 51單片機是EPROM,所謂的EPROM是可擦除的只讀存儲器。可以把原來的程序擦除了,再寫一個新的進去。 斷電后是可以保存的,數據存儲器(RAM)是不能保存的。 RAM只能在程序執行的時候不斷地重新存儲定義的變量。如int x,int y 可以通過code這個指令來將定義的變量放在ROM,而不是RAM中,節省RAM資源 2.RAM:隨機存取存儲器,用于存儲定義的變量等,速度快 51單片機的RAM存儲容量遠小于ROM,但是速度非常之快 內部詳細圖示 內部的結構看似十分復雜,但是大致上可以分為兩個部分:運算器(紅色框)和控制器(藍色框)。 運算器
[單片機]
80<font color='red'>51單片機</font>的內部的結構及運行過程解析
單片機串行口介紹,8051單片機的通信方式
串行口是單片機與外界進行信息交換的工具,8051單片機的通信方式有兩種: 并行通信:數據的各位同時發送或接收。 串行通信:數據一位一位次序發送或接收。 串行通信的方式 異步通信 用一個起始位0表示字符的開始,用停止位1表示字符的結束,中間夾著8個數據位,字符能一個接一個傳送 CPU與外設之間必須有字符格式和波特率兩項規定 字符格式規定能使雙方把0和1串理解成同一種意義,原則上自由制定,通用角度使用標準如ASCII 波特率即數據傳輸速率,每秒傳送的二進制位數,如120字符/s,每個字符10數位,則傳送波特率為1200波特 同步通信 去掉了開始結束標志提高速度,但由于數據塊傳遞開始要用同步字符來指示,同時要求由時鐘來實現發送端
[單片機]
單片機串行口介紹,80<font color='red'>51單片機</font>的通信方式
如何用AT89C2051單片機自制一個倒計時器
倒計時器在生活非常有用,用單片機自制,不但電路簡單,而且功能可根據需要自行設計。由74系列、40系列小規模數字芯片設計的倒計時器非常多,但有顯示不直觀(無LED數碼管);調整參數不靈活;計時精度低(采用RC振蕩)等缺點。 一、功能介紹 1. 獨立的三路倒計時。均可獨立設置啟動、關閉。 2. 范圍:0~20小時,可任意設定。關機后數據不丟失。計時精度高:《0.1S 3.。獨立的三路輸出: a:第1路 蜂鳴器輸出: 15S b:第2路PNP晶體管輸出:5S c:第3路 PNP晶體管輸出:直致關機 二、工作原理 電路見上圖整機由89c2051、三位LED數碼管、K1-K4、R、T等元器件組成。89C2051內部T1定時器完成1
[單片機]
如何用AT89C20<font color='red'>51單片機</font>自制一個倒計時器
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京B2-20211791 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 东安县| 黄梅县| 四平市| 大同县| 萨迦县| 济阳县| 安图县| 建瓯市| 碌曲县| 石河子市| 井研县| 大兴区| 广河县| 商河县| 长顺县| 哈尔滨市| 宁阳县| 阜阳市| 台南县| 河池市| 磐安县| 宝兴县| 七台河市| 托克逊县| 绍兴县| 娄底市| 拉萨市| 黄冈市| 平南县| 九龙城区| 麻阳| 沧州市| 苍溪县| 清新县| 牟定县| 平谷区| 荆门市| 鸡泽县| 五河县| 屯门区| 盐亭县|