欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    基于单片机的篮球计分器.doc

    • 资源ID:9494246       资源大小:481KB        全文页数:28页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的篮球计分器.doc

    课程设计(论文)题 目 名 称 基于单片机的篮球计分器 课 程 名 称 单片机原理与应用 学 生 姓 名 彭金科 学 号 0941301388 系 、专 业 信息工程系 指 导 教 师 周晓燕 年 月 日26目录第一章 绪论.1 1.1系统功能.11.2课题运用的知识点1第二章 系统原理的设计.22.1课题的技术与量化要求2 2.2系统的组成框图2第三章 硬件部分的设计.33.1单片机接口电路33.2数码显示电路4第四章 软件部分的设计.7 4.1按键模块.74.1.1键盘处理的流程图.74.1.2源代码.8 4.2显示模块.9 4.2.1简介.94.2.2显示的流程图.9 4.2.3源代码.9 4.3成绩调整模块.10 4.3.1简介10 4.3.2成绩调整流程图11 4.3.3源代码12 4.4延时模块.13 4.4.1简介14 4.4.2延时的流程图14 4.4.3延时的源代码14附录一 原理图.15 附录二 仿真.16 附录三 源程序设计.17 参考文献.23总结.23第一章 绪论1.1系统功能随着科技的迅猛发展,单片机在计算机应用领域中起到了越来越重要的作用. 单片机体积小,功能强,集成了微型机的各部件,大大缩短了系统内信号传送的距离,从而提高了系统的可靠性及运行速度。该系统主要是线以下两种功能: 1 计分:能同时显示甲、乙两队比分,最大计分数为99。能分别对甲、乙两队比分进行加分。2 计时:从比赛开始时启动计时工作方式,初始时间为00,最大计时为99 分钟, 经过修改后应该还能实施计时暂停,还能设定为倒计时。3 交换比分:中场交换比赛场地时,能交换甲、乙两队比分的位置。4 哨音提示:设定的比赛时间到了,能自动哨音提示比赛结束.1.2 课题运用的知识点 本课题主要运用单片机设计知识设计篮球赛记时计分器,因此涉及到的知识点主要有以下几点:(1)AT89C51单片机的运用(2)LED数码管的运用(3)人机接口第二章 系统原理的设计2.1课题的技术和量化要求2. 能记录整个赛程的比赛时间,并能修改比赛时间、暂停比赛时间。3. 能随时刷新甲、乙两队在整个赛程中的比分。4. 中场交换比赛场地时,能交换甲、乙两队比分的位置。5. 比赛时间结束时,能发出报警指令;2.2 系统的组成框图 为了实现原理图的设计目标,同时结合自己获取的各种资料以及要达到的具体功能,所确定的组成框图见图3.1.1。 一、组成框图的组成说明 按钮单片机芯 片时间显示比分显示图2.1.1:系统原理框图 二、组成框图的组成及其功能说明1、 LED能够显示比赛成绩和比赛时间,并且能够显示调整后的比赛成绩和时间2、 控制按钮由两队的加分按钮组成、以中场中止按钮组成。3、 暂停比赛时间第三章 硬件部分的设计3.1 单片机接口电路 图3.1.1单片机接口电路见图3.1.1,其电路分析如下:1)复位电路 复位是指单片机的CPU或系统中其它的部件处于某一确定的初试状态,并从这一状态开始工作。除了进入系统的正常初始化之外,当由于程序运行出错或是操作错误使系统处于锁死状态,为摆脱困境,需要进行按键复位。 通常单片机的复位操作有上电复位、信号复位、运行监视复位,运行监视复位有程序运行监视和电源监视。 上电复位 上电复位是指单片机上电是的复位操作,保证单片机上电后立即进入规定的复位状态。 信号复位 信号复位是指单片机在正常供电的情况下,在复位引脚端加以复位信号。根据不同情况有按键操作复位、唤醒复位、控制复位等。 系统运行监视复位 系统运行监视复位是指系统出现非正常情况下时的复位操作,通常有电源监视复位和程序监视复位。电源监视复位是指在电源下降到一定电平状态或未达到额定电平要求时的系统复位;程序运行监视复位是指程序运行时常时的系统复位。在本设计中,则是采用上电复位,复位电路见图2,原理是当电源接通后,上电瞬间RESET引脚获取高电平,该高电平需要电容充电来维持,当高电平维持在两个机械周期以上则单片机能被复位。一般为了能够可靠复位,复位时间一般在10ms以上,对于振荡频率为12MHZ的复位电路,典型RC系数为:C3=10uF ,R29=8.2千欧。2)晶体振荡电路 晶体振荡电路用于产生单片机工作时所需的时钟信号,从而保证各部分工作的同步。单片机内部有一个高增益反相反大器,只要在输入端XTAL1与输出XTAL2之间挂一个晶体振荡器和微调电容就可以构成一个稳定的自激震荡器并在单片机内部产生的时钟脉冲信号。振荡电路见图3,电容器C1与C2用于稳定频率和快速起振,电容一般在5PF30PF,本设计电容为30PF。3)键盘接口电路 与通用单片机相比,单片机应用系统中的键盘种类很多,键盘中按键数量设置依系统操作要求而定。单片机应用系统中的键盘有独立式和行列式两种。(1)独立式键盘独立式键盘中,每个按键占用一个I/O口线,每个按键相对独立。I/O口通过按键与地相连,无按键按下时,引脚端为高电平,有按键按下时,引脚为低电平,I/O口内部有上拉电阻外部不可接上拉电阻。(2)行列式键盘用I/O口线组成行列结构,按键设置在交叉点上,在按键数目较多时运用这种连接方式,可节省I/O口连线。行列式键盘的标识最常用的两种方法:行扫描法和线反转法。本次设计中由于按键较少,采用三按键独立式键盘即可满足需要见图(3.1.2)。 图3.1.23.2 数码显示电路 LED显示器 通常所说的LED显示器由七个发光二极管组成,因此也称作七段LED显示器,通过七段发光二极管的不同组合,可以显示多种数字、字母或其它符号。图3.1.31)LED的接法 共阴极接法是指把发光二极管的阴极连接在一起构成公共阴极,使用时公共阴极接地,阳极输入高电平段的二极管则会导通发光,而输入低电平的则不会亮。2)显示方式 动态显示是指依次轮流点亮显示器的各个位,每隔一段时间则点亮一次,设置足够短的时间,利用人的视觉暂停效应和发光二极管的熄灭时的余辉,达到多个字符同时显示的效果。运行这种显示方式可以降低成本与功耗,但需要较大的驱动电流。 本设计中采用的共阴极连接方式,由于没有有足够的I/O口可以使用采用动态示方式,显示电路见图3.1.3。此外P0需外加上拉电阻(图3.1.4)。图3.1.4第四章 软件部分设计4.1按键模块4.1.1键盘处理的流程图N 有键按下吗?Y 延时N 真的有键按下吗?Y 按键处理 等待按键释放 图4.1.1 4.1.2 源代码void key_sc() /键盘扫描模块 uchar key_bt,i; while(1) P1=0xff;delay_t(80);key_bt=P1;switch(key_bt) case 0xfe: /初始化,显示0; for(i=0;i<9;i+) /display_bufi=0;display_rt(display_buf); break; case 0xfd: /A队 modify_sc(); break; case 0xfb: /B队 modify_sc(); break; case 0xf7: /时间 modify_st(); break; 4.2显示模块4.2. 1 简介 显示部分通过P0口外加上拉电阻进行显示,数码管采用7段共阴极数码管,通过查表指令进行显示,首先将要显示的缓存单元,送入累加器中,通过累加器进行查表,将要显示的数值存储起来,然后通过位选信号,将要显示的位的数码管打开,进行现实。并通过延时子程序进行延时,使其显示的数值稳定下来。然后再通过位选信号,将显示的数值关断,从而显示下一个数值。但当显示完一圈后程序跳出,等待数据的传输,再次进行显示。考虑到显示的数据比较多有10个数据,而且需要相当多的位选线。所以把整个显示缓看做一个整体。低6位传输的是比赛数据,高4位传输得是比赛时间。 4.2.2.显示的流程图延时 延时P2=bit_disp2P3=0xff P2 >>1 P3 >>1P3=bit_disp3p2=0xff显示显示 P2、P3初始化 P0=showdis_codei i<6 ?NY 4.2.3.源代码void display_rt(uchar dis_code) /显示任务 char bit_disp2,bit_disp3,i; bit_disp3=0x20; bit_disp2=0x08; for(i=0;i<=9;i+) P2=0xff; P3=0xff; P0=show_tdis_codei; if(i<6) bit_disp2=0x08; P3=bit_disp3; P2=0xff; bit_disp3=bit_disp3>>1; else bit_disp3=0x20; P2=bit_disp2; P3=0xff; bit_disp2=bit_disp2>>1; delay_t(1); 4.3成绩调整模块4.3.1 简介 成绩调整模块用用于记录两队比赛成绩,显示Led中前3位用于记录A队比赛成绩,后三位用于记录B队的比赛成绩。成绩的记录范围从000999其中。4.3.2成绩调整流程图获取键盘K2和K3信息 P1=0xfd ? P1=0xfb ?B队 P1=0xfbA队 P1=0xfd uS_b+uS_a+N N uS_b>9 uS_a >9 Y dS_a+us Y dS_b+ dS_b>9 dS_a>9 NN YhS_a+ Y hS_b+ hS_b>9 hS_a>9 NN uS_b=0 dS_b=0 hS_b=0 uS_a=0 dS_a=0 hS_a=0 显示 延时 等待再次获取P1的键盘信息 4.3.3源代码void modify_sc() /调整比赛结果 while(1) display_rt(display_buf); while(P1=0xfd) /A队 uS_a+; if(uS_a>9) dS_a+; uS_a=0; if(dS_a>9) dS_a=0; hS_a+; if(hS_a>9) uS_a=0; dS_a=0; hS_a=0; display_buf3=uS_a; display_buf4=dS_a; display_buf5=hS_a; display_rt(display_buf);delay_t(60); while(P1=0xfb) /B队 uS_b+; if(uS_b>9) uS_b=0; dS_b+; if(dS_b>9) dS_b=0; hS_b+; if(hS_b>9) uS_b=0; dS_b=0; hS_b=0; display_buf0=uS_b; display_buf1=dS_b; display_buf2=hS_b; display_rt(display_buf);delay_t(60); 4.4延时模块4.4.1简介 程序主要采用双循环结构。4.4.2延时的流程图 关于延时的流程图 t=? t- = 0 ? 退出N tt=300tt- Y tt =0 ? N4.4.3延时的源代码 void delay_t(int t) /延时 int tt; while(t-) tt=300; while(tt-); 附录一 原理图 附录二 仿真 附录三 源程序设计#include<reg51.h>#define uchar unsigned char#define uint8 unsigned intuchar code show_t10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /0 1 2 3 4 5 6 7 8 9static uchar display_buf10; /定义显示缓冲char xSc3,ySc3; /保存两队的比赛结果char tSc4; /保存比赛时间uchar uS_a=0,dS_a=0,hS_a=0,uS_b=0,dS_b,hS_b=0; /分别定义A和B队比赛成绩的个位、十位、百位uchar suT=0,sdT=0,muT=0,mdT=0; /分别定义比赛时间的秒、分个位及其十位sbit fm_bt = P27; /蜂鸣状态位void delay_t(int t) /延时 int tt; while(t-) tt=300; while(tt-); void display_rt(uchar dis_code) /显示任务 char bit_disp2,bit_disp3,i; bit_disp3=0x20; bit_disp2=0x08; for(i=0;i<=9;i+) P2=0xff; P3=0xff; P0=show_tdis_codei; if(i<6) bit_disp2=0x08; P3=bit_disp3; P2=0xff; bit_disp3=bit_disp3>>1; else bit_disp3=0x20; P2=bit_disp2; P3=0xff; bit_disp2=bit_disp2>>1; delay_t(1); void alarm_spk() /攻击时间倒计时,喇叭在最后5秒钟发出滴答滴答的警报声uint8 vTmp;for(vTmp=0;vTmp<5000;vTmp+)fm_bt = fm_bt;delay_t(150); void modify_sc() /调整比赛结果 while(1) display_rt(display_buf); while(P1=0xfd) /A队 uS_a+; if(uS_a>9) dS_a+; uS_a=0; if(dS_a>9) dS_a=0; hS_a+; if(hS_a>9) uS_a=0; dS_a=0; hS_a=0; display_buf3=uS_a; display_buf4=dS_a; display_buf5=hS_a; display_rt(display_buf);delay_t(60); while(P1=0xfb) /B队 uS_b+; if(uS_b>9) uS_b=0; dS_b+; if(dS_b>9) dS_b=0; hS_b+; if(hS_b>9) uS_b=0; dS_b=0; hS_b=0; display_buf0=uS_b; display_buf1=dS_b; display_buf2=hS_b; display_rt(display_buf);delay_t(60); void modify_st() /调整比赛时间 uchar i=0; while(i<3600) suT+; delay_t(1); if(suT>9) suT=0; sdT+; if(sdT>5) sdT=0; muT+; if(muT>9) muT=0; mdT+; if(mdT>9) suT=0; sdT=0; muT=0; mdT=0; display_buf6=suT; display_buf7=sdT; display_buf8=muT; display_buf9=mdT; display_rt(display_buf); i+; delay_t(5); void key_sc() /键盘扫描模块 uchar key_bt,i; while(1) P1=0xff;delay_t(80);key_bt=P1;switch(key_bt) case 0xfe: /初始化,显示0; for(i=0;i<9;i+) /display_bufi=0;display_rt(display_buf); break; case 0xfd: /A队 modify_sc(); break; case 0xfb: /B队 modify_sc(); break; /时间 case 0xf7: modify_st(); break; void main(void) key_sc(); /display_rt(d); /alarm_pk(); 参考文献1 汪德彪 主编 MCS-51单片机原理及接口技术 北京:电子工业出版社 2 张大明 主编 单片机控制实训指导及综合应用实例 北京:机械工业出版3 吴金戌,沈庆阳.8051单片机实践与应用M.北京:清华大学出版社,2003:35-52 4 李广弟.单片机基础M.北京:北京航空航天大学出版社,1994:20-28 5 孙涵芳,徐爱卿.MCS-51/96系列单片机原理及应用(修订版).北京:北京航空航天大学出版社,1996:76-83 6 李勋,林广艳.单片微型计算机大学读本M.北京:北京航空航天大学出版社,1998:86-90 7 陈建铎,宋彩利,康 磊, 冷冬梅 单片机原理与应用 科学出版社出版8 陈明计,周立功等编著 嵌入式实时操作系统Small RTOS51原理及其应用 北京:北京航空航天大学出版社,2004.1总结这是我第一次正式的设计单片机课程实验设计,虽然过程比较的辛苦,但终究完成了最后的设计,有很多的感触。实验做完了,这是汗水了智慧的结晶。同时也是老师细心教导与关怀的产物,是老师的教育才得以让我能顺利的完成此次的课程设计。通过这次的课题,让我能够更加深刻的理解本门课的知识,同时也让我对本门课程产生了更大的兴趣。我希望能够通过自己的努力能够将本课程更加牢固的掌握,最后再一次感谢帮助过自己的老师与同学,谢谢。

    注意事项

    本文(基于单片机的篮球计分器.doc)为本站会员(rrsccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开