基于51单片机的篮球计分器毕业论文设计

摘 要

体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。它负责对比赛的结果和成绩信息进行采集处理、传输分配。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。比赛具有的不可重复性,决定了篮球计时计分系统是一个实时性很强、可靠性要求极高的电子服务系统,所以计时计分设备是篮球比赛中不可缺少的电子设备。

单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。

模块化设计系统,分为计时显示模块、计分显示模块、定时报警、按键控制键盘模块。模块的程序结构简单、易于编写、任务明确、调试和修改。程序可读性好,对程序的修改可局部进行,其他部分可保持不变。编程后利用Keil软件来进行编译,将生成的HEX文件装入芯片中,采用Proteus软件仿真,检验功能是否正常,然后用Protel99画硬件的电路图。本设计中系统硬件电路主要有以下几个部分:单片机AT89C51、计时电路、计分电路、报警电路和按键开关。

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

系统。该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩以及赛后成绩暂存等功能。具有价格低廉、性能稳定、操作方便并且易于携带等特点,适用于各种公司学校等中小企业.

关键词: AT89C51 LED显示器 计时计分器

目录

第1章 绪论 .................................................................................................... 3

第2章 系统方案说明 .................................................................................. 4

§2.1 系统设计方案 ..................................................................................... 4

§2.1.1 篮球赛计时计分器设计的现状 ................................................... 4

§2.1.2 系统总体设计方案 ...................................................................... 4

§2.2 系统基本功能介绍 .............................................................................. 5

第3章 系统硬件电路设计 ......................................................................... 7

§3.1 篮球赛计时计分器电路工作过程 ............................ 7

§3.2 系统硬件电路组成......................................... 7

§3.2.1 计时电路 ............................................ 7

§3.2.2 计分电路 ........................................... 15

§3.3 器件选择及介绍 .......................................... 19

§3.4 AT89C51 ................................................. 19

§3.4.1 CD4511芯片介绍 ..................................... 22

§3.4.2 CD4094芯片的介绍 ................................... 23

§3.4.3 74LS21芯片介绍 ..................................... 24

第4章 软件编程调试 ................................................................................ 25

§4.1 总体程序设计 ............................................ 25

§4.2 初始化程序设计 .......................................... 26

§4.3 计时系统程序设计........................................ 28

§4.4 计分系统程序设计........................................ 29

第5章 调试 .................................................................................................. 29

§5.1 系统调试 ................................................ 30

§5.1.1 软件调试 ........................................... 30

§5.1.2 仿真调试 ........................................... 30

结束语 .............................................................................................................. 31

致 谢 .............................................................................................................. 31

参考文献 ........................................................................................................... 33

第1章 绪论

因为单片机的广泛使用,适用单片机来制作的电子产品就越来越多。如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。

根据课题要求,这里介绍一种篮球赛计时计分器的设计方法,即单片机带外围扩展来驱动数码管工作的电路。电路的核心元件为单片机,用10个7段共阴极LED数码管作为显示器。4个用于记录赛程时间,2个用于显示分钟,2个用于显示秒钟。6个用于记录甲、乙两队的比赛分数,每队3个,显示分数范围可达0~999分,足够比赛中得分的现实的需求。比赛前,将时间设置好,比赛开始时启动计时,直至倒计时到零为止。计时范围达到0~99分钟,能满足实际赛程计时的需求。为了配合计时器调整时间和计分器校正比分,设计了7个按键,3个用于启动和暂停赛程时间。4个用于输入甲、乙两队的分数,另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示比赛结束。

该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及赛后成绩暂存等功能。设计分为软件设计和硬件设计两部分。主控芯片采用AT89C51,使用汇编语言编写软件程序,主体分为计时显示模块、计分显示模块、定时报警、按键控制模块。编程后利用Keil C51软件来进行编译,再将生成的HEX文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,随后可用Protel99画出硬件电路图。

通过本次基于单片机的篮球赛计时计分器的设计,可以了解、熟悉有关单片机开发设计实例的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的方法和技巧。

第2章 系统方案说明

§2.1 系统设计方案

§2.1.1 篮球赛计时计分器设计的现状

体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据信息进行快速采集记录、加工处理、传递和利用的系统。根据运动项目的不同,比赛规则要求也不同,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类和得分类等多种类型。

篮球比赛是根据运动队员在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成的,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现激烈的比赛现场感和表演娱乐等功能目标。现在,根据设计要求,介绍一下设计方案。

§2.1.2 系统总体设计方案

根据课题要求,单片机带外围扩展,驱动数码管工作的电路,可提升学生对单片机接口电路的综合运用能力;计时电路主要由按键开关、单片机AT89C51、译码器及LED显示器构成。当调时开关(十位)按下时产生一个低电平,对应调分(十位)控制端P2.0的LE输出高电平,表示可以向CD45ll的调分位(十位)发送数据,将要显示数据的代码经P1.0送到CD4511的A另— 端,送完后将LE清零。调时按键开关每按一次,数字自动加1。直到调到需要设置的时间即可。调时(个位)的操作方法与之相同。时间设置完后,启动定时器。如果比赛中暂停,按一下暂停键即可暂停计时。球赛计时计分器系统图如1-1图所示。

图1-1 系统构成图

§2.2 系统基本功能介绍

本设计要实现的基本功能有:赛程时间设置,赛程时间启/停设置,比分刷新控制,比分交换控制,计时计分显示,赛程结束报警。以下对个功能进行介绍。

1、 赛程时间设置

通过按键K5、K6来设置赛程时间。篮球比赛的一节时间为12分钟,通过按K5按键,使LED数码管1显示“1”即可。在按K6按键,设置比赛时间的个位数,即使数码管2显示“2”。

当比赛结束时,如果由于一些特殊原因要增加比赛时间,这时比赛时间的调整同样由K5、K6按键来设置,且方法和上面一样。但一般情况下只需按下K6来设置即可。因为加赛时间只有几分钟。

2、 赛程时间启动/暂停设置

当时间设置完成后,比如设置赛程时间为45分钟,则在LED显示器上显示为4500,45表示分钟,00表示秒钟。这时,如果裁判吹响开始的哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由4500变成4459,4458„„一直计时直到计为0000时表示赛程结束。按键K7为赛程启动和暂停控制。

3、

比分刷新控制 由于在比赛中,两队的比分在不断变化,所以需要设置比分刷新控制,

图1-1 系统构成图

§2.2 系统基本功能介绍

本设计要实现的基本功能有:赛程时间设置,赛程时间启/停设置,比分刷新控制,比分交换控制,计时计分显示,赛程结束报警。以下对个功能进行介绍。

1、

赛程时间设置

通过按键K5、K6来设置赛程时间。篮球比赛的一节时间为12分钟,通过按K5按键,使LED数码管1显示“1”即可。在按K6按键,设置比赛时间的个位数,即使数码管2显示“2”。

当比赛结束时,如果由于一些特殊原因要增加比赛时间,这时比赛时间的调整同样由K5、K6按键来设置,且方法和上面一样。但一般情况下只需按下K6来设置即可。因为加赛时间只有几分钟。

2、

赛程时间启动/暂停设置

当时间设置完成后,比如设置赛程时间为45分钟,则在LED显示器上显示为4500,45表示分钟,00表示秒钟。这时,如果裁判吹响开始的哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由4500变成4459,4458„„一直计时直到计为0000时表示赛程结束。按键K7为赛程启动和暂停控制。

3、

比分刷新控制

由于在比赛中,两队的比分在不断变化,所以需要设置比分刷新控制,

该功能由按键K1~K4完成,具体如下:

K1按键:甲队比分加1; K2按键:甲队比分减1; K3按键:乙队比分加1; K4按键:乙队比分减1。 4、

比分交换控制

比分交换控制由计时电路图2-5中所示的K7键完成。我们知道,因为比分交换是在上半场赛程结束后进行的,也就是说比分交换要受赛程时间控制,只有当上半场计时器指示为0000时,按K7键,则会自动交换甲、乙两队的比分。如果上半场赛程时间没有到0000时,则此时按下K7键,只会暂停比赛,不能交换分数。如果要继续比赛,再按一次K7即可。因此,K7键完成三重功能,即:启动,暂停,比分交换。

5、

计时计分显示

计时计分显示器是采用七段共阴极LED显示器来显示的。其中计分是用6个LED显示器。计时采用4个LED显示器;显示格式为000000和0000。

6、

程结束报警

当赛程时间或24s计时结束时,系统会自动发出10s报警声提示。

第3章 系统硬件电路设计

§3.1 篮球赛计时计分器电路工作过程

篮球计时器计分器的工作过程:比赛之前,接通电源,系统自动复位,计分电路与计时电路中的共阴极数码管分别显示为000000和0000;然后我们按照计时电路图2-5中的K5键来设置比赛时间的十位数,再按下K6键,设置比赛时间的个位数字,使数码管2显示“0”即可。一般比赛时间为40分钟,所示只需要按下K5键显示“4”,按下K6键显示“0”即可。时间设置好时,等待赛程开始,裁判吹响哨声时,启动计时,这时计时电路便开始工作,计时采用倒计时方式,20分钟变到0分钟时候表示上半场结束。上半场结束时,蜂鸣器会发出10秒钟响声,通知上半场结束,这时按下K7键,便完成了甲、乙两队的分数交换。在整个赛程中,两队比分一直在变动,我们通过计分电路图2-9中的K1~K4键完成此功能,K1和K2键完成甲队加分、减分,K3和K4键完成乙队加分、减分。按键每按一下,表示加上或者减去1分。由于加分、减分我们采用中断完成,且加、减分的中断优先权小于计时电路中的中断优先权,所以不会对计时电路造成影响。按下K7键,即可以暂停计时,暂停时间到时,再按下K7键继续计时,直至上半场赛程结束,蜂鸣器会发出10秒的响声。下半场的流程和上半场一致。

§3.2 系统硬件电路组成

§3.2.1 计时电路

1.显示器及其接口

显示器是最普遍的输出设备,种类繁多,单片机中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)。这两种显示器结构简单,价格便宜,因而得到广泛的应用。下面介绍发光二极管显示器(LED)的结构、工作原理及其接口电路。

(1)LED结构与原理

图3-1为典型的数码管。

图3-1 7段LED数码管

图3-2 共阴极与共阳极LED显示器

如图3-1,LED显示器又称为数码管, LED数码管显示器是由若干个发光二极管组成的,当发光二极管导通时,相应的点或线段发光,将这些发光二极管排成一定的图形,控制不同组合的二极管导通,就可以显示出不同的字形和符号。单片机系统中常用的LED显示器为七段显示器,再加上一个小数点,因此也可以把它称之为八段数码管显示器。其机构形式有共阴极和共阳极两种。共阴极是把所有组成八段数码管的发光二极管的阴极连在一起,通常接地,通过控制每一只发光二极管的阳极电平来使其发光或熄灭,阳极为高电平则发光,阳极为低电平则熄灭;共阳极是把组成八段数码管的所有发光二极管的阳极连起来,通常为高电平(如+5V),通过控制每一只发光二极管的阴极电平的高低来使其发光或是熄灭,阴极为低电平发光,为高电平则熄灭。

表3-1列出了共阳极与共阴极LED显示器显示数字、字母与显示代码之间的对应关系。

表3-1 代码对应表

(2)LED显示器显示方式

点亮LED显示器有两种方式:一是静态显示;二是动态显示。在本次设计中,采用的是静态显示。

静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。

这种电路的优点在于:在同一时间可以显示不同的字符;但缺点就是占用端口资源较多。从图3-3可以看出,每位LED显示器需要单独占用8根端口线,因此,在数据较多的时候,往往不采用这种设计,而是采用动态显示方式。本设计采用的便是此种显示方式。

图3-3 静态显示图

图3-4 动态显示图

由于所有的段选码连在一起,所以同一瞬间只能显示同一种字符。但如果要显示不同字符,则要由位选码来控制。(如果LED为共阴极则P2.0~~P2.3输出为高电平,如果LED为共阳极则P2.0~~P2.3输出为低电平。)

例如,现在要显示“5678”四个数字,则首先应该将“5”的显示代码(共阴LED显示器的显示代码为6DH,共阳LED显示器的显示代码为92H)由P1.0送出,然后P2.0~~P2.3输出相应位码(LED为共阴则P2.0~~P2.3输出1000, LED为共阳则P2.0~~P2.3输出0111)时,则可以看到在数码管1上显示的数字为“5”。再将显示的数字“5”延时5~10ms,以造成视觉暂留效果;同时代码由P1.0送出。

用同样的方法将其余3个数字“678”送数码管2,3,4显示,于是最后则可以在4位LED显示器上看到“5678”四个数字。为了使显示效果更加稳定,可以使每个数码管所显示的数字不断的重复,但其中重复频率达到了一定的程度的时候,加之人眼睛本身的视觉暂留效果的作用,便可以看到相当稳定的“5678”四个数字。

如表3-2,即为模拟以上的过程表(以共阴LED设置显示代码,共阳型与

此相反)。

表3-2 模拟过程表

2.报警器

(1)报警器的分类

蜂鸣器有两类3大品种。一类是压电式,一类是电磁式,电磁式又有两大品种,铁振膜式和动圈式,我们选择的是电磁式。所有蜂鸣器都有两种类型:纯蜂鸣器和带驱动的蜂鸣器,蜂鸣器都是用音频信号驱动的,都是交流驱动。

(2)报警 器的工作原理

报警器的种类很多,本次设计采用的是电磁式蜂鸣器作为报警器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片以及外壳等组成。接通电源后,振荡器产生的音频信号通过电磁线圈,使得电磁线圈产生了一个磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。

3.计时电路的工作原理图

如图3-5所示。

图3-5 计时电路原理图

4.计时电路的工作原理

计时电路主要由开关K5~~K7,单片机AT89C51,译码器以及LED显示器构成。其工作过程如下:当比赛准备开始的时候,当调时(十位)开关K5按下时,产生一个低电平;立即数00H取出,同时对应调分(十位)控制端P2.0的LE输出高电平,表示此时可以向调分(十位)的CD4511发送数据,但CD4511的输出端将不会有输出,因为LE=1时,CD4511锁存。这时,只要将要显示数据的代码经过P1口的P1.0送到CD4511的输入端A~~D端,送完后,将LE清零。这时便可以将要显示数据的代码经过CD4511译码后,从输出端a~g输出,送LED显示器显示即可。调时按键开关每按一次,数字自动加1,直到调到需要设置的时间即可。

调时(个位)的操作方法与上面一样。

时间设置完成后,启动定时器T0开始定时计数。计时采用倒计时,比如:设置的时间为45分钟,则在LED上显示“4500”四位数。定时T0计数60秒后中断返回,继续定时计数下一个60秒;同时则在4位LED显示器上显示“4459”四位数,表示时间已过去1秒钟,即为44分59秒。这样一直持续下去,直到变为“0000”时表示赛程结束。如果比赛中,裁判叫暂停,则只要按一下K7键,即可暂停计时。

5.振荡电路

本次设计要使用到AT89C51单片机的时钟振荡功能。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反馈元件的片外石英晶体[6]或者陶瓷谐振器一同构成自激振荡器。

振荡电路如图3-6所示。如图3-6,外接石英晶体或者陶瓷谐振器以及电容C1,C2接在放大器的反馈电路中构成并联谐振电路。谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,如果使用石英晶体,推荐使用30pF,而建议若使用陶瓷谐振器选择40pF。我们也可以使用外部时钟,采用外部时钟电路如图3-7所示。在外接时钟的情况下,外部时钟脉冲接到XTAL1端,即内部时钟脉冲的输入端,XTAL2则悬空。由于外部时钟信号是通过一个两分频触发器后作为内部时钟信号的,所以对外部时钟信号的占

空比没有特殊要求,但最小的高电平持续时间和最大的低电平持续时间应符合技术条件以及本次设计所采用硬件的要求。

图3-6 时钟振荡电路

图3-7 外部时钟电路

晶振电路:51单片机最小系统晶可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的合)/12MHz(产生精确的uS级时歇,方便定时操作),本设计使用的晶振为12MHz。

§3.2.2 计分电路

8051系列单片机除了有4个8位并行口外,还有一个能同时进行串行发送和接收的全双工串行通信口。它能同时发送和接收数据,还能作为同步移位寄存器使用。球赛计分电路正是利用了8051单片机串行口可以外接串行输入并行输出移位寄存作用为输出口来实现球赛比分刷新显示的。

1.串行接口工作原理

MCS-51系列单片机片内有一个串行I/O端口,通过引脚 RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信。

8051的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一种方式。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机之间或者与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器(SCON和PCON),用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。

串行端口有一个数据寄存器SBUF (在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向SBUF写入数据就启动了发送过程;读SBUF就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频可由定时器T1的溢出率确定,使用十分方便灵活。

表3-3为寄存器SCON内容定义表,表2-4为寄存器PCON位地址

表3-3 SCON各位内容定义

表3-4 PCON位地址

本次设计的计分电路中,我们使用集成电路CD4094。CD4094是8位移位寄存器,它主要完成串行输入,并行输出8位数据的功能,是典型的串行/并行转换芯片。

其中引脚分布图将在后面图2-9介绍。其中2脚DATA为串行数据输入脚;3脚CLOCK为时钟脉冲输入;4、5、6、7、14、1、3、12、11脚为并行8位数据输出,前7脚与LED显示器的a~g引脚相连,11脚置空;8脚接地;16脚接电源5V。

2.比分校正控制电路

本次设计中的比分校正控制电路由四输入与门74LS21和4个按键组成,其中K1、K2键接 74LS21的9、10脚,完成甲队加、减分控制;K3、K4键接74LS21的12、13脚,完成乙队加、减分控制。有关74LS21集成电路的引脚分布及内部原理构造如图3-8所示。

图3-8 74LS21引脚图

74LS21芯片的主要引脚说明:

7脚接地 14脚为电源脚 3.计分电路原理图 6、8脚为与门输出脚 计分电路原理图如图3-9所示。

1、2、4、5、9、10、12、13为与门输入脚

图3-9 计分电路原理图

4.计分电路的工作原理

计分电路主要由单片机AT89C51,串行/并行转换器(CD4094),LED显示器,74LS21以及按键开关组成。其工作过程如下:按键开关K1~~K4组成甲、乙两队加减分控制。按键K1~K4一端接地,另一端输入与门74LS21的9脚,10脚,12脚,13脚,以及单片机AT89C51的P3.5,P3.4,P0.2,P0.1,8脚接AT89C51的P3.2脚。当按键开关K1~K4这四个按键的任何一个一位按下时,与门的8脚输出都会产生低电平使单片机中断,从而使相应LED显示。因为按键开关按下时为低电平。

例如:现在先在以甲队加分为例,来说明整个过程。假设比赛刚开始,双方比分为000 :000,当某一时刻之后,当甲队加分时,则按下K1键,这时K1=0(低电平),其余K2K3K4=111(为高电平)K1K2K3K4相与之后的结果为低电平,这时与门8脚输出的低电平到AT89C51的P3.2脚,使其外部中断INT0发生中断,从而调用中断服务程序,将要显示的数据从程序中定义的LED显示常数表TAB中取出数据06H(因为LED显示常数表TAB的偏移地址为36H,36H首先是指向LED显示常数表TAB中第一个数据3FH的,当K1按下时,相当于将33H地址加1,这时便指向第二数据06H,即对应字母代码关系表中的加1)。

经串行发送端RXD/P3.0送至串行/并行转换器CD4094的第二个输入引脚,即数据输入DATA脚。由于串行口的工作方式设置为方式0。所以在串行数据通过RXD/P3.0引脚输出时,则TDX/P3.1引脚会输出多位时钟作为移位脉冲。将8位数据顺利送到串行/并行转换器CD4094中。另外,在RXD/P3.0引脚输出数据的同时,单片机AT89C51的P3.7引脚输出高电平给串行/并行转换器CD4094的第1个引脚STR(使能端控制),使前一片CD4094中的8位数据从QS移位至下一片CD4094输入端的第2引脚,即DATA引脚。在RXD/P3.0引脚输出数据的过程中,连续使单片机RD/P3.7引脚输出6次高电平6,这样便使6片CD4094中得到不同的显示代码,然后使单片机RD/P3.7引脚输出为低电平,将6片CD4094中显示代码送LED显示器显示,便得到结果,显示为001 000。

其对应的程序原理如下阐述:

因为,在程序中定义了33H,34H,35H,36H,37H,38H,6地址单元分别对应乙队、甲队3个LED显示器在程序中定义的LED显示常数表TAB的偏移首

地址。单片机的RXD每次发送6个数据,分别对应以33H,34H,35H,36H,37H,38H为偏移首地址单元里的数据。例如:甲队加分表示以36H为偏移首地址的单元加1,指向第二个数据06H,其他以33H,34H,35H,37H,38H为偏移首地址单元的数据仍然指向第一个数据3FH,这样将这六个数据:3FH,3FH,3FH,06H,3FH,3FH,经单片机的RXD发送出去,再在单片机RD/P3.7输出的6次高电平作用下产生6次移位,便在6片CD4094中得到显示代码:3FH,3FH,06H,3FH,3FH,3FH。然后在RD/P3.7输出时显示为001 000。

§3.3 器件选择及介绍

本系统在设计的过程中主要选取了以下一些器件:

单片机:AT89C51

四一七段BCD译码芯片:CD4511

并行 / 串行转换芯片:CD4094

四输入与门:74LS21

显示器件:7段共阴极LED显示器

按键:欧姆龙按键

§3.4 AT89C51 MCS-51是指由美国INTEL

公司生产的一系列单片机的总称,这一系列单片机包括了很多品种, AT89C51是一个低电压,高性能CMOS 8位单片机,片内

含4k bytes的可反复擦写

的Flash只读程序存储器

和128 bytes的随机存取

数据存储器(RAM),器件

采用ATMEL公司的高密

度、非易失性存储技术生

产,兼容标准MCS-51指令

系统,内置功能强大的微

型计算机的AT89C51提供

了高性价比的解决方案。

AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

如图所示,为AT89C51单片机基本构造,其基本性能介绍如下:

AT89C51本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 AT89C51的主要特性:

·与MCS-51 兼容

·4K字节可编程FLASH存储器

·寿命:1000写/擦循环

·数据保留时间:10年

·全静态工作:0Hz-24MHz

·三级程序存储器锁定

·128×8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

AT89C51管脚说明:

VCC(40):供电电压,接±5V的电压。

GND(20):接地。

P0口(39~32):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口(1~8):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口(21~27):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口(10~17):P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3口管脚备选功能:

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST(9):复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP(31):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出。

§3.4.1 CD4511芯片介绍

在本次设计中,由于只要求LED显示器显示0~9这十个数字,因此我们选用CD4511为LED显示器的译码芯片。

CD4511是将锁存、译码、驱动三种功能集于一身的“三合一”电路。锁存器的作用是避免在计数过程中出现“跳数现象”,便于观察和记录。译码器将BCD码转换成7段码,再经过大电流反相器,驱动共阴极LED数码管。译码器属于非时序电路,其输出状态与时钟无关,仅取决于输入的BCD码。

如图3-11显示为CD4511引脚分布图,D~A为BCD码输入端。a~g是7段码输出端。

图3-11 CD4511引脚分布图

使用时,只要将CD4511的输入端与微机系统输出端口的某4个数据位相连,而CD4511的输出直接与LED的a~g相连,便可实现对BCD的显示。图3-12为对1位BCD码的显示。表3-7为CD4511的逻辑功能表。

图3-12 CD4511对BCD码的显示

§3.4.2 CD4094芯片的介绍

在本次设计的计分电路中,我们使用集成电路CD4094。CD4094是8位移位寄存器,它主要完成串行输入,并行输出8位数据的功能,所以又叫8位串/并转换器。图3-13为CD4094的引脚图。

表3-7 CD4511逻辑功能表

图3-13 CD4094引脚分布图

§3.4.3 74LS21芯片介绍

本次设计中的比分校正电路采用四输入与门74LS21来实现。74LS21是双4输入与门。在一个芯片里有两个相同的单元,其中一个任何一个都是1/2断口。同型号的74系列、74HC系列、74LS系列芯片,逻辑功能上是一样的。表

3-8为74、74HC、74LS系列芯片资料。

表3-8 74、74HC、74LS相关资料表

第4章 软件编程调试

§4.1 总体程序设计

编程前,必须设置好地址、数据以及控制信号。

编程单元的地址加在P1口和P2口的P2.0—P2.3(11位地址范围为0000H—0FFFH),数据从P0口输入,引脚P2.6、P2.7、P3.6、P3.7的电平设置参考校验电路,/PSEN为低电平,RST保持高电平,EA/Vpp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲。

编程时,可采用4—20MHZ的时钟振荡器,本次设计采用12MHZ的石英晶体振荡器。具体过程是:

1.在地址线上加上要编程单元的地址信号,这里为33H,34H,35H,36H,

37H,38H,6个地址符。?

2.在数据线上加上要写入的数据字节,比如甲队加一分就是在36H地址上加上(偏移)一个字符06H。

3.激活相应的控制信号。

4.在高电压编程方式时,将EA/Vpp端加上+12V编程电压。

5.改变编程单元的地址和写入的数据,重复1—5步骤,直到全部文件编程结束,每个字节写入周期是自身定时的,通常约为1.5ms。

本次设计的程序流程图如图4-1所示。总体设计模块分为计时模块和计分模块两部分。

§4.2 初始化程序设计

通过初始化程序,对单片机进行的各端口初始状态和各存储单元的初始值进行设置。以使单片机进入准备状态。

初始化部分程序如下: ORG 0000H

AJMP LK1 ;主程序地址 ORG 000BH ;定时中断入口地址 AJMP CTCO

ORG 0013H ;外部中断入口地址 AJMP CXT

图4-1 总体程序流程图

计时系统程序设计流程图如图4-2所示。

图4-2 计时部分程序流程图

计分系统程序设计的流程图如下图4-3所示。

图4-3 计分部分程序流程图

第5章 调试

§5.1 系统调试

§5.1.1 软件调试

上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM 如果存在问题,程序通常都会成为无法控制。

因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM 进行检测。

检测内容包括:

(1)检测RAM 中的单元。这主要通过写入和读出的数据保持一致。

(2)检测单片机与RAM 之间的地址数据总线。总线即没有互相短路,也没有连接到“地”上。

另外,在仿真前要做好充分的准备在硬件仿真调试之前,下面准备工作将是必要的:

(1)程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程规范。

(2)对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。

(3) 如果代码有修改,再次对代码进行检查。

§5.1.2 仿真调试

仿真开始,具体流程如下:

1.系统进入初始化,程序从START开始,关闭了所有用户,INTO中断一直为高优先级,系统一直处于IDLE状态。由于这是软仿真,无法加入INTO信号,所以我们手动将P3.2的数值由1修改为0,程序才得以执行。

2.调用延时程序,程序跳转。判断引脚P3.0的数值,因为P3.0连接计

分电路部分中的CD4094的DATA脚,使用软件仿真,将P3.0的数值由1修改为0。而P3.0数值仍然为1。

3.程序进入计分中断服务程序,因为系统工作方式为方式0,P3.0与P3.1同时输出信号,P3.1为多位时钟脉冲信号。信号经由CD4094传输到显示器上,系统完成一次操作。

4.仿真结束,系统再次进入IDLE状态,闲置,等待下次INTO的输入。仿真结果表明程序运行正常。

结束语

通过这次的毕业设计,我对一些专业的电子设计有了更深的了解,同时也尝试着去应用自己所掌握的知识。这次毕业设计主要对电路的设计,单片机AT89C51的应用,各种设计软件的操作的一个综合性的考核。经过这次的设计,我感受很深。

毕业设计不仅给我们提供了一个很好的展现和应用自己所学知识的平台,又是检验自己所学的知识和实现知识价值能力的一个机会。

在设计过程中不可避免的会遇到很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。尤其是在最后调试部分,会因为各种原因使得自己得不到满意的结果,由于单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成需要花费大量的时间去重新查阅各种资料和程序命令,但一旦问题解决了,会使得自己得到重来没有过的兴奋与自豪。

致 谢

经过这次的毕业设计,我对电子设计有了更深的了解,同时也去应用自己所掌握的知识。这次毕业设计主要对电路的设计,单片机AT89C51的应用,各种设计软件的操作的一个综合性的考核。

毕业设计不仅给我们提供了一个很好的展现和应用自己所学知识的平台,又是检验自己所学的知识和实现知识价值能力的一个机会。

在设计过程中不可避免的会遇到很多的问题,暴露了自己学习上很多的不足和弊端。给我的感觉就是下手很难,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。尤其是在最后调试部分,会因为各种原因使得自己得不到满意的结果,由于单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成需要花费大量的时间去重新查阅各种资料和程序命令。

对我而言,知识上的收获可喜,精神上的丰收更加珍贵。让我知道了学无止境的道理,就像这次设计由于对单片机知识的不扎实,导致浪费很多时间在查阅资料和了解程序指令意思上。我们每个人永远都不要只满足于现有的成就,不仅要好好学习,更要把学到的东西能过活学活用。让这些知识发挥出自己的功效,而不是纸上谈兵一知半解。总之,实践才能出真理。不管以后遇到什么困难。只要用心做事,我想都不会将我打倒的。

参考文献

[1] 唐俊翟. 单片机原理与应用. 北京:冶金工业出版社, 2003. 8

[2] 丁明亮, 唐前辉. 51单片机应用设计与仿真-基于Keil C和Proteus . 北京: 北京航空航天大学出版社, 2009

[3]彭为. 黄科, 雷道仲. 单片机典型系统设计实例精讲. 北京:电子工业出版社. 2006:247-273

[4] 李广弟. 单片机基础. 北京:北京航空航天大学出版社, 2001. 7:63-65

[5] 马家辰, 孙玉德, 张颖等. MCS-51单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社, 1997:178-179

[6] 崔华, 蔡炎光 . 单片机实用技术. 北京:清华大学出版社, 2001.

[7] 宋凤娟, 廉文利, 付云强. 单片机89C51在调速系统中的应用. 微计算机信息, 2007,

12(6):113-114

[8]求是科技. 单片机应用系统开发实例导航. 北京:人民邮电出版社, 2004

[9]何立民. 单片机应用技术选编. 北京:北京航空航天大学出版社, 2002

[10]电子世界. 2005年9月刊. 国内邮发代号:2-892

[11]罗伯特森. PCB设计基础. 北京:机械工业出版社.2007.5:15-20

[12] 金素华, 张尉. 单片机调试方法的讨论. 电子世界, 2004, 25(4):34-65

[13] 崔玮. Protel 99 SE电路原理图与电路板设计教程. 北京: 机械工业出版社, 2005: 221-253

[14] Macro Assembler and utilities, keil,Elektronik.Gmbh.and keil software inc.2001

[15] C51 Compiler user's Guide keil,Elektronik Gmbh,and keil softwarer,inc.2001

摘 要

体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。它负责对比赛的结果和成绩信息进行采集处理、传输分配。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。比赛具有的不可重复性,决定了篮球计时计分系统是一个实时性很强、可靠性要求极高的电子服务系统,所以计时计分设备是篮球比赛中不可缺少的电子设备。

单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。

模块化设计系统,分为计时显示模块、计分显示模块、定时报警、按键控制键盘模块。模块的程序结构简单、易于编写、任务明确、调试和修改。程序可读性好,对程序的修改可局部进行,其他部分可保持不变。编程后利用Keil软件来进行编译,将生成的HEX文件装入芯片中,采用Proteus软件仿真,检验功能是否正常,然后用Protel99画硬件的电路图。本设计中系统硬件电路主要有以下几个部分:单片机AT89C51、计时电路、计分电路、报警电路和按键开关。

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

系统。该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩以及赛后成绩暂存等功能。具有价格低廉、性能稳定、操作方便并且易于携带等特点,适用于各种公司学校等中小企业.

关键词: AT89C51 LED显示器 计时计分器

目录

第1章 绪论 .................................................................................................... 3

第2章 系统方案说明 .................................................................................. 4

§2.1 系统设计方案 ..................................................................................... 4

§2.1.1 篮球赛计时计分器设计的现状 ................................................... 4

§2.1.2 系统总体设计方案 ...................................................................... 4

§2.2 系统基本功能介绍 .............................................................................. 5

第3章 系统硬件电路设计 ......................................................................... 7

§3.1 篮球赛计时计分器电路工作过程 ............................ 7

§3.2 系统硬件电路组成......................................... 7

§3.2.1 计时电路 ............................................ 7

§3.2.2 计分电路 ........................................... 15

§3.3 器件选择及介绍 .......................................... 19

§3.4 AT89C51 ................................................. 19

§3.4.1 CD4511芯片介绍 ..................................... 22

§3.4.2 CD4094芯片的介绍 ................................... 23

§3.4.3 74LS21芯片介绍 ..................................... 24

第4章 软件编程调试 ................................................................................ 25

§4.1 总体程序设计 ............................................ 25

§4.2 初始化程序设计 .......................................... 26

§4.3 计时系统程序设计........................................ 28

§4.4 计分系统程序设计........................................ 29

第5章 调试 .................................................................................................. 29

§5.1 系统调试 ................................................ 30

§5.1.1 软件调试 ........................................... 30

§5.1.2 仿真调试 ........................................... 30

结束语 .............................................................................................................. 31

致 谢 .............................................................................................................. 31

参考文献 ........................................................................................................... 33

第1章 绪论

因为单片机的广泛使用,适用单片机来制作的电子产品就越来越多。如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。

根据课题要求,这里介绍一种篮球赛计时计分器的设计方法,即单片机带外围扩展来驱动数码管工作的电路。电路的核心元件为单片机,用10个7段共阴极LED数码管作为显示器。4个用于记录赛程时间,2个用于显示分钟,2个用于显示秒钟。6个用于记录甲、乙两队的比赛分数,每队3个,显示分数范围可达0~999分,足够比赛中得分的现实的需求。比赛前,将时间设置好,比赛开始时启动计时,直至倒计时到零为止。计时范围达到0~99分钟,能满足实际赛程计时的需求。为了配合计时器调整时间和计分器校正比分,设计了7个按键,3个用于启动和暂停赛程时间。4个用于输入甲、乙两队的分数,另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示比赛结束。

该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及赛后成绩暂存等功能。设计分为软件设计和硬件设计两部分。主控芯片采用AT89C51,使用汇编语言编写软件程序,主体分为计时显示模块、计分显示模块、定时报警、按键控制模块。编程后利用Keil C51软件来进行编译,再将生成的HEX文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,随后可用Protel99画出硬件电路图。

通过本次基于单片机的篮球赛计时计分器的设计,可以了解、熟悉有关单片机开发设计实例的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的方法和技巧。

第2章 系统方案说明

§2.1 系统设计方案

§2.1.1 篮球赛计时计分器设计的现状

体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据信息进行快速采集记录、加工处理、传递和利用的系统。根据运动项目的不同,比赛规则要求也不同,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类和得分类等多种类型。

篮球比赛是根据运动队员在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成的,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现激烈的比赛现场感和表演娱乐等功能目标。现在,根据设计要求,介绍一下设计方案。

§2.1.2 系统总体设计方案

根据课题要求,单片机带外围扩展,驱动数码管工作的电路,可提升学生对单片机接口电路的综合运用能力;计时电路主要由按键开关、单片机AT89C51、译码器及LED显示器构成。当调时开关(十位)按下时产生一个低电平,对应调分(十位)控制端P2.0的LE输出高电平,表示可以向CD45ll的调分位(十位)发送数据,将要显示数据的代码经P1.0送到CD4511的A另— 端,送完后将LE清零。调时按键开关每按一次,数字自动加1。直到调到需要设置的时间即可。调时(个位)的操作方法与之相同。时间设置完后,启动定时器。如果比赛中暂停,按一下暂停键即可暂停计时。球赛计时计分器系统图如1-1图所示。

图1-1 系统构成图

§2.2 系统基本功能介绍

本设计要实现的基本功能有:赛程时间设置,赛程时间启/停设置,比分刷新控制,比分交换控制,计时计分显示,赛程结束报警。以下对个功能进行介绍。

1、 赛程时间设置

通过按键K5、K6来设置赛程时间。篮球比赛的一节时间为12分钟,通过按K5按键,使LED数码管1显示“1”即可。在按K6按键,设置比赛时间的个位数,即使数码管2显示“2”。

当比赛结束时,如果由于一些特殊原因要增加比赛时间,这时比赛时间的调整同样由K5、K6按键来设置,且方法和上面一样。但一般情况下只需按下K6来设置即可。因为加赛时间只有几分钟。

2、 赛程时间启动/暂停设置

当时间设置完成后,比如设置赛程时间为45分钟,则在LED显示器上显示为4500,45表示分钟,00表示秒钟。这时,如果裁判吹响开始的哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由4500变成4459,4458„„一直计时直到计为0000时表示赛程结束。按键K7为赛程启动和暂停控制。

3、

比分刷新控制 由于在比赛中,两队的比分在不断变化,所以需要设置比分刷新控制,

图1-1 系统构成图

§2.2 系统基本功能介绍

本设计要实现的基本功能有:赛程时间设置,赛程时间启/停设置,比分刷新控制,比分交换控制,计时计分显示,赛程结束报警。以下对个功能进行介绍。

1、

赛程时间设置

通过按键K5、K6来设置赛程时间。篮球比赛的一节时间为12分钟,通过按K5按键,使LED数码管1显示“1”即可。在按K6按键,设置比赛时间的个位数,即使数码管2显示“2”。

当比赛结束时,如果由于一些特殊原因要增加比赛时间,这时比赛时间的调整同样由K5、K6按键来设置,且方法和上面一样。但一般情况下只需按下K6来设置即可。因为加赛时间只有几分钟。

2、

赛程时间启动/暂停设置

当时间设置完成后,比如设置赛程时间为45分钟,则在LED显示器上显示为4500,45表示分钟,00表示秒钟。这时,如果裁判吹响开始的哨声时,则应立即按下按键K7,表示赛程开始,计时显示则由4500变成4459,4458„„一直计时直到计为0000时表示赛程结束。按键K7为赛程启动和暂停控制。

3、

比分刷新控制

由于在比赛中,两队的比分在不断变化,所以需要设置比分刷新控制,

该功能由按键K1~K4完成,具体如下:

K1按键:甲队比分加1; K2按键:甲队比分减1; K3按键:乙队比分加1; K4按键:乙队比分减1。 4、

比分交换控制

比分交换控制由计时电路图2-5中所示的K7键完成。我们知道,因为比分交换是在上半场赛程结束后进行的,也就是说比分交换要受赛程时间控制,只有当上半场计时器指示为0000时,按K7键,则会自动交换甲、乙两队的比分。如果上半场赛程时间没有到0000时,则此时按下K7键,只会暂停比赛,不能交换分数。如果要继续比赛,再按一次K7即可。因此,K7键完成三重功能,即:启动,暂停,比分交换。

5、

计时计分显示

计时计分显示器是采用七段共阴极LED显示器来显示的。其中计分是用6个LED显示器。计时采用4个LED显示器;显示格式为000000和0000。

6、

程结束报警

当赛程时间或24s计时结束时,系统会自动发出10s报警声提示。

第3章 系统硬件电路设计

§3.1 篮球赛计时计分器电路工作过程

篮球计时器计分器的工作过程:比赛之前,接通电源,系统自动复位,计分电路与计时电路中的共阴极数码管分别显示为000000和0000;然后我们按照计时电路图2-5中的K5键来设置比赛时间的十位数,再按下K6键,设置比赛时间的个位数字,使数码管2显示“0”即可。一般比赛时间为40分钟,所示只需要按下K5键显示“4”,按下K6键显示“0”即可。时间设置好时,等待赛程开始,裁判吹响哨声时,启动计时,这时计时电路便开始工作,计时采用倒计时方式,20分钟变到0分钟时候表示上半场结束。上半场结束时,蜂鸣器会发出10秒钟响声,通知上半场结束,这时按下K7键,便完成了甲、乙两队的分数交换。在整个赛程中,两队比分一直在变动,我们通过计分电路图2-9中的K1~K4键完成此功能,K1和K2键完成甲队加分、减分,K3和K4键完成乙队加分、减分。按键每按一下,表示加上或者减去1分。由于加分、减分我们采用中断完成,且加、减分的中断优先权小于计时电路中的中断优先权,所以不会对计时电路造成影响。按下K7键,即可以暂停计时,暂停时间到时,再按下K7键继续计时,直至上半场赛程结束,蜂鸣器会发出10秒的响声。下半场的流程和上半场一致。

§3.2 系统硬件电路组成

§3.2.1 计时电路

1.显示器及其接口

显示器是最普遍的输出设备,种类繁多,单片机中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)。这两种显示器结构简单,价格便宜,因而得到广泛的应用。下面介绍发光二极管显示器(LED)的结构、工作原理及其接口电路。

(1)LED结构与原理

图3-1为典型的数码管。

图3-1 7段LED数码管

图3-2 共阴极与共阳极LED显示器

如图3-1,LED显示器又称为数码管, LED数码管显示器是由若干个发光二极管组成的,当发光二极管导通时,相应的点或线段发光,将这些发光二极管排成一定的图形,控制不同组合的二极管导通,就可以显示出不同的字形和符号。单片机系统中常用的LED显示器为七段显示器,再加上一个小数点,因此也可以把它称之为八段数码管显示器。其机构形式有共阴极和共阳极两种。共阴极是把所有组成八段数码管的发光二极管的阴极连在一起,通常接地,通过控制每一只发光二极管的阳极电平来使其发光或熄灭,阳极为高电平则发光,阳极为低电平则熄灭;共阳极是把组成八段数码管的所有发光二极管的阳极连起来,通常为高电平(如+5V),通过控制每一只发光二极管的阴极电平的高低来使其发光或是熄灭,阴极为低电平发光,为高电平则熄灭。

表3-1列出了共阳极与共阴极LED显示器显示数字、字母与显示代码之间的对应关系。

表3-1 代码对应表

(2)LED显示器显示方式

点亮LED显示器有两种方式:一是静态显示;二是动态显示。在本次设计中,采用的是静态显示。

静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。

这种电路的优点在于:在同一时间可以显示不同的字符;但缺点就是占用端口资源较多。从图3-3可以看出,每位LED显示器需要单独占用8根端口线,因此,在数据较多的时候,往往不采用这种设计,而是采用动态显示方式。本设计采用的便是此种显示方式。

图3-3 静态显示图

图3-4 动态显示图

由于所有的段选码连在一起,所以同一瞬间只能显示同一种字符。但如果要显示不同字符,则要由位选码来控制。(如果LED为共阴极则P2.0~~P2.3输出为高电平,如果LED为共阳极则P2.0~~P2.3输出为低电平。)

例如,现在要显示“5678”四个数字,则首先应该将“5”的显示代码(共阴LED显示器的显示代码为6DH,共阳LED显示器的显示代码为92H)由P1.0送出,然后P2.0~~P2.3输出相应位码(LED为共阴则P2.0~~P2.3输出1000, LED为共阳则P2.0~~P2.3输出0111)时,则可以看到在数码管1上显示的数字为“5”。再将显示的数字“5”延时5~10ms,以造成视觉暂留效果;同时代码由P1.0送出。

用同样的方法将其余3个数字“678”送数码管2,3,4显示,于是最后则可以在4位LED显示器上看到“5678”四个数字。为了使显示效果更加稳定,可以使每个数码管所显示的数字不断的重复,但其中重复频率达到了一定的程度的时候,加之人眼睛本身的视觉暂留效果的作用,便可以看到相当稳定的“5678”四个数字。

如表3-2,即为模拟以上的过程表(以共阴LED设置显示代码,共阳型与

此相反)。

表3-2 模拟过程表

2.报警器

(1)报警器的分类

蜂鸣器有两类3大品种。一类是压电式,一类是电磁式,电磁式又有两大品种,铁振膜式和动圈式,我们选择的是电磁式。所有蜂鸣器都有两种类型:纯蜂鸣器和带驱动的蜂鸣器,蜂鸣器都是用音频信号驱动的,都是交流驱动。

(2)报警 器的工作原理

报警器的种类很多,本次设计采用的是电磁式蜂鸣器作为报警器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片以及外壳等组成。接通电源后,振荡器产生的音频信号通过电磁线圈,使得电磁线圈产生了一个磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。

3.计时电路的工作原理图

如图3-5所示。

图3-5 计时电路原理图

4.计时电路的工作原理

计时电路主要由开关K5~~K7,单片机AT89C51,译码器以及LED显示器构成。其工作过程如下:当比赛准备开始的时候,当调时(十位)开关K5按下时,产生一个低电平;立即数00H取出,同时对应调分(十位)控制端P2.0的LE输出高电平,表示此时可以向调分(十位)的CD4511发送数据,但CD4511的输出端将不会有输出,因为LE=1时,CD4511锁存。这时,只要将要显示数据的代码经过P1口的P1.0送到CD4511的输入端A~~D端,送完后,将LE清零。这时便可以将要显示数据的代码经过CD4511译码后,从输出端a~g输出,送LED显示器显示即可。调时按键开关每按一次,数字自动加1,直到调到需要设置的时间即可。

调时(个位)的操作方法与上面一样。

时间设置完成后,启动定时器T0开始定时计数。计时采用倒计时,比如:设置的时间为45分钟,则在LED上显示“4500”四位数。定时T0计数60秒后中断返回,继续定时计数下一个60秒;同时则在4位LED显示器上显示“4459”四位数,表示时间已过去1秒钟,即为44分59秒。这样一直持续下去,直到变为“0000”时表示赛程结束。如果比赛中,裁判叫暂停,则只要按一下K7键,即可暂停计时。

5.振荡电路

本次设计要使用到AT89C51单片机的时钟振荡功能。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反馈元件的片外石英晶体[6]或者陶瓷谐振器一同构成自激振荡器。

振荡电路如图3-6所示。如图3-6,外接石英晶体或者陶瓷谐振器以及电容C1,C2接在放大器的反馈电路中构成并联谐振电路。谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,如果使用石英晶体,推荐使用30pF,而建议若使用陶瓷谐振器选择40pF。我们也可以使用外部时钟,采用外部时钟电路如图3-7所示。在外接时钟的情况下,外部时钟脉冲接到XTAL1端,即内部时钟脉冲的输入端,XTAL2则悬空。由于外部时钟信号是通过一个两分频触发器后作为内部时钟信号的,所以对外部时钟信号的占

空比没有特殊要求,但最小的高电平持续时间和最大的低电平持续时间应符合技术条件以及本次设计所采用硬件的要求。

图3-6 时钟振荡电路

图3-7 外部时钟电路

晶振电路:51单片机最小系统晶可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的合)/12MHz(产生精确的uS级时歇,方便定时操作),本设计使用的晶振为12MHz。

§3.2.2 计分电路

8051系列单片机除了有4个8位并行口外,还有一个能同时进行串行发送和接收的全双工串行通信口。它能同时发送和接收数据,还能作为同步移位寄存器使用。球赛计分电路正是利用了8051单片机串行口可以外接串行输入并行输出移位寄存作用为输出口来实现球赛比分刷新显示的。

1.串行接口工作原理

MCS-51系列单片机片内有一个串行I/O端口,通过引脚 RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信。

8051的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一种方式。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机之间或者与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器(SCON和PCON),用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。

串行端口有一个数据寄存器SBUF (在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向SBUF写入数据就启动了发送过程;读SBUF就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频可由定时器T1的溢出率确定,使用十分方便灵活。

表3-3为寄存器SCON内容定义表,表2-4为寄存器PCON位地址

表3-3 SCON各位内容定义

表3-4 PCON位地址

本次设计的计分电路中,我们使用集成电路CD4094。CD4094是8位移位寄存器,它主要完成串行输入,并行输出8位数据的功能,是典型的串行/并行转换芯片。

其中引脚分布图将在后面图2-9介绍。其中2脚DATA为串行数据输入脚;3脚CLOCK为时钟脉冲输入;4、5、6、7、14、1、3、12、11脚为并行8位数据输出,前7脚与LED显示器的a~g引脚相连,11脚置空;8脚接地;16脚接电源5V。

2.比分校正控制电路

本次设计中的比分校正控制电路由四输入与门74LS21和4个按键组成,其中K1、K2键接 74LS21的9、10脚,完成甲队加、减分控制;K3、K4键接74LS21的12、13脚,完成乙队加、减分控制。有关74LS21集成电路的引脚分布及内部原理构造如图3-8所示。

图3-8 74LS21引脚图

74LS21芯片的主要引脚说明:

7脚接地 14脚为电源脚 3.计分电路原理图 6、8脚为与门输出脚 计分电路原理图如图3-9所示。

1、2、4、5、9、10、12、13为与门输入脚

图3-9 计分电路原理图

4.计分电路的工作原理

计分电路主要由单片机AT89C51,串行/并行转换器(CD4094),LED显示器,74LS21以及按键开关组成。其工作过程如下:按键开关K1~~K4组成甲、乙两队加减分控制。按键K1~K4一端接地,另一端输入与门74LS21的9脚,10脚,12脚,13脚,以及单片机AT89C51的P3.5,P3.4,P0.2,P0.1,8脚接AT89C51的P3.2脚。当按键开关K1~K4这四个按键的任何一个一位按下时,与门的8脚输出都会产生低电平使单片机中断,从而使相应LED显示。因为按键开关按下时为低电平。

例如:现在先在以甲队加分为例,来说明整个过程。假设比赛刚开始,双方比分为000 :000,当某一时刻之后,当甲队加分时,则按下K1键,这时K1=0(低电平),其余K2K3K4=111(为高电平)K1K2K3K4相与之后的结果为低电平,这时与门8脚输出的低电平到AT89C51的P3.2脚,使其外部中断INT0发生中断,从而调用中断服务程序,将要显示的数据从程序中定义的LED显示常数表TAB中取出数据06H(因为LED显示常数表TAB的偏移地址为36H,36H首先是指向LED显示常数表TAB中第一个数据3FH的,当K1按下时,相当于将33H地址加1,这时便指向第二数据06H,即对应字母代码关系表中的加1)。

经串行发送端RXD/P3.0送至串行/并行转换器CD4094的第二个输入引脚,即数据输入DATA脚。由于串行口的工作方式设置为方式0。所以在串行数据通过RXD/P3.0引脚输出时,则TDX/P3.1引脚会输出多位时钟作为移位脉冲。将8位数据顺利送到串行/并行转换器CD4094中。另外,在RXD/P3.0引脚输出数据的同时,单片机AT89C51的P3.7引脚输出高电平给串行/并行转换器CD4094的第1个引脚STR(使能端控制),使前一片CD4094中的8位数据从QS移位至下一片CD4094输入端的第2引脚,即DATA引脚。在RXD/P3.0引脚输出数据的过程中,连续使单片机RD/P3.7引脚输出6次高电平6,这样便使6片CD4094中得到不同的显示代码,然后使单片机RD/P3.7引脚输出为低电平,将6片CD4094中显示代码送LED显示器显示,便得到结果,显示为001 000。

其对应的程序原理如下阐述:

因为,在程序中定义了33H,34H,35H,36H,37H,38H,6地址单元分别对应乙队、甲队3个LED显示器在程序中定义的LED显示常数表TAB的偏移首

地址。单片机的RXD每次发送6个数据,分别对应以33H,34H,35H,36H,37H,38H为偏移首地址单元里的数据。例如:甲队加分表示以36H为偏移首地址的单元加1,指向第二个数据06H,其他以33H,34H,35H,37H,38H为偏移首地址单元的数据仍然指向第一个数据3FH,这样将这六个数据:3FH,3FH,3FH,06H,3FH,3FH,经单片机的RXD发送出去,再在单片机RD/P3.7输出的6次高电平作用下产生6次移位,便在6片CD4094中得到显示代码:3FH,3FH,06H,3FH,3FH,3FH。然后在RD/P3.7输出时显示为001 000。

§3.3 器件选择及介绍

本系统在设计的过程中主要选取了以下一些器件:

单片机:AT89C51

四一七段BCD译码芯片:CD4511

并行 / 串行转换芯片:CD4094

四输入与门:74LS21

显示器件:7段共阴极LED显示器

按键:欧姆龙按键

§3.4 AT89C51 MCS-51是指由美国INTEL

公司生产的一系列单片机的总称,这一系列单片机包括了很多品种, AT89C51是一个低电压,高性能CMOS 8位单片机,片内

含4k bytes的可反复擦写

的Flash只读程序存储器

和128 bytes的随机存取

数据存储器(RAM),器件

采用ATMEL公司的高密

度、非易失性存储技术生

产,兼容标准MCS-51指令

系统,内置功能强大的微

型计算机的AT89C51提供

了高性价比的解决方案。

AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

如图所示,为AT89C51单片机基本构造,其基本性能介绍如下:

AT89C51本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 AT89C51的主要特性:

·与MCS-51 兼容

·4K字节可编程FLASH存储器

·寿命:1000写/擦循环

·数据保留时间:10年

·全静态工作:0Hz-24MHz

·三级程序存储器锁定

·128×8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

AT89C51管脚说明:

VCC(40):供电电压,接±5V的电压。

GND(20):接地。

P0口(39~32):P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口(1~8):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口(21~27):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口(10~17):P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

P3口管脚备选功能:

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST(9):复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP(31):当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出。

§3.4.1 CD4511芯片介绍

在本次设计中,由于只要求LED显示器显示0~9这十个数字,因此我们选用CD4511为LED显示器的译码芯片。

CD4511是将锁存、译码、驱动三种功能集于一身的“三合一”电路。锁存器的作用是避免在计数过程中出现“跳数现象”,便于观察和记录。译码器将BCD码转换成7段码,再经过大电流反相器,驱动共阴极LED数码管。译码器属于非时序电路,其输出状态与时钟无关,仅取决于输入的BCD码。

如图3-11显示为CD4511引脚分布图,D~A为BCD码输入端。a~g是7段码输出端。

图3-11 CD4511引脚分布图

使用时,只要将CD4511的输入端与微机系统输出端口的某4个数据位相连,而CD4511的输出直接与LED的a~g相连,便可实现对BCD的显示。图3-12为对1位BCD码的显示。表3-7为CD4511的逻辑功能表。

图3-12 CD4511对BCD码的显示

§3.4.2 CD4094芯片的介绍

在本次设计的计分电路中,我们使用集成电路CD4094。CD4094是8位移位寄存器,它主要完成串行输入,并行输出8位数据的功能,所以又叫8位串/并转换器。图3-13为CD4094的引脚图。

表3-7 CD4511逻辑功能表

图3-13 CD4094引脚分布图

§3.4.3 74LS21芯片介绍

本次设计中的比分校正电路采用四输入与门74LS21来实现。74LS21是双4输入与门。在一个芯片里有两个相同的单元,其中一个任何一个都是1/2断口。同型号的74系列、74HC系列、74LS系列芯片,逻辑功能上是一样的。表

3-8为74、74HC、74LS系列芯片资料。

表3-8 74、74HC、74LS相关资料表

第4章 软件编程调试

§4.1 总体程序设计

编程前,必须设置好地址、数据以及控制信号。

编程单元的地址加在P1口和P2口的P2.0—P2.3(11位地址范围为0000H—0FFFH),数据从P0口输入,引脚P2.6、P2.7、P3.6、P3.7的电平设置参考校验电路,/PSEN为低电平,RST保持高电平,EA/Vpp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲。

编程时,可采用4—20MHZ的时钟振荡器,本次设计采用12MHZ的石英晶体振荡器。具体过程是:

1.在地址线上加上要编程单元的地址信号,这里为33H,34H,35H,36H,

37H,38H,6个地址符。?

2.在数据线上加上要写入的数据字节,比如甲队加一分就是在36H地址上加上(偏移)一个字符06H。

3.激活相应的控制信号。

4.在高电压编程方式时,将EA/Vpp端加上+12V编程电压。

5.改变编程单元的地址和写入的数据,重复1—5步骤,直到全部文件编程结束,每个字节写入周期是自身定时的,通常约为1.5ms。

本次设计的程序流程图如图4-1所示。总体设计模块分为计时模块和计分模块两部分。

§4.2 初始化程序设计

通过初始化程序,对单片机进行的各端口初始状态和各存储单元的初始值进行设置。以使单片机进入准备状态。

初始化部分程序如下: ORG 0000H

AJMP LK1 ;主程序地址 ORG 000BH ;定时中断入口地址 AJMP CTCO

ORG 0013H ;外部中断入口地址 AJMP CXT

图4-1 总体程序流程图

计时系统程序设计流程图如图4-2所示。

图4-2 计时部分程序流程图

计分系统程序设计的流程图如下图4-3所示。

图4-3 计分部分程序流程图

第5章 调试

§5.1 系统调试

§5.1.1 软件调试

上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM 如果存在问题,程序通常都会成为无法控制。

因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM 进行检测。

检测内容包括:

(1)检测RAM 中的单元。这主要通过写入和读出的数据保持一致。

(2)检测单片机与RAM 之间的地址数据总线。总线即没有互相短路,也没有连接到“地”上。

另外,在仿真前要做好充分的准备在硬件仿真调试之前,下面准备工作将是必要的:

(1)程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程规范。

(2)对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。

(3) 如果代码有修改,再次对代码进行检查。

§5.1.2 仿真调试

仿真开始,具体流程如下:

1.系统进入初始化,程序从START开始,关闭了所有用户,INTO中断一直为高优先级,系统一直处于IDLE状态。由于这是软仿真,无法加入INTO信号,所以我们手动将P3.2的数值由1修改为0,程序才得以执行。

2.调用延时程序,程序跳转。判断引脚P3.0的数值,因为P3.0连接计

分电路部分中的CD4094的DATA脚,使用软件仿真,将P3.0的数值由1修改为0。而P3.0数值仍然为1。

3.程序进入计分中断服务程序,因为系统工作方式为方式0,P3.0与P3.1同时输出信号,P3.1为多位时钟脉冲信号。信号经由CD4094传输到显示器上,系统完成一次操作。

4.仿真结束,系统再次进入IDLE状态,闲置,等待下次INTO的输入。仿真结果表明程序运行正常。

结束语

通过这次的毕业设计,我对一些专业的电子设计有了更深的了解,同时也尝试着去应用自己所掌握的知识。这次毕业设计主要对电路的设计,单片机AT89C51的应用,各种设计软件的操作的一个综合性的考核。经过这次的设计,我感受很深。

毕业设计不仅给我们提供了一个很好的展现和应用自己所学知识的平台,又是检验自己所学的知识和实现知识价值能力的一个机会。

在设计过程中不可避免的会遇到很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。尤其是在最后调试部分,会因为各种原因使得自己得不到满意的结果,由于单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成需要花费大量的时间去重新查阅各种资料和程序命令,但一旦问题解决了,会使得自己得到重来没有过的兴奋与自豪。

致 谢

经过这次的毕业设计,我对电子设计有了更深的了解,同时也去应用自己所掌握的知识。这次毕业设计主要对电路的设计,单片机AT89C51的应用,各种设计软件的操作的一个综合性的考核。

毕业设计不仅给我们提供了一个很好的展现和应用自己所学知识的平台,又是检验自己所学的知识和实现知识价值能力的一个机会。

在设计过程中不可避免的会遇到很多的问题,暴露了自己学习上很多的不足和弊端。给我的感觉就是下手很难,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。尤其是在最后调试部分,会因为各种原因使得自己得不到满意的结果,由于单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成需要花费大量的时间去重新查阅各种资料和程序命令。

对我而言,知识上的收获可喜,精神上的丰收更加珍贵。让我知道了学无止境的道理,就像这次设计由于对单片机知识的不扎实,导致浪费很多时间在查阅资料和了解程序指令意思上。我们每个人永远都不要只满足于现有的成就,不仅要好好学习,更要把学到的东西能过活学活用。让这些知识发挥出自己的功效,而不是纸上谈兵一知半解。总之,实践才能出真理。不管以后遇到什么困难。只要用心做事,我想都不会将我打倒的。

参考文献

[1] 唐俊翟. 单片机原理与应用. 北京:冶金工业出版社, 2003. 8

[2] 丁明亮, 唐前辉. 51单片机应用设计与仿真-基于Keil C和Proteus . 北京: 北京航空航天大学出版社, 2009

[3]彭为. 黄科, 雷道仲. 单片机典型系统设计实例精讲. 北京:电子工业出版社. 2006:247-273

[4] 李广弟. 单片机基础. 北京:北京航空航天大学出版社, 2001. 7:63-65

[5] 马家辰, 孙玉德, 张颖等. MCS-51单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社, 1997:178-179

[6] 崔华, 蔡炎光 . 单片机实用技术. 北京:清华大学出版社, 2001.

[7] 宋凤娟, 廉文利, 付云强. 单片机89C51在调速系统中的应用. 微计算机信息, 2007,

12(6):113-114

[8]求是科技. 单片机应用系统开发实例导航. 北京:人民邮电出版社, 2004

[9]何立民. 单片机应用技术选编. 北京:北京航空航天大学出版社, 2002

[10]电子世界. 2005年9月刊. 国内邮发代号:2-892

[11]罗伯特森. PCB设计基础. 北京:机械工业出版社.2007.5:15-20

[12] 金素华, 张尉. 单片机调试方法的讨论. 电子世界, 2004, 25(4):34-65

[13] 崔玮. Protel 99 SE电路原理图与电路板设计教程. 北京: 机械工业出版社, 2005: 221-253

[14] Macro Assembler and utilities, keil,Elektronik.Gmbh.and keil software inc.2001

[15] C51 Compiler user's Guide keil,Elektronik Gmbh,and keil softwarer,inc.2001


相关文章

  • 基于51单片机的篮球计分器设计
  • 毕业设计论文 51单片机的篮球比赛计分器设计 基于 系 别: 机电工程系 专业名称: 自动化 学 号: [1**********] 学生姓名: 黎俊杰 指导教师: 卢满怀 指导单位: 机电工程系 完成时间: 2010年5月5日 电子科技大学 ...查看


  • 篮球赛计时计分器的设计
  • 学生姓名 李照明 学号 1213014066 题 目 篮球赛计时计分器的设计 所在学院 陕西理工学院 专业班级 电子1203班 指导教师 梁芳 完成地点 物理与电信工程学院实验室 2016 年 6 月 2 日 篮球赛计时计分器的设计 作者: ...查看


  • 基于AT89C51的篮球比赛计分器设计
  • 学校 嵌入式应用基础课程设计报告 课程设计 学 院:学生姓名: 班 级: 学 号: 指导教师: 随着单片机在各个领域的广泛应用,许多用单片机作控制的球赛计分器也应运而生,如用单片机控制LCD 液晶显示器的计分器,用单片机控制LED 七段显示 ...查看


  • 机电一体化论文题目一览表
  • 1 毕 业 论 文(设计)题 目 2 基于AD9851的跳频控制电路设计 3 基于伪随机序列噪声发生器设计 4 基于FPGA的延时倍频电路PLL设计 5 基于FPGA的无线搜寻系统设计 6 基于FPGA的电机测速显示设计 7 基于FPGA的 ...查看


  • 篮球计时器的设计
  • 基于STC12C5A60S2的篮球比赛计时器的设计 目录 第一章 绪论----------------..2 1.1设计选题的发展情况及背景-----------.2 1.2.设计的目的及意义--------------..3 1.3 单片 ...查看


  • 基于单片机的各种制作的毕业论文
  • 以下是相应的题目供大家参考:(大家也可以提供题目) ·基于51单片机的多路温度采集控制系统 ­ .基于单片机的万年历(及电子闹钟) .基于单片机的自动寻迹小车 .基于的单片机的GPS 全球定位系统 .基于单片机的16*16点阵屏汉字显示系统 ...查看


  • 最新电子信息工程毕业论文题目参考
  • 1. 家庭防盗报警系统 2. 单片机实现单步进电机及8位流水灯控制的设计 3. 篮球竞赛计时系统 4. 单片机89C51在直流调速控制系统中的应用 5. 八路数字抢答器 6. 基于51机的直流电机设计 7. 基于51单片机的步进电机控制系统 ...查看


  • 综合课程设计(创新项目)
  • 综合课程设计(创新项目) 1.R.L.C元件参数到直流电压转换电路设计 设计思路:首先,利用运算放大器设计RLC参数-交流电压转换电路,后接峰值检波电路和线性放大电路,得到直流电压.激励信号采用正弦波. 2.相位差至直流电压转换电路设计 设 ...查看


  • 一种电子式电流互感器的研制
  • # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 一种电子式电流互感器的研制 申 烛!王士敏!罗承沐 清华大学电机系!北京市#"$$$%&a ...查看


热门内容