基于51单片机的篮球比赛电子记分牌_仿真图+完整程序.doc

上传人:精*** 文档编号:840143 上传时间:2023-09-08 格式:DOC 页数:21 大小:503.08KB
下载 相关 举报
基于51单片机的篮球比赛电子记分牌_仿真图+完整程序.doc_第1页
第1页 / 共21页
基于51单片机的篮球比赛电子记分牌_仿真图+完整程序.doc_第2页
第2页 / 共21页
基于51单片机的篮球比赛电子记分牌_仿真图+完整程序.doc_第3页
第3页 / 共21页
基于51单片机的篮球比赛电子记分牌_仿真图+完整程序.doc_第4页
第4页 / 共21页
基于51单片机的篮球比赛电子记分牌_仿真图+完整程序.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、课程 单片机课程设计 题目 基于单片机的篮球比赛电子记分牌 专业 测控技术与仪器 姓名 * 学号 * 一、任务以AT89C51单片机为控制核心,遵循篮球比赛规则,设计一款具有记录比赛分数,比赛剩余时间等基本功能的电子记分牌。二、设计要求1 要求能实时记录比赛的分数、剩余时间。2 通过对AT89C51单片机的编程,实现比分和剩余时间的显示。3 设计篮球24秒定时器、剩余5秒时发出提示音。4 提交设计报告、电路图及程序源码。三、参考资料1 张毅刚.单片机原理及应用M.北京:高等教育出版社,2004.2 刘润华,刘立山.模拟电子技术J.山东:石油大学出版社,2003.3 周润景,张丽娜等.PROTE

2、US入门教程M.北京:机械工业出版社,2007.4 尹仕.电工电子制作基础M.武汉:华中科技大学出版社,2008.5 彭介华.电子技术课程设计指导J.北京:高等教育出版社,1997.完成期限 指导教师 专业负责人 * 201*年 *月 * 日 基于单片机的篮球比赛电子记分牌目 录第1章 绪论11.1 单片机在体育赛事计分的应用11.2 本设计任务1第2 章 总体方案论证与设计22.1 显示模块22.2 按键控制模块22.3 报警模块22.4 总体硬件组成框图3第3章 系统硬件设计43.1 LCD1602显示模块的硬件设计43.2按键控制模块的硬件设计43.3 蜂鸣器报警模块的硬件设计53.4

3、单片机最小系统的硬件设计6第4章 系统的软件设计74.1 主程序设计74.2 按键控制程序设计84.3 蜂鸣器报警程序设计8第5章 系统调试与测试结果分析105.1 系统调试105.2 测试结果10结 论11参考文献12附录1 程序13附录2 仿真效果图19第1章 绪论体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类得分类等多种类型。篮球比赛是根据参赛队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统是

4、一个负责篮球比赛的数据采集和分配的专用系统,它负责对比赛结果、成绩信息的采集处理、传输分配。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,由于比赛的不可重复性,决定了篮球计时计分系统是一个实时性很强、可靠性要求极高的电子服务系统,所以计时计分设备是篮球比赛中不可缺少的电子设备,计时计分系统设计是否合理,关系到比赛系统运行的稳定和可靠,并直接影响到比赛的顺利进行。同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。随着比赛规则的进一步完善,相应的计时计分系统也必须随之

5、改进。1.1 单片机在体育赛事计分的应用传统的篮球比赛计分是由工作人员人工翻动记分牌实现的,而比赛的时间则由工作人员计表控制。由于人为因素,人工操作的比赛计分板难免会出现误差。而作为微型控制系统的单片机具有集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。因此单片机在体育比赛记分牌的应用也成为了一种不可避免的趋势。1.2 本设计任务本次设计以AT89C51单片机为核心组成单片机最小系统,构建得分和时间的显示模块、进行控制的按键模块以及

6、能够在规定的时间报警的提示模块,通过在按键控制模块的操作实现对比分和时间的设计,最终在显示模块上显示。第2 章 总体方案论证与设计本系统采用单片机AT89C51为控制核心,系统主要包括显示模块、按键控制模块、蜂鸣器报警模块等。下面对各模块的设计进行论证比较。2.1 显示模块方案一:采用七段码数码管显示。数码管是指将所有发光二极管的一极接到一起形成公共极,因此数码管有共阴共阳之分。以共阳数码管为例,共阳数码管在应用时应将公共极接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。因此每个数码管有9个接口。数码管的驱动方式有静态扫描和动态扫描

7、两种形式。静态扫描编程简单,但电路复杂;动态扫描变成复杂,而且还需要使用其他芯片。方案二:采用1602液晶显示。液晶的物理特性是:当通电时导通,排列变得有秩序,是光线容易通过,不通电时排列混乱,阻止光线通过。相比于数码管,LCD1602不仅可以显示的图形符号更丰富,而且具有轻薄、无辐射等优点。比较以上两种方案,系统设计中采用方案二。2.2 按键控制模块方案一:采用矩阵键盘。矩阵键盘的长各分接口分别于单片机的I/O口连接,可以通过连接数量较少的I/O口,扩展出多个按键。但其缺点是电路更复杂,编程更麻烦。方案二:采用独立按键。每个独立按键与单片机I/O连接,虽然不能节省I/O口,但电路简单、编程容

8、易比较以上两种方案,由于本系统只需要4个按键,因此选者方案二。2.3 报警模块报警模块中,信号由单片机输出经PNP型三极管放大后进入蜂鸣器发出声响进行比赛时间的提示功能。2.4 总体硬件组成框图蜂鸣器报警模块液晶显示模块晶振电路按键控制模块复位电路AT89C51图2-1 总体硬件组成框图 系统框图如图2-1所示,系统主要由四大模块组成即单片机最小系统模块、液晶显示模块、蜂鸣器报警模块、按键控制模块。单片机最小系统作为整个系统的控制核心,按键模块的4个按键对分数和时间进行控制然后显示在LCD1602上,蜂鸣器报警模块则根据程序设定的时间进行报警。 第3章 系统硬件设计为使该电子记分牌更加方便和灵

9、活,本设计将其划分为四个模块,下面将对各个模块逐一介绍。3.1 LCD1602显示模块的硬件设计1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块。图3-1 液晶显示模块电路3.2按键控制模块的硬件设计按键控制模块采用4个独立按键,Key1、Key2、Key3、Key4分别于单片机的P10、P11、P12、P13连接,每个按键的另一端直接与地相连接,因此是低电平有效。按键控制模块的电路如图3-2所示。

10、这四个独立按键分别实现了比赛的暂停、时间的刷新以及比赛两只队伍的得分值的改变。具体标号和功能如表3-1所示。表3-1 按键功能描述序号接口功能Key1 P10比赛开始/暂停 Key2 P11刷新进攻球队24秒时间 Key3P12 A队得分值加一 Key4 P13 B队得分值加一图3-2 按键控制模块电路图3.3 蜂鸣器报警模块的硬件设计图3-3 蜂鸣器报警模块电路图蜂鸣器报警模块由一个蜂鸣器和一个PNP型的三极管组成,接单片机的P27口,蜂鸣器为5V驱动,低电平有效。蜂鸣器模块如图3-3所示。3.4 单片机最小系统的硬件设计图3-4 最小系统模块电路图AT89C51是一种带4K字节FLASH存

11、储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。最小系统模块的晶振电路由12MHz晶振和30pF的电容构成,复位电路由10uF的电解电容和104瓷片电容构成。电路如

12、图3-4所示。第4章 系统的软件设计在本设计中,系统的软件设计也采用了模块化的设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。4.1 主程序设计本系统中单片机的主要功能就是利用内部的定时器计时,并随时接受控制模块的信息,将比赛的得分和剩余时间显示在1602液晶上。其主程序流程如图4-1所示图4-1 主程序流程图NYNY显示是否按键执行控制程序是否到时蜂鸣器响倒计时初始化开始4.2 按键控制程序设计Key1键配合程序所设定的标志位flag控制比赛的暂停,当Key1按下,flag加一,两种不同的flag值分别带关闭定时器和打开定时器。按下Key2键后给24秒进攻时

13、间的变量miao重新赋值为24,代表上一次进攻结束,另一只球队开始进攻。每按下Key3和Key4键,A、B两队的得分加一。程序流程如图4-2所示。NNNNYYYY图4-2 按键控制流程图A队分加一Key2按下B队分加一刷新24秒暂停/开始Key1按下延时是否按下Key4按下Key3按下4.3 蜂鸣器报警程序设计在程序里设定一个变量,用if语句判断,当该变量等于设定的时间段的时候,蜂鸣器响。在24秒进攻时间只剩5秒时,蜂鸣器响一秒;当24秒进攻时间结束时,蜂鸣器响4秒;单节比赛结束蜂鸣器响4秒。流程图如图4-3所示。图4-3 报警程序流程图NNYYNYY蜂鸣器响4秒蜂鸣器响1秒蜂鸣器响5秒单节赛

14、结束到5秒?到24秒?是否到时第5章 系统调试与测试结果分析5.1 系统调试为预先排除软件和硬件的错误,本设计需经过软件调试、硬件调试和软硬兼联合调试。5.1.1硬件调试本阶段采用实验板ST-3A对各个模块的功能进行调试,主要检查硬件间连线是否正确并调试各模块能否实现指定的功能。5.1.2软件调试软件调试采用Keil软件完成。在写好源程序之后,建新工程,选择AT89C51处理器;接着新建文档编辑程序,编辑完存为.C,把保存的.C文件加入到工程里。检查无语法错误后生成.HEX文件。5.1.3硬件软件联调软硬件联合调试主要是运用Proteus完成。将系统原理图在Proteus环境下画好之后,将软件

15、调试阶段Keil生成的.HEX文件下载到单片机里,在电脑上进行软件仿真。5.2 测试结果本次系统设计结构较好,单片机最小系统能正常工作,按键模块能实现控制功能,液晶显示模块能根据按键模块输入的控制信息进行显示,蜂鸣器报警模块能按程序设定的要求报警。仿真结果图如附录2所示。结 论本次基于单片机的篮球比赛电子记分牌是针对传统篮球比赛人工翻动比分牌的改进,解决篮球比赛时计分与计时准确方便和灵活适用的问题。系统总体电路由单片机最小系统、1602液晶显示模块、5个独立按键控制模块以及蜂鸣器报警模块构成。四个模块分别完成信息的处理、显示、控制等篮球比赛记分牌的基本功能。通过软硬件的仿真调试,实现了本次设计

16、的基本功能:在1602液晶左边部分分别显示比赛队伍的得分,右边部分显示比赛剩余时间,四个按键能完成程序的要求对比分和时间的调整进行控制,蜂鸣器能在规定的时间段鸣叫,给予球员和观众提示。参考文献1 李川,汪秋蒙.ISP技术的原理及实现方法J.科技资讯.2007,35期:93-94.2 万光毅.单片机实验与实践教程M. 北京:北京航空航天大学出版社.2005.1.3 张毅刚.单片机原理及应用M. 北京:高等教育出版社.2003:160-190.4 胡烨,姚鹏翼,陈明.Protel 99SE原理图与PCB设计教程M.机械工业出社.2005:23-99.5 马忠梅.单片机的C 语言应用程序设计M.北京

17、:北京航空航天大学出版社.20066 周润景.基于Proteus的电路与单片机仿真系统设计与仿真M. 北京:北京航空航天大学出版社. 2005.7 金炯泰,金奎焕. 如何使用KEIL8051C编译器M . 北京:北京航空航天大学出版社.2002.8 尹仕.电工电子制作基础M.武汉:华中科技大学出版社,2008.9 彭介华.电子技术课程设计指导J.北京:高等教育出版社,1997.附录1 程序#include#define uchar unsigned char#define uint unsigned intuchar code tab1=A : ;uchar code tab2=B ;ucha

18、r code tab3= GAME OVER ; /比赛结束时显示uchar code tab4= A B ; /比赛结束时显示sbit lcden=P22;sbit lcdrw=P21; /1602液晶的3个端口sbit lcdrs=P20;sbit key1=P10; sbit key2=P11; /四个按键sbit key3=P12;sbit key4=P13;sbit Bell=P27; /蜂鸣器uint keyflag,flag; /标志位uchar i,num,count;uchar sec,min,miao;uchar Ascore,Bscore; /两队得分/*液晶函数*/vo

19、id delay(uint z) /液晶延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_com(uchar com) /命令子函数command lcdrs=0; /接受指令P0=com; /给P0口送指令码delay(5);lcden=1; /E变为高电平delay(5); /在此延迟期间,将指令送入lcden=0; /E变为低电平,高脉冲结束void write_dat(uchar date) /数据子函数datalcdrs=1; /接受数据P0=date; /给P0口送数据delay(5);lcden=1; /E变为高电平de

20、lay(5); /在此延迟期间,将数据送入lcden=0; /E变为低电平,高脉冲结束void write_time(uchar add,uchar date) /写入时间函数uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_dat(0x30+shi);write_dat(0x30+ge);void write_miao(uchar add,uchar date) /写入24秒函数uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_dat(

21、0x30+shi);write_dat(0x30+ge);void write_Ascore(uchar add,uchar date) /写入A队得分函数uchar bai,shi,ge;bai=date/100;shi=date/10%10;ge=date%10;write_com(0x80+add);write_dat(0x30+bai);write_dat(0x30+shi);write_dat(0x30+ge);void write_Bscore(uchar add,uchar date) /写入B队得分函数uchar bai,shi,ge;bai=date/100;shi=date

22、/10%10;ge=date%10;write_com(0x80+0x40+add);write_dat(0x30+bai);write_dat(0x30+shi);write_dat(0x30+ge);void write_score(uchar add,uchar date) /比赛结束写入得分函数uchar bai,shi,ge;bai=date/100;shi=date/10%10;ge=date%10;write_com(0x80+0x40+add);write_dat(0x30+bai);write_dat(0x30+shi);write_dat(0x30+ge);void del

23、ay_Bell(uint z) /蜂鸣器延时函数uint x,y;for(x=z;x0;x-)for(y=255;y0;y-);void init() /初始化函数Bell=1;keyflag=0; flag=0;min=12; sec=0; miao=25;Ascore=0; Bscore=0;lcdrw=0;lcden=0; /E的初始值为低电平,后面的程序给高电平从而满足E为高脉冲write_com(0x38); /写入显示模式指令write_com(0x0e); /显示是否打开以及光标的设置write_com(0x06); /地址指针的加减和整屏是否移动write_com(0x01);

24、 /清屏指令write_com(0x80+0x00); /显示字符的初始位置for(num=0;num16;num+)write_dat(tab1num);write_com(0x80+0x40); /起始地址为53,将字符调到了第二行for(num=0;num2;num+)write_dat(tab2num);write_Ascore(2,Ascore);write_Bscore(2,Bscore);TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1; TR0=1; /开定时器void keyscan() /按键函

25、数if(key1=0)delay(10);if(key1=0)keyflag+; /键一按下,标志位加一while(!key1);if(keyflag=1) TR0=0; /关中断 if(keyflag=2)TR0=1; keyflag=0;if(key2=0) /刷新24秒delay(5);if(key2=0)while(!key2);miao=25;if(key3=0)delay(5);if(key3=0)while(!key3);Ascore+; write_Ascore(2,Ascore);/写入A队得分if(key4=0)delay(5);if(key4=0)while(!key4)

26、;Bscore+; write_Bscore(2,Bscore);/写入B队得分void main()init();while(1)keyscan();if(flag=0)write_com(0x80+0x40+7); /写入第一节 FIRwrite_dat(F);write_dat(I);write_dat(R);if(flag=1)write_com(0x80+0x40+7); /写入第二节 SECwrite_dat(S); write_dat(E);write_dat(C);if(flag=2)write_com(0x80+0x40+7); /写入第三节 THRwrite_dat(T);

27、write_dat(H);write_dat(R); if(flag=3)write_com(0x80+0x40+7); /写入第四节 FOUwrite_dat(F);write_dat(O);write_dat(U);if(flag=4)/比赛结束显示”GAME OVER“和两队比分TR0=0;write_com(0x80);for(i=0;i16;i+)write_dat(tab3i); /GAME OVER字符串数组write_com(0x80+0x40); /起始地址为53,将字符调到了第二行for(i=0;i=4&miao=5) /若只剩5秒,蜂鸣器响1秒 Bell=0; delay

28、_Bell(510); Bell=1; delay_Bell(510); void timer0() interrupt 1 /定时器TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=18)count=0;sec-;miao-;if(miao=(-1) /若24秒到,蜂鸣器响4秒 Bell=0; delay_Bell(510); delay_Bell(510); delay_Bell(510); delay_Bell(510);Bell=1;if(miao=(-1) miao=24; if(sec=(-1)sec=59;min-;if(min=(-1) /若比赛(单节)结束,蜂鸣器响4秒Bell=0;delay_Bell(510);delay_Bell(510);delay_Bell(510);delay_Bell(510);Bell=1;min=11; flag+;write_time(11,min);write_time(14,sec);write_miao(14,miao); /显示比赛时间附录2 仿真效果图19

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922