ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:258.81KB ,
资源ID:12390666      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12390666.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(篮球记分器的设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

篮球记分器的设计.docx

1、篮球记分器的设计 中北大学课程设计任务书 2014/2015 学年第 一 学期学 院: 信息商务学院 专 业: 电子信息工程 学 生 姓 名: 窦 杰 学 号: 11050643X26 课程设计题目: 篮球计分器设计 起 迄 日 期: 1 月 12 日 1 月 24 日 课程设计地点: 中北大学 指 导 教 师: 赵英亮 王伟 系 主 任: 王浩全 下达任务书日期: 2015 年 1月 12日课 程 设 计 任 务 书1设计目的:在学习专业基础课和专业课的基础上,主要在电子仪器、微机综合设计与实践、单片机与A/D和D/A和光、计、电综合应用等几个方面开展实践活动,巩固所学知识、培养动手能力。2

2、设计内容和要求(包括原始数据、技术参数、条件、设计要求等):1. 设计一款能够显示篮球比分的记分牌。2. 通过加分按钮可以给A队,或B队加分。3. 设计对调功能,更换场地后,AB队分数互换。4增加局数比分功能。5增加比赛时间倒计时功能。6其他功能。3设计工作任务及工作量的要求包括课程设计计算说明书(论文)、图纸、实物样品等:1) 设计说明书符合要求;2) 相应器件的工作原理及应用;3) 系统工作原理图;4) 参考文献原文不少于3篇。 课 程 设 计 任 务 书4主要参考文献:1 李群芳 张士军. 单片微型计算机与接口技术.电子工业出版社.2008,5 2 林仲茂.8051单片机彻底研究基础篇.

3、人民邮电出版社.2004,5 3 徐安.单片机原理与应用.北京希望电子出版社.2002,11 4 张毅刚.MSC-51单片机应用设计.哈尔滨工业大学出版社.1997,12 5 余修武.单片机原理及应用.电子科技大学出版社.2007.95设计成果形式及要求:设计说明书及相关电路图6工作计划及进度:1月 12日 1月 15日 了解设计题目及熟悉资料 1月 16日 1月 9 日 确定各题目要求计算相关参数,确定具体设计方案1月 10日 1月 16 日结合要求具体设计与仿真1月 17 日 1 月24日 整理课程设计说明书,答辩或成绩考核。系主任审查意见: 签字: 年 月 日一、设计任务 设计一款能够显

4、示篮球比分的记分牌; 通过加分按钮可以给A队,或B队加分; 设计对调功能,更换场地后,AB队分数互换; 增加局数比分功能 增加比赛时间倒计时功能; 其他功能(创新部分) 画出完整的电路原理图(包含电源部分)和PCB板图。图 1 效果图二、方案与论证(一)计时方案:方案一:采用芯片计时通过触发控制电路是计时器自动地计时,达到预定时间后芯片重新开始计时。计算机可以通过中断或查询的方式读取计时数据,实现计时的控制,并显示计时。计时功能的实现就无需占用CPU的时间,程序简单,控制精度高。但价格很高。方案二:软件计时利用MCS51内部的定时器/计数器进行中断定时,配合软件延时实现计时。该方案节省了硬件成

5、本,并且可以综合运用定时器/计数器、中断以及程序设计的知识。由于篮球计分器对于时间的控制和精度要求不是很高,所以从成本来考虑选择软件计时的方案。(二)单片机的选择:采用89C51芯片作为硬件核心,其内部采用FlashROM,具有4KB ROM存储空间,能与3V的超低压工作,但运用于电路设计中时由于不具备ISP在线编程技术,烧入程序时需要专门的C编程。三、系统硬件设计(一)系统总框图 图 2 系统总框图(二)原理图设计1、模块设计1.1 电源部分图 3 电源电路 如图3所示,从外部引入5.0V直流电,为单片机、复位电路提供电源。1.2 复位电路如图4所示,复位电路主要由一个,型号为10uF的电解

6、电容,型号为200和10K的电阻以及按键K0构成,K0接芯片的相应引脚为RST,当开关按下时引脚RST为高电平1,断开时引脚为低电平0。图 4 复位电路1.3 独立按键图 5 按键电路如图所示,该电路图,由2个按键S0、S1构成,键盘简洁,通过不同的按键次数来实现不同的功能。1.4位选部分图 6 位选电路上图为位选电路,三极管的集电极接数码管的公共端,当P0口对应的引脚输出高带你跑时三极管导通,对应的数码管显示数据。这样,再去在统一时刻,8位LED中只有选通的哪一位显示出字符,而其他7位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于处于选通状态,而其他几位的位选线处于关闭状态,在段码线上

7、输出将要显示字符的段码则同一时刻,只有选通位显示出相应的字符,而其他各位是熄灭的。如此循环下去,就可以是各位显示出将要显示的字符。虽然这些字符是在不同的时刻出现的饿,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED的余辉和人眼视觉的暂留作用,只要美味显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。1.5 LED显示电路图 7 LED显示电路如图为了LED显示电路,ledah分别接P1字形码,和X18分别接P0位选码。1.6 CPU控制部分图 8 CPU控制电路上图为AT89C51单片机控制部分和时钟电路。该电路P1口用来输出字型码,P0用来选通数码管;采用的是共阳极数码管

8、,由于单片机的带负载能力很弱,所以使用了八个NPN三极管用来做反相器。连接P0、P1口的电阻用来限流。由于发光数码管的额定电流为10mA级别的,故紧接P1口的电阻设置为200欧姆;二极管基极的电流约为集电极电流的0.01倍,为1mA级别的,所以紧接P0口的电阻设置为3.3千欧姆。四、系统软件设计 图 9 软件流程图该软件的设计的思想是扫描显示在死循环执行,而按键和计时使用中断实现,这样思路就比较清晰,不必为程序的执行顺序而烦恼。由于外部中断只有两个,如果只用中断的话,最多只能用两个按键,所以这里要达到在不同的按键组合下,按下相同的按键却实现不同的效果;因此,必需有一个变量来记录其中一个按键的次

9、数;我在程序中使用的是变量j。此变量很重要,不同的j导致不同的响应;相应的,程序是一种选择结构,有很多分支。而倒计时程序使用的是时间中断1,计时是否开始由标志位start控制;在相应的j下,start被触发后,开启倒计时程序。同时倒计时结束时,时间中断0开启,这样在P3.0口输出一个1KHZ的方波以产生响铃。五、调试说明以下是在proteus下的仿真结果,经过仿真,能很好的运行出令人满意的结果,经过实物上的测试,也能产生出跟仿真相同的结果。图 10 倒计时仿真图图 11 比分仿真图图 12 比分交换仿真图当按键s0没按下时,显示的是AB两队的比分;按下s0一次后,B队分数闪烁,提示已选中B队分

10、数,按下按键s1可对B队分数加一;按下s0两次后,A队分数闪烁,提示已选中A队分数,按下按键s1可对A队分数加一; 按下s0三次后,AB队分数闪烁,提示已选中AB队分数,按下按键s1可对AB队分数对调;按下s0四次后,显示1200,提示已选中倒计时功能,按下按键s1可对开启或暂停倒计时。六、总结与展望学习了一个学期的单片机,我花了九牛二虎之力才把系统完成,这充分说明仅仅学习一个学期就想要做出多么完美的系统是难以想象的,何况我们还是非电子专业的,要想真正地把单片机给学好、摸透,我想,必须得从电子电路基础开始学起,这也正是我下一步打算去实现的。我想,只要是我们认真地去学一样东西,那么什么东西都是有

11、趣的,看着一连串的指令能够实现某一实用的功能,我确实很高兴,这其中的乐趣也并不亚于画画,音乐等等。在这次实训中,我认为我学到了很多东西,比如,关于电子线路实现的几个软件,KEIL、Protel和Proteus仿真软件。以前我对它们很陌生,自从完成了这次课题设计之后,我基本能完整熟练的操作它。通过这么多次的锻炼,我觉得我对单片机的认识更深刻了,对它的掌控更好了,我想这将对我今后设计单片机控制系统有着深远的影响。总之,什么叫单片机我心中已有数了,以后一定会去钻研它的。七、参考文献1 李群芳 张士军. 单片微型计算机与接口技术.电子工业出版社.2008,5 。2 林仲茂.8051单片机彻底研究基础篇

12、.人民邮电出版社.2004,5 。3 徐安.单片机原理与应用.北京希望电子出版社.2002,11 。4 张毅刚.MSC-51单片机应用设计.哈尔滨工业大学出版社.1997,12 。5 余修武.单片机原理及应用.电子科技大学出版社.2007.9。附录一:系统总电路图 13 总电路图附录二:源代码#include #define uchar unsigned charuchar code tab=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF/*19、空格和的字型码*/ ,display8=1,2,4,8,16,32,64,1

13、28;/动态显示数码管uchar score2=0,0,time2=12,0,byte8=0,j=0,h=0;/score数组记录A、B两队份数time/数组记录倒计时分、秒时间,byte/数组记录八个数码管的显示字,j记/录按键s0按下的次数,h记录时间/中断1的次数;bit start=0; /start为12分倒计时是否开始时的标志位;sbit alrm=P30; /alrm为响铃脉冲输出端unsigned int t=0; /响铃脉冲个数void delay1(uchar t) /延时程序,最短5ms unsigned char m,n,k; for(m=t;m0;m-) for(n=

14、10;n0;n-) for(k=250;k0;k-); void jishi() /倒计时程序 if(start=1) /如果倒计时标志有效,则开始倒计时 if(time1=0) if(time0=0) /如果分秒位都为0时,开启时间中断0,输出响铃脉冲 start=0; ET0=1; TR0=1; else /如果秒位为0,分位不为0,则秒位跳为59,分位减1 time0-; time1=59; else time1-; /如果分秒位都不为0,则秒位减1 void TIMER0() interrupt 1 using 0 /时间中断0;用于产生响铃脉冲 TH0=0xfc; /1ms的计数初始

15、状态 TL0=0x18; t+; alrm=!alrm; if(t=5000) /如果输出5000个脉冲,则停止响铃 t=0; ET0=0; TR0=0; void TIMER1() interrupt 3 using 1 TH1=0x63; TL1=0xc0; /50ms初始值; if(h+)=20) / 一秒是否到,如果到,则进行倒计时程序 h=0; jishi(); void INT_0() interrupt 0 using 2 /外部中断0,记录按键按下次数 ET0=0; delay1(1); /延时消抖 j+; if(j=5) /如果按键s0按下五次,则归零 j=0; ET0=1;

16、void jiaohuan() /分数交换,AB两队换场程序 uchar temp; temp=score0; score0=score1; score1=temp;void INT_1() interrupt 2 using 3 /外部中断1 ET1=0; /延时消抖 delay1(1); if(j=1) /如果s0按下的次数为1次,则score1加1 score1+; if(score1=100) /分数到100后归零 score1=0; else if(j=2) score0+; /如果s0按下的次数为2次,则score0加1 if(score0=100) /分数到100后归零 scor

17、e0=0; else if(j=3) /如果s0按下的次数为3次,则两队分数交换 jiaohuan(); else if(j=4) /如果s0按下的次数为4次 ,则打开倒计时或关闭倒计时 start=!start; else; ET1=1; void by(void) byte5=11; /第五个数码管一直显示为“” if(j=4) /如果s0按下的次数为4,则显示倒计时 byte3=time0/10; byte4=time0%10; byte6=time1/10; byte7=time1%10; else /否则显示比分 byte3=score0/10; byte4=score0%10; b

18、yte6=score1/10; byte7=score1%10; void blank() if(j=1) /如果s0按下1次;第7、8个数码管闪烁跳动 byte7=10,byte6=10; else if(j=2) /如果s0按下2次;第4、5个数码管闪烁跳动 byte3=10,byte4=10; else if(j=3) /如果s0按下3次;第4、5、7、8个数码管闪烁跳动 byte7=10,byte6=10; byte4=10,byte3=10; else;void bitshow() if(h=10) /前半秒正常显示,后半秒根据s0按下的次数相应的数码管闪烁 by(); else blank();void dis() uchar i; while(1) / 死循环显示 bitshow(); /求每一位的显示 for(i=3;i=7;i+) P0=displayi; /P0口控制扫描显示的数码管 P1=tabbytei; /P1口输出字型码 delay1(1); /延时5ms,增加显示亮度 void main(void) TMOD=0x11; EA=1; EX0=1; EX1=1; ET1=1; IT1=1; IT0=1; TR1=1; /开启时间中断1,两个外部中断 IP=5; /中断优先级控制 dis(); /显示子程序.忽略此处.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1