《基于51单片机的篮球计分器毕业论文设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的篮球计分器毕业论文设计.docx(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘 要体育比赛计时计分系统是对体育比赛过程中所产生的时间、比分等数据进行快速采集记录,加工处理,传递数据的信息系统。它负责比照赛的结果和成绩信息进行采集处理、传输分配。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现高比赛现场感、表演娱乐观众等功能目标。比赛具有的不可重复性,决定了篮球计时计分系统是一个实时性很强、可靠性要求极高的电子效劳系统,所以计时计分设备是篮球比赛中不可缺少的电子设备。 单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关
2、注,所以应用很广,开展很快。目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和24秒控制器等组成。模块化设计系统,分为计时显示模块、计分显示模块、定时报警、按键控制键盘模块。模块的程序结构简单、易于编写、任务明确、调试和修改。程序可读性好,对程序的修改可局部进行,其他局部可保持不变。编程后利用Keil软件来进行编译,将生成的HEX文件装入芯片中,采用Proteus软件仿真,检验功能是否正常,然后用Pr
3、otel99画硬件的电路图。本设计中系统硬件电路主要有以下几个局部:单片机AT89C51、计时电路、计分电路、报警电路和按键开关。本次设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。该系统具有赛程定时设置、赛程时间暂停、及时刷新甲乙双方的成绩以及赛后成绩暂存等功能。具有价格低廉、性能稳定、操作方便并且易于携带等特点,适用于各种公司学校等中小企业.关键词: AT89C51 LED显示器 计时计分器目录第1章 绪论5第2章 系统方案说明62.1 系统设计方案62.1.1 篮球赛计时计分器设计的现状62.1.2 系统总体设计方案62.2 系统根本功能介绍7第3章 系统硬件电路
4、设计93.1 篮球赛计时计分器电路工作过程93.2 系统硬件电路组成93.2.1 计时电路93.2.2 计分电路173.3 器件选择及介绍213.4 AT89C51213.4.1 CD4511芯片介绍243.4.2 CD4094芯片的介绍253.4.3 74LS21芯片介绍26第4章 软件编程调试274.1 总体程序设计274.2 初始化程序设计284.3 计时系统程序设计304.4 计分系统程序设计31第5章 调试325.1 系统调试325.1.1 软件调试325.1.2 仿真调试32结束语33致谢34参考文献35第1章 绪论因为单片机的广泛使用,适用单片机来制作的电子产品就越来越多。如用单
5、片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。根据课题要求,这里介绍一种篮球赛计时计分器的设计方法,即单片机带外围扩展来驱动数码管工作的电路。电路的核心元件为单片机,用10个7段共阴极LED数码管作为显示器。4个用于记录赛程时间,2个用于显示分钟,2个用于显示秒钟。6个用于记录甲、乙两队的比赛分数,每队3个,显示分数范围可达0999分,足够比赛中得分的现实的需求。比赛前,将时间设置好,比赛开始时启动计时,直至倒计时到零为止。计时范围到达099分钟,能满足实际赛程计时的需求。为了配合计时器调整时间和计分器校正比分,设计了7个按键,3个用于启动和暂停赛程时间。4个用
6、于输入甲、乙两队的分数,另外,还设计了定时报警系统,即比赛时间到时,扬声器发出报警声提示比赛结束。该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及赛后成绩暂存等功能。设计分为软件设计和硬件设计两局部。主控芯片采用AT89C51,使用汇编语言编写软件程序,主体分为计时显示模块、计分显示模块、定时报警、按键控制模块。编程后利用Keil C51软件来进行编译,再将生成的HEX文件装入芯片中,采用Proteus软件来仿真,检验功能是否能够正常实现,随后可用Protel99画出硬件电路图。通过本次基于单片机的篮球赛计时计分器的设计,可以了解、熟悉有关单片机开发设计实例的过程,并加深对单
7、片机的理解和应用以及掌握单片机与外围接口的方法和技巧。第2章 系统方案说明2.1 系统设计方案2.1.1 篮球赛计时计分器设计的现状体育比赛计时计分系统是对体育比赛过程中所产生的时间,比分等数据信息进行快速采集记录、加工处理、传递和利用的系统。根据运动工程的不同,比赛规那么要求也不同,体育比赛的计时计分系统包括测量类、评分类、命中类、制胜类和得分类等多种类型。 篮球比赛是根据运动队员在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器、计分器等多种电子设备组成的,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备
8、应能与现场成绩处理、现场大屏幕、电视转播车等多种设备相联,以便实现剧烈的比赛现场感和表演娱乐等功能目标。现在,根据设计要求,介绍一下设计方案。2.1.2 系统总体设计方案根据课题要求,单片机带外围扩展,驱动数码管工作的电路,可提升学生对单片机接口电路的综合运用能力;计时电路主要由按键开关、单片机AT89C51、译码器及LED显示器构成。当调时开关(十位)按下时产生一个低电平,对应调分(十位)控制端P2.0的LE输出高电平,表示可以向CD45ll的调分位(十位)发送数据,将要显示数据的代码经P1.0送到CD4511的A另 端,送完后将LE清零。调时按键开关每按一次,数字自动加1。直到调到需要设置
9、的时间即可。调时(个位)的操作方法与之相同。时间设置完后,启动定时器。如果比赛中暂停,按一下暂停键即可暂停计时。球赛计时计分器系统图如1-1图所示。图1-1 系统构成图2.2 系统根本功能介绍本设计要实现的根本功能有:赛程时间设置,赛程时间启停设置,比分刷新控制,比分交换控制,计时计分显示,赛程结束报警。以下对个功能进行介绍。1、 赛程时间设置通过按键K5、K6来设置赛程时间。篮球比赛的一节时间为12分钟,通过按K5按键,使LED数码管1显示“1即可。在按K6按键,设置比赛时间的个位数,即使数码管2显示“2。当比赛结束时,如果由于一些特殊原因要增加比赛时间,这时比赛时间的调整同样由K5、K6按
10、键来设置,且方法和上面一样。但一般情况下只需按下K6来设置即可。因为加赛时间只有几分钟。2、 赛程时间启动暂停设置当时间设置完成后,比方设置赛程时间为45分钟,那么在LED显示器上显示为4500,45表示分钟,00表示秒钟。这时,如果裁判吹响开始的哨声时,那么应立即按下按键K7,表示赛程开始,计时显示那么由4500变成4459,4458一直计时直到计为0000时表示赛程结束。按键K7为赛程启动和暂停控制。3、 比分刷新控制由于在比赛中,两队的比分在不断变化,所以需要设置比分刷新控制,该功能由按键K1K4完成,具体如下:K1按键:甲队比分加1;K2按键:甲队比分减1;K3按键:乙队比分加1;K4
11、按键:乙队比分减1。4、 比分交换控制比分交换控制由计时电路图2-5中所示的K7键完成。我们知道,因为比分交换是在上半场赛程结束后进行的,也就是说比分交换要受赛程时间控制,只有当上半场计时器指示为0000时,按K7键,那么会自动交换甲、乙两队的比分。如果上半场赛程时间没有到0000时,那么此时按下K7键,只会暂停比赛,不能交换分数。如果要继续比赛,再按一次K7即可。因此,K7键完成三重功能,即:启动,暂停,比分交换。5、 计时计分显示计时计分显示器是采用七段共阴极LED显示器来显示的。其中计分是用6个LED显示器。计时采用4个LED显示器;显示格式为000000和0000。6、 程结束报警当赛
12、程时间或24s计时结束时,系统会自动发出10s报警声提示。仅供学习参考第3章 系统硬件电路设计3.1 篮球赛计时计分器电路工作过程篮球计时器计分器的工作过程:比赛之前,接通电源,系统自动复位,计分电路与计时电路中的共阴极数码管分别显示为000000和0000;然后我们按照计时电路图2-5中的K5键来设置比赛时间的十位数,再按下K6键,设置比赛时间的个位数字,使数码管2显示“0即可。一般比赛时间为40分钟,所示只需要按下K5键显示“4,按下K6键显示“0即可。时间设置好时,等待赛程开始,裁判吹响哨声时,启动计时,这时计时电路便开始工作,计时采用倒计时方式,20分钟变到0分钟时候表示上半场结束。上
13、半场结束时,蜂鸣器会发出10秒钟响声,通知上半场结束,这时按下K7键,便完成了甲、乙两队的分数交换。在整个赛程中,两队比分一直在变动,我们通过计分电路图2-9中的K1K4键完成此功能,K1和K2键完成甲队加分、减分,K3和K4键完成乙队加分、减分。按键每按一下,表示加上或者减去1分。由于加分、减分我们采用中断完成,且加、减分的中断优先权小于计时电路中的中断优先权,所以不会对计时电路造成影响。按下K7键,即可以暂停计时,暂停时间到时,再按下K7键继续计时,直至上半场赛程结束,蜂鸣器会发出10秒的响声。下半场的流程和上半场一致。3.2 系统硬件电路组成3.2.1 计时电路1显示器及其接口显示器是最
14、普遍的输出设备,种类繁多,单片机中最常用的是发光二极管显示器LED和液晶显示器LCD。这两种显示器结构简单,价格廉价,因而得到广泛的应用。下面介绍发光二极管显示器LED的结构、工作原理及其接口电路。1LED结构与原理图3-1为典型的数码管。 图3-1 7段LED数码管图3-2 共阴极与共阳极LED显示器如图3-1,LED显示器又称为数码管, LED数码管显示器是由假设干个发光二极管组成的,当发光二极管导通时,相应的点或线段发光,将这些发光二极管排成一定的图形,控制不同组合的二极管导通,就可以显示出不同的字形和符号。单片机系统中常用的LED显示器为七段显示器,再加上一个小数点,因此也可以把它称之
15、为八段数码管显示器。其机构形式有共阴极和共阳极两种。共阴极是把所有组成八段数码管的发光二极管的阴极连在一起,通常接地,通过控制每一只发光二极管的阳极电平来使其发光或熄灭,阳极为高电平那么发光,阳极为低电平那么熄灭;共阳极是把组成八段数码管的所有发光二极管的阳极连起来,通常为高电平如+5V,通过控制每一只发光二极管的阴极电平的上下来使其发光或是熄灭,阴极为低电平发光,为高电平那么熄灭。表3-1列出了共阳极与共阴极LED显示器显示数字、字母与显示代码之间的对应关系。表3-1 代码对应表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC087FH80H106HF996FH90H25B
16、HA4A77H88H34FHB0B7CH83H466H99HC39HC656DH92HD5EHA1H67DH82HE79H86H707HF8F71H8EH2LED显示器显示方式点亮LED显示器有两种方式:一是静态显示;二是动态显示。在本次设计中,采用的是静态显示。静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。这种电路的优点在于:在同一时间可以显示不同的字符;但缺点就是占用端口资源较多。从图3-3可以看出,每位LED
17、显示器需要单独占用8根端口线,因此,在数据较多的时候,往往不采用这种设计,而是采用动态显示方式。本设计采用的便是此种显示方式。图3-3 静态显示图图3-4 动态显示图由于所有的段选码连在一起,所以同一瞬间只能显示同一种字符。但如果要显示不同字符,那么要由位选码来控制。如果LED为共阴极那么P2.0P2.3输出为高电平,如果LED为共阳极那么P2.0P2.3输出为低电平。例如,现在要显示“5678四个数字,那么首先应该将“5的显示代码共阴LED显示器的显示代码为6DH,共阳LED显示器的显示代码为92H由P1.0送出,然后P2.0P2.3输出相应位码LED为共阴那么P2.0P2.3输出1000,
18、 LED为共阳那么P2.0P2.3输出0111时,那么可以看到在数码管1上显示的数字为“5。再将显示的数字“5延时510ms,以造成视觉暂留效果;同时代码由P1.0送出。用同样的方法将其余3个数字“678送数码管2,3,4显示,于是最后那么可以在4位LED显示器上看到“5678四个数字。为了使显示效果更加稳定,可以使每个数码管所显示的数字不断的重复,但其中重复频率到达了一定的程度的时候,加之人眼睛本身的视觉暂留效果的作用,便可以看到相当稳定的“5678四个数字。如表3-2,即为模拟以上的过程表以共阴LED设置显示代码,共阳型与此相反。表3-2 模拟过程表2报警器1报警器的分类蜂鸣器有两类3大品
19、种。一类是压电式,一类是电磁式,电磁式又有两大品种,铁振膜式和动圈式,我们选择的是电磁式。所有蜂鸣器都有两种类型:纯蜂鸣器和带驱动的蜂鸣器,蜂鸣器都是用音频信号驱动的,都是交流驱动。2报警器的工作原理报警器的种类很多,本次设计采用的是电磁式蜂鸣器作为报警器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片以及外壳等组成。接通电源后,振荡器产生的音频信号通过电磁线圈,使得电磁线圈产生了一个磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。3计时电路的工作原理图如图3-5所示。图3-5 计时电路原理图4计时电路的工作原理计时电路主要由开关K5K7,单片机AT89C51,译码器以及LED显
20、示器构成。其工作过程如下:当比赛准备开始的时候,当调时十位开关K5按下时,产生一个低电平;立即数00H取出,同时对应调分十位控制端P2.0的LE输出高电平,表示此时可以向调分十位的CD4511发送数据,但CD4511的输出端将不会有输出,因为LE=1时,CD4511锁存。这时,只要将要显示数据的代码经过P1口的P1.0送到CD4511的输入端AD端,送完后,将LE清零。这时便可以将要显示数据的代码经过CD4511译码后,从输出端ag输出,送LED显示器显示即可。调时按键开关每按一次,数字自动加1,直到调到需要设置的时间即可。调时个位的操作方法与上面一样。时间设置完成后,启动定时器T0开始定时计
21、数。计时采用倒计时,比方:设置的时间为45分钟,那么在LED上显示“4500四位数。定时T0计数60秒后中断返回,继续定时计数下一个60秒;同时那么在4位LED显示器上显示“4459四位数,表示时间已过去1秒钟,即为44分59秒。这样一直持续下去,直到变为“0000时表示赛程结束。如果比赛中,裁判叫暂停,那么只要按一下K7键,即可暂停计时。5振荡电路本次设计要使用到AT89C51单片机的时钟振荡功能。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反应元件的片外石英晶体6或者陶瓷谐振器一同构成自激振荡器。振荡电
22、路如图3-6所示。如图3-6,外接石英晶体或者陶瓷谐振器以及电容C1,C2接在放大器的反应电路中构成并联谐振电路。谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的上下、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,如果使用石英晶体,推荐使用30pF,而建议假设使用陶瓷谐振器选择40pF。我们也可以使用外部时钟,采用外部时钟电路如图3-7所示。在外接时钟的情况下,外部时钟脉冲接到XTAL1端,即内部时钟脉冲的输入端,XTAL2那么悬空。由于外部时钟信号是通过一个两分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小的高电平
23、持续时间和最大的低电平持续时间应符合技术条件以及本次设计所采用硬件的要求。图3-6 时钟振荡电路图3-7 外部时钟电路晶振电路:51单片机最小系统晶可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的合)/12MHz(产生精确的uS级时歇,方便定时操作),本设计使用的晶振为12MHz。3.2.2 计分电路8051系列单片机除了有4个8位并行口外,还有一个能同时进行串行发送和接收的全双
24、工串行通信口。它能同时发送和接收数据,还能作为同步移位存放器使用。球赛计分电路正是利用了8051单片机串行口可以外接串行输入并行输出移位存放作用为输出口来实现球赛比分刷新显示的。1串行接口工作原理MCS-51系列单片机片内有一个串行IO端口,通过引脚 RXD(P30)和TXD(P31)可与外设电路进行全双工的串行异步通信。 8051的串行端口有4种根本工作方式,通过编程设置,可以使其工作在任一种方式。其中,方式0主要用于外接移位存放器,以扩展单片机的IO电路;方式1多用于双机之间或者与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统。串行端口有两个控制存放
25、器(SCON和PCON),用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等。串行端口有一个数据存放器SBUF (在特殊功能存放器中的字节地址为99H),该存放器为发送和接收所共同。发送时,只写不读;接收时,只读不写。在一定条件下,向SBUF写入数据就启动了发送过程;读SBUF就启动了接收过程。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频可由定时器T1的溢出率确定,使用十分方便灵活。表3-3为存放器SCON内容定义表,表2-4为存放器PCON位地址表3-3 SCON各位内容定义位地址9FH9EH9DH9CH9BH9AH99H
26、98HSM0SM1SM2RENTB8RB8TIRI表3-4 PCON位地址SMOD本次设计的计分电路中,我们使用集成电路CD4094。CD4094是8位移位存放器,它主要完成串行输入,并行输出8位数据的功能,是典型的串行/并行转换芯片。其中引脚分布图将在后面图2-9介绍。其中2脚DATA为串行数据输入脚;3脚CLOCK为时钟脉冲输入;4、5、6、7、14、1、3、12、11脚为并行8位数据输出,前7脚与LED显示器的ag引脚相连,11脚置空;8脚接地;16脚接电源5V。2比分校正控制电路本次设计中的比分校正控制电路由四输入与门74LS21和4个按键组成,其中K1、K2键接 74LS21的9、1
27、0脚,完成甲队加、减分控制;K3、K4键接74LS21的12、13脚,完成乙队加、减分控制。有关74LS21集成电路的引脚分布及内部原理构造如图3-8所示。图3-8 74LS21引脚图74LS21芯片的主要引脚说明:14脚为电源脚7脚接地1、2、4、5、9、10、12、13为与门输入脚6、8脚为与门输出脚3计分电路原理图计分电路原理图如图3-9所示。图3-9 计分电路原理图4计分电路的工作原理计分电路主要由单片机AT89C51,串行/并行转换器CD4094,LED显示器,74LS21以及按键开关组成。其工作过程如下:按键开关K1K4组成甲、乙两队加减分控制。按键K1K4一端接地,另一端输入与门
28、74LS21的9脚,10脚,12脚,13脚,以及单片机AT89C51的P3.5,P3.4,P0.2,P0.1,8脚接AT89C51的P3.2脚。当按键开关K1K4这四个按键的任何一个一位按下时,与门的8脚输出都会产生低电平使单片机中断,从而使相应LED显示。因为按键开关按下时为低电平。例如:现在先在以甲队加分为例,来说明整个过程。假设比赛刚开始,双方比分为000 :000,当某一时刻之后,当甲队加分时,那么按下K1键,这时K1=0低电平,其余K2K3K4=111为高电平K1K2K3K4相与之后的结果为低电平,这时与门8脚输出的低电平到AT89C51的P3.2脚,使其外部中断INT0发生中断,从
29、而调用中断效劳程序,将要显示的数据从程序中定义的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引脚输出
30、数据的同时,单片机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个L
31、ED显示器在程序中定义的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输出时
32、显示为001 000。3.3 器件选择及介绍本系统在设计的过程中主要选取了以下一些器件:单片机:AT89C51四一七段BCD译码芯片:CD4511并行 / 串行转换芯片:CD4094四输入与门:74LS21显示器件:7段共阴极LED显示器按键:欧姆龙按键3.4 AT89C51MCS-51是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了很多品种,图2-1 AT89C51引脚图 AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器RAM,器件采用ATMEL公司的高密度、非易
33、失性存储技术生产,兼容标准MCS-51指令系统,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出I/O端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。如下图,为AT89C51单片机根本构造,其根本性能介绍如下:AT89C51本身内含4
34、0个引脚,32个外部双向输入/输出I/O端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。AT89C51的主要特性:与MCS-51 兼容 4K字节可编程FLASH存储器 寿命:1000写/擦循环 数据保存时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路
35、AT89C51管脚说明: VCC40:供电电压,接5V的电压。 GND20:接地。 P0口3932:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口18:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FL
36、ASH编程和校验时,P1口作为第八位地址接收。 P2口2127:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能存放器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口(1017):P3口管脚是8个带内部上拉电阻的双
37、向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):复位输入。当振荡器复位器
38、件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN(29):外部程序存储器的选通信号
39、。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP31:当/EA保持低电平时,那么在此期间外部程序存储器0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源VPP。 XTAL119:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL218:来自反向振荡器的输出。3.4.1 CD4511芯片介绍在本次设计中,由于只要求LED显示器显示09这十个数字,因此我们选用
40、CD4511为LED显示器的译码芯片。CD4511是将锁存、译码、驱动三种功能集于一身的“三合一电路。锁存器的作用是防止在计数过程中出现“跳数现象,便于观察和记录。译码器将BCD码转换成7段码,再经过大电流反相器,驱动共阴极LED数码管。译码器属于非时序电路,其输出状态与时钟无关,仅取决于输入的BCD码。如图3-11显示为CD4511引脚分布图,DA为BCD码输入端。ag是7段码输出端。图3-11 CD4511引脚分布图使用时,只要将CD4511的输入端与微机系统输出端口的某4个数据位相连,而CD4511的输出直接与LED的ag相连,便可实现对BCD的显示。图3-12为对1位BCD码的显示。表
41、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系列芯片,逻辑功能
42、上是一样的。表3-8为74、74HC、74LS系列芯片资料。表3-8 74、74HC、74LS相关资料表系列电平典型传输延迟ns最大驱动电流(-Ioh/Lol)mAAHCCMOS8.5-8/8AHCTCOMS/TTL8.5-8/8HCCOMS25-8/8HCTCOMS/TTL25-8/8ACTCOMS/TTL10-24/24FTTL6.5-15/64ALSTTL10-15/64LSTTL18-15/24第4章 软件编程调试4.1 总体程序设计编程前,必须设置好地址、数据以及控制信号。编程单元的地址加在P1口和P2口的P2.0P2.311位地址范围为0000H0FFFH,数据从P0口输入,引脚P
43、2.6、P2.7、P3.6、P3.7的电平设置参考校验电路,/PSEN为低电平,RST保持高电平,EA/Vpp引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲。编程时,可采用420MHZ的时钟振荡器,本次设计采用12MHZ的石英晶体振荡器。具体过程是:1在地址线上加上要编程单元的地址信号,这里为33H,34H,35H,36H,37H,38H,6个地址符。?2在数据线上加上要写入的数据字节,比方甲队加一分就是在36H地址上加上偏移一个字符06H。3激活相应的控制信号。4在高电压编程方式时,将EA/Vpp端加上+12V编程电压。5改变编程单元的地址和写入的数据,重复15
44、步骤,直到全部文件编程结束,每个字节写入周期是自身定时的,通常约为1.5ms。本次设计的程序流程图如图4-1所示。总体设计模块分为计时模块和计分模块两局部。4.2 初始化程序设计通过初始化程序,对单片机进行的各端口初始状态和各存储单元的初始值进行设置。以使单片机进入准备状态。初始化局部程序如下:ORG 0000HAJMP LK1 ;主程序地址ORG 000BH ;定时中断入口地址AJMP CTCOORG 0013H ;外部中断入口地址AJMP CXT图4-1 总体程序流程图4.3 计时系统程序设计计时系统程序设计流程图如图4-2所示。图4-2 计时局部程序流程图4.4 计分系统程序设计计分系统
45、程序设计的流程图如下列图4-3所示。图4-3 计分局部程序流程图第5章 调试5.1 系统调试5.1.1 软件调试上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比方:系统的外部RAM数据存储器是单片机系统中常用的器件。外部RAM 如果存在问题,程序通常都会成为无法控制。因此,程序在启动时至少在第一次上电启动时一定要对外部RAM 进行检测。检测内容包括:1检测RAM 中的单元。这主要通过写入和读出的数据保持一致。2检测单片机与RAM 之间的地址数据总线。总线即没有互相短路,也没有连接到“地上。另外,在仿真前要做好充分的准备在硬件仿真调试之前,下面准备工作将是必要的:1程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程标准。2对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。(3) 如果代码有修改,再次对代码进行检查。
限制150内