本學期花了兩個星期完成的單片機籃球計分課程設計,
本課程設計內附源代碼和原理圖
1、設計數碼管、LCD顯示籃球比分牌,如兩個選定2個數碼管顯示A對的比分,2個數碼管顯示B隊的比分
2、通過兩個加分按鈕可以給A隊或B隊加分,K1,K2來加分。
3、設計對調功能,A隊和B隊分數互換,意味著中場交換場地。
4、每一節為10S,顯示比賽倒計時功能。
5、 在LCD上顯示是第幾節,當前比分是多少功能,同時把最終的結果發送到上位機的串口助手上。
6、上位機發送字符如多個或一個字符,單片機接受到表示比賽正式開始,此時按加分鍵才有效。籃球比賽一共四節,前2節時,互換場地鍵無效,第三節開始有效。
電路原理圖如下:
0.png (53.07 KB, 下載次數: 36)
下載附件
2018-6-29 01:06 上傳
單片機源程序如下:
- #include"main.h"
- #include"delay.h"
- #include"keypad.h"
- #include"display.h"
- void main()
- {
- INT0_Initial();
- Time0_Initial();
- delay_ms(10);
- LED=0;
- while(1)
- {
- switch(key_value)
- {
- case 12:
- {
- num1++;
- key_value=0;
- flag1=0;
- if(num1>255)
- {
- num1=0;
- }
- break;
- }
- case 13:
- {
- num1--;
- key_value=0;
- flag1=0;
- if(num1>255)
- {
- num1=255;
- }
- break;
- }
- case 14:
- {
- num2++;
- key_value=0;
- flag1=0;
- if(num2>255)
- {
- num2=0;
- }
- break;
- }
- case 15:
- {
- num2--;
- key_value=0;
- flag1=0;
- if(num2>255)
- {
- num2=255;
- }
- break;
- }
- case 1:
- {
- TR0=1;
- key_value=0;
- break;
- }
- case 2:
- {
- num1=0;
- num2=0;
- num=4;
- secs=0;
- minutes=12;
- m_secs=24;
- key_value=0;
- TR0=1;
- break;
- }
- case 3:
- {
- TR0=0;
- key_value=0;
- break;
- }
- case 4:
- {
- m_secs=24;
- key_value=0;
- TR0=1;
- break;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
2、籃球計時計分器.zip
(82.08 KB, 下載次數: 28)
2018-6-28 22:01 上傳
點擊文件名下載附件
1 下載積分: 黑幣 -5
|