1、复位电路;时钟电路第1章绪论此装置利用单片机AT89C51完成了记分的功能。本文详细地介绍了系统硬件与软件的设计过程,采用该装置可根据实际情况进行比分修改和显示,具有低功耗,可靠性,安全性以及低成本等特点。体育比赛记分系统是对体育比赛过程中所产生的比分进行快速采集记录,加工处理,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的记分系统包括测量类,评分类,命中类,制胜类,得分类等多种类型。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的记分系统是一种得分类型的系统。篮球比赛记分系统由记分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮
2、球比赛记分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球记分器就是以单片机为核心的计分系统。本系统是采用单片机AT89C51作为核心元件。利用7段共阴LED作为显示器件。在此设计中共接入了2个4联7段
3、共阴LED显示器,其中1个用于记录红队的分数,1个用于记录蓝队的分数。第2章方案设计2.1系统功能要求两队的比分由五个键来控制,其中KEY0用以切换当前比分球队,KEY1,KEY2,KEY3,KEY4分别用来加1分,加2分,加3分和减1分。当比赛开始时先按下复位键使系统恢复初始状态,然后根据比赛情况开始对球队加分。2.2整体方案为了完成上述功能要求,篮球比赛记分器系统整体结构如图2-1所示包括:AT89C51、时钟及复位电路、按键电路、及LED显示器。该电路的原理框图,如图2-1所示:图2-1电路原理框图(1)显示方案方案一:静态显示就是当CPU将要显示的字或字段码送到输出口,显示器就可以显示
4、出所要显示的字符,如果CPU不去改写它,它将一直保持下去;静态显示硬件开销大,电路复杂,信息刷新速度慢,只适合显示位数较少的场合。方案二:动态显示就是在显示时,单片机控制电路连续不断刷新输出显示数据使各数码管一位一位地轮流点亮显示器地各个位。对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较复杂。动态显示硬件连接简单,信息刷新速度快,节省I/O接口。由于本次设计要求对比分进行时实检测与控制,所以选择的是方案二。(2)键盘方案独立式键盘的各个按键之间是相互独立的每一个按键连接一根I/O口线。独立式键盘电路简单,软件设计也比较方便,但由于每一个按键均需一根I/O口线,当键
5、盘按键数量较多时需的I/O口线较多,应此独立式键盘只适合于按键较少的应用场合。采用44行列式键盘,它表示有4根行线和4根列线,在每根行线和列线的交叉点上有一个按键,组成了一个有16个按键的矩阵键盘。在篮球比赛记分器设计中KEY0为选择开关键,KEY1,KEY2,KEY3为加法键,KEY4为减法键。由于此次设计只需要用5个按键,所以选择的是方案一。第3章硬件设计3.1单片机系统电路设计单片机就是在一块硅片上集成了中央处理器(CPU)存储器和输入/输出接口(并行I/O串行通信口)振荡电路,计数器等电路的一块集成电路,这样的一块集成电路具有一台计算机的基本功能,因而被称为单片微型计算机,简称单片机(
6、MCU)。单片机的种类很多。Intel公司首先于1976年6月推出了MCS-48系列单片机。世界上一些著名的电子器件公司都开发有自己的单片机产品。由于单片机具有体积小、功能强、成本低、功耗小等优点,所以在工业控制、智能仪表、通信技术、信号处理及家用电器产品中广泛应用。现在的单片机从功能上已突破微型计算机的传统功能,向着以单片机为核心,外接各种控制单元的专用单片机方向发展。在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图3-1中电容器C1和C2的作用是稳定频率和快速起振,电容值在530pF,典型值为3
7、0pF。晶振CYS的振荡频率范围在1.2 MHz12 MHz间选择,典型值为12 MHz和6MHz。3.1.1时钟电路单片机时钟电路图如图3-1所示:图3-1单片机时钟电路图XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.1.2复位电路单片机的复位操作使单片机经入初始化状态。初始化后,程序计数器PC=0000H,所以程序从0000H地址单元开始执行。单片机启动后,片
8、内RAM为随机值,运行中的复位操作不改变片内RAM的内容。复位电路就是在RST端(9脚)外接的电路,目的是使单片机上电开始工作时,内部电路从初始状态开始工作,或者在工作中人为让单片机重新从初始状态开始工作。在时钟工作的情况下,单片机的RST引脚引入高电平并保持2个机器周期以上的时间,AT89C51便能完成系统重置的各项动作,使得内部特殊功能寄存器的内容均被设置成已知状态。实际应用中,复位操作有两种基本的形式:一种是上电复位,另一种是按键复位。上电复位要求接通电源后,单片机自动实现复位操作。上电复位电路如图3-2所示:图3-2上电复位电路 图3-3按键复位电路按键复位要求在电源接通的条件下,在单
9、片机运行期间,用按钮开关操作使单片机复位。根据本设计的需要在比赛开始时按下按键P使系统恢复初使状态,实现对上场比分清0操作开始对新一场的比赛进行记分。所以在此设计中选择的是按键复位电路。3.2数据显示单元设计3.2.1显示器原理简介根据设计的特点,此显示选择的是动态LED显示。所谓动态显示就是一位一位地轮流点亮显示器地各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但由于人眼的视觉暂留效应和发光二极管熄灭时的余晖,我们看到的却是多个字符“同时”显示。显示器亮度既与点亮时的通道电流有关,也与点亮时间长短和间隔时间有关。调整电流和时间参数,
10、即可实现亮度较高稳定的显示。3.2.2显示器电路图由于单片机端口驱动能力不足,所以在P0口上加上上拉电阻提高P0口驱动能力增加数码管亮度。8位共阴显示器与AT89C51的接口逻辑图如图3-4所示:图3-4动态LED显示接口3.3按键电路键盘控制电路如图3-5所示。图3-5按键电路KEY0是选择给哪队加分,在我此次设计中P3.7口接选择开关KEY0。当KEY0右边为开路左边接通时处于给红队加分的状态,左边开路右边接通时处于给蓝队加分的状态;KEY1为加1分:每按下一次给当前球队加1分;KEY2为加2分:每按下一次给当前球队加2分;KEY3为加3分:每按下一次给当前球队加3分;KEY4为减一分:当
11、人为的不小心按错键加错分可以按此键减去加多的分数,使记分准确无误。KEY0用于选择,应是蓝队加减分状态,还是红队加减分状态,KEY1用于加1操作;KEY2用于加2操作;KEY3用于加3分操作;KEY4用于减1分操作。第4章软件设计系统的操作过程和工作过程在程序的设计过程中起着很重要的指导作用,因此在软件设计之前应首先分析篮球比赛记分器的工作流程。当比赛开始时,先判断是哪个队投球进分,该对哪个队加分,然后判断该加多少分,如果在记分过程中不小心加错分了,则按减1键减去多加的分。当比赛开始时应首先按RES键清除上场比分,使本场比分从0开始记分。如果蓝队有人进了3分球该加3分时首先按KEY0使其左边开
12、路右边接通开始给蓝队加分,然后按下KEY3给蓝队加3分,当该加2分时按下KEY2,当加1分时按下KEY1。如果不小心按错键加错分者按下KEY4减去多加的分,如果多加了1分者按1下减1分多加了2分者按两下减2分。同理,当给红队加分时首先按KEY0使其左边接通右边断开,使其处于给红队加分的状态,然后根据比赛情况对其进行加分。根据上面对工作流程的分析,系统软件可以分为以下几个工能模块:(1)键盘管理:检测键盘输入,启动系统工作。(2)显示:显示当前比分。主程序流程如图4-1所示:N显示当前比分图4-1主程序流程图第5章系统仿真测试此设计的电路在ISIS软件中进行仿真,仿真总电路如图5-1所示:图5-
13、1仿真电路图把编写好的程序放入仿真软件中,结合硬件电路进行调试与运行。在调试的过程中由于按键都具有机械抖动,所以对按键的消抖具有很重要的作用,一般消除抖动的方法有硬件消抖和软件消抖。在本设计中采用的是软件消抖,通过设定延时时间消除抖动,所以延时时间的选择不正确可能导致系统的不稳定,也就是在加分的过程中很可能因此而出错,所以在软件编程中对延时时间的选择非常重要。举例说明,描述下使用过程:例如显示当前状态为红队:蓝队=61:40。当蓝队选手投了三分球的时候按下KEY3给蓝队加3分,此时比分为61:43,当红队选手又投了两分球该加2分时,先按下开关KEY0使处于给红队加分的状态,再按下键KEY2给红
14、队加2分。结论毕业设计是我们从大学毕业生走向以后工作岗位重要的一步。从最初的选题,开题到绘图直到完成设计。期间,查找资料,老师指导,与同学交流,反复思考,每一个过程都是对自己能力的一次检验和充实。通过这次实践,我了解了单片机AT89C51的用途及工作原理,熟悉了篮球比赛记分器的设计步骤,锻炼了我的动手能力,培养了自己独立设计能力。此次毕业设计是对我专业知识和专业基础知识一次实际检验和巩固,同时也是走向工作岗位前的一次热身。在我的毕业设计中,主要是以AT89C51单片机为核心对比赛分数的检测与显示进行了简单的设计与阐述。在设计开始时对硬件电路的选择非常重要,首先查找了大量资料确定了此设计应该用动
15、态显示方案。对软件编程也是个很重要的过程,在设计过程中对延时时间的选择非常重要,如果延时时间选择不当系统可能不稳定。本次毕业设计收获很多,比如学会了查找相关资料相关标准,分析问题,但是毕业设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,对材料的不了解,等等。这次实践是对自己大学三年所学的一次大检阅,使我明白自己知识还很浅薄,虽然马上要毕业了,但是自己的求学之路还很长,以后更应该在工作中学习,努力使自己成为一个对社会有所贡献的人。致谢在大学的学习过程中,毕业设计是一个重要的环节,是我们步入社会的一次极好的演示,我十分有幸能提早把毕业设计和以后的实际工作结合起来。此次能够顺
16、利的完成我的毕业设计离不开老师和同学的帮助。经过两个多月的的忙碌,本次毕业设计已经接近尾声,作为一个专科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有指导导师的督促指导,以及同学的帮助,想要完成这个设计是难以想象的。参考文献1李全利.单片机原理及应用技术.北京:北京高等教育出版社,20012何立民.单片机高等教程.北京:北京航空航天大学出版社,20003张毅刚.MCS51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,19974潘新民.微型计算机控制技术.北京:北京人民邮电出版社,19995曹天汉.单片机原理与接口技术.北京:北京电子工业出版社,20036李广弟,朱月秀,王秀
17、山.单片机基础.北京:北京航空航天大学出版社,2001附录1总电路原理图附录2程序清单#includereg51.h#define uchar unsigned charuchar display_code=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;/uchar a11=0,1,2,3,4,5,6,7,8,9,10;uchar rbw,rsw,rgw,bbw,bsw,bgw;uchar summand_red,summand_blue;uchar flag;sfr p0=0x80;sfr p2=0xa0;sfr p3=0xb0
18、;sbit key0=p37;sbit key1=p30;sbit key2=p31;sbit key3=p32;sbit key4=p33;void delay10ms(void)unsigned char i,k;for (i=20;i0;i-)for(k=76;kk-);void delay()uchar i;for(i=0;i9;i+) delay10ms();/*void delay1()50;*/void display() delay10ms(); /p2=0xfe;p0=display_code10; p2=0xfd;p0=display_coderbw; p2=0xfb;p0
19、=display_codersw; p2=0xf7;p0=display_codergw; /p2=0xef; p2=0xdf;p0=display_codebbw; p2=0xbf;p0=display_codebsw; p2=0x7f;p0=display_codebgw; void keyscan() if (key1=0) delay(); if(flag=0) summand_red=summand_red+1; rbw=summand_red/100; rsw=(summand_red%100)/10; rgw=(summand_red%100)%10; /bbw=summand_
20、blue/100; /bsw=(summand_blue%100)/10; /bgw=(summand_blue%100)%10; display(); if(flag=1) summand_blue=summand_blue+1; /rbw=summand_red/100; /rsw=(summand_red%100)/10; /rgw=(summand_red%100)%10; bbw=summand_blue/100; bsw=(summand_blue%100)/10; bgw=(summand_blue%100)%10; display(); if (key2=0) summand_
21、red=summand_red+2; summand_blue=summand_blue+2; if (key3=0) if (key3=0) summand_red=summand_red+3; summand_blue=summand_blue+3; if (key4=0) summand_red=summand_red-1; summand_blue=summand_blue-1;void main(void)summand_red=0;summand_blue=0;while(1) if(key0=0) delay(); flag=0; keyscan();display(); else if(key0=1) flag=1;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1