比赛用计时计分器

合集下载

基于单片机的篮球计时计分器设计设计

基于单片机的篮球计时计分器设计设计

基于单片机的篮球计时计分器设计设计篮球计时计分器是一种用于篮球比赛计时和计分的设备。

基于单片机的篮球计时计分器设计可以实现自动计时、计分、显示比分等功能,使得篮球比赛更加准确和便捷。

本文将介绍基于单片机的篮球计时计分器的设计和实现。

设计思路:基于单片机的篮球计时计分器主要由显示模块、计时模块、计分模块、控制模块等组成。

其中,显示模块用于实时显示比赛时间和比分情况;计时模块用于计时并显示剩余时间;计分模块用于记录比赛双方的得分情况;控制模块用于整合各个模块的功能和控制比赛的进行。

首先,我们需要选择一款适合的单片机来实现篮球计时计分器。

一般情况下,AT89S52是比较常用的单片机,它具有较强的计算和控制能力,可以满足篮球计时计分器的需求。

接下来,我们需要确定显示模块的类型。

一种常见的显示模块是七段数码管,用于显示比赛时间和比分情况。

七段数码管可以通过单片机的IO口进行控制,显示时间和比分的变化。

计时模块可以通过在单片机中设置定时器来实现。

定时器可以定期产生一个中断信号,通过处理中断信号来实现计时功能。

可以设置定时器的初值和中断次数来实现精确的计时。

计分模块可以通过增加加减分按钮和设置相关的IO口来实现。

当按下加分按钮时,计分模块将调用相应的函数来增加得分;当按下减分按钮时,计分模块将调用相应的函数来减少得分。

计分模块还可以实现显示当前比分的功能。

控制模块是整个篮球计时计分器的核心模块。

通过对各个模块的控制和操作,实现比赛的正常进行。

控制模块还可以增加暂停和继续比赛的功能,通过设置相应的标志位来实现。

接下来,我们需要根据设计思路进行硬件电路的连接和单片机程序的编写。

硬件电路的连接包括七段数码管的连接、计时器连接、按钮连接等。

单片机程序的编写需要包括显示模块的控制程序、计时模块的中断处理程序、计分模块的加减分函数等。

最后,我们需要进行测试和优化。

测试可以通过模拟篮球比赛的环境,模拟时间和比分的变化,检查计时计分器的功能是否正常。

篮球比赛计分器单片机课程设计报告

篮球比赛计分器单片机课程设计报告

1.1设计的内容与要求设计一个单片机系统用于篮球比赛计时计分,满足以下功能要求:(1)能记录整个赛程的比赛时间,并能暂停。

(2)能随时刷新甲、乙两队在整个比赛过程中的比分。

(4)比赛结束时,能发出报警声。

在篮球比赛过程中需要对参赛双方的比分进行快速的采集记录和加工处理,需要一个快捷方便的计分系统。

该计分系统是一种得分类型的系统,即根据不同球队的不同得分,进行相应的处理,并且能够实时的显示出来。

又因为篮球比赛是分节进行的,所以还需要有倒计时功能的计时器,以便于观众实时了解赛况。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,功耗低,价格便宜,可靠性高和使用方便等独特的优点,目前已经成为测量控制应用系统中的优选元器件。

篮球计时计分器就是以单片机为核心的计时计分系统,有计时器、计分器、直流电源、时钟电路、按键等组成,完全能够实现上述的功能。

1.2设计的目的及意义随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,因此掌握单片机的一些基本功能就显的十分重要。

本次设计是采用AT89S52来编程控制LED七段数码管,使其能够显示篮球比赛的时间和计分,该系统具有赛程时间实时显示、时间暂停以及刷新A/B球队的成绩等功能。

通过本次设计可以了解、熟悉有关单片机的开发设计过程,并更进一步加深对单片机的了解和应用,掌握单片机与外围接口的一些方法与技巧,以及AT89S52单片机的最小应用系统的构成。

还可以了解LED数码管的结构、工作原理、编程方法以及相关的接口实例与具体连接。

通过本次设计可以很好的把课本的理论知识和实践有机的联系起来,是我们对理论知识有更深一步的掌握,为以后的学习打下坚实的基础。

2.1任务分析充分了解本设计要求,明确设计的全部功能、要求及技术指标;熟悉AT89S52单片机与控制对象的各种参数、关系和特点。

按题目要求能记录整个赛程的比赛时间,并能暂停,则需要暂停按键和7段共阴极LED数码管,其中时间显示按每节10分钟倒计时显示分和秒;能随时刷新A/B两队在整个比赛过程中的比分,加分有误时可通过按键实现减分调整,则需要有加减分按键、切换按键等。

篮球比赛计时计分器

篮球比赛计时计分器

内容摘要:篮球比赛计时计分器是为了解决篮球比赛时计时与计分准确的问题,更加方便篮球比赛时的计时与计分问题。

此装置利用单片机AT89C51完成了篮球比赛时计时和计分的功能。

本文详细介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分、时间的修改与显示,具有低功耗、可靠性、安全性和低成本等特点。

本文主要阐述的是基于AT89C51单片机、数码管、开关模块等构成了篮球比赛计时计分器。

实现了四位一体时钟型共阴数码管显示篮球比赛时间、三位一体共阴数码管显示篮球比赛分数、篮球比赛分数的加减、篮球比赛时间的开始与暂停和篮球比赛结束时的报警等功能。

关键字:AT89C51单片机篮球比赛计时篮球比赛计分内容摘要 (2)引言 (4)第一章绪论 (5)1.1 设计目的与意义 (5)1.2 篮球比赛计时计分器的发展和现状 (5)第二章系统硬件的介绍 (6)2.1 MCS-51 单片机简述 (6)2.2 显示器及其接口 (9)第三章系统整体设计 (11)3.1 系统硬件设计方案 (11)3.2 系统设计流程 (12)第四章系统软件设计 (13)4.1 单元模块设计 (13)4.2 软件设计流程 (13)设计总结 (14)参考文献 (15)附录1:原理图与PCB图 (16)附录2:程序 (17)单片机又称单片微控制器,它内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。

概括的讲:一块芯片就是一台计算机。

我们现在用的全自动滚筒洗衣机,排烟罩VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。

单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。

plc控制的篮球比赛计时计分器毕业设计

plc控制的篮球比赛计时计分器毕业设计

PLC控制的篮球比赛计时计分器毕业设计1. 介绍作为一种常见的体育比赛计时计分设备,篮球比赛计时计分器在提高比赛效率、记录比赛成绩、保障比赛公正方面发挥着重要作用。

本篇文章将围绕PLC控制的篮球比赛计时计分器毕业设计展开深入探讨,旨在从设计原理、实现方法、技术难点等方面全面解读该毕业设计的价值和意义。

2. 设计原理PLC(Programmable Logic Controller,可编程逻辑控制器)作为一种工业自动化控制系统,其具有可编程、灵活性强、可靠性高等特点,是控制篮球比赛计时计分器的理想选择。

设计中,借助PLC的输入/输出模块,可实现对比赛时间和比分的准确控制,提高计分器的稳定性和精准度。

3. 实现方法在PLC控制的篮球比赛计时计分器毕业设计中,需要考虑到计时和计分的同步性、实时性以及人性化的操作界面。

通过设计合理的程序逻辑,结合触摸屏等先进的人机界面技术,可以实现对比赛进程的全面监控和控制,确保比赛计时计分过程的准确无误。

4. 技术难点在该毕业设计中,存在着一些技术难点需要克服。

如何实现计时和计分的精准同步、如何应对突发情况下的异常处理、如何确保设备在长时间运行中的稳定性等。

这些都需要设计者具备扎实的PLC编程和控制技术,深入理解篮球比赛规则和实际比赛场景,以及对计时计分器硬件电路和结构设计的全面考量。

5. 总结回顾通过对PLC控制的篮球比赛计时计分器毕业设计的探讨,我们可以看到,其设计不仅仅是对技术的考验,更是对设计者对篮球比赛规则的理解和对工程实践能力的挑战。

设计者需要综合考虑技术、实用性和可靠性,为比赛的公正进行提供有力保障。

6. 个人观点对于这样的毕业设计,我认为设计者需要有扎实的技术功底,同时要善于思考和总结,关注实际应用中的细节和问题。

只有站在使用者的角度,深入了解比赛需求,才能设计出符合实际情况的篮球比赛计时计分器。

我对这样的毕业设计充满期待,并期待看到更多的优秀作品问世。

篮球比赛计时计分器

篮球比赛计时计分器

设计任务:1、显示内容,队名用英文名,3个大写字母20分队名1-A:队名2-B =xxx:xxx第x节剩余时间:XX分XX秒2、串口控制20分A+1% A队加1分,%为结束符A+2% A队加2分,%为结束符A+3% A队加3分,%为结束符B+1% B队加1分,%为结束符以此类推3、串口控制交换场地5分A-B% AB队交换4、20 分PAUSE% 计时暂停按键1-定义为PAUSE按键用ZLG7290RESTART%重新计时按键2-定义为RESTARTRESET%重新比赛按键3-定义为RESET5、存储近5场的成绩到AT24C02 格式:1-队名1队名2=90:100类推20分RECALL1% 提取存储的第1场成绩,在数码管上显示,只显示比分,串口传回队名+比分&整场结束,提示是否保存成绩,按键4-存储键按键5-放弃键15分源代码:接线说明:PSB-VCC RS-P1.0 RW-P1.1 P1.3-E INT-P3.2 TXD-P3.1 RXD-P3.0 SDA-P1.6 SCL-P1.7 I2C 总线的ABC》别接键盘的ABCD以程序为准凭记忆写出来的)主程序#include<reg51.h>#include<intrins.h>#include<string.h>#include<I2C.h>#include <ZLG7290.h>#define unchar unsigned char #define unit unsigned int #define Lcd_Bus P0#define unchar unsigned char unsigned char KeyValue,FlagINT; int ney;// 纪录第及场比赛sbit RS=P1A0;//LCD 显示屏sbit RW=P1A1;sbit E=P1A3;unchar code lcddata[]={"0123456789:"};unchar code duiming[]={'1','H','O','U',':','2','C','H','I','='};unchar bifen[7];unchar fen1;unchar fen2;unchar jie;unchar min;unchar sec;unchar control;unchar table[10];************** 延时函数***********************void delay(unsigned int t) { unsigned int i,j;for(i=0;i<t;i++) for(j=0;j<10;j++)/* ------------ 写命令到LCD ---------------------- */void write_com(unsigned char cmdcode) {//chk_busy();RS = 0; // 置零RW = 0;E = 1;Lcd_Bus = cmdcode;delay(10); // 在数据写入的时候加入适当的延时 E = 0;}/* ------------ 写数据到LCD ---------------------- */void write_data(unsigned char Dispdata){//chk_busy();RS = 1; // 写数据RW = 0;E = 1;Lcd_Bus = Dispdata;delay(10); // 在数据写入的时候加入适当的延时 E = 0;/******* 函数名称:Write_Char* 功能描述:写字符******/ void write_char(unsigned int num){// chk_busy();RS = 1;RW = 0;E = 1;Lcd_Bus = lcddata[num];E = 0;}/* ------------ 显示字符串----------------- */void hzkdis(unsigned char code *s){ while(*s>0){ write_data(*s);// 选择基本指令集 (30H )// 点设定,游标右移// 开显示控制 (无游标、不反白 )// 清除显示,并且设定地址指针为 00H //unchar duiming[]= "1-HOU:2-CHI";// 队名数组//unchar bifen[7];// 比分数组unchar k;// 记录第几场比赛void timer0init(void) {TMOD=0X21;TH0=0X31;TL0=0XB0;ET0=1;EA=1;TR0=1;//IT0=1;// EX0=1;}/***** 用作串口通信 ****/ void timer1init(void){TH1=0xf3;TL1=0XF3;SCON=0X50;EA=1;ES=1;TR1=1;}/**** 保存成绩 */void save(int ney){ s++;/* ------------ 初始化 LCD 屏 ----------------- */ /*** 用作计时***/void lcdreset() { write_com(0x30);delay(16); write_com(0x04);delay(16);write_com(0x0f); delay(16);write_com(0x01);delay(16);}(同时地址归为 )int i;unchar buff[7];// ney++;ZLG7290_Download(i,0,0,0X0A); bifen[2]=fen2/100;bifen[1]=(fen2%100-fen2%10)/10;bifen[0]=fen2%10;bifen[3]=0X1F;bifen[6]=fen1/100;bifen[5]=(fen1%100-fen1%10)/10;bifen[4]=fen1%10;for(i=0;i<7;i++){x24c02_write(i+7*ney,bifen[i]);}for(i=0;i<7;i++){buff[i]=x24c02_read(i+7*ney); delay(12);}for(i=0;i<7;i++){ZLG7290_Download(i,0,0,buff[i]);}/********** 将存储在at24c02 的数据通过串口通信发还给电脑**/ void fahuan(unsigned char k){unchar buff[7],i;for(i=0;i<10;i++){SBUF=duiming[i];while(!TI){;}TI=0;}for(i=0;i<7;i++){buff[i]=x24c02_read(i+7*k);delay(12);}for(i=0;i<7;i++){ZLG7290_Download(i,0,0,buff[i]);}for(i=6;i>3;i--){SBUF=buff[i]+48;while(!TI){;}TI=0;}SBUF=':';while(!TI){;}TI=0;SBUF=buff[2]+48;while(!TI){;}TI=0;SBUF=buff[1]+48; while(!TI){;} TI=0;SBUF=buff[0]+48; while(!TI){;} TI=0;P2=0xf0;}/**** 定时器中断用作计时**/ void timer0(void) interrupt 1 using 1 {static unchar count=0; unchar i;TH0=0X3C;TL0=0XB0; count++;if(count==20){count=0;sec--;if(sec==-1){sec=59; min--; if(min==-1) {if(jie<=3) {write_com(0x01); jie++;min=1; } else { // TR0=0;control=0; //save();}}}}/**** 主要用作显示比分**/void show_fen1(void){ write_com(0x80); hzkdis("2-CHI:1-HOU=");write_com(0x90); delay(16);write_char(fen2/ 100); delay(16);write_char((fen2%100-fen2% 10)/10); delay(16);write_char(fen2% 10); delay(16);write_char( 10 ); delay(16) ;write_char(fen1/ 100); delay(16);write_char((fen1%100-fen1% 10)/10); delay(16);write_char(fen1% 10); delay(16);}/**** 显示比分队名顺序相反**/void show_fen0(void){write_com(0x80);hzkdis("1-HOU:2-CHI=");write_com(0x90); delay(16);write_char(fen1/ 100); delay(16);write_char((fen1%100-fen1% 10)/10); delay(16);write_char(fen1% 10);write_char( 10 ); delay(16) ;write_char(fen2/ 100); delay(16); write_char((fen2%100-fen2%10)/10); delay(16);write_char(fen2% 10); delay(16);}/*** 显示时间**/void show_time(void){write_com(0x88);if(jie%10==1)hzkdis("第 1 节”);if(jie%10==2)hzkdis("第 2 节");if(jie%10==3)hzkdis("第 3 节");if(jie%10==4)hzkdis("第 4 节");write_com(0x8c);hzkdis("剩余时间");write_com(0x9a);delay(16);write_char( min / 10 );delay(16);write_char( min % 10 );delay(16);write_char( 10 );delay(16);write_char( sec / 10 );delay(16);write_char( sec % 10 );}void show(){write_com(0x80);hzkdis("是否保存成绩?”);write_com(0x90);hzkdis("y press butter 4"); write_com(0x88);hzkdis("n press butter 5 "); write_com(0x98);hzkdis(" ");}/***** 串口中断处理来自串口助手的命令*/ void chuanko() interrupt 4 {unchar i=0;unchar buff[]="wrong";while(1){ while(!RI);RI=0; if(SBUF=='%') break; table[i]=SBUF;i++;} if(table[0]=='A'&&table[1]=='+'&&table[2]=='1') fen1++;else if(table[0]=='A'&&table[1]=='+'&&table[2]=='2') {fen1++;fen1++;}else if(table[0]=='A'&&table[1]=='+'&&table[2]=='3') {fen1++;fen1++;fen1++;}else if(table[0]=='B'&&table[1]=='+'&&table[2]=='1')fen2++;else if(table[0]=='B'&&table[1]=='+'&&table[2]=='2'){fen2++;fen2++;}else if(table[0]=='B'&&table[1]=='+'&&table[2]=='3'){fen2++;fen2++;fen2++;}else if(table[0]=='A'&&table[1]=='-'&&table[2]=='B'){control=2;// 交换场地}elseif(table[0]=='P'&&table[1]=='A'&&table[2]=='U'&&table[3]=='S'&&table[4]=='E'){TRO=(~TRO);〃暂停}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='S'&&table[3]=='T'&&table[4]=='A'&&table[5]==' R'& &table[6]=='T'){TR0=0;min=11;sec=59;TR0=1;〃重新计时}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='S'&&table[3]=='E'&&table[4]=='T'){ timer0init();// TR0=0;min=11;sec=59;jie=1;fen1=0;fen2=0;TR0=1;〃重新开始write_com(0x01);control=1;}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='1'){ ZLG7290_Download(i,0,0,0X0E);fahuan(0);//shuma(1);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]=='L'& &table[6]=='2'){ fahuan(1);//shuma(2);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='3'){ fahuan(2);//shuma(3);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='4'){ fahuan(3);//shuma(4);}elseif(table[0]=='R'&&table[1]=='E'&&table[2]=='C'&&table[3]=='A'&&table[4]=='L'&&table[5]==' L'& &table[6]=='5'){ fahuan(4);//shuma(5);}else{ for(i=0;i<6;i++) {SBUF=buff[i]; while(!TI); TI=0;/**** 外部中断初始化响应按键中断**/void SystemInit(){I2C_Init();EA = 0;IT0 = 1; // 负边沿触发中断EX0 = 1; // 允许外部中断EA = 1; // 等待ZLG7290 复位完毕}/***** 外部中断函数响应各个按键**/void INT0_SVC() interrupt 0 {unchar i; ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);// 显示键值DispValue(0,KeyValue); if(KeyValue==0x09) {TRO=(~TRO);//暂停} if(KeyValue==0x0a){TR0=0;min=11;sec=59;TR0=1;//重新计时} if(KeyValue==0x0b)timer0init(); write_com(0x01);TR0=0;min=11;sec=59;jie=1;fen1=0;fen2=0;control=1;TR0=1;〃重新开始} if(KeyValue==0x0c) { save(ney);ney++;timer0init();// 响应完中断记得重新初始化不然可能会出错timer1init();SystemInit();}main(){min=11;sec=59;fen1=0;fen2=0;jie=1;control=1;ney=0;timer0init();timer1init();lcdreset();SystemInit();//系统初始化while(1){if(control==1){show_fen0(); show_time();}if(control==0){show();// 比赛结束提示}if(control==2){show_fen1();// 交换场地show_time();}I2C.C标准80C51单片机模拟I2C总线的主机程序Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved.本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#i nclude "I2C.h"//定义延时变量,用于宏l2C_Delay()un sig ned char data I2C_Delay_t;/*宏定义:I2C_Delay()功能:延时,模拟I2C总线专用*/#defi ne I2C_Delay()\{\I2C_Delay_t = (I2C_DELAY_VALUE);\ while ( --I2C_Delay_t != 0 );\/*函数:I2C_I nit()功能:I2C总线初始化,使总线处于空闲状态说明:在main()函数的开始处,通常应当要执行一次本函数*/void I2C_I nit(){I2C_SCL = 1;I2C_Delay();I2C_SDA = 1;I2C_Delay();/*函数:I2C_Start()功能:产生I2C 总线的起始状态说明:SCL处于高电平期间,当SDA出现下降沿时启动I2C总线不论SDA和SCL处于什么电平状态,本函数总能正确产生起始状态本函数也可以用来产生重复起始状态本函数执行后,I2C总线处于忙状态*/void I2C_Start(){I2C_SDA = 1;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SDA = 0;I2C_Delay();I2C_SCL = 0;I2C_Delay();} /* 函数:I2C_Write()功能:向I2C总线写1个字节的数据参数:dat:要写到总线上的数据*/ void I2C_Write(char dat){unsigned char t = 8;do{I2C_SDA = (bit)(dat & 0x80);dat <<= 1;I2C_SCL = 1;I2C_Delay();I2C_SCL = 0;I2C_Delay();} while ( --t != 0 );/*函数:I2C_Read() 功能:从从机读取 1 个字节的数据返回:读取的一个字节数据*/char I2C_Read(){char dat;unsigned char t = 8;I2C_SDA = 1; //在读取数据之前,要把SDA拉高do {I2C_SCL = 1;I2C_Delay();dat <<= 1;if ( I2C_SDA ) dat |= 0x01;I2C_SCL = 0;I2C_Delay();} while ( --t != 0 ); return dat;}/*函数:I2C_GetAck() 功能:读取从机应答位返回:0:从机应答1 :从机非应答说明:从机在收到每个字节的数据后,要产生应答位从机在收到最后 1 个字节的数据后,一般要产生非应答位*/bit I2C_GetAck(){bit ack;I2C_SDA = 1;I2C_Delay();I2C_SCL = 1;I2C_Delay();ack = I2C_SDA; I2C_SCL = 0;I2C_Delay();return ack;/*函数:I2C_PutAck() 功能:主机产生应答位或非应答位参数:ack=O:主机产生应答位ack=1 :主机产生非应答位说明:主机在接收完每一个字节的数据后,都应当产生应答位主机在接收完最后一个字节的数据后,应当产生非应答位*/void I2C_PutAck(bit ack){I2C_SDA = ack;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SCL = 0;I2C_Delay();}/*函数:I2C_Stop()功能:产生I2C 总线的停止状态说明:SCL处于高电平期间,当SDA出现上升沿时停止I2C总线不论SDA和SCL处于什么电平状态,本函数总能正确产生停止状态本函数执行后,I2C总线处于空闲状态*/void I2C_Stop(){unsigned int t = I2C_STOP_WAIT_VALUE;I2C_SDA = 0;I2C_Delay();I2C_SCL = 1;I2C_Delay();I2C_SDA = 1;I2C_Delay();while ( --t != 0 ); // 在下一次产生Start 之前,要加一定的延时} /*函数:I2C_Puts()功能:I2C总线综合发送函数,向从机发送多个字节的数据参数:SlaveAddr:从机地址(7位纯地址,不含读写位)SubAddr:从机的子地址SubMod:子地址模式,0—无子地址,1 —单字节子地址,2—双字节子地址*dat :要发送的数据Size:数据的字节数返回:0:发送成功1 :在发送过程中出现异常说明:本函数能够很好地适应所有常见的I2C 器件,不论其是否有子地址当从机没有子地址时,参数SubAddr 任意,而SubMod 应当为0*/bit I2C_Puts(unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size){// 定义临时变量unsigned char i;char a[3];// 检查长度if ( Size == 0 ) return 0;// 准备从机地址a[0] = (SlaveAddr << 1);// 检查子地址模式if ( SubMod > 2 ) SubMod = 2;// 确定子地址switch ( SubMod ){case 0: break;case 1:a[1] = (char)(SubAddr);break;case 2:a[1] = (char)(SubAddr >> 8);a[2] = (char)(SubAddr);break;default: break;}// 发送从机地址,接着发送子地址(如果有子地址的话) SubMod++;I2C_Start();for ( i=0; i<SubMod; i++ ){I2C_Write(a[i]);if ( I2C_GetAck() ){I2C_Stop(); return 1;}}// 发送数据do{I2C_Write(*dat++);if ( I2C_GetAck() ) break;} while ( --Size != 0 );//发送完毕,停止I2C总线,并返回结果I2C_Stop();if ( Size == 0 ){return 0;}else{return 1;}}/*函数:I2C_Gets()功能:I2C总线综合接收函数,从从机接收多个字节的数据参数:SlaveAddr:从机地址(7位纯地址,不含读写位)SubAddr:从机的子地址SubMod:子地址模式,0—无子地址,1 —单字节子地址, *dat :2—双字节子地址保存接收到的数据Size:数据的字节数返回:0:接收成功1 :在接收过程中出现异常说明:本函数能够很好地适应所有常见的I2C 器件,不论其是否有子地址当从机没有子地址时,参数SubAddr 任意,而SubMod 应当为0 */bit I2C_Gets(unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size){// 定义临时变量unsigned char i; char a[3];// 检查长度if ( Size == 0 ) return 0;// 准备从机地址a[0] = (SlaveAddr << 1);// 检查子地址模式if ( SubMod > 2 ) SubMod = 2;// 如果是有子地址的从机,则要先发送从机地址和子地址if ( SubMod != 0 ){//确定子地址if ( SubMod == 1 ){a[1] = (char)(SubAddr);}else{a[1] = (char)(SubAddr >> 8); a[2] = (char)(SubAddr);} //发送从机地址,接着发送子地址SubMod++;I2C_Start();for ( i=0; i<SubMod; i++ ){ I2C_Write(a[i]); if ( I2C_GetAck() ) {I2C_Stop();return 1;}}//这里的l2C_Start()对于有子地址的从机是重复起始状态//对于无子地址的从机则是正常的起始状态l2C_Start();// 发送从机地址l2C_Write(a[0]+1);if ( l2C_GetAck() ){l2C_Stop();return 1;}//接收数据for (;;){*dat++ = l2C_Read();if ( --Size == 0 ){ l2C_PutAck(1); break;} l2C_PutAck(0);}//接收完毕,停止I2C总线,并返回结果l2C_Stop();return 0;}/*ZLG7290.c数码管显示与键盘管理芯片ZLG7290的标准80C51驱动程序C文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved.本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/ #include "I2C.h"#include "ZLG7290.h" /*函数:ZLG7290_WriteReg()功能:向ZLG7290的某个内部寄存器写入数据参数:RegAddr:ZLG7290的内部寄存器地址dat :要写入的数据返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_WriteReg(unsigned char RegAddr, char dat){bit b;b = I2C_Puts(ZLG7290_I2C_ADDR,RegAddr,1,&dat,1); return b;}/*函数:ZLG7290_ReadReg()功能:从ZLG7290的某个内部寄存器读出数据参数:RegAddr:ZLG7290的内部寄存器地址*dat :保存读出的数据返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat){bit b;b = I2C_Gets(ZLG7290_I2C_ADDR,RegAddr,1,dat,1); return b;}/*函数:ZLG7290_cmd()功能:向ZLG7290发送控制命令参数:cmdO :写入CmdBufO寄存器的命令字(第1字节) cmdl :写入CmdBufl寄存器的命令字(第2字节) 返回:0:正常1:访问ZLG7290时出现异常*/bit ZLG7290_cmd(char cmd0, char cmd1){bit b;char buf[2];buf[0] = cmd0;buf[1] = cmd1;b = I2C_Puts(ZLG7290_I2C_ADDR,ZLG7290_CmdBuf,1,buf,2); return b; }/* 函数:ZLG7290_SegOnOff()功能:段寻址,单独点亮或熄灭数码管(或LED)中的某一段参数:seg:取值0〜63,表示数码管(或LED)的段号b:0 表示熄灭, 1 表示点亮返回:0:正常1:访问ZLG7290时出现异常说明:在每一位数码管中,段号顺序按照“ a,b,c,d,e,f,g,dp ”进行*/bit ZLG7290_SegOnOff(char seg, bit b){char cmd;cmd = seg & 0x3F;if ( b ) cmd |= 0x80;return ZLG7290_cmd(0x01,cmd);}/*函数:ZLG7290_Download() 功能:下载数据并译码参数:addr :取值0〜7,显示缓存DpRamO〜DpRam7的编号dp:是否点亮该位的小数点,0 —熄灭,1—点亮flash:控制该位是否闪烁,0—不闪烁,1—闪烁dat :取值0〜31,表示要显示的数据返回:0:正常1:访问ZLG7290时出现异常说明:显示数据具体的译码方式请参见ZLG7290的数据手册*/bit ZLG7290_Download(char addr, bit dp, bit flash, char dat){char cmd0;char cmd1;cmd0 = addr & 0x0F;cmd0 |= 0x60;cmd1 = dat & 0x1F;if ( dp ) cmd1 |= 0x80;if ( flash ) cmd1 |= 0x40;return ZLG7290_cmd(cmd0,cmd1);} /*I2C.h标准80C51单片机模拟I2C总线的主机程序头文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved. 本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#ifndef _I2C_H_ #define _I2C_H_#include <reg51.h>//模拟I2C总线的引脚定义sbit I2C_SCL = P1A6;sbit I2C_SDA = P"7;//定义I2C总线时钟的延时值,要根据实际情况修改,取值1〜255//SCL信号周期约为(I2C_DELAY_VALUE*4+15个机器周期#define I2C_DELAY_VALUE 12//定义I2C总线停止后在下一次开始之前的等待时间,取值1〜65535〃等待时间约为(I2C_STOP_WAIT_VALUE*8个机器周期//对于多数器件取值为 1 即可;但对于某些器件来说,较长的延时是必须的#defineI2C_STOP_WAIT_VALUE 120//I2C 总线初始化,使总线处于空闲状态void I2C_Init();void x24c02_write(unsigned char address,unsigned char info); unsigned charx24c02_read(unsigned char address); //unsigned char x24c02_read(unsigned char address);//I2C 总线综合发送函数,向从机发送多个字节的数据bit I2C_Puts(unsigned char SlaveAddr,unsigned int SubAddr,unsigned char SubMod, char *dat, unsigned int Size);//I2C 总线综合接收函数,从从机接收多个字节的数据bit I2C_Gets(unsigned char SlaveAddr,unsigned int SubAddr,unsigned char SubMod, char *dat, unsigned int Size);#endif //_I2C_H_/*ZLG7290.h数码管显示与键盘管理芯片ZLG7290的标准80C51驱动程序头文件Copyright (c) 2005,广州周立功单片机发展有限公司All rights reserved. 本程序仅供学习参考,不提供任何可靠性方面的担保;请勿用于商业目的*/#ifndef _ZLG7290_H_#define _ZLG7290_H_#include <reg51.h> //ZLG7290 中断请求信号的引脚定义sbit ZLG7290_pi nINT = P3A2;II定义ZLG7290在I2C总线协议中的从机地址// 这是7 位纯地址,不含读写位#define ZLG7290_I2C_ADDR 0x38II定义ZLG7290内部寄存器地址(子地址)#define ZLG7290_SystemReg 0x00 II系统寄存器#define ZLG7290_Key 0x01 II 键值寄存器II#define ZLG7290_RepeatCnt 0x02 II 连击次数寄存器II#define ZLG7290_FunctionKey 0x03 II 功能键寄存器#define ZLG7290_CmdBuf 0x07 II 命令缓冲区起始地址#define ZLG7290_CmdBuf0 0x07 II 命令缓冲区0#define ZLG7290_CmdBuf1 0x08 //命令缓冲区 1//#define ZLG7290_FlashOnOff 0x0C //闪烁控制寄存器#define ZLG7290_ScanNum 0x0D //扫描位数寄存器#define ZLG7290_DpRam 0x10 // 显示缓存起始地址#define ZLG7290_DpRam0 0x10 //显示缓存0/#define ZLG7290_DpRam10x11 //显示缓存 1#define ZLG7290_DpRam2 0x12 //显示缓存 2#define ZLG7290_DpRam3 0x13 //显示缓存 3#define ZLG7290_DpRam5 0x15 //显示缓存 5#define ZLG7290_DpRam6 0x16 //显示缓存 6#define ZLG7290_DpRam7 0x17 //显示缓存7//向ZLG7290的某个内部寄存器写入数据bit ZLG7290_WriteReg(unsigned char RegAddr, char dat);//从ZLG7290的某个内部寄存器读出数据bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat);//向ZLG7290发送控制命令bit ZLG7290_cmd(char cmd0, char cmd1);//段寻址,单独点亮或熄灭数码管(或LED)中的某一段bit ZLG7290_SegOnOff(char seg, bit b);//下载数据并译码bit ZLG7290_Download(char addr, bit dp, bit flash, char dat);〃闪烁控制指令(Fn应当是字节型)//Fn 的8 个位分别控制数码管的8 个位是否闪烁,0-不闪烁,1-闪烁#define ZLG7290_Flash(Fn) ZLG7290_cmd(0x70,(Fn))#endif //_ZLG7290_H_#include <reg51.h>#include <intrins.h>#include <I2C.h>//sbit dula=P2A6;//sbit wela=P2A7; unsigned char j,c;void de(unsigned char i) // 延时程序{for(j=i;j>0;j--)for(c=125;c>0;c--);}/*24C02 读写驱动程序*/void flash()// 短时间的延时,几微秒左右{ ; ;}void init() //24c02 初始化子程序{I2C_SCL=1;flash();I2C_SDA=1;flash();}void start() // 启动I2C 总线{I2C_SDA=1;flash();I2C_SCL=1;flash();I2C_SDA=0;flash();// scl=0;// flash();}void stop() // 停止I2C 总线{I2C_SDA=0;flash();I2C_SCL=1;flash();I2C_SDA=1;flash();}void writex(unsigned char j) // 写一个字节{ unsigned char i,temp;temp=j;for (i=0;i<8;i++){ temp=temp<<1; I2C_SCL=0; flash(); I2C_SDA=CY; flash(); I2C_SCL=1; flash();}I2C_SCL=0;flash();I2C_SDA=1;flash();} unsigned char readx() // 读一个字节{unsigned char i,z;I2C_SCL=0;flash();I2C_SDA=1;for (i=0;i<8;i++){ flash(); I2C_SCL=1; flash();if (I2C_SDA==1) j=1; else j=0;z=(z<<1)|j;// 先左移,然后在最低位读入值I2C_SCL=0;}flash();return(z);}void clock() //I2C 总线时钟响应{unsigned char i=0;I2C_SCL=1;flash();while ((I2C_SDA==1)&&(i<255))i++;I2C_SCL=0;flash();//////// 从24c02 的地址address 中读取一个字节数据///// unsigned charx24c02_read(unsigned char address) {unsigned char i; start();writex(0xa8);//A1 A2 A3 全部低电平// clock();writex(address);clock();start(); writex(0xa9);clock(); i=readx();stop(); de(10);return(i); }////// 向24c02 的address 地址中写入一字节数据info///// void x24c02_write(unsigned char address,unsigned char info) {EA=0;start(); writex(0xa8);clock(); writex(address);clock(); writex(info);clock();stop();de(50);。

篮球计时计分器

篮球计时计分器

前言体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。

根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。

随着单片机载各个领域的广泛应用,许多用单片机作控制的球赛计时计分器系统也应运产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED 七段显示器计时计分器等。

本文介绍一种由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。

本系统具有赛程定时设置、赛程时间暂停、及时刷新甲、乙队双方的成绩以及赛后成绩暂存等功能。

它具有价格低廉、性能稳定、操作方便且易携带等特点。

广泛适合各类学校和小团体作为赛程计时计分。

利用7段共阴LED作为显示器件。

在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。

赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。

其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。

采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。

1. 总体设计方案1.1 控制原理篮球计时计分器主要包括单片机控制系统、计时显示模块、计分显示模块、定时报警,按键控制键盘模块,通过这几个模块的协调工作就可以完成相应的计时计分控制和显示功能。

这四个模块的相互连接如图1所示:图1 球赛计时计分器系统图本设计是基于AT89S52单片机的篮球计时计分器,利用7段共阴LED作为显示器件。

在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到0~99分。

篮球赛计时计分器

篮球赛计时计分器
2、比赛开始后,按键K4、K5、K6、K7对分数进行调整,按下K4键 时,对第一队分数加1,按下K5键时,对第一队分数进行减1; 按下K6键时对第二队分数进行加1,按下K7键时,对第二队分数 进行减1运算。 3、在比赛开始后,按下K8键,比赛暂停,时间暂停,不再走时,然 后按下K3键时,比赛正常进行,时间恢复走时。 4、时间到,半场结束后,按下K1,K2键进行下半场时间设置,方法 跟第一步相同,时间设置完,按下K3后,在按下K8,进行两队分 数和队伍号的对换,再按下K3,比赛开始,正常走时。
硬件部分 原理图
• 系统硬件电路的组成
– – – – – 单片机AT89C52 按键开关 LCD1602显示 报警电路 L2对时间进行设置,按K1是对分 钟的十位数进行加1,到10时自动清零,按下K2时对分钟的个 位数进行加1调整,到10时自动清零。设置完后,按下K3, 进行倒计时,比赛开始。
开始
定时器清零 两队分数清零 设置时间 是否启动 Y 开始倒计时 时间到? N Y 暂停? N N
软件流程图
N
蜂鸣器响10s,LED闪10次 交换?
是否分数调整? Y 两队分数对应加减
N
Y 两队分数对换 队伍号交换
篮球赛计时计分器
篮球赛计时计分器系统图
时间设置按键 分数调整按键
LCD1602显示
暂停启动 AT89C52 复位 晶振 蜂鸣器 LED
系统说明
本系统采用AT89C52作为本设计的核心元件,利用LCD1602 作为显示器元件,显示的你内容包过队伍好、时间倒计时、两队的分 数记录,期中时间设置最长为99分钟,为半场时间,基本已经满足蓝 球赛的时间要求。分数范围为0~999分,也满足计分的需求。 时间设计在开始前设置,设置完按启动键完成,并开始倒计 时,分数调整为4个按键,在比赛的任何时刻能对两队分数的加减。 时间倒计时完毕,系统通过扬声器发出报警,时间为十秒, 同时LED闪烁10次。半场结束后,再对时间进行设置,按下启动后, 连队分数对换,队伍号也进行对换,时间进行倒计时!

单片机课程设计—篮球计时计分器

单片机课程设计—篮球计时计分器

单片机课程设计—篮球计时计分器篮球作为一项广受欢迎的运动,其比赛的公平性和准确性至关重要。

而在篮球比赛中,计时计分器是不可或缺的设备,它能够为比赛提供准确的时间和比分信息,保障比赛的顺利进行。

本次单片机课程设计的任务就是设计一款篮球计时计分器,通过运用单片机的知识和技能,实现篮球比赛计时和计分的功能。

一、设计要求1、能够实现比赛时间的计时功能,包括 24 秒进攻时间、每节 10分钟的比赛时间以及加时赛时间。

2、能够实时显示比分,包括主队和客队的得分。

3、具备暂停、复位等功能,以应对比赛中的各种情况。

4、能够通过按键进行操作,简单易用。

二、系统方案设计1、硬件设计单片机选型:选择一款性能稳定、资源丰富的单片机,如STC89C52 单片机。

显示模块:采用数码管显示时间和比分,数码管具有亮度高、显示清晰、成本低等优点。

按键模块:使用独立按键实现计时、计分、暂停、复位等操作。

时钟模块:采用外部时钟芯片,为系统提供准确的时钟信号。

2、软件设计编程语言:选择 C 语言进行编程,C 语言具有语法简洁、可移植性好等优点。

程序流程:主程序负责系统的初始化、按键扫描、时间和比分的更新以及显示。

中断服务程序负责处理时钟中断,实现计时功能。

三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。

晶振电路为单片机提供时钟信号,复位电路用于系统的初始化。

2、显示电路采用共阳极数码管,通过三极管驱动数码管的段选和位选信号,实现时间和比分的显示。

3、按键电路独立按键分别连接到单片机的 I/O 口,通过检测按键的状态来执行相应的操作。

4、时钟电路采用 DS1302 时钟芯片,通过单片机的 I/O 口与时钟芯片进行通信,获取准确的时间信息。

四、软件程序设计1、主程序首先进行系统初始化,包括单片机端口设置、数码管显示初始化、时钟芯片初始化等。

然后进入主循环,不断扫描按键状态,根据按键执行相应的操作,同时更新时间和比分,并将其显示在数码管上。

51单片机篮球比赛计分计时器的设计

51单片机篮球比赛计分计时器的设计

课程设计任务书篮球比赛计分器设计摘要:篮球比赛计分器的设计是为了解决篮球比赛时计分与计时准确方便和灵活适用的问题而提出的,我组设计的篮球比赛计分器硬件部分主要利用AT89S52单片机完成了计分与计时的功能,并通过两个四位七段数码管分别用来显示比赛时间和甲、乙比赛双方的分数,软件部分利用Keil C51软件来进行编译,通过Proteus软件进行仿真,最后将生成的HEX文件烧入到单片机芯片中。

采用该系统可根据实际情况进行时间的准确显示和比分修改,具有低功耗、可靠性强、安全性高以及低成本等特点,主要不足之处在于计时显示部分有时会出现显示不稳定的情况,基本满足了本次设计要求。

关键词:单片机;篮球赛计分;篮球赛计时;数码管;按键;下载线目录1设计背景 (1)2方案论证 (2)2.1共阳极数码管静态显示 (2)2.2共阳极数码管动态显示 (2)2.3两种方案的对比 (3)3方案实施 (4)3.1系统总体方案设计 (4)3.2硬件电路设计 (4)3.2.1系统控制中心单片机 AT89S52 (4)3.2.2系统电源模块 (6)3.2.3按键控制键盘模块 (7)3.2.4晶振模块 (8)3.2.5复位电路模块 (8)3.2.6报警电路模块 (9)3.2.7 LED显示模块 (9)3.3系统软件设计 (11)3.3.1软件设计环境介绍 (11)3.3.2软件设计方案 (11)3.4系统调试 (14)3.4.1软件调试及仿真 (14)3.4.2硬件调试 (14)4结果与结论 (15)5收获与致谢 (16)6参考文献 (17)7附件 (18)7.1元器件清单 (18)7.2硬件总电路图 (19)7.3实物图 (19)7.4源程序代码 (20)1. 设计背景体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。

根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类得分类等多种类型。

篮球计时记分操作说明

篮球计时记分操作说明

篮球计时记分操作说明一、引言篮球比赛中的计时记分系统是比赛的核心组成部分,对于保证比赛的公正性和准确性至关重要。

本文将详细阐述篮球计时记分系统的操作流程和注意事项,帮助相关工作人员更好地理解和掌握该系统。

二、操作流程1、开场准备:在比赛开始前,计时员需要检查记分板和计时器是否工作正常,确认比分初始值为0。

同时,要与裁判员确认比赛时间规则和暂停次数。

2、比赛开始:当裁判员吹响比赛开始的哨声时,计时员需要按下计时器开始按钮,让比赛计时开始。

3、计时操作:每场比赛有四个计时器,分别对应四个节。

在每个节的比赛开始和结束时,计时员需要手动按下开始和结束按钮。

同时,裁判员会在每个节开始和结束时吹哨,提供清晰的时间点。

4、暂停操作:当球队请求暂停时,计时员需要记录暂停次数,并在记分板上更新比分。

同时,需要与裁判员确认暂停时间是否超出规定时间。

5、比赛结束:当裁判员吹响比赛结束的哨声时,计时员需要立即停止计时器,并确认比赛时间是否超出规定时间。

如果比赛时间未超出规定时间,则比赛结束;否则,需要进行加时赛。

6、加时赛操作:如果需要进行加时赛,计时员需要在记分板上更新比分,并重新开始计时器。

加时赛的规则和正常比赛相同。

7、赛后整理:比赛结束后,计时员需要将比赛数据整理保存,以便后续分析和统计。

三、注意事项1、准确性:计时员需要时刻保持注意力集中,确保准确记录比赛时间和比分变化。

2、公正性:在处理暂停、犯规等情况下,计时员需要遵循裁判员的判断,保证比赛的公正性。

3、及时性:计时员需要在规定时间内完成各项操作,如暂停记录、比分更新等,确保比赛的顺利进行。

4、稳定性:在比赛过程中,计时员需要保持稳定的心态,应对突发情况,如设备故障、比分争议等。

5、培训与沟通:计时员需要定期参加培训,熟悉比赛规则和操作流程。

同时,要加强与裁判员和其他工作人员的沟通协作,确保比赛过程的顺利进行。

6、预防与处理:在比赛前,计时员需要对设备进行仔细检查,预防可能出现的问题。

篮球比赛计时计分器设计方案

篮球比赛计时计分器设计方案

篮球比赛计时计分器设计方案
设计目的:本篮球比赛计时计分器的设计旨在提供一个简单易用,精准可靠的计时计分器,用于篮球比赛计时计分的目的。

设计原理:本计时计分器主要采用数码显示技术,通过显示器来显示比分、时间,以及犯规次数等信息。

并且计时计分的过程中,系统主要通过微处理器控制并实现自动计时计分,在比赛过程中极大地方便了裁判员的工作。

特点:本计时计分器的特点如下:
1. 精准可靠:系统采用稳定的数码显示技术,让计分器更加精准,可靠性更高。

2. 显示直观:通过系统显示器,直观的显示比赛进行的时间、分数以及犯规次数等信息,让人一目了然。

3. 自动计分:本系统可以通过微处理器实现自动计分,极大地降低了裁判员的工作难度,提高了比赛的公正性和效率。

4. 强大的扩展性:本系统支持接入外部闪烁灯控制模块,可以扩展到运动场馆大屏幕等监控设备上。

使用方法:本计时计分器使用起来非常简单,只需要按照篮球比赛规则操作即可。

在比赛开始前,先设置好参赛队伍和比赛时间等相关参数,然后开启计时计分器即可开始比赛,比赛进程中可以根据实际情况进行犯规次数以及加时赛等相关操作。

比赛结束后,系统会自动停止计时,并显示双方比赛成绩。

总结:本篮球比赛计时计分器的设计让比赛计时计分更加简单轻松,不仅提高了比赛的效率,还提高了比赛的公正性和监管能力。

未来,我们还将进一步完善计时计分器的功能,加入更加智能化的管理系统,为体育竞技提供更加先进的技术支持。

篮球比赛计分器设计

篮球比赛计分器设计

WORD格式可以任意编辑单片机课程设计报告篮球比赛计分器设计姓名:学号:专业班级:指导老师:所在学院:年月日摘要本设计是采用单片机AT89C52作为本设计的核心元件。

利用7段共阴LED作为显示器件。

在此设计中共接入了8个7段共阴LED显示器,其中4个用于记录AB队的分数,每队2个LED显示器显示范围可达到0~99分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。

赛程计时采用倒计时方式。

即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。

计时范围可达到0~99分钟,也完全满足实际赛程的需要。

当比赛队A对得1分时,按下A+1键;得2分时,按下A+2键;得3分时,按下A+3键;当加分出现错误时,可以按A-1键减1分,可以达到调整分数的作用;依照同样的方法可以记录B对的得分。

采用单片机控制使这个系统按键操作使用简洁,LED显示,安装方便。

解决了篮球比赛计分器的安装问题,节约了线材,适合在各种规模的体育场馆使用,完全可以代替传统的用钟表进行计时的方法,当然稍加改动也可以用于其他球类比赛,是体育器材向智能化发展的一个实例。

本设计可以实现:1、能记录整个赛程的比赛时间,并能修改比赛时间2、能随时刷新甲、乙两队在整个过程中的比分3、中场交换比赛场地时,能交换甲、乙两队比分的位置4、比赛结束时,能发出报警声,等功能目录1概述31.1设计意义 (3)1.2设计内容 (4)1.3设计任务和要求 (4)2系统总体方案及硬件设计42.1AT89C52简介 (4)2.2数码管显示原理 (6)2.3总体方案: (7)2.4硬件原理图: (8)3软件设计73.1主流程图: (7)4.PROTEUS软件仿真85、课程设计体会10附1:源程序代码11附2系统原理图211概述1.1设计意义体育比赛计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。

篮球比赛计时计分器

篮球比赛计时计分器

篮球比赛计时计分器篮球比赛计时计分器是一种用于帮助裁判员和观众准确记录篮球比赛时间和比分的设备。

它在篮球比赛中起着至关重要的作用,不仅能够提供准确的时间和比分数据,还能够帮助裁判员控制比赛的节奏和做出正确的判决。

一、计时计分器的基本功能篮球比赛计时计分器通常具有以下基本功能:1. 比分显示功能:计分器能够显示双方队伍的得分情况,包括总分和当前分数。

2. 时间显示功能:计分器能够显示比赛的剩余时间,包括总时间和当前时间。

3. 比赛阶段显示功能:计分器能够显示比赛的阶段,如四节制比赛中的第一节、第二节等。

4. 比赛控制功能:计时计分器可根据裁判员的操作进行比赛控制,例如开始/暂停比赛、结束比赛等。

二、计时计分器的特殊功能除了基本功能外,一些高级的篮球比赛计时计分器还具有一些特殊功能,以满足不同比赛场景的需求:1. 分段计时功能:对于某些需要分段计时的比赛,计分器可以提供定时器,用于记录比赛各个阶段的时间,如篮球训练中的分组练习。

2. 超时计时功能:在篮球比赛中,每队通常有若干次暂停机会,计分器可以倒计时并提醒裁判员和队伍剩余暂停次数。

3. 预设比赛时间功能:有些比赛需要设定固定的比赛时间,计分器可以接收设定的比赛时间,并在比赛结束时自动停止计时。

4. 串口输出功能:一些高级计分器还可以通过串口输出比分和时间数据,以便于其他系统进行数据采集或显示。

三、计时计分器的使用注意事项为了确保计时计分器的正常运行和数据准确性,以下是一些使用注意事项:1. 操作规范:裁判员和工作人员应该熟悉计分器的使用方法,并按照规范进行操作,避免误操作导致计分器故障或数据错误。

2. 维护保养:计分器需要定期进行维护保养,包括清洁、更换电池等,以保证其长期稳定运行。

3. 备用计分器:在重要比赛或关键场合,应准备备用计分器,以防止计分器故障影响比赛进行。

4. 安全防护:计分器应放置在安全可靠的位置,避免因外力或触碰而造成损坏或数据错误。

篮球电子计分器操作方法

篮球电子计分器操作方法

篮球电子计分器操作方法篮球电子计分器是一种用于计分和计时的设备,广泛应用于篮球比赛中。

操作篮球电子计分器可以帮助裁判、教练和观众准确记录比赛进展和结果。

下面将详细介绍篮球电子计分器的操作方法。

1. 打开电子计分器大多数篮球电子计分器都有一个开关按钮,通常位于设备的一侧或底部。

按下开关按钮,电子计分器的屏幕将亮起,并显示默认的初始数字。

2. 设置比赛时间在大多数篮球比赛中,比赛时间一般为四个十分钟的节,每个节之间还包括两分钟的休息时间。

操作电子计分器设置比赛时间的方法通常如下:- 按下或旋转计时器上的"分钟/秒钟" 按钮或旋钮,以调整比赛时间。

- 按下或旋转计时器上的"加号" 和"减号" 按钮或旋钮,以调整时间的分钟或秒钟。

一般来说,比赛开始时将时间设置为40分钟(4个十分钟的节),每个节之间的休息时间设置为2分钟。

当倒计时开始,屏幕上会显示剩余比赛时间。

3. 记录比分篮球电子计分器通常具有两个用于记录比分的屏幕:主队得分屏幕和客队得分屏幕。

记录比分的操作方法如下:- 按下主队得分屏幕上的加减按钮,可以增加或减少主队的得分。

- 按下客队得分屏幕上的加减按钮,可以增加或减少客队的得分。

比分屏幕通常显示两个数字,一个用于表示主队的得分,另一个用于表示客队的得分。

当按下加分按钮时,屏幕上的数字会增加对应的分数。

当按下减分按钮时,屏幕上的数字会减少对应的分数。

4. 控制暂停和恢复比赛篮球比赛中,通常有各种原因需要暂停比赛,比如叫暂停、换人或其他情况。

电子计分器通常具有暂停和恢复比赛的功能,操作方法如下:- 在电子计分器上找到暂停按钮,按下该按钮可以停止比赛计时,并将屏幕上的时间暂停在当前秒数。

- 按下恢复按钮,可以恢复比赛计时,使屏幕上的时间继续递减。

5. 重置计时器和比分比赛结束后,需要将计时器和比分重置为初始状态,准备下一场比赛。

操作方法通常如下:- 按下电子计分器上的重置按钮,可以将比赛时间设置为初始时间,将比分归零。

LCD1602篮球比赛计时计分器

LCD1602篮球比赛计时计分器

本科毕业设计题目LCD1602篮球比赛计时计分器学院管理科学与工程学院专业电子信息工程班级 081信工(2>班学号 *********姓名孙贺同指导老师谢道平老师2018 年 6 月摘要本课题设计采用单片机AT89C51为核心,设计出篮球计分计时系统,可以实现单节比赛12分钟倒计时、24秒进攻时间倒计时、开始/暂停倒计时、改变节次、单节结束报警、两队比分分别加1分、加2分、加3分等各种显示效果。

b5E2RGbCAP本系统利用LCD1602液晶显示器作为显示器件,显示节次、12分钟倒计时、24秒倒计时、主客队双方比分,通过3*3矩阵键盘来控制计时器和计数器工作,单节比赛结束时LED发光二极管闪烁报警。

p1EanqFDPw该设计采用LCD1602液晶显示器,因为其微功耗、小体积、使用灵活等诸多优点在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,通过仿真基本上实现了上述功能,操作简单,性能稳定,符合一般篮球计分器的工作要求。

DXDiTa9E3d关键词:AT89C51;矩阵键盘;LCD1602;计数器;计时器AbstractThis design project using AT89C51 microcontroller as the core, design basketball scoring timing system, countdown to a single game of 12 minutes, 24 seconds shot clock countdown, start / pause and change the section, a single end alarm, the teams were, respectively,add 1 point, 2 points, plus 3 grading a variety of display.RTCrpUDGiTThis system uses the LCD1602 LCD monitor as a display, Display Session, 12 minutes 24 seconds of the countdown, countdown to the main visiting team score by 3 * 3 matrix keyboard to control the timer and counter, LED blinks when a single end of the game alarm.5PCzVD7HxAThe design uses LCD1602 LCD display to get more and more widely in the pocket-sized instrument and low-power applications because of its micro-power, small size, the use of flexible and many other advantages through simulation basically realize the above functions, the operation simple, stable performance, in line with the general basketball scoring requirements.jLBHrnAILgKey word: AT89C51;Matrix Keyboard;LCD1602;Counter;TimerxHAQX74J0X目录1引言11.1 本课题选取的目的及意义11.2 本系统的主要研究内容22系统分析32.1 系统构成32.2 系统工作原理33系统硬件设计43.1 系统硬件总体设计43.2 AT89C51单片机53.2.1 AT89C51简介53.2.2 主要特性63.2.3 管脚说明73.2.4 芯片擦出93.2.5 空闲节电模式93.2.6 掉电模式103.2.7 程序储存器的加密113.2.8 AT89C51的极限参数113.3 LCD1602液晶显示模块113.3.1显示器介绍113.43*3矩阵键盘模块153.5时钟电路模块163.6复位电路模块173.7 元件清单174系统软件设计185Protues ISIS软件仿真22 5.1 Proteus运行流程22 5.2 Proteus功能仿真22 5.3 Proteus仿真结果23 6结论24参考文献25致谢26附录271引言进入21世纪,伴随着电子、信息技术的应用与迅速普及,人们对电子技术的要求越来越高。

基于单片机的篮球比赛计分器设计

基于单片机的篮球比赛计分器设计

基于单片机的篮球比赛计分器设计篮球比赛计分器是一种基于单片机的设备,用于记录和显示篮球比赛的比分、时间和犯规次数等信息。

本文将对基于单片机的篮球比赛计分器设计进行详细介绍。

一、设计背景和需求分析篮球比赛计分器是一种必备设备,用于记录篮球比赛的比分,时间和犯规次数等信息。

传统的篮球比赛计分器通常是由人工进行计分,存在计分错误的可能性。

为了提高计分准确性和效率,我们需要设计一种基于单片机的篮球比赛计分器。

设计需求如下:1.计分准确:确保每次计分都准确无误。

2.显示清晰:提供清晰易读的比分和时间显示。

3.操作简便:方便使用者进行计分的增减操作。

4.多功能:能够记录比赛时间、球队比分以及犯规次数等信息。

二、硬件设计1.显示屏:选择适合篮球比赛计分显示的大屏幕液晶显示器,确保信息显示清楚易读。

3.蜂鸣器:用于发出声音提示,例如在比赛结束时发出音乐。

三、软件设计1.初始化:对计分器进行初始化设置,例如重置比分、时间和犯规次数等信息。

2.计分控制:根据按键输入进行计分的增加或减少,并更新相应的显示。

3.时间控制:设置比赛时间,并进行倒计时操作,同时显示剩余时间。

4.比分显示:实时显示比分,确保显示清晰易读。

5.犯规次数:记录每个球队的犯规次数,并进行显示。

6.比赛结束:在比赛结束时,发出声音提示,并清零比分、时间和犯规次数。

四、功能拓展1.数据存储:添加存储器,用于记录比赛结果和相关数据,方便后续查看和分析。

2.通信功能:添加通信模块,可以与其他设备进行数据传输和控制,方便进行联网比赛。

五、设计实施1.硬件搭建:按照硬件设计要求进行电路搭建和连接,确保各个硬件模块正常工作。

2.软件编程:根据软件设计需求,编写单片机的程序代码,实现功能。

3.调试测试:将程序烧录到单片机中,进行调试测试,确保计分器正常运行并满足设计要求。

4.生产制造:在完成实施和测试后,进行批量生产制造,以满足市场需求。

六、总结基于单片机的篮球比赛计分器是一种高效、准确、易用的计分设备,通过对比分、时间和犯规次数等信息的实时记录和显示,提高了篮球比赛的计分准确性和效率。

篮球比赛计时计分器

篮球比赛计时计分器

毕业设计(论文)篮球比赛计时计分器设计学号:08100000姓名:木云三告专业:自动化系别:电子信息与控制工程系指导教师:郭彬讲师二○一二年六月摘要单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用。

目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位,许多用单片机做控制的球赛计时计分系统也应运而生,如:用单片机控制LED七段显示器计时计分器等。

篮球计时计分器以单片机为核心,由计时器、计分器、综合控制器等组成。

系统采用模块化设计,主体分为计时显示模块、计分显示模块、定时报警、按键控制键盘模块。

每个模块的程序结构简单、任务明确。

程序可读性好,对程序的修改可局部进行,其他部分可保持不变。

编程后利用Keil C51软件来进行编译,采用Proteus软件仿真,检验功能是否能够正常实现。

本设计中系统硬件电路主要由以下几个部分组成:单片机AT89C52、计时电路、计分电路、报警电路和按键开关。

本次设计用由AT89C52编程控制LED七段数码管作显示的球赛计时计分系统。

该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩以及赛后成绩暂存等功能。

它具有价格低廉、性能稳定、操作方便并且易于携带等特点,广泛适合各类学校或者小型团体作为赛程计时计分。

关键词:单片机;篮球赛计时;篮球赛计分;显示器ABSTRACTSCM since the nineteen seventies since, with extremely high price and more attention, so the application is very wide, development is very rapid. As the single-chip high integration, strong function, good versatility, especially it has the advantages of small volume, light weight, low energy consumption, low price, high reliability, strong anti interference ability and convenient use and other unique advantages, so that the chip has been promoted rapidly application. Has now become a measurement control in the application system of optimization models and new electronic product key parts, many do MCU control of match time scoring system also emerge as the times require, such as: using MCU to control LED seven segment display time scoring device. Time basketball scoring device with single chip computer as the core, by the timer, scoring device, integrated controller.The system adopts modular design, main body is divided into a timing display module, display module, timing alarm, scoring keys to control the keyboard module. Each module of the program is simple in structure, clear mission. Program readability, modification of programs can be local, the other part can be kept constant. After programming using Keil C51software to compile, use Proteus software simulation, test function to normal implementation. The design of the system hardware circuit is mainly composed of the following components: SCM AT89C52, a timing circuit, scoring circuit, the alarm circuit and the key switch.The design used by the AT89C52 programming control of LED seven digital tube display game timing and scoring system. The system has a race timing settings, schedule time to pause, timely refresh a and B both score and the game after the temporary success function. It has the advantages of low cost, stable performance, convenient operation and easy portability and other characteristics, are widely suitable for all types of schools or small groups as schedule time scoring.Key words: single chip timing; basketball; basketball score ;display目录摘要 (i)ABSTRACT ...................................................................................................................... i i 目录 ............................................................................................................................. i ii 第1章绪论 .. (1)1.1国内外的研究现状分析: (1)1.2设计目的: (1)1.3设计内容 (2)第2章系统硬件介绍 (3)2.1 MCS-51单片机简述 (3)2.1.1单片机AT89C52简介 (3)2.1.2 主要特性: (4)2.1.3 管脚说明: (4)2.1.4 中断 (6)2.1.5 Flash存储器的编程 (7)2.1.6 空闲节电模式 (7)2.1.7 掉电模式 (8)2.1.8 程序储存器的加密 (9)2.1.9 AT89C52的极限参数 (9)2.2 报警器 (9)2.2.1 报警器的分类 (9)2.2.2 报警器工作原理 (9)2.3 芯片74HC154 (9)2.3.1 简介 (10)2.3.2 引脚说明 (10)2.4 RESPACK—8 (10)2.5 显示器及接口 (11)2.5.1 显示器介绍 (11)2.5.2结构与原理 (11)2.5.3 LED显示器显示方式 (13)第3章电路方案设计 (16)3.1 功能控制电路 (16)3.2 时钟产生方式 (17)3.3 复位电路 (17)3.4 显示电路 (18)3.5电路总图 (19)第4章软件设计与流程图 (20)4.1 软件keil的简介与应用 (20)4.2 部分程序设计 (21)4.2.1 计时程序 (21)4.2.2 计分程序 (22)4.2.3 程序总流程图 (22)第五章仿真 (24)5.1 Proteus简介 (24)5.2 Proteus功能特点 (24)5.3 proteus的应用 (25)5.4 电路仿真 (26)结论 (27)致谢 (28)参考文献 (29)附录一 (30)附录二 (33)附录三 (41)第1章绪论1.1国内外的研究现状分析单片机自面世以来,以其体积小、价格低、功能强、可靠性高等特点倍受人们的青睐。

比赛计时器的用法

比赛计时器的用法

比赛计时器的用法
比赛计时器是一种用来计时比赛时间的设备,广泛应用于各种体育比赛、竞赛、考试等活动中。

其主要作用是准确、清晰、可靠地显示比赛剩余时间,以便参赛者和观众能够清楚地了解比赛进程和时间。

比赛计时器的用法可以分为以下几个方面:
1.设定比赛时间。

在比赛开始前,需要根据比赛规则和要求设置比赛时间,包括比赛总时长和各个阶段的时间。

设定完成后,可以通过比赛计时器进行倒计时。

2.控制比赛时间。

在比赛过程中,比赛计时器可以精确控制比赛时间的开始、暂停、继续、重置等操作,以便维护比赛的公平性和规范性。

3.提醒比赛时间。

比赛计时器可以通过声音、震动等方式提醒参赛者和观众比赛时间的变化,如比赛即将结束、下一阶段即将开始等。

4.显示比赛进程。

比赛计时器可以显示比赛进程和剩余时间,包括总时间、已用时间、剩余时间、当前阶段、得分情况等,以便参赛者和观众了解比赛情况。

总之,比赛计时器是体育比赛和竞赛中不可或缺的一项设备,其使用方法简单、功能强大,能够帮助参赛者和观众更好地把握比赛进程和时间,提高比赛的公平性和规范性。

- 1 -。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四川师范大学成都学院比赛用计时计分器设计—电子线路实现训练学生姓名学号所在系通信系专业名称通信工程班级指导教师四川师范大学成都学院二○一二年六月目录一、设计目的 (2)二、设计要求 (2)三、设计任务和内容 (2)1、时钟的选择 (2)2、显示器的选择 (2)3、分数调整 (3)四、原理分析 (3)1、89C52简介 (3)2、时钟电路模块 (4)3、显示模块 (5)4、复位电路模块 (5)5、系统电源设计 (6)6、ISP下载线接口 (6)7、键盘接口 (7)8、系统硬件电路总电路图 (7)五、系统框图和程序流程图 (8)六、设计总结 (9)参考文献 (9)附录---电路图和PCB图 (10)前言体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。

根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类得分类等多种类型。

篮球比赛是根据参赛队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。

篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。

由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。

世界各大电气厂家、测控技术企业、机电行业,竞相把单片机应用于产品更新,作为实现数字化、智能化的核心部件。

本篇设计篮球比赛计时计分器就是以单片机为核心的计时计分系统。

一、设计目的使我们进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤,掌握了电子绘图软件Protel及仿真软件Proteus的使用方法,键盘和显示器在单片机控制系统中的应用以及撰写毕业设计论文的方法。

此次设计更使我们对理论知识有了更进一步的掌握,锻炼了我们的动手能力,同时也让我们懂得了理论与实际相结合的意义。

为以后的学习和工作提供了宝贵的经验。

二、设计要求←能记录整个赛程的比赛时间,并能修改比赛时间、暂停比赛时←能随时刷新甲、乙两队在整个赛程中的比分;←比赛时间结束时,能发出报警指令←使用LCD作为显示设备;←实现闹钟功能。

←画出完整的电路原理图(包含电源部分)和PCB板图。

三、设计任务和内容设计一个适用于多种规格比赛的比赛计时计分器。

1、时钟的选择;方案1:采用定时器方案2:采用专用时钟芯片DS1302、方案3:采用专用时钟芯PCF8593单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点。

综上所述,最终选择了单片机自带的定时器来实现。

2、显示器的选择;方案1:采用数码管显示器、方案2:采用LED显示器方案3:采用CRT液晶显示器与传统的数码管显示器相比更节省单片机的I/O空间,减少系统设计的复杂程度。

此外,液晶显示具有稳定、功耗小等特点,特别适用与手持设备,而且液晶显示器内部集成的有存储芯片,能够保持当前数据,避免了系统CPU频繁刷新电路所做的无用功,进一步减少系统能量的开销和软件设计时的复杂度。

综上所述,最终选择了LCD来显示时间。

3、分数调整。

方案1:采用独立按键来调整分数方案2:采用矩阵键盘来调整分数方案2:采用万能遥控板来调整分数为了配合计时计分器校正调整比分,我们特定在本设计中设立了4个按键,通过按键的功能实现启动、暂停和调整分数等功能。

采用单片机控制使这个系统按键操作使用简洁,低功耗,安装方便。

综上所述,最终选择了采用独立按键来调整时间。

四、原理分析比赛计时计分器主要包括单片机控制系统、计时计分显示模块、定时报警、按键控制键盘模块和供电电源模块。

通过这几个模块的协调工作就可以完成相应的计时计分控制和显示功能。

模块框图如图1所示。

1、89C52简介图 1 89C52单片机引脚图89C52是一个低功耗、高性能8位单片机。

器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。

89C52单片机引脚说明如下:Vcc:电源端,接+5V。

Vss:接地端。

XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚为外部时钟的输入端。

XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚必须悬空。

地址锁存允许信号ALE:系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。

此外,ALE是以六分之一晶振频率的固定频率输出的正脉冲,可作为外部时钟或外部定时脉冲使用。

PSEN :PSEN是读外部程序存储器的选通信号,低电平有效。

访问程序存储器控制信号EA:当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令。

当为低电平时,CPU只执行片外程序存储器指令。

复位信号RST:该信号高电平有效,在输入端保持两个机器周期的高电平后,就可以完成复位操作。

P0口(P0.0~P0.7):该端口为漏极开路的8位准双向I/O口,它为8位地址线和8位数据线的复用端口,使用时需接外部上拉电阻。

在访问外部程序存储器时,它作存储器的低8位地址线。

P1口(P1.0~P1.7):它是一个内部带上拉电阻的8位准双向I/O口,作为输入口使用时,应先向其内部锁存器写1。

P2口(P2.0~P2.7):它为一个内部带上拉电阻的8位准双向I/O口,作为输入口时同样需先向其内部锁存器写1。

在访问外部程序存储器时,它作存储器的高8位地址线。

P3口(P3.0~P3.7):P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有第二引脚功能,2、时钟电路模块图2 晶振电路时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。

3、显示模块LCD1602图3 1602液晶显示器连接图4、复位电路模块图 4 复位电路复位是单片机的初始化操作,其主要功能是初始化单片机,使单片机从0000H单元开始执行程序。

除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。

RST引脚是复位信号的输入端。

复位电路在这里采用的是上电加按键复位电路形式。

5、系统电源设计图5 系统电源为51系列单片机系统提供的电源为稳定的5V直流电源。

6、ISP下载线接口图6 ISP下载线接口用于提供单片机程序下载7、键盘接口图7 键盘接口本系统设计除复位按键外共配置了4个独立键盘来实现系统功能的控制。

4个独立键盘分别为s1、s2、s3、s4,分别连接到单片机的P0口的低四位。

S1控制暂停和开始,S2和S3控制B和A的加分情况,S4到时间点时按键打开蜂鸣器。

8、系统硬件电路总电路图图8 系统总电路图五、系统框图和程序流程图图9 系统框图图10 主程序流程图六、设计总结本次单片机课程设计我选择了“比赛计时计分器”这一题目,通过课程设计可以使我们进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤;通过利用MCS-51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法;通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件Proteus 的使用方法;掌握键盘和显示器在的单片机控制系统中的应用和掌握撰写课程设计报告的方法。

我选择了设计一个用于赛场的篮球计时计分器,可以代替球场上的人工计时计分,实现带电子显示、有比赛结束报警等功能的精确计时计分器。

在该篮球计时计分器设计中不仅用到了单片机定时器中断系统,还用到了单片机4个I/O口。

其中的按键输入和数码管显示模块都是单片机设计的最常用、最普通的模块。

既巩固了以前学的单片机课程又体验了单片机编程应用的过程。

这次课程设计让我明白:理论必须和实际结合才有威力,知识必须通过应用才能实现其价值!所学的东西最终是要面向应用的,是为了在以后的工作中能够更好的应用,此时的知识积累是为以后的工作做好坚实的基础。

参考文献[1] 沈红卫.基于单片机的智能系统设计与实现[M]. 北京:电子工业出版社,2009.6.12-23[2] 戴仙金.51单片机及其C语言程序开发实例[M]. 北京:清华大学出版社,2008.2.189-193[3] 牛昱光.单片机原理与接口技术[M]. 北京:电子工业出版社,2009.12.160-173[4] 朱月秀.单片机原理与应用[M]. 北京:北京科学出版社,2007.8.40-50[5] 康光华.电子技术基础[M].北京:高等教育出版社,2006.1.486-500[6] 李东生. Protel99 SE电路设计技术入门与应用[M]. 北京:电子工业出版社,2002附录 ---电路图----PCB图。

相关文档
最新文档