版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。本设计是基于AT89S52单片机的篮球计时计分器,利用7段共阴LED作为显示器件。在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到099分。赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。其次,为了配合计时器和计分器校正
2、调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。主控芯片采用AT89S52单片机,采用C语言进行编程,编程后利用Keil uVision3来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能是否能够正常实现。仿真成功后,焊接硬件电路,通过ISP下载器将hex文件烧制到单片机。关键词:计时,计分;LED;AT89C52目录1. 绪论21.1技术概述21.2本课题的背景和意义22.系统设计简介42.1 系统总体方案设计42.2 硬件电路设计52.2.1时钟电
3、路模块62.2.2 复位电路模块62.2.3显示模块72.2.4 报警模块82.2.5总硬件电路设计93 设计语言及软件介绍103.1 C语言介绍103.2 PROTUES软件介绍114 软件设计124.1 概述124.2 系统程序设计模块134.2.1延时模块设计144.2.2 数码管动态刷新显示程序144.2.3 T0中断程序164.2.4 加分子程序174.2.5减分子程序174.2.6 调整时间子程序184.2.7 半场交换比分子程序204.2.8 比赛暂停子程序214.2.9 中场指示灯程序224.2.10 主程序234.3 控制源程序254.4 调试及仿真30结论33参考文献341
4、. 绪论1.1 技术概述 体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。 篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。由于单片机的集
5、成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。1.2 本课题的背景和意义本设计是基于AT89S52单片机的篮球计时计分器,利用7段共阴LED作为显示器件。在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显
6、示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到099分。赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7个按键,用于设置,调整时间,启动,调整分数和暂停等功能。采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。任务: 设计一个用于赛场的篮球计时计分器。要求: 1、能记录整个赛程的比赛时间,并能随时实现暂停。 2、能随时刷新甲、乙两队在整个过程中的比分。 3、中场交换比赛场地时,能自动交换甲、乙两队比分的位置。 4
7、、比赛中场和结束时,能发出报警声。 5、通过指示灯指示上下半场。 6、当比赛时间需要回倒时,能通过按键实现回表。 7、加分有误时可通过按键实现减分调整。课程设计使我们进一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤,掌握了单片机仿真软件Proteus的使用方法,键盘和显示器在的单片机控制系统中的应用以及撰写课程设计报告的方法。此次设计很好的将书本上的理论知识和实践有机的联系了起来,是我们对理论知识有了更进一步的掌握,锻炼了我们的动手能力,同时也让我们懂得了理论与实际相结合的意义。为以后的工作和学习提供了宝贵的经验。2.系统设计简介2.1 系统总体方案设计篮
8、球计时计分器主要包括单片机控制系统、计时显示模块、计分显示模块、定时报警,按键控制键盘模块。通过这几个模块的协调工作就可以完成相应的计时计分控制和显示功能。这四个模块的相互连接如下图1所示:图1 模块连接图本设计是基于AT89S52单片机的篮球计时计分器,利用7段共阴LED作为显示器件。在此设计中共接入了1个四位一体7段共阴LED显示器,2个两位一体7段共阴LED显示器,前者用来记录赛程时间,其中2位用于显示分钟,2位用于显示秒钟,后者用于记录甲乙队的分数,每队2个LED显示器显示范围可达到099分。赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。2.2 硬件电路设计单片机AT8
9、9S52简介AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52单片机引脚图具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个
10、外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器.如图2所示: 图 2 AT89S52单片机引脚图此模块电路包括时钟电路模块,复位电路模块及报警显示模块。2.2.1时钟电路模块 时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的电容,两晶振引脚分别连到XTAL1和X
11、TAL2振荡脉冲输入引脚。具体连接图如图3所示: 图 3 晶振电路2.2.2 复位电路模块复位是单片微机的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。RST引脚是复位信号的输入端。复位电路在这里采用的是上电+按钮复位电路形式,具体连接电路如图4所示: 图 4 复位电路2.2.3显示模块本设计采用共阴极数码显示器,通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时
12、,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。本次设计在显示模块用到的是一个4位一体和2个两位一体共阴极数码管,共有8个代码输入口和8个位选输入口,采用排阻提供上拉电流数码管,以保证有足够大的电流点亮数码管,采用动态驱动,使各位数码管逐个轮流受控显示,这就是动态驱动,由于扫描速度极快,显示效果与静态驱动相同,其具体图形如下图5图6所示:图5 计时显示图6 计分显示2.2.4 报警模块蜂鸣器通过一NPN三极管进行驱动,触发信号有基极引入。如图7所示:图7 蜂鸣器设计部分
13、2.2.5总硬件电路设计本设计的总硬件电路设计图如图8所示:图8总体硬件设计3 设计语言及软件介绍3.1 C语言介绍C语言的发展过程 C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为K&R,也有人称之为K&R标准。但是,在K&R中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。 当代最优秀的程序设计语言 早期的C语言主要是用于U
14、NIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。 C语言的特点 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等
15、特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。 C语言版本 目前最流行的C语言有以下几种: Microsoft C 或称 MS C Borland Turbo C 或称 Turbo C AT&T C 这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。 面向对象的程序设计语言 在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C+。 C+进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C+目前流行的最新版本是Borland C+4.5,Symantec C+6.1,和Microsoft
16、 VisualC+ 2.0。C+提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。 C和C 但是,C是C+的基础,C+语言和C语言在很多方面是兼容的。因此,掌握了C语言,再进一步学习C+就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。 C源程序的结构特点 为了说明C语言源程序结构的特点,先看以下几个程序。这几个程 序由简到难,表现了C语言源程序在组成结构上的特点。虽然有关内容还未介绍,但可从这些例子中了解到组成一个C源程序的基
17、本部分和书写格式。 main() printf(C语言世界,您好!n); main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有,且只能有一个主函数(main函数)。函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。printf函数是一个由系统定义的标准函数,可在程序中直接调用。3.2 PROTEUS简介Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及
18、其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。具有强大的原理图绘制
19、功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。在设计程序之前,我们首先要对单片机应用系统预完成的任务进行深入的分析,明确系统的设计任务、功能要求和技术指标。其次,要对系统的硬件资源和工作环境进行分析。这是单片机应用系统程序设计的基础和条件。4 软件设计4.1 概述 本次单片机课程设计软件设计部分采用模块化程序设计,程序部分由主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、快表和回表子程序、延时子程序等组成.其主程序流程图如图9所示:图9 主程序流程图扫描刷新显示子程序流程图如图10所示:图10扫描刷新显示子程序流程图4.2 软件设计
20、具体过程 软件设计部分采用模块化程序设计,用C语言编写。Keil是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。程序部分由主程序、T0中断程序、扫描显示子程序、计时加(减)1秒的子程序、暂停子程序、快表和回表子程序、
21、延时子程序等组成。4.2.1延时模块设计 void delay(int t)调用该子程序能实现延时功能 通过参数t,可以调成延时时间 while(t-) unsigned int i; 设置变量i的变化范围,能调整延时的单位时间 for(i=0;i1) 如果jie1,说明半场到了,比赛没有结束, 令m=2,n=0,关中断,再次按下暂停键时候继续倒计时 m=2; 同是T1=1;delay(400) ;delay(400);,是蜂鸣器 n=0; 发声报警 EA=0; T1=1; delay(400); T1=0; while(1) display(m,n,x,y); 刷新数码管,等待暂停减再次按下
22、,跳出暂停 if(P1_0=0) delay(1); if(P1_0=0) while(P1_0=0); EA=1; break; jie-; if(jie=1&bujin=2) 如果jie=1&bujin=2,说明比赛结束了, 关闭中断,比赛秒表不再走动,同时不短刷新数码管, EA=0; m=0; n=0;T1=1; 全场比赛结束蜂鸣器开始报警 delay(400); T1=0; P1=0x3f; P1=0x3f上下半场指示灯同时点亮,比赛结束 while(1) display(m,n,x,y); 同时应当不断刷新数码管 4.2.10 主程序void main() TMOD=0x01; 首先
23、设置定时器工作方式 EA=1; ET0=1; TH0=0xb1; 定时器送计数初值,EA=1,开中断,P3口电平拉高TL0=0x10; P1=0x7f, 上半场指示灯点亮TR0=1; TR0=1启动定时器P3=0xff; P1=0x7f; T1=0;while(1) 主程序通过 while(1),反复调用循环体内的子程序 来执行相应的功能 keyjiafen1(); keyjianfen1(); key2(); if(zidong=1) zidong=1为key3()执行条件 key3(); key3()半场交换场地时自动交换双方 if(n=18&bujin=0) 比赛分数子程序,所以仅当中场
24、时调用 bujin=2; 修改变量bujin的值,目的是设定over() 中第二个if语句的执行条件 shijian(); key4(); over(); 4.3控制源程序#include /#include 为头文件P1口各位分别用P1_0等表示code unsigned seg=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f/分别对应数码管显示的字形0到9int m=1,n=60,x=0,y=0,i=0,jie=2,zidong=1,b
25、ujin=1,zanting=0,chuzanting=0; /定义全局变量m,n,x,y,i,jie,zidong,bujin,zanting,chuzanting/并初始化,其中m,n分别表示分钟与秒计时,x,y分别表示甲乙/两队的分数,其余中间变量void delay(int t) / 延时子程序 通过参数t,可以调整暂停时间 while(t-) unsigned int i; for(i=0;i200;i+); void display(int i,int j,int x,int y) / 数码管动态刷新显示程序 if(jie=1&bujin!=2) /中间变量jie=1时,为上半场,
26、对P1赋值 P1=0xbf; /P1=0xbf, 即P1=1011 1111B,点亮对应上半场指示灯 P2=0xfe; /数码管动态刷新显示程序 P2=1111 1110,i为分钟 P0=segi%100/10; /刷新显示时间显示分钟十位,调用延时程序, delay(1); /延时数码管的点亮 P2=0xff; P0=0; P2=0xfd; /同理,动态刷新时分钟个位并延时点亮 P0=segi%10; delay(1); P2|=0xff; P0=0; P2=0xfb; /同理,动态刷新时秒钟十位并延时点亮 P0=segj%100/10; delay(1); P0=0; P2=0xff; P
27、2=0xf7; /同理,动态刷新时秒钟个位并延时点亮 P0=segj%10; delay(1); P0=0; P2=0xff; P2=0xef; /同理,动态刷新甲队分数十位并延时点亮 P0=segx%100/10; delay(1); P2=0xff; P0=0; P2=0xdf; /同理,动态刷新甲队分数个位并延时点亮 P0=segx%10; delay(1); P2=0xff; P0=0; P2=0xbf; / /同理,动态刷新乙队分数十位并延时点亮 /调用延时子程序 实现消除按键抖动功能,即,当 delay(1); /检测到按键按下时候,延时,按键仍按下,说明按键 if(RXD=0)
28、/确实按下,非抖动,甲队对应加分 while(RXD=0); x+; if(TXD=0) /同理,检测乙队加分按键时候按下,并加分 delay(1); if(TXD=0) while(TXD=0); y+; void keyjianfen1()/减分按键检测子程序,其基本算法及功能与加 if(WR=0) /相同 delay(1); if(WR=0) while(WR=0); x-; if(RD=0) delay(1); if(RD=0) while(RD=0); y-; void key2() /显示时间调整程序,即回表和快表 if(INT0=0) /在比赛中有时经常需要回表,故写此程序del
29、ay(10);if(INT0=0) /回表子程序,检测到INT0按下时,使时间回倒 chuzanting=0; / chuzanting=0; zanting=1;为附加变量,当回表按键zanting=1; /松开时,表暂停,这两个变量用来调用暂停n+;if(n=60) m+; n=1; if(INT1=0) /快表子程序,检测到INT1按下时,使倒计加快, /通常情况下与回表子程序配合使用,即当回表 /回过的时候,按此键调整时间 delay(10); / chuzanting=0; zanting=1;作用同上 if(INT1=0) chuz jie-; if(jie=1&bujin=2)
30、/如果jie=1&bujin=2,说明比赛结束了,令EA=0, /比关闭中断,比赛秒表不再走动,同时不短刷新数码管,EA=0; /全场比赛结束蜂鸣器开始报警m=0;n=0;T1=1; delay(400); T1=0;P1=0x3f; / P1=0x3f上下半场指示灯同时点亮,比赛结束while(1) display(m,n,x,y); /不断刷新数码管 void main() / 主程序 TMOD=0x01; /设置定时器工作方式 EA=1; ET0=1; TH0=0xb1; /定时器送计数初值,EA=1,开中断,P3口电平拉高TL0=0x10; / P1=0x7f, 上半场指示灯点亮TR0
31、=1;P3=0xff; P1=0x7f; T1=0;while(1) /通过 while(1),反复调用循环体内的子程序 keyjiafen1(); /执行相应的功能 keyjianfen1(); key2(); if(zidong=1) /zidong=1为key3()执行条件,仅当半场结束时候执行 key3(); if(n=18&bujin=0) bujin=2; /修改变量bujin的值,设定over()中第二个if语句的执行条件 shijian(); key4(); over(); 4.4调试及仿真接通电源,计时显示即开始倒计时工作,上半场指示灯亮,计时初始设计为2分钟,按下A+1键实现对A的加分,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年升级版:广告制作与发布分包合同
- 临时看管房子行业相关项目经营管理报告
- 乡村互联网金融服务行业市场调研分析报告
- 幼儿园消防演练方案
- 消防工程施工合同的变更条款
- 2024年公园绿化维护合同
- 2024年出口商贸易指南:合同执行要点
- 不动产估价行业相关项目经营管理报告
- 环保项目关键环节施工验收方案
- 2024年公司对个人无息借款协议
- 危险货物道路运输安全卡4
- 船舶电气安装理论图纸相结合PPT课件
- 道路交通标志与标线PPT课件
- 幕墙打胶工艺
- 违约损失率(LGD)研究
- 新冀教版九年级英语上册第26课课件
- 编写标准必备文件 国家标准 地方标准 行业标准 企业标准 格式模板大全
- 《钻木取火》PPT
- 2021-2025乡村5年规划三篇
- 无线电遥控帆船讲解
- 压力与情绪管理(完整版)
评论
0/150
提交评论