篮球记分牌单片机设计 联系客服

发布时间 : 星期五 文章篮球记分牌单片机设计更新完毕开始阅读0635da2aaaea998fcc220ef4

简易时钟电路课程设计论文

1.根据原理和芯片引脚图,分功能设计原理图,并根据接线顺序分步骤验证。

2.容易出现故障为接触不良。

a) 集成块引脚方向预先弯好对准面板的金属孔,再小心插入。 b) 导线的剥线长度与面包板的厚度相适应(比板的厚度稍短)。 c) 导线的裸线部分不要露在板的上面,以防短路。 d) 导线要插入金属孔中央。 3.注意芯片的控制引脚必须正确接好

4.检查故障时除测试输入、输出信号外,要注意电源、接地和控制引脚。 5.要注意芯片引脚上的信号与面包板上插座上信号是否一致(集成块引脚与面包板常接触不良)。

6.2 体会

这次课程设计历时二个星期左右,通过这两个星期的学习,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对C语言程序设计掌握的不够……通过这次课程设计之后,一定把以前所学过的知识重新温故。

7.参考文献:

[1]余发山.单片机原理及应用技术.徐州:中国矿业大学出版社,2003.

8

简易时钟电路课程设计论文

[2]佟云峰,等.单片机原理及其应用.重庆:重庆大学出版社,2004,1. [3]吴金戌,等.8051单片机实践与应用.北京:清华大学出版社,2001,8. [4]刘瑞新.单片机原理及应用教程.北京:机械工业出版社,2005. [5]林立,等.单片机原理及应用.北京:电子工业出版社,2009.

[6]周航慈.单片机应用程序设计技术. 北京:北京航空航天大学出版社,2002. [7]刘卫国.C语言程序设计. 北京:中国铁道出版社,2008.

附1

/******************************************************************************* 程 序 名:篮球记分牌测试程序 编辑时间:2012-06-14 编 辑 者: 修改时间: 硬件平台:MCU:At89C51 晶振:12MHz 硬件连接: 功能说明:按下K1键,甲队加1分 按下K2键,乙队加1分 按下K5交换记分牌 按下K3键,开始/停止比赛 按下K4:调整比赛时间 第1~4位数码管为比赛时间的分和秒,第5~8位数码管分别为两队的分数 测试结果:OK 注 意:

*******************************************************************************/

//头文件

#include #include #include\#include\#include\

//变量定义

unsigned char disp_buff1[4]={1,2,0,0}; //比赛时间显示缓冲区 unsigned char disp_buff2[4]={0}; //两队得分显示缓冲区 unsigned char minute=12,second=0; //比赛时分秒

9

简易时钟电路课程设计论文

unsigned char score1=0,score2=0; //两队的比赛得分 bit volatile finish_flag=0; //比赛完成标志位 unsigned char num=0; //定时累加计数 unsigned char key=0; //保存键值

//定时器T0初始化函数 void initial() {

TMOD=0x80; TH0=(65536-10000)/256; TL0=(65536-10000)%6; EA=1; ET0=1; TR0=1; }

/********************************************************************************* 函 数 名:数码管显示缓冲区数组处理函数 入口参数:无 出口参数:无

*********************************************************************************/

void dispose(void) { disp_buff1[0]=minute/10; //分钟的十位 disp_buff1[1]=minute; //分钟的个位 disp_buff1[2]=second/10; //秒钟的十位 disp_buff1[3]=second; //秒钟的个位 disp_buff2[0]=score1/10; //甲队得分的十位 disp_buff2[1]=score1; //甲队得分的个位 disp_buff2[2]=score2/10; //乙队得分的十位 disp_buff2[3]=score2; //乙队得分的个位 }

//主函数

void main(void) {

unsigned char temp; initial(); //定时器T0初始化 while(1)

10

简易时钟电路课程设计论文

{ key=key_scan(); //按键扫描 switch(key) { case 1:score1++; //K1按下,甲队加1分 if(score1==100) score1=99; break; case 2:score2++; //K2按下,乙队加1分 if(score2==100) score2=99; break; case 5:temp=score1; //K5按下,交换记分牌 score1=score2; score2=temp; break; case 3:TR0=~TR0; //K3按下,停止或开始比赛 break; case 4:if(TR0==0) //停止比赛时,按下K4键可以调整比赛时间 { minute++; if(minute==60) minute=0; } break; default:break; } dispose(); diaplay(disp_buff1,disp_buff2); if(finish_flag) { P1^=0x08; minute=second=0; } } }

//定时器T0中断服务函数 void T0_time()interrupt 1 {

TH0=(65536-20000)/256; TL0=(65536-20000)%6; num++;

if(num==250) {

11