本学期花了两个星期完成的单片机篮球计分课程设计,
本课程设计内附源代码和原理图
1、设计数码管、LCD显示篮球比分牌,如两个选定2个数码管显示A对的比分,2个数码管显示B队的比分
2、通过两个加分按钮可以给A队或B队加分,K1,K2来加分。
3、设计对调功能,A队和B队分数互换,意味着中场交换场地。
4、每一节为10S,显示比赛倒计时功能。
5、 在LCD上显示是第几节,当前比分是多少功能,同时把最终的结果发送到上位机的串口助手上。
6、上位机发送字符如多个或一个字符,单片机接受到表示比赛正式开始,此时按加分键才有效。篮球比赛一共四节,前2节时,互换场地键无效,第三节开始有效。
电路原理图如下:
单片机源程序如下:
- #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)
|