篮球记分牌mine

上传人:无*** 文档编号:61848813 上传时间:2022-03-12 格式:DOC 页数:17 大小:627.50KB
返回 下载 相关 举报
篮球记分牌mine_第1页
第1页 / 共17页
篮球记分牌mine_第2页
第2页 / 共17页
篮球记分牌mine_第3页
第3页 / 共17页
点击查看更多>>
资源描述
目录一、方案设计1. 篮球记分牌的功能要求 22. 篮球记分牌的性能扩展 23.实际操作说明 2二、硬件装配1.硬件清单及简要说明 32.电路原理图与注解 3三、软件仿真1.软件设计前瞻 52.流程图 53.程序设计 74.系统仿图 12四、制作与调试1.焊接实物图 122.调试过程 13五、心得体会17、方案设计1、篮球记分牌的功能要求比赛开始,比分能够全部清零,数码管前2位、末2位实现099 加减记分,中间2位做24秒倒计时用。24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时,蜂鸣器停止鸣叫、指示灯灭。比分增加后,倒计时从24秒重新开始倒计时。任意时刻24秒 可以重新开始倒计时。并且必要时候能够关闭倒计时。2、篮球记分牌的性能要求利用AT24C02或者单片机内部资源保存比分,支持复位保存,掉电保存功能。暂停计时按钮(Stop):按钮按下则停止当前计时,并显示当前 计时值。重新计时按钮(ReTimer):不管什么条件下,此按钮按下则倒计 时重新从24秒开始倒计时;若先按Stop按钮,再按此键则在原来暂停计时的基础上继续计时分数交换按钮(Cha ng :按钮按下则两队的分数交换位置,即 记分牌上左右调换。甲队/ 乙队的加 /减分按钮:此按钮按下则位于记分牌左侧 /右侧 的分数相应的加 /减 1分,且此时 24秒倒计时关闭,蜂鸣器关闭, 指示灯灭(左边代表甲队,右边代表乙队) 。、硬件装配1、硬件清单及简要说明主要元件:AT89C51单片机芯片、74LS245上拉电阻、ULN2003APG 反相器、 6 位并排显示数码管、蜂鸣器、LED 灯、若干三极管、按钮、电阻及电容等。AT89C51芯片设置:4个I/O 口,PO, P1,P2 口做输出动作,P3口设置按钮做输入控制。定时器TO作为24秒倒计时设置。P1负 责控制LED灯和蜂鸣器,P2负责数码管的位选,P0负责数码管 的段选,晶振设置成 12MHZ 。硬件电路设计: 本设计硬件电路主要包括三部分,分别是: 89c51 单片机最小系统板, 凌阳大学计划 led-key demo 板和 24 秒倒计时 结束时的蜂鸣器和指示灯提示电路。2、电路原理图:单片机最小系统原理图:65SsT阳22232125-莢2728阳30V-J313233弹S5冬37益斗|VCCP2 0GMDP2 1XTAL1P2.3JCTAL2P2 3P2 4P3P2 5F3 VT1P2 6P3 4fTQP2 7PSENf圭沁noATE/P 孰 OGP3.L/TxDEA/VrP3aVKxDpa 7RSTJVFDP0.6F1.7PO 5PI.5P0 4PI.5pg 3Pl日pa 2PI/3PO.lPL2PO 0Pl.lvacP1.0凌阳大学计划led-key demo板原理图:、J1IJifa=flIf用 IJ.UOM ui* !厂 L*:arwn- B Lh - fr%im24秒倒计时结束时的蜂鸣器和指示灯提示电路riR1 wvReal1KLED1三、软件仿真1、软件设计前瞻考虑到篮球的加分有3分、2分、1分的情况,设置3个按钮不是 明智的选择,所以采用了甲乙各用一个加/减按钮,每按一次就加 /减一分,灵活掌控实际情况。2、流程图(1)主程序流程图如下:(A/B分别表示甲队/乙队)开始储存器初始化、定时初始化、中断初始化显示扫扌描转换为BCD执行相应的加减操作暂停24s定时F重新24s疋时队比分(2)定时流程图:3、程序设计#include#define uchar unsigned char #define uint unsigned int uchar CZ=24;/计时 24 秒初值uchar JiaMark = 0;/甲队得分变量uchar YiMark = 0;/乙队得分变量uchar time=0;/定义计数变量uchar change=0; / 两对分数交换变量/显Uchar code table = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D, 0x07, 0x6F,; 示 0,1,2,3,4,5,6,7,8,9sbit StopTimer = P3A1; sbit ReTimer =卩3人2;sbit Change = P3A3; sbit JiaSub = P3A4;sbit JiaAdd = P3A5; sbit YiSub = P3A6;sbit YiAdd = P3A7; sbit AlarmLed = P1A0;/ 暂停 24 秒倒计时 /重新 24 秒倒计时/交换甲乙两队分数 /甲队分数减 1/ 甲队分数加 1/ 乙队分数减 1/ 乙队分数加 1/倒计时到指示灯sbit BJ = P1A6;/倒计时到蜂鸣器延时函数 */*延时 1ms*/void delay1ms(uchar t) uint i,j;for(i=0;it;i+)/软件延时 1ms for(j=0;j120;j+); /* 定时器 T0 中断服务程序 */void timer0 (void) interrupt 1 using 1TL0 =(65536-50000)%256;TH0 =(65536-50000)/256;/定时 50mstime+;while(time=20) /每经一秒调用一次显示程序 time=0;CZ-;if(-1 = CZ)BJ=0;CZ=0; AlarmLed=0; / 定时到 0 秒后,蜂鸣器响,指示灯亮 if(ReTimer) delay1ms(5); if(ReTimer) CZ=24;TR0=1;BJ=1; AlarmLed=1; while(ReTimer); /重新定时 int jia_scan()甲队分数处理函数 */if(JiaSub)/甲队分数 -1delay1ms(5);if(JiaSub)delay1ms(5);JiaMark = JiaMark-1;if (JiaMark=-1)JiaMark=0;while(JiaSub); delay1ms(5);if(JiaAdd)/ 甲队分数 +1delay1ms(5); if(JiaAdd) delay1ms(5); JiaMark = JiaMark+1; while(JiaAdd); delay1ms(5);return JiaMark;/*乙分数处理函数*/int yi_scan()if(YiSub)/乙队分数 -1delay1ms(5);if(YiSub)delay1ms(5);YiMark = YiMark- 1;if (YiMark=-1) YiMark=0; while(YiSub);if(YiAdd)/乙队分数 +1 delay1ms(5); if(YiAdd) delay1ms(5); YiMark = YiMark+1;while(YiAdd);delay1ms(5);return YiMark;/* 数码管显示函数 实现六个数码管分别显示 */ void segdispaly()P2=0XFD;P0=tableJiaMark%10;delay1ms(2);P2=0XFE;P0=tableJiaMark/10;delay1ms(2);P2=0XF7;P0=tableCZ%10;delay1ms(2);P2=0XFB;P0=tableCZ/10; delay1ms(2);P2=0XdF;P0=tableYiMark%10; delay1ms(2);P2=0XEF;P0=tableYiMark/10;delay1ms(2);交换两对分数函数*void changemark()change=JiaMark;JiaMark=YiMark;YiMark=change;主函数*void main()TMOD = 0x01; /To 工作于方式 1 TL0 =(65536-50000)%256;TH0 =(65536-50000)/256; / 延时EA = 1;ET0 = 1;TR0 = 1; /开启总中断, TO 中断,启动 T0 定时器 P0 = 0x3f;P1 = 0x01;P2 = 0X00;P3 = 0xff;BJ = 1; / 设置处置 while(1)/加减分选择if(JiaSub=0|JiaAdd=0|YiSub=0|YiAdd=0) TR0 = 0; /关闭定时器CZ = 24;BJ=1;/重新赋初值 24 秒,清除报警AlarmLed=1;jia_scan();delay1ms(2);yi_scan();if(Change=0)/ 甲乙两队交换场地时分数对换显示delay1ms(5);if(Change=0) delay1ms(5); changemark();while(Change=0);delay1ms(5);if(ReTimer)/重新开始 24 秒定时 delay1ms(1);if(ReTimer)TR0=1;BJ=1; AlarmLed=1; / 开启 T0 ,清除报警 while(ReTimer);if(StopTimer)/ 暂停 24 秒倒计时时 delay1ms(1);if(StopTimer)TR0=0;BJ=1; AlarmLed=1;/清除报警while(StopTimer);segdispaly(); /6 位数码管显示4、设计仿真图ig?033陀工4 p r iris-四、制作与调试1、焊接实物图单片机最小系统版连接图rr*irPJi wrsrfh,r viw PXrfTE. e pi i/n*” ;,JFJ tttsAmg醫Q苛犀审醤ts弓凌阳大学计划LED-KEY DEMO板24秒倒计时结束提示电路2、调试过程分块的程序编译。首先,对功能进行划分,分别写出相应功能的 程序,并调试仿真,直至功能实现为止;其次,把各程序融合在一 起,调试仿真,直至功能实现为止;最后,调整程序结构,使其易 读,运行效率提高。最终通过 protues 的仿真检验,直到不报告错 误为止。焊接板子。充分利用实验室的材料,将电路板按照功能模块焊接 起来,过程中注重元器件的布局,尽量做到工艺的最好。耐心的焊 完,实物电路就制作完成了。软硬件的结合。通过编程器把程序烧到板子上,完成单片机的应 用功能。常理上,如果调试过程中出现错误,尽量改写软件,避免 硬件的修改,从而避免电路元件的损坏。调试过程, 是这次课程设计最终成功与否的关键。 一开始的测试, 出现点小问题,数码管显示不正常,蜂鸣器和指示灯都符合功能要 求。然后就检查 P0,P1 口,层层摸索下,我们发现原先的程序与 实际的板子有偏差,然后就相应地改动软件程序,直到实现所要求 的功能为止。优化问题。在功能实现的基础上,把一些冗杂的东西精简化,提 高单片机的工作效率。五、心得体会本次的单片机课程设计是我们本学期的第二次课程设计,相对 于电子技术课程设计只搭建硬件电路不同, 本次课程设计需要通过对 89c51单片机编程来实现课题所需要的要求,需要软、硬件之间的配 合。硬件电路的搭建经过上一次的课程设计后,可以说轻车熟路了, 而软件部分因为在实验室学习过单片机, 经过一天的编程在仿真上基 本上达到了要求。接下来就是和硬件电路的配合, 第一次烧写失败了, 那么就会有可能来自两方面的原因, 是硬件电路, 还是软件部分呢? 通过检查硬件电路发现没有问题, 而软件部分因为经过 protues 仿真 可以实现,所以也没问题,那么问题应该出在配合方面。通过一步步 的分析,然后不断的硬件调试,终于发现 demo板与自己在protues 仿真的原理图在数码管位选电路部分不一致, 通过修改程序终于解决 了问题,实现了基本功能。 在实现了基本功能后,对程序进行了部分 调整,删掉了一些不必要的部分,做了一些必要的说明。通过本次课程设计加深了我对单片机理论知识的理解,使我们 更加熟悉仿真软件的使用, 以及动手调试、 排查错误能力。总体来说, 这次的过程没有特别困难的地方,经过重复检查和通过对仿真的模 拟,排查问题也很快。 出错修改正确的感觉比一次性成功来得更让我 有满足感。最后还要感谢和我同组的同学, 他们给我提供了很多帮助, 课程设计的圆满成功是大家一起奋斗、努力的结果。
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!