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

上传人:痛*** 文档编号:130555714 上传时间:2022-08-05 格式:DOC 页数:39 大小:539KB
收藏 版权申诉 举报 下载
单片机课程设计论文篮球计时计分器_第1页
第1页 / 共39页
单片机课程设计论文篮球计时计分器_第2页
第2页 / 共39页
单片机课程设计论文篮球计时计分器_第3页
第3页 / 共39页
资源描述:

《单片机课程设计论文篮球计时计分器》由会员分享,可在线阅读,更多相关《单片机课程设计论文篮球计时计分器(39页珍藏版)》请在装配图网上搜索。

1、篮球赛计时计分器摘 要单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。由于单片机的集成度高,功能强,通用性好,特别是它具有体积小、重量轻、能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用。目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位,许多用单片机做控制的球赛计时计分系统也应运而生,如:用单片机控制液晶显示(LCD)计时计分器,用单片机控制LED七段显示器计时计分器等。篮球计时计分器以单片机为核心,由计时器、计分器、综合控制器等组成。系统采用模块化设计,主体分为计时显示模块、计分显示模块、

2、定时报警、按键控制键盘模块。每个模块的程序结构简单、任务明确,易于编写、调试和修改。程序可读性好,对程序的修改可局部进行,其他部分可保持不变。编程后利用Keil C51软件来进行编译,再将生成的HEX文件装入芯片中,采用Proteus软件仿真,检验功能是否能够正常实现,随后可用Protel99画出硬件电路图。本设计中系统硬件电路主要由以下几个部分组成:单片机AT89C51、计时电路、计分电路、报警电路和按键开关。本次设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩等功能。它具有价格低廉、性能稳定、操作方便并且易

3、于携带等特点,广泛适合各类学校或者小型团体作为赛程计时计分。关键词:单片机,计时,计分,显示器,接口AbstractSingle-ship microcomputer since its inception in the 1970s, the extremely high cost peoples attention and concern, so a very wide application, rapid development. Because of the high integration single-chip, powerful, common good, especially w

4、hen it is small, light weight, low power consumption, cheap, high reliability, strong anti-interference ability and ease of use unique advantages, the chip quickly has been widely used. Measurement and control applications has become the preferred model system, and a key component of new electronic

5、products, many made with single-chip timing control of the game scoring system have emerged, such as: with single-chip control of liquid crystal display (LCD) device timing points , LED seven-segment display with microcontroller timing control points, etc. Basketball time scoring device to the micro

6、controller as the core, by a timer, scoring devices, integrated controller and other components.The modular design, divided into the main time display module, display module scoring, timing alarm, key control keyboard module. Each module of the program structure is simple, clear tasks, easy to write

7、, debug and modify. Readable program, the program changes can be partially carried out, the rest can remain unchanged. After the programming software to use Keil C51 compiler, and then generate the HEX file into the chip, using the Proteus software simulation to test whether the normal function to a

8、chieve, then draw the hardware circuit diagram Protel99 available. The design of hardware circuit mainly consists of the following components: the microcontroller AT89C51, timing circuit, scoring circuit, alarm circuit and key switch. The design used by the AT89C51 programming control for the seven-

9、segment LED display game time scoring. The system has a set time schedule, schedule time to pause, refresh and timely performance of both parties and other functions. It has low price, stable performance, easy to operate and easy to carry, which is widely suitable for all types of schools or small g

10、roups as the race time scoring.Key words: Single-chip Microcomputer,Timing, scoring, display, interface目录前言1第1章 系统方案说明2 方案选择2 篮球赛计时计分器设计的现状2 系统总体设计方案2 系统基本功能介绍3第2章 系统硬件电路设计5 篮球赛计时计分电路原理图5 篮球赛计时计分器电路工作过程5 系统硬件电路组成5 计时电路5 计分电路8 器件选择及介绍102.4.1 AT89C5110第3章 软件编程及调试14 总体程序设计14 计时系统程序设计14 计分系统程序设计16 系统调试1

11、6 软件调试16结论18参考文献19致谢20附录21前言随着单片机在各个领域的广泛应用,许多用单片机做控制的球赛计时计分系统也应运而生,如用单片机控制LCD液晶显示器1计时计分器,用单片机控制LED七段显示器计时计分器等。根据此次课题要求,这里介绍一种篮球赛计时计分器的设计方法,即单片机带外围扩展来驱动数码管工作的电路。采用这种方法可提升学生对单片机接口电路的综合运用能力。电路采用单片机作为核心元件,利用两个供阴的三位一体数码管来显示两队的分数,一个四位一体数码管显示时间的计时。显示分数范围可达0999分,足够赛程计分的需要。四位一体数码管中2个用于显示分钟,2个用于显示秒钟。比赛前,将时间设

12、置好,比赛开始时启动计时,直至倒计时到零为止。计时范围达到099分钟,能满足实际赛程计时的需要。为了配合计时器调整时间和计分器校正比分,设计了6个按键,4个用于输入甲、乙两队的分数,另2个用于启动和暂停赛程时间。另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示赛程结束。该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩等功能。设计分为软件设计和硬件设计两部分。主控芯片采用AT89C51,使用C语言编写软件程序,主体分为计时显示模块、计分显示模块、定时报警、按键控制模块。编程后利用Keil C513软件来进行编译,再将生成的HEX文件装入芯片中,检验功能是否能够正常实

13、现。通过本次基于单片机的篮球赛计时计分器的设计,可以了解、熟悉有关单片机开发设计实例的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的一些方法和技巧。第1章 系统方案说明1.1 方案选择1.1.1 篮球赛计时计分器设计的现状体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据信息进行快速采集记录、加工处理、传递和利用的系统。根据运动项目的不同,比赛规则要求也不同,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类和得分类等多种类型。 篮球比赛是根据运动队员在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由

14、计时器、计分器等多种电子设备组成的,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现激烈的比赛现场感和表演娱乐等功能目标。现在,根据设计要求,介绍一下设计方案。1.1.2 系统总体设计方案根据课题要求,设计方法是单片机直接驱动数码管工作的电路,该电路成本相对较低。以单片机作为核心元件,利用两个供阴的三位一体数码管来显示两队的分数,一个四位一体数码管显示时间的计时。显示分数范围可达0999分,足够赛程计分的需要。四位一体数码管中2个用于显示分钟,2个用于显示秒钟。比赛前,将时间设置好,比赛开始时启动计时,直至倒计时

15、到零为止。计时范围达到099分钟,能满足实际赛程计时的需要。为了配合计时器调整时间和计分器校正比分,设计了6个按键,4个用于输入甲、乙两队的分数,另2个用于启动和暂停赛程时间。另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示赛程结束。图1-1 系统构成图1.2 系统基本功能介绍本设计要实现的基本功能有:赛程时间设置,赛程时间启停设置,比分交换控制,计时计分显示,赛程结束报警。以下对个功能进行介绍。1、赛程时间设置在计时电路中,按键开关K6、K7用来设置赛程时间,通过程序来设置不同的时间。2、赛程时间启动暂停设置当时间设置完成后,比如设置赛程时间为15分钟,则在LED显示器上显示

16、为1500,15表示分钟,00表示秒钟。这时,如果裁判吹响开始的哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由4500变成4459,4458一直计时直到计为0000时表示赛程结束。按键K7为赛程启动和暂停控制。3、比分交换控制比分交换控制由计时电路图2-5中所示的K7键完成。我们知道,因为比分交换是在上半场赛程结束后进行的,也就是说比分交换要受赛程时间控制,只有当上半场计时器指示为0000时,按K7键,则会自动交换甲、乙两队的比分。如果上半场赛程时间没有到0000时,则此时按下K7键,只会暂停比赛,不能交换分数。如果要继续比赛,再按一次K7即可。因此,K7键完成三重功能,即:启动,暂

17、停,比分交换。4、比分刷新控制由于在比赛中,甲、乙两队的比分是不断在变化的,所以需要设置比分刷新控制装置;此部分功能由计分电路图2-9中的所示的按键开关K5、 K5、 K5、K6来完成的:K5键:完成甲队加1分操作K5键:完成甲队减1分操作K5键:完成乙队加1分操作K6键:完成乙队减1分操作5、计时计分显示计时计分显示器是采用七段共阴极LED显示器来显示的。其中计分是用三位一体数码管来显示。计时采用四位一体数码管来显示;显示格式为000000和0000。6、赛程结束报警当比赛结束时,系统会自动发出报警声,提示赛程结束。第2章 系统硬件电路设计2.1 篮球赛计时计分电路原理图用Protel99

18、SE设计的电路原理图见附录3,PCB版图见附录1。2.2 篮球赛计时计分器电路工作过程整个篮球计时计分器的工作过程如下:首先在比赛之前,接通电源,系统自动复位,此时计时电路与计分电路中的共阴极数码管分别显示为1500和000000;然后我们按下计时电路图中的K7键,启动计时,这时计时电路便开始工作,计时采用倒计时方式,即从15分钟减为0分钟表示上半场结束。上半场结束时,蜂鸣器会发出响声,通知时间到,这时按下K7键,便完成了甲、乙两队的分数交换。在整个赛程中,我们还要对两队比分进行及时刷新,这时我们通过计分电路图中的K5K6键完成此功能,K5和K5键完成甲队加分、减分,K5和K6键完成乙队加分、

19、减分。按键每按一下,表示加上或者减去1分。由于加分、减分我们采用中断完成,且加、减分的中断优先权小于计时电路中的中断优先权,所以不会对计时电路造成影响。如果在赛程过程中,一方的教练申请暂停时,经裁判批准,我们立即按下K7键,即可以暂停计时,暂停时间到时,再按下K7键继续计时,直至时间结束,蜂鸣器会发出响声。2.3 系统硬件电路组成2.3.1 计时电路1显示器及其接口显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)两种。由于这两种显示器结构简单,价格便宜,接口容易实现,因而得到广泛的应用。下面介绍发光二极管显示器(LED)的结构

20、、工作原理及其接口电路。(1)LED结构与原理图2-1为典型的数码管。图2-1 7段LED数码管如图2-1,LED显示器又称为数码管,LED显示器由8个发光二极管组成。中7个长条形的发光管排列成“日”字形,另一个点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。(2)LED显示器显示方式点亮LED显示器有两种方式:一是静态显示;二是动态显示。在本次设计中,采用的是静态显示。所谓静态显示,就是每一个显示器都

21、要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。这种电路的优点在于:在同一时间可以显示不同的字符;但缺点就是占用端口资源较多。从图2-2以看出,每位LED显示器需要单独占用8根端口线,因此,在数据较多的时候,往往不采用这种设计,而是采用动态显示方式。本设计采用的便是此种显示方式。图2-2静态显示图由于所有的段选码连在一起,所以同一瞬间只能显示同一种字符。但如果要显示不同字符,则要由位选码来控制。(如果LED为共阴极则P2.0P2.3输出为高电平

22、,如果LED为共阳极则P2.0P2.3输出为低电平。)2报警器(1)报警器的工作原理报警器的种类很多,比如:扬声器,蜂鸣器等,本次设计采用的是电磁式蜂鸣器作为报警器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片以及外壳等组成。接通电源后,振荡器产生的音频信号通过电磁线圈,使得电磁线圈产生了一个磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。3计时电路的工作原理图如图2-3示。图2-3计时电路原理图4计时电路的工作原理计时电路主要由开关K6、K7,单片机AT89C51以及LED显示器构成。其工作过程如下:当比赛准备开始的时候,按下K6即可,计时开始,计时采用倒计时,比如:设置的时

23、间为15分钟,则在LED上显示“1500”四位数。定时T0计数60秒后中断返回,继续定时计数下一个60秒;同时则在4位LED显示器上显示“4459”四位数,表示时间已过去1秒钟,即为14分59秒。这样一直持续下去,直到变为“0000”时表示赛程结束。如果比赛中,裁判叫暂停,则只要按一下K7键,即可暂停计时。5振荡电路本次设计要使用到AT89C51单片机的时钟振荡功能。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一同构成自激振荡器。振荡电路如图2-4所示。如图2-4,外接石

24、英晶体或者陶瓷谐振器以及电容C1,C2接在放大器的反馈电路中构成并联谐振电路。谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,如果使用石英晶体,使用30pF。图2-4 时钟振荡电路本次设计使用的是石英晶体谐振器,因此采用30pF的电容,频率大小采用12MHZ与6MHZ均可,这里采用的是12MHZ晶振。2.3.2 计分电路8051系列单片机除了有4个8位并行口外,还有一个能同时进行串行发送和接收的全双工串行通信口。它能同时发送和接收数据,还能作为同步移位寄存器使用。球赛计分电路正是利用了8051单

25、片机串行口可以外接串行输入并行输出移位寄存作用为输出口来实现球赛比分刷新显示的。1串行接口工作原理MCS-51系列单片机片内有一个串行IO端口,通过引脚 RXD(P30)和TXD(P31)可与外设电路进行全双工的串行异步通信。 8051的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一种方式。其中,方式0主要用于外接移位寄存器,以扩展单片机的IO电路;方式1多用于双机之间或者与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器(SCON11和PCON12),用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每

26、秒传送的位数)以及作为中断标志等。串行端口有一个数据寄存器SBUF13 (在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向SBUF写入数据就启动了发送过程;读SBUF就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频可由定时器T1的溢出率14确定,使用十分方便灵活。表2-1为寄存器SCON内容定义表,表2-2为寄存器PCON位地址表2-1 SCON各位内容定义位地址9FH9EH9DH9CH9BH9AH99H98HSM0SM1SM2RENTB8RB8TIRI表2-2 PCON位地址SMOD

27、其中引脚分布图将在后面图中介绍。其中2脚DATA为串行数据输入脚;3脚CLOCK为时钟脉冲输入;4、5、6、7、14、1、3、12、11脚为并行8位数据输出,前7脚与LED显示器的ag引脚相连,11脚置空;8脚接地;16脚接电源5V。2计分电路原理图计分电路原理图如图2-5所示。图2-5 计分电路原理图4计分电路的工作原理计分电路主要由单片机AT89C51, LED显示器以及按键开关组成。其工作过程如下:按键开关K2、K3、K5 、K6组成甲、乙两队加减分控制。按键一端接地,另一端输入与单片机AT89C51的P3.5,P3.4,P0.2,P0.1。例如:现在先在以甲队加分为例,来说明整个过程。

28、假设比赛刚开始,双方比分为000 :000,当某一时刻之后,当甲队加分时,则按下K2键,这时K2=0(低电平),其余K3K5K6=111(为高电平)K2K3K5K6相与之后的结果为低电平,这时的低电平输出到AT89C51的P3.2脚,使其外部中断INT016发生中断,从而调用中断服务程序,将要显示的数据从程序中定义的LED显示常数表TAB中取出数据06H(因为LED显示常数表TAB的偏移地址为36H,36H首先是指向LED显示常数表TAB中第一个数据3FH的,当K5按下时,相当于将33H地址加1,这时便指向第二数据06H,即对应字母代码关系表中的加1)。2.4 器件选择及介绍本系统在设计的过程

29、中主要选取了以下一些器件:单片机:AT89C51显示器件:7段共阴极LED显示器按键:欧姆龙按键2.4.1 AT89C51AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash17只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式18,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入

30、/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。如图所示,图2-6为AT89C51单片机基本构造,其基本性能介绍如下:图2-6 AT89C51引脚图AT89C51的主要特性如下表2-5所示。下面介绍各个管脚:P0口:P0口为一个8位漏极开路双向I/O口,每个引脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入19。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第

31、八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故

32、。P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容,P2口在FLASH编程和校验时接收高八位地址信号和控制信号。表2-3 AT89C51主要功能描述兼容MCS51指令系统4k可反复擦写(1000次)Flash ROM32个双向I/O口可编程UARL通道两个16位可编程定时/计数器全静态操作0-24MHz1个串行中断128x8bit内部RAM两个外部中断源共6个中断源可直接驱动LED3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能P3口:P3口管

33、脚是8个带有内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表2-4所示。P3口同时为闪烁编程20和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6

34、。因此它可用作对外部输出的脉冲或用于定时目的。表2-4 AT89C51特殊功能表端口引脚第二功能RXD(串行输入口)TXD(串行输出口)/INT0(外部中断0)/INT1(外部中断1)T0(记时器0外部输入)T1(记时器1外部输入)/WR(外部数据存储器写选通)/RD(外部数据存储器读选通)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁

35、定为RESET;当/EA保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。第3章 软件编程及调试3.1 总体程序设计编程前,必须设置好地址、数据以及控制信号。编程单元的地址加在P1口和P2口的P2.0P2.3(11位地址范围为0000H0FFFH),数据从P0口输入,引脚P2.6、P2.7、P3.6、P3.7的电平设置参考校验电路,/PSEN为低电平,RST保持高电平,EA/Vpp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲

36、。编程时,本次设计采用12MHZ的石英晶体振荡器。具体过程是:1在地址线上加上要编程单元的地址信号,这里为33H,34H,35H,36H,37H,38H,6个地址符。2在数据线上加上要写入的数据字节,比如甲队加一分就是在36H地址上加上(偏移)一个字符06H。3激活相应的控制信号。4在高电压编程方式时,将EA/Vpp端加上+12V编程电压。5改变编程单元的地址和写入的数据,重复15步骤,直到全部文件编程结束,每个字节写入周期是自身定时的,通常约为1.5ms。本次设计的程序流程图如图3-1所示。总体设计模块分为计时模块和计分模块两部分。3.2 计时系统程序设计计时系统程序设计流程图如图3-1所示

37、。图3-1 计时部分程序流程图3.3 计分系统程序设计计分系统程序设计的流程图如下图3-2所示。图3-2 计分部分程序流程图3.4 系统调试3.4.1 软件调试上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM 如果存在问题,程序通常都会成为无法控制。因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM 进行检测。检测内容包括:(1)检测RAM 中的单元。这主要通过写

38、入和读出的数据保持一致。(2)检测单片机与RAM 之间的地址数据总线。总线即没有互相短路,也没有连接到“地”上。另外,在仿真前要做好充分的准备在硬件仿真调试之前,下面准备工作将是必要的:(1)程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程规范。(2)对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。(3)如果代码有修改,再次对代码进行检查。结论在本次设计中,我通过基于典型单片机AT89C51的设计和应用,对于单片机工作原理,功能有了宏观的了解

39、,并对单片机C程序的应用有了新的、进一步的认识。在设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。由于设计的计划没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我

40、们以后的就业还是学习,都会起到很大的促进和帮助。本次设计测试结果以及不足之处:计时电路可完成倒计时、暂停、继续等功能,在比赛时间到后可进行报警。记分电路工作正常,可完成对比分的刷新与暂存。参考文献1 徐惠民, 安德宁. 单片微型计算机原理接口及应用. (第二版) 北京:北京邮电大学出版社. 2000:23-382 唐俊翟. 单片机原理与应用. 北京:冶金工业出版社, 2003. 83 丁明亮, 唐前辉. 51单片机应用设计与仿真-基于Keil C和Proteus . 北京: 北京航空航天大学出版社, 20094 彭为. 黄科, 雷道仲. 单片机典型系统设计实例精讲. 北京:电子工业出版社. 2

41、006:247-2735 潘永雄. 新编单片机原理与应用. 西安:西安电子科技大学出版社. 2003 6 求是科技. 单片机典型模块设计实例导航. 北京:人民邮电出版社, 2004 7 李广弟. 单片机基础. 北京:北京航空航天大学出版社, 2001. 7:63-658 余发山. 单片机原理及应用技术. 徐州:中国矿业大学出版社, 2003. 9 马家辰, 孙玉德, 张颖等. MCS-51单片机原理及接口技术哈尔滨:哈尔滨工业大学出版社, 1997:178-17910 崔华, 蔡炎光 . 单片机实用技术. 北京:清华大学出版社, 2001.11 周润景,张丽娜. 基于PROTEUS的电路及单片

42、机系统设计及仿真. 北京:北京航空航天大学出版社,2006. 5:3-1912 宋凤娟, 廉文利, 付云强. 单片机89C51在调速系统中的应用. 微计算机信息, 2007, 12(6):113-11413 求是科技. 单片机应用系统开发实例导航. 北京:人民邮电出版社, 200414 何立民. 单片机应用技术选编. 北京:北京航空航天大学出版社, 200215 电子世界. 2005年9月刊. 国内邮发代号:2-89216 蒋辉平, 周国雄. 基于PROTEUS 的单片机系统设计与仿真实例. 北京: 机械工业出版社, 200917 李东生. Protel99 SE电路设计技术入门与应用. 第一

43、版. 北京:电子工业出版社. 200218 罗伯特森. PCB设计基础. 北京:机械工业出版社.2007.5:15-2019 金素华, 张尉. 单片机调试方法的讨论. 电子世界, 2004, 25(4):34-65致谢三周的时间马上就过去了,感觉时间过的很快,本次课程设计中,得到了老师和同学们大量的帮助。本设计是在沈任元老师的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。在设计的整个过程中,老师都始终给予我细心的指导和不懈的支持。通过此次单片机课程设计,是我对专业知识得到了进一步的加强,为以后的生活工作奠定了基础。附录 附录1 PCB印

44、制版图附录2 程序源代码#include#define LEDData P0unsigned char code LEDCode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char minit,second,count,count1; /分,秒,计数器sbit add1=P10;/甲对加分,每按一次加1分 /在未开始比赛时为加时间分sbit dec1=P11;/甲对减分,每按一次减1分/在未开始比赛时为减时间分sbit exchange=P12;/交换场地sbit add2=P13;/乙对加分,每按一次加1分/在未开始

45、比赛时为加时间秒sbit dec2=P14;/乙对减分,每按一次减1分/在未开始比赛时为减时间秒sbit secondpoint=P07;/秒闪动点/-依次点亮数码管的位-sbit led1=P27;sbit led2=P26;sbit led3=P25;sbit led4=P24;sbit led5=P23;sbit led6=P22;sbit led7=P21;sbit led8=P20;sbit led9=P37;sbit led10=P36;sbit led11=P35;sbit alam=P17;/报警bit playon=0;/比赛进行标志位,为1时表示比赛开始,计时开启bit t

46、imeover=0;/比赛结束标志位,为1时表示时间已经完bit AorB=0;/甲乙对交换位置标志位bit halfsecond=0;/半秒标志位unsigned int scoreA;/甲队得分unsigned int scoreB;/乙队得分void Delay5ms(void)unsigned int i;for(i=100;i0;i-);void display(void)/-显示时间分-LEDData=LEDCodeminit/10;led1=0;Delay5ms();led1=1;LEDData=LEDCodeminit%10;led2=0;Delay5ms();led2=1;/

47、-秒点闪动-if(halfsecond=1)LEDData=0x80;elseLEDData=0x00;led2=0;Delay5ms();led2=1;secondpoint=0;/-显示时间秒-LEDData=LEDCodesecond/10;led3=0;Delay5ms();led3=1;LEDData=LEDCodesecond%10;led4=0;Delay5ms();led4=1;/-显示1组的分数百位-if(AorB=0)LEDData=LEDCodescoreA/100;elseLEDData=LEDCodescoreB/100;led5=0;Delay5ms();led5=

48、1;/-显示1组分数的十位-if(AorB=0)LEDData=LEDCode(scoreA%100)/10;elseLEDData=LEDCode(scoreB%100)/10;led6=0;Delay5ms();led6=1;/-显示1组分数的个位-if(AorB=0)LEDData=LEDCodescoreA%10;elseLEDData=LEDCodescoreB%10;led7=0;Delay5ms();led7=1;/-显示2组分数的百位-if(AorB=1)LEDData=LEDCodescoreA/100;elseLEDData=LEDCodescoreB/100;led8=0

49、;Delay5ms();led8=1;/-显示2组分数的十位-if(AorB=1)LEDData=LEDCode(scoreA%100)/10;elseLEDData=LEDCode(scoreB%100)/10;led9=0;Delay5ms();led9=1;/-显示2组分数的个位-if(AorB=1)LEDData=LEDCodescoreA%10;elseLEDData=LEDCodescoreB%10;led10=0;Delay5ms();led10=1;/=按键检测程序=void keyscan(void)if(playon=0)if(add1=0)display();if(add

50、1=0);if(minit0)minit-;elseminit=0;dodisplay();while(dec1=0);if(add2=0)display();if(add2=0);if(second0)second-;elsesecond=0;dodisplay();while(dec2=0);if(exchange=0)display();if(exchange=0);TR1=0;/关闭T1计数器alam=1;/关报警 AorB=AorB;/开启交换minit=15;/并将时间预设为15:00second=0;dodisplay();while(exchange=0);elseif(add

51、1=0)display();if(add1=0);if(AorB=0)if(scoreA999)scoreA+;elsescoreA=999;elseif(scoreB0)scoreA-;elsescoreA=0;elseif(scoreB0)scoreB-;elsescoreB=0;dodisplay();while(dec1=0);if(add2=0)display();if(add2=0);if(AorB=1)if(scoreA999)scoreA+;elsescoreA=999;elseif(scoreB0)scoreA-;elsescoreA=0;elseif(scoreB0)sco

52、reB-;elsescoreB=0;dodisplay();while(dec2=0);/*主函数*void main(void)TMOD=0x11; TL0=0xb0; TH0=0x3c; TL1=0xb0; TH1=0x3c;minit=15;/初始值为15:00second=0; EA=1;ET0=1;ET1=1; TR0=0;TR1=0;EX0=1;IT0=1;IT1=1;/EX1=1;PX0=1;/PX1=1;PT0=0;P1=0xFF;P3=0xFF; while(1) keyscan();display(); void PxInt0(void) interrupt 0Delay5

53、ms();EX0=0;alam=1;TR1=0;if(timeover=1)timeover=0;if(playon=0)playon=1;/开始标志位TR0=1;/开启计时elseplayon=0;/开始标志位清零,表示暂停TR0=0;/暂时计时EX0=1;/开中断void PxInt1(void) interrupt 2Delay5ms();EX1=0;/关中断if(timeover=1)/比赛结束标志,必须一节结束后才可以交换,中途不能交换场地TR1=0;/关闭T1计数器alam=1;/关报警 AorB=AorB;/开启交换minit=15;/并将时间预设为15:00second=0;EX1=1;/开中断/*中断服务函数*void time0_int(void) interrupt 1 TL0=0xb0; TH0=0x3c; TR0=1; count+;if(count=10)halfsecond=0; if(count=20) count=0;halfsecond=1; if(second=0) if(minit0)second=59;minit-;elsetimeover=1;playon=0;TR0=0;TR1=1;elsesecond-; /*中断服务函数void time1_int(void) interrupt 3TL1=0x

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