篮球记分牌mine

上传人:M****1 文档编号:561630788 上传时间:2022-12-27 格式:DOC 页数:17 大小:627.50KB
返回 下载 相关 举报
篮球记分牌mine_第1页
第1页 / 共17页
篮球记分牌mine_第2页
第2页 / 共17页
篮球记分牌mine_第3页
第3页 / 共17页
篮球记分牌mine_第4页
第4页 / 共17页
篮球记分牌mine_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《篮球记分牌mine》由会员分享,可在线阅读,更多相关《篮球记分牌mine(17页珍藏版)》请在金锄头文库上搜索。

1、目录一、方案设计1. 篮球记分牌的功能要求 22. 篮球记分牌的性能扩展 23.实际操作说明 2二、硬件装配1.硬件清单及简要说明 32.电路原理图与注解 3三、软件仿真1.软件设计前瞻 52.流程图 53.程序设计 74.系统仿图 12四、制作与调试1.焊接实物图 122.调试过程 13五、心得体会#、方案设计1、篮球记分牌的功能要求比赛开始,比分能够全部清零,数码管前2位、末2位实现099 加减记分,中间2位做24秒倒计时用。24秒倒计时时间到,蜂鸣器响、指示灯亮,重新开始倒计时,蜂鸣器停止鸣叫、指示灯灭。比分增加后,倒计时从24秒重新开始倒计时。任意时刻24秒 可以重新开始倒计时。并且必

2、要时候能够关闭倒计时。2、篮球记分牌的性能要求利用AT24C02或者单片机内部资源保存比分,支持复位保存,掉电保存功能。暂停计时按钮(Stop):按钮按下则停止当前计时,并显示当前 计时值。重新计时按钮(ReTimer):不管什么条件下,此按钮按下则倒计 时重新从24秒开始倒计时;若先按Stop按钮,再按此键则在原来暂停计时的基础上继续计时分数交换按钮(Cha ng :按钮按下则两队的分数交换位置,即 记分牌上左右调换。甲队/ 乙队的加 /减分按钮:此按钮按下则位于记分牌左侧 /右侧 的分数相应的加 /减 1分,且此时 24秒倒计时关闭,蜂鸣器关闭, 指示灯灭(左边代表甲队,右边代表乙队) 。

3、、硬件装配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 秒倒计时 结束时的蜂鸣器和

4、指示灯提示电路。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*:ar

5、wn- 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 unsig

6、ned 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;sbi

7、t 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 (voi

8、d) 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

9、)/甲队分数 -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)dela

10、y1ms(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=

11、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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号