基于AT89C51的篮球计时计分器设计

上传人:沈*** 文档编号:144677419 上传时间:2022-08-27 格式:DOC 页数:33 大小:234KB
收藏 版权申诉 举报 下载
基于AT89C51的篮球计时计分器设计_第1页
第1页 / 共33页
基于AT89C51的篮球计时计分器设计_第2页
第2页 / 共33页
基于AT89C51的篮球计时计分器设计_第3页
第3页 / 共33页
资源描述:

《基于AT89C51的篮球计时计分器设计》由会员分享,可在线阅读,更多相关《基于AT89C51的篮球计时计分器设计(33页珍藏版)》请在装配图网上搜索。

1、-毕 业 论 文学生*傲学 号170906039学院物理与电子电气工程学院专业电子信息科学与技术题 目基于AT89C51的篮球计时、计分器设计指导教师魏东旭 硕士/讲师2013年5月. z.-摘 要:本文中的系统主要使用AT89C51芯片作为核心元件,结合外部的显示电路及键盘控制电路,构成了一个篮球计时计分器。整体电路主要由AT89C51芯片、键盘控制、计分显示器和计时显示器四个模块组成。设计中主要使用Keil软件和Proteus软件。Keil软件主要用来对C语言程序进展编译。Proteus软件主要用来对硬件电路进展仿真。整个设计可以实现计分显示、计时显示和比赛完毕报警等功能。设计结果说明,在

2、篮球比赛中使用计时计分器可以准确的记录比分和比赛时间,也可以增加篮球比赛的欣赏性。关键词:AT89C51,篮球,计时器,计分器Abstract:In this paper, the system mainly uses AT89C51 chip as a core ponent, bination of e*ternal display circuit and keyboard control circuit, constituting a basketball timing score indicator. Overall circuit mainly consists of AT89C51

3、 chip, the keyboard control, a scoring display and a timer display. The design Mainly used Keil software and Proteus software. Keil software is mainly used to pile the C language program. Proteus software is mainly used for the simulation of hardware circuit. The design can realize scoring display,

4、timer display and alarm functions at the end of the game. Design results show that using the timer in the basketball match score indicator can accurately record the score and the game time. It can also add to the look of a basketball game.Keywords:AT89C51,basketball,timer,score indicator目录1 绪论51.1设计

5、背景51.2设计目的51.3设计要求62 系统硬件介绍62.1单片机概述62.2 AT89C51性能介绍62.3显示器介绍113 硬件电路设计123.1系统构成框图123.2振荡电路133.3计时计分LED显示器设计133.4控制键盘器154 软件设计方案164.1篮球计时计分器总流程如图174.2计时器示流程图184.3计分器显示流程图195 仿真与调试205.1软件简介205.2仿真结果21结论28参考文献29致谢30附录A 硬件电路整体图31附录B 源程序321 绪论本文介绍的是基于单片机控制的篮球计时计分器的开展和前景,论述其系统的组成框图,对各局部电路的功能及其器件进展论证,主要包括

6、计分器显示电路,计时器显示电路、键盘控制电路、振荡电路等。具体论述电路的实现方案及各局部电路使用器件。并设计软件局部的程序流程图、编写相应的程序。最后,应用Proteus软件,实现了功能仿真。1.1设计背景在日常生活中单片机将我们的生活变的更加智能,许多繁琐的系统如果改由单片机进展设计,便能使系统更简洁、更智能。给人们的生活带来更大的便捷。随着现在技术开展,智能化越来越普遍,越来越给人们的生活带来改变。单片机与串口通信的结合更多地应用到各种系统中已成一种趋势。此次设计就是单片机和篮球的完美结合。现如今篮球是一项风行全球的运动,特别是美国职业篮球的球星们更是众多球迷所喜爱的运发动。很多人很熟悉篮

7、球,也对篮球的计时计分有所了解。篮球比赛是两个队在规定的时间内得分多少来决定胜负的,这就需要有计时计分器记录下每队的得分以及所花时间。因此篮球计时计分器就应运而生。或许许多人有着用翻牌器计分的记忆,但是根据目前高水平的篮球要求,需要更准确更及时的计时计分。以便于观众能更好的欣赏比赛,能更好的感受比赛紧*的气氛。于是就有了应用AT89C51设计的篮球计时计分器。1.2设计目的当今社会随着单片机在各个领域的广泛应用,许许多多用单片机做核心的球赛计时计分系统也随之而产生,例如用AT89C51单片机控制LCD液晶显示器计时计分器,还有使用单片机控制LED七段显示器计时计分器等。本次设计采用的是由AT8

8、9C51控制LED七段数码管作显示的篮球比赛计时计分器。该系统具有比赛时间设置,比赛时间暂停,甲乙双方比分累加,甲乙双方比分切换等功能。它具有价格低廉,性能稳定,操作方便并且易于携带等特点。广泛适合各类学校或者小型团体作为赛程计时计分 1。通过本次基于C51系列篮球计时计分器的设计,可以了解、熟悉有关单片机开发设计的过程,并加深对单片机的理解和应用以及掌握单片机与外接设备连接的一些方法和技巧,这主要表现在以下一些方面:(1) 篮球赛计时计分系统包含了8051系列单片机的最小系统的构成,同时在此根底上扩展了一些外接设备。(2) 可以了解到LED显示器的构造、工作原理以及这种显示器的接口实例、具体

9、连接与编程方法。1.3设计要求1篮球计时计分器功能:记录比赛双方比分,可进展加减分交换场地时比分交换倒计时形式记录比赛时间比赛完毕发出报警声2设计硬件电路图。3画出程序流程图、编写程序、完成编译。4硬件电路进展连接、调试、并完成Proteus仿真。2 系统硬件介绍2.1单片机概述单片机是把一个计算机系统集成在一块半导体芯片上,其目的在于计算机微型化和提高系统的可靠性。单片机的内部硬件构造和指令系统主要是针对自动控制应用而设计的,所以单片机又称微控制器MCUMicro Controller Unit。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机最小系统,和计算机相比,

10、单片机缺少了外围设备等。单片机是通过内部的总线把计算机的各个主要局部连接到一个机构,其内部包括三种总线:地址总线、控制总线和数据总线2。单片机的体积小、质量轻、价格廉价,为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与构造的最正确选择3。2.2 AT89C51性能介绍MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了很多品种,如8031,8051,8751等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的根底上进展功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机。AT89C51是一个低电压,高

11、性能CMOS 8位单片机,片内含4k 字节的可反复擦写的只读程序存储器和128 bytes的随机存取数据存储器RAM。AT89C51单片机使用的是高密度的生产技术并且还不容易丧失内部存储的数据,对其进展编译是可以使用51单片机指令系统。AT89C51是一个使用性能高但是损耗功率很小的单片机,40个外部引脚,其中包含有32个双向输入/输出I/O端口,单片机内部还含2个全双工串行通信口,以及2个16位可编程定时计数器和2个外中断口;它主要由中央处理器,控制器,存储器,I/O接口,定时器/计数器, 中断控制系统,内部总线等局部组成。如图2-1所示 2-1 AT89C51引脚图主要特性:兼容MCS-5

12、1的相关指令系统4K字节可擦写存储器32个I/O接口8*128bit位内部RAM2个16位定时/计数器工作时钟频率0-24MHz5个中断源可供编程使用的串行口管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1

13、后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口是一个8位双向输入/输出端口,拥有内部上拉电阻。P2端口输出的缓冲器能够驱动4个TTL逻辑电平。当P2端口写1时,内部上拉电阻拉高端口,这种状态下P2端口可以作为输入端口使用。在被作为输入端口使用时,被外部拉低的引脚因为内部电阻的原因,从而输出电流。当访问外部程序存储器或使用16位地址的外部数据存储器例如执行MOV* DPTR时,P2口送出高8位地址数据。在此应用中,P2口运用很强的内部上拉发送1。当使用8位地址如MOV* RI来访

14、问外部数据存储器时,P2端口输出P2锁存器的内容。因此,当Flash编程和校验时,P2口也会同时接收高8位地址字节和大量的控制信号3。P3口:P3口为8位准双向I/O接口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。作为通用I/O接口时,功能与P1口一样,常使用第二功能。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能 P3.7端口也作为 /RD端口,功能是:外部数据存储器读选通 P3.6 端口也作为 /WR端口,功能是:外部数据存储器写选通 P3.5 端口也作为T1端口,功能是:记时器1外部输入 P3.4 端口也作为T0端口,功能是:记时器0

15、外部输入 P3.3 端口也作为/INT1端口,功能是:外部中断1 P3.2 端口也作为/INT0端口,功能是:外部中断0 P3.1 端口也作为T*D端口,功能是:串行输出口 P3.0 端口也作为R*D端口,功能是:串行输入口 P3口同时也可以接收一些控制信号供编程校验和闪烁编程使用。RST端口:复位输入端。当RST端口持续两个机器周期的高电平时,则单片机进展复位。ALE/PROG:地址锁存允许/编程引脚。当访问外部的程序存储器时,ALE的输出用于锁存地址的地位字节,一边与P0口实现地址/数据复用。当不访问外部程序存储器时,ALE端口将输出一个1/6时钟频率的脉冲信号,这个信号可以用于识别单片机

16、是否工作,也可以当做一个时钟向外输出。第二功能是对EPROM芯片进展编程和校验是,此引脚传送52ms宽的负脉冲信号。在需要的情况下,可以将地址为8EH单元的SFR的D0位置1,则ALE操作将无效。假设这个位置1,ALE则仅在执行MOVC或MOV*指令时能被激活13。PSEN:作为片外ROM选通线。在执行访问片外ROM的指令MOVC时,80C51自动在该引脚上产生一个负脉冲,用于对片外ROM的选通。在其他情况下,该引脚均为高电平封锁状态。EA/VPP:作为允许访问片外程序存储器/编程电源线。80C51内置有4KB的程序存储器,当EA为高电平并且程序地址小于4KB时,读取内部程序存储器指令数据,而

17、超过4KB地址时,则读取外部程序存储器指令。如果为低电平,则不管地址大小,一律读取外部程序存储器指令。由此看出,对于片内没有程序存储器的单片机,此引脚必须接地。此引脚是复用引脚,其第二功能是片内EPROM编程/校验时的电源线,在编程时,此引脚需加上21V的编程电压。*TAL1/*TAL2:作为片内振荡电路的输入端。作为片内振荡电路的输出端。1.振荡器特性:*TAL1引脚为片内振荡电路的输入端,*TAL2引脚为片内振荡电路的输出端。80C51单片机的时钟有两种方式:一种是片内时钟振荡方式,但是需要在18和19引脚外部接上一个石英晶振和振荡电容,振荡电容的值一般取30pF;另一种是外部时钟方式,就

18、是将*TAL1悬空,外部时钟信号从*TAL2引脚输入12。2.芯片擦除当ALE引脚持续10ms的低电平时,我们可以通过准确的控制信号的不同组合方式来对三个锁定位和整个阵列进展电擦除。要想擦除芯片,就需要在不为空的存储字节在程序中被重复的编程之前,将代码阵列的值全部设置为1,如果不采取此动作,则无法擦除芯片4。此外,稳态逻辑也存在于AT89C51中,静态逻辑在频率接近零频率时产生,而且其掉电模式能够从两种不同的软件中自选。在空闲工作式下,将IDL位置为1,此时封锁了进入CPU的时钟,于是CPU进入空闲待机状态。中断系统、串行口、计数器/定时器,仍有时钟信号,继续工作。在掉电工作方式下,将PD位置

19、为1,可以使单片机的振荡器停顿振荡,只有片内的RAM和SER中的数据保持不变,而且包括中断系统在内的全部电路都将处于停顿工作的状态6。3.掉电模式在掉电工作方式下,将PD位置为1,可以使单片机的振荡器停顿振荡,只有片内的RAM和SER中的数据保持不变,而且包括中断系统在内的全部电路都将处于停顿工作的状态。要想退出掉电工作方式,只能采用硬件复位,即需要在RST引脚上外加一个足够宽的复位脉冲,使80C51复位。不能采用中断唤醒的方法。想要使单片机从掉电方式退出后继续执行掉电前的程序,则必须在掉电前预先把SFR中的内容保存到片内RAM中 5。表2-3 外部引脚状态表模式空闲模式空闲模式掉电模式掉电模

20、式程序存储器内部外部内部外部ALE1100/PROG1100P0数据浮空数据浮空P1数据数据数据数据P2数据数据数据数据P3浮空浮空数据数据4.程序储存器的加密AT89C51可使用对芯片上的三个加密位LB1、LB2、LB3进展编程P或者不进展编程U。当加密位LB1被编程时,在复位期间,EA断的逻辑电平被采样并锁存,如果单片机上电后一直没有服位,则锁存起的初始值是一个随机数,这个随机数会保存到真正复位为止。2.3显示器介绍显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光二极管显示器LED和液晶显示器LCD两种。由于这两种显示器构造简单,价格廉价,接口容易实现,因而得到广泛

21、的应用。液晶显示器分很多种类,按显示方式可分为段式,行点阵式和全点阵式。段式与数码管类似,行点阵式一般是英文字符,全点阵式可显示任何信息, 如汉字、图形、图表等 。两者之间的区别:1二极本身发光, 液晶本身不发光,只是透射光。 2二极管体积大,图像质量一般,适合作室外大屏幕,价格较低。液晶本钱较高,面积无法做得很大,但图像质量很好,适合做显示器。 3二极管耗电大,液晶耗电小。4二极管图像刷新率低,液晶的高 LED显示器又称为数码管,LED数码管是将8个发光二极管组合在一起从而构成一个数码管。其中7个组成一个8字型,还有一个是圆点样的发光二极管作为一个小数点。由于其内部构造的引线已经全部连接完成

22、,所以只要导出各自的每一笔划以及公共的电极。LED显示器有两种不同的形式:共阴极LED显示器和共阳极LED显示器,如图2-2所示 。本次设计使用的是共阴极LED显示器。 图2-2 共阴与共阳极LED显示器构造LED显示器有两种方式:一是静态显示;二是动态显示。在本次设计中,采用的是动态显示。静态显示和动态显示各有各的有点;LED的静态显示优点是编程容易、管理简单,但是静态显示所要占的I/O口资源很多;而动态显示所占用资源较少,因此在显示的LED点较多的情况下,一般都采用动态显示方式4。在本次设计中,采用的是动态显示。这种电路的优点在于:通过分时方法分别控制每一个LED数码管的端口,从而促使每个

23、数码管依次的承受控制并显示。通过程序设置依次点亮每个数码管,产生1ms2ms的发光时间,因为每个人都存在视觉暂留的现象,加之受到发光二极管余辉效应的影响和信号的扫描到达一定足够的速度,就能看到点亮后的显示结果。LED数码显示器如图2-3所示。2-3 7段LED数码管3 硬件电路设计3.1系统构成框图本次设计主要基于AT89C51单片机,主体的计时计分器系统框图如图3-1所示。计分显示电路晶振电路89C51计时显示电路控制键盘图3-1系统整体框图本系统采用单片机AT89C51作为本设计的核心元件。利用7段共阴LED作为显示器件。在本次设计中,共接入8个共阴LED显示器,其中4个用于记录 甲、乙两

24、队的分数,每队2个LED显示器分数*围可到达099分,足够满足赛程需要。另外4个LED显示器则用于记录赛程的时间,分别用于记录分钟和秒钟。赛程计时采用倒计时方式。即比赛前将时间设置为10分钟,比赛开场时启动计时,直至计时到零为止。其次键盘共设置了16个开关,0-7号键盘为计分键盘分别控制甲队、乙队得分,为防止出现分加错的情况,特别设置了3、7号开关为减分按钮。8、9按钮分别是比分清零和比分切换按钮。A-F按钮则是控制时间及比赛开场。复位按钮控制复位情况。3.2振荡电路本次设计要使用到AT89C51单片机的时钟振荡功能。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚*TAL1和

25、*TAL2分别是该放大器的输入和输出端。这个放大器与作为反应元件的片外石英晶体或者陶瓷谐振器一起构成自激振荡器7。AT89C51的时钟主要分为两种方式:第一种是片内时钟振荡,另一种是外部时钟方式。本次设计采用的是第一种片内时钟振荡方式,通过在18和19端口外接石英晶体和振荡电容组成,这样既可产生本设计所需的时钟。振荡电路如图3-2所示。图3-2 时钟振荡电路3.3计时计分LED显示器设计本次设计的核心就是采用AT89C51设计出一整套计时计分器,以满足与篮球比赛的需要。本次设计的LED显示器采用的是动态驱动方式。动态驱动,就是通过控制依次点亮每一段数码管,每个数码管点亮的时间在1ms至2ms,

26、利用人眼的视觉暂留现象,就可以让人看到显示的结果。加之发光二极管还有余晖效应,只要信号的扫描到达一定的速度,就能稳定的显示信息。动态驱动不需要使用过多的I/O端口,这样可以简化电路。要使LED数码管要能够正常显示,需要用驱动电路驱动数码管的各个段码,由此显示需要的数字和字母,所以按照LED不同的驱动方式,可以将其分为静态模式和动态模式两种11。1动态显示驱动:使用数码管动态显示界面的显示方式,已成为在单片机的应用中最广泛的一种,动态驱动就是将每个数码管的8个显示的笔划a,b,c,d,e,f,g,dp这几个引脚的同名端相连接,同时给数码管公共极增加了位元件选通控制电路,该位元件选通通过各自的独立

27、输入/输出线控制。假设单片机依次输出了字形码,则所有的数码管必会接收到同样的字形码。但是,单片机对于位元件选通电路的控制则决定了最终是哪个数码管能够显示出字形。因此,我们假设想所需的数码管灯亮,则只要翻开所需对应的数码管的选通控制,而不翻开相应选通控制的数码管没有方法亮。动态驱动就是通过分时方法分别控制每一个LED数码管的端口,从而促使每个数码管依次的承受控制并显示。数码管在依次显示的过程当中,会产生1ms2ms的发光时间,因为每个人都存在视觉暂留的现象,加之受到发光二极管余辉效应的影响和信号的扫描到达一定足够的速度,所以,人会接收到稳定的显示信息10。2静态显示驱动:直流驱动被称为静态驱动。

28、所谓的静态驱动就是其每一个的段码都必须要有一个单片机的输入/输出端口完成驱动。编程简单是静态驱动的优点,它的显示亮度非常高,占用I/O口多是它的缺点,假设想要驱动5个数码管都进展静态显示,则就需要根I/O口来驱动数码管,因为一个89C52单片机只有32个I/O口,所以,在实际应用时则需要用利用译码器进展驱动,因而对于硬件电路来说则提高了它的复杂度9。计时计分器电路分别如图3-3、3-4所示。图3-3计时显示器电路 图3-4计分显示器电路3.4控制键盘器控制键盘由16个按钮组成,主要分为两个局部,第一局部是比分控制键盘,另一局部是时间控制键盘。比分控制键盘由0-9号按钮组成,分别按下02号按钮甲

29、队分别加一分、两分和三分,3号按钮为减分按钮,防止分数加错,每按下一次甲队减一分。4-6号按钮控制的是乙队的加一分、两分和三分,7号按钮同样是减分按钮每按下一次,乙队减一分。按下8号键,双方比分清零;中场完毕后开场下半场比赛时需要交换比赛双方比分,此时按下9号按钮即可。A-F按钮则是比赛控制按钮及时间控制按钮。按钮A和按钮B分别控制时间的加一和减一,时间的加减只能再时间停顿时进展。按下按钮C整个计时计分器启动,时间显示器显示10:00的单节比赛倒计时,比分显示器显示甲乙两队初始比分00:00。当比赛需要暂停时按下D按钮,单节比赛完毕后按下E按钮则时间恢复为10:00。键盘控制电路如图3-5所示

30、。 3-5控制键盘图4 软件设计方案在单片机应用系统的开发过程中,主要采用的有汇编语言和C语言。汇编语言比C语言繁琐,但是汇编语言能更充分的发挥指令系统的功能和效率,可以获得最简练的目标程序。而C语言的应用最为广泛,C语言能直接对计算机的硬件进展操作,而且语言灵活、程序构造良好、数据类型及运算符丰富、代码效率高、可移植性好8。4.1 篮球计时计分器总流程如图开场I/O初始化比赛开场计时器显示记分器显示N时间归零Y报警器报警比赛完毕接通电源后,系统进展初始化处理,系统开场运行,检测比赛开场按钮是否按下,比赛开场后,时间倒计时随即进展。双方比分增加,时间完毕后报警器报警,比赛完毕。4.2 计时器示

31、流程图 开场比赛开场计分器显示倒计时开场N时间为0Y 报警器报警 完毕比赛开场后,计时器则显示单节比赛时间10:00,倒计时开场,当比赛时间减到0时,报警器发出报警声。局部倒计时主要程序如下:TH0=0*4C; /50ms延时初值TL0=0*00;t+;if(t=20) /50ms走20次刚好1s,1s时间到减1操作t=0;miao-;if(miao=-1)fen-; /当59s减完,分减1miao=59;if(fen=-1)fen=0; /分清零miao=0; /秒清零beep=0; /时间停顿,蜂鸣器响4.3计分器显示流程图 开场 计分显示甲队减分甲队加分乙队加分NNN乙队加分甲队加分 N

32、YYYY甲队减分显示甲队加分显示乙队减分显示乙队加分显示N 比分切换Y 比分切换显示N比分清零Y 比分清零显示 完毕比赛开场后,比分显示器显示00:00,此后甲队和乙队比分增加,中场休息后,两队交换场地,比分显示也随之交换,比赛完毕后,双方比分清零。局部加分和比分交换程序如下:加分程序局部:dalay(5);if(temp=0*de)a=a+ /甲队比分加1if(a=100)a=99;diapaly1(a);比分交换程序:delay(5);if(temp=0*db)e=a;f=c;a=f;dispaly1(a);c=e;dispaly2(c); /两队比分切换5 仿真与调试单片机应用的仿真和调

33、试主要从硬件及软件方面进展,在本次设计的篮球计时计分器中我主要使用的是Keil和Proteus ISIS软件。5.1软件简介5.1.1 Keil软件简介Proteus 简介Keil C51软件有很多库函数,它还有功能强大的集成工具盒开发工具,还具有调试工具,Keil C51软件生成的所需代码的效率特别高,及时语句很多得到的汇编代码比拟少,容易理解。Keil C51软件使用高级语言编辑,在大型软件设计中有很大优势。Keil C51单片机软件开发系统可以完成连接、仿真、调试、编译、编辑等开发流程。该软件可以用集成开发环境IDE本身或其他编辑器C或汇编源文件而易学易用。KeilC51已被完全集成到u

34、Vision2的集成开发环境中,这个集成后的开发环境包含:调试器,实时操作系统,汇编器,工程管理器,编译器。5.1.2 Proteus 简介Proteus是全球知名的EDA仿真软件,从原理图绘制、编译调试代码到单片机与外部电路同时仿真,只需要一键单击即可切换到PCB设计,从而到达了从想象中的设计到实物设计。是当前全球独一无二的将三种软件合一的设计平台,三种软件分别是电路仿真软件,以及PCB设计软件,还有虚拟模型仿真软件。其处理器模型有很多种,例如8051、8086和ARM等,并还在不停添加别的类型处理器模型。Proteus可以通过多种软件进展编译,例如Keil以及MPLAB,还有IAR软件也可

35、以。Proteus软件也还有其它EDA工具软件的功能:PCB自动或人工布线、SPICE电路仿真、原理布图等。Proteus还具有仿真处理器、互动的电路仿真及其外围电路的革命性特点。5.2仿真结果完成硬件电路设计后,检查线路连接,确认连线没有错误。双击单片机AT89C51,用单击出现的对话框中的Program File按钮,在之前保存的位置找到经过Keil软件编译而生成的HE*文件,载入后点击OK按钮。然后单击开场仿真按钮进展仿真。Proteus仿真总图如图5.1所示:图5-1 系统仿真总图篮球计时计分的具体操作:(1) 计时显示功能计时功能的实现是通过键盘控制器中的AE按钮分别控制时间加1、时

36、间减1、比赛开场倒计时、比赛时间暂停和比赛时间复位。各按钮对应得到的数码管显示如图5-1、5-2、5-3、5-4、5-5。图5-1 单节比赛开场总时间效果图图5-2 比赛时间暂停效果图图5-3 在暂停情况下时间加1效果图图5-4 在暂停情况下时间减1效果图图5-5 时间复位效果图(2) 计分显示功能计分功能的实现是通过键盘控制器中的09按钮分别控制。03分别控制控制甲队比分加1、比分加2、比分加3、比分减1;47分别控制乙队比分加1、比分加2、比分加3、比分减1;8、9分别控制比分清零和中场比分交换。各按钮对应得到的数码管显示如图5-6、5-7、5-8、5-9、5-10、5-11、5-12、5

37、-13、5-14、5-15、5-16。5-6甲队加1分5-7甲队加2分5-8甲队加3分 5-9 甲队减1分5-10乙队加1分 5-11乙队加2分5-12 乙队加3分 5-13 乙队减1分5-14上半场甲乙两队得分5-15 下半场交换场地比分交换 5-16比赛完毕比分清零结论通过本次基于AT89C51的篮球计时、计分器的毕业设计,实现了篮球比赛的计时计分,可应用于学校中的篮球比赛的计时计分。此次设计也使我对于单片机工作原理、功能有了宏观的了解,并对单片机汇编程序的应用有了新的、进一步的认识。在进展本次设计之前,觉得这个设计是一个比拟简单的设计,而且自己对篮球比赛也有所了解,举得自己应该能做好。不

38、过在设计的过程中发现自己还是有许多缺乏的,虽然对知识有所了解,但是并不熟练,不能准确的将书本上的知识转化为设计的结果在本次设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。由于设计的方案没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更

39、重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不管是对我们以后的就业还是学习,都会起到很大的促进和帮助。对于基于AT89C51的篮球计时、计分器的毕业设计,还有两点改良之处。一是参加24秒倒计时,对单次进攻时间做出限制;二是在单节比赛时间小于1分钟时,倒计时显示可以准确到0.1秒,这样可以更直观的看到比赛最后阶段的时间变化,也能使比赛变的更剧烈,分秒必争。参 考 文 献1彭为.黄科,雷道仲.单片机典型系统设计实例精讲M.:电子工业,2006.2 李广弟. 单片机根底M. :航空航天大学,1996.3胡汉才.单片机原理及其接口技术M.:清华大学,1996.4诸昌钤.LED显示屏系

40、统原理及工程技术M.*:电子科技大学,2000.5 唐俊杰,高秦生. 微型计算机原理及应用M. :高等教育,1998.6 陈梓城. 电子技术实训M.:机械工业,2002.7何立民.MCS-51单片机应用系统设计M.:航天航空大学,1990.8*建勋.C语言程序设计教程M.:清华大学,2008.9 余发山.单片机原理及应用技术M.*:中国矿业大学,2003.12.10吴秀清. 微型计算机原理与接口技术M.:中国科学技术,2008.6. 11樊明龙,任丽静.单片机原理与应用M.:化学工业,2005.6.12周航慈.单片机应用程序设计技术M.:航空航天大学,2002.13*华,蔡炎光著.单片机实用技

41、术M.:清华大学,2001.致 谢在这三个半月的时间里,首先感谢魏教师对我的帮助。魏教师是一个有责任心、有耐心、有包容心的一个教师,具有丰富的单片机知识和设计经历。在此次设计中魏教师给予了我很大的帮助,当我对程序不知所措时,是魏教师给我指点迷津,让我在毫无头绪的状态下慢慢理清思绪,在他的帮助和指导下我才能顺利的完成此次设计。我从魏教师身上学到了很多专业知识,还学到了对待学术严谨的态度和独立发现并解决问题的能力。其次我要感谢物理与电子电气工程学院的所有教师,谢谢你们四年来对我的教导以及帮助,没有你们的教导也不会有今天的我。还要感谢我的班主任孙教师,这四年来你为我们操劳了很多,感谢这四年来你对我的

42、关心和指导。我还要感谢我的舍友,大学四年来是你们陪我度过每一个日日夜夜,在你们的支持和陪伴下,我走过来大学四年。在本次设计中你们也给了我很大的帮助,在我困惑的时候帮我理清思路。还要感谢全班同学,是你们给了我一个多姿多彩的大学生活。最后我要感谢所有帮助过我的同学和教师,还有我的父母,在你们的支持下,我走过来大学四年,从你们身上我学到了很多,让我终生受益,谢谢你们!附录A 硬件电路整体图附录B 源程序#include #define uchar unsigned char#define uint unsigned intUchar code tab=0*c0,0*f9,0*a4,0*b0,0*99

43、,0*92,0*82,0*f8,0*80,0*90,0*ff; /0,1,2,3,4,5,6,7,8,9关显示uchar b,d,t; /定义变量uchar fen=10,miao=0; /定时初始时间变量uchar flag; /标志位uchar temp; /矩阵键盘键值sbit beep=P17; /蜂鸣器void delay(uint z) /延时子函数uint *,y;for(*=z;*0;*-)for(y=110;y0;y-);void dispaly() /定时时间显示uchar miaoge,fenge,miaoshi,fenshi;miaoge=miao%10;P2=0*80

44、;P0=tabmiaoge;delay(1);miaoshi =miao/10;P2=0*40;P0=tabmiaoshi;delay(1);fenge=fen%10;P2=0*10;P0=tabfenshi;delay(1);P2=0*00;void dispaly1(char a) /甲队比分显示uchar ge1,shi1;b=a;ge1=b%10;P2=0*02;P0=tabge1;delay(1);shi1=b/10;P2=0*01;P0=tabshi1;delay(1);P2=0*00;void dispaly2(char c) 乙队比分显示uchar ge2,shi2;d=c;g

45、e2=b%10;P2=0*08;P0=tabge2;delay(1);shi2=d/10;P2=0*04;P0=tabshi2;delay(1);P2=0*80;void keyscan() /矩阵键盘扫描控制char a,c,e,f;dispaly1(a);dispaly2(c);P3=0*fe;temp=P3;temp=temp&0*f0;while (temp!=0*f0)delay(5);temp=P3;temp=temp&0*f0;while (temp!=0*f0);temp=P3;if(temp=0*ee)delay(5);if(temp=0*ee)a+; /甲队比分加1if(a

46、=100)a=99;dispaly1(a);if(temp=0*de)dalay(5);if(temp=0*de)a=a+2; /甲队比分加2if(a=100)a=99;diapaly1(a);if(temp=0*be)dalay(5);if(temp=0*be)a=a+3; /甲队比分加3if(a=100)a=99;diapaly1(a);if(temp=0*7e)dalay(5);if(temp=0*7e)a=a-;if(a=100)c=99;dispaly2(c);if(temp=0*dd)dalay(5);if(temp=0*dd)c=c+2; /乙队比分加2if(c=100)c=99

47、;diapaly2(c);if(temp=0*bd)dalay(5);if(temp=0*bd)c=c+3; /乙队比分加3if(c=100)c=99;diapaly2(c);if(temp=0*7d)dalay(5);if(temp=0*7d)c=c-;if(c=-1) /乙队比分减1c=0;diapaly2(c);while(temp!=0*f0)temp=P3;temp=temp&0*f0;dispaly2(c);P3=0*fb;temp=P3;temp=temp&0*f0;while (temp!=0*f0)delay(5);temp=P3;temp=temp&0*f0;while (

48、temp!=0*f0)temp=P3;if(temp=0*eb)delay(5);if(temp=0*eb)a=0; /甲队比分清零dispaly1(a);c=0; /乙队比分清零dispaly2(c);if(temp=0*db)delay(5);if(temp=0*db)e=a;f=c;a=f;dispaly1(a);c=e;dispaly2(c); /两队比分切换if(flag!=1) /防止误操作,只有在时间停顿的情况下才能加减定时时间 if(temp=0*bb)delay(5);if(temp=0*bb)fen+; /定时时间加1if(fen=99)fen=0;if(temp=0*7b

49、)delay(5);if(temp=0*7b)fen-; /定时时间减1if(fen=-1)fen=99;while(temp!=0*f0)temp=P3;temp=temp&0*f0;dispaly2(c);P3=0*f7;temp=P3;temp=temp&0*f0;while(temp!=0*f0)delay(5);temp=P3;temp=temp&0*f0;while(temp!=0*f0)temp=P3;if(temp=0*e7)delay(5);if(temp=0*e7)TR0=1; /比赛开场计时按键flag=1;if(temp=0*d7)delay(5);if(temp=0*

50、d7)TR0=0; /比赛暂停计时按键flag=0;if(temp=0*b7)delay(5);if(temp=0*b7)fen=0; /比赛时间清零 miao=0;while(temp!=0*f0)temp=P3;temp=temp&0*f0;dispaly2(c);void timer0(void)interrupt1 /T0中断效劳TH0=0*4C; /50ms延时初值TL0=0*00;t+;if(t=20) /50ms走20次刚好1s,1s时间到减1操作t=0;miao-;if(miao=-1)fen-; /当59s减完,分减1miao=59;if(fen=-1)fen=0; /分清零miao=0; /秒清零beep=0; /时间停顿,蜂鸣器响void init() /T0中断初始化TMOD=0*01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;EA=1;TR0=0;void main() /主程序P2=0*fe;init();while(1)dispaly();keyscan();. z.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


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