扬州市职业大学汽车与电气工程系
毕业设计说明书(论文)
作者: 周苏宁学号:0902010244
教研室: 汽车与电气工程系
专业: 机电一体化
题目: 基于单片机篮球计时计分器设计
指导者:
评阅者:
2012 年 5 月
扬州市职业大学汽车与电气工程系毕业设计(论文)评语
学生姓名:周苏宁班级、学号:0902010244
题目:基于单片机篮球计时计分器设计
综合成绩:
毕业设计(论文)评语
毕业设计说明书(论文)中文摘要
目录
摘要............................................................................................................................ IV Abstract....................................................................................... 错误!未定义书签。目录 (5)
第一章引言 (7)
1.1 背景知识介绍 (7)
1.2设计意义 (7)
1.3设计目的 (7)
第二章系统硬件介绍 .............................................................................................- 9 -
2.1 MCS-51单片机简述 ...................................................................................- 9 -
2.1.1 单片机AT89C51简介...................................................................................... - 9 -
2.1.2 主要特性.......................................................................................................... - 10 -
2.1.3 管脚说明.......................................................................................................... - 10 -
2.1.4 芯片擦除.......................................................................................................... - 12 -
2.1.5掉电模式.......................................................................................................... - 12 -
2.1.6程序储存器的加密.......................................................................................... - 13 -
2.2 显示器及其接口 .......................................................................................- 13 -
2.2.1 显示器介绍...................................................................................................... - 13 -
2.2.2 结构与原理...................................................................................................... - 14 -
2.2.3 LED显示器显示方式...................................................................................... - 14 -
2.3 CD4094芯片介绍......................................................................................- 15 -
2.4 74LS21芯片介绍.......................................................................................- 15 -
2.5 报警器........................................................................................................- 16 -
2.5.1 报警器的分类.................................................................................................. - 16 -
2.5.2 报警器工作原理.............................................................................................. - 16 -第三章硬件电路设计 ...........................................................................................- 17 -
3.1 系统方案设计 ...........................................................................................- 17 -
3.1.1 系统构成框图.................................................................................................. - 17 -
3.1.2 器件选择.......................................................................................................... - 18 -
3.2 硬件总体设计 ...........................................................................................- 18 -
3.3计时电路部分 ...........................................................................................- 18 -
3.3.1 振荡电路.......................................................................................................... - 19 -
3.3.2计时电路的工作原理...................................................................................... - 23 -
3.4 计分电路部分 ...........................................................................................- 23 -
3.4.1串行接口工作原理.......................................................................................... - 23 -
3.4.2 计分电路原理图.............................................................................................. - 24 -
3.4.3 计分电路的工作原理...................................................................................... - 25 -第四章篮球计时计分器软件设计 .......................................................................- 26 -
4.1 球赛计时计分器的工作过程 ...................................................................- 26 -
4.2篮球计时计分器编程设计 .......................................................................- 26 -
4.3 主要模块说明 ...........................................................................................- 27 -
4.3.1 计时部分模块流程.......................................................................................... - 27 -
4.3.2 记分部分模块流程.......................................................................................... - 28 -
4.4篮球计时计分器程序源代码 ...................................................................- 28 -结论........................................................................................................................- 37 -参考文献 (40)
致谢 (39)
第一章引言
1.1 背景知识介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择[2]。
1.2设计意义
单片机的应用是具有高度现实意义的。单片机极高的可靠性,微型性和智能性(我们只要编写不同的程序后就能够完成不同的控制工作),单片机已成为工业控制领域中普遍采用的智能化控制工具,已经深深地渗入到我们的日常生活当中。
通过此次基于单片机设计的篮球计时计分系统,我们可以更清楚详细的了解单片机程序设计的基本指令功能、编程步骤和技巧来讲述单片机编程,并对MCS-51单片机的结构和原理进行讲述,以及基于单片机开发应用的相关芯片的工作原理,并且可以在将来的工作和学习中加以应用[5]。
1.3设计目的
随着单片机在各个领域的广泛应用,许多用单片机做控制的球赛计时计分系统也应运而产生,如用单片机控制LCD液晶显示器计时计分器,用单片机控制LED七段显示器计时计分器等。
本次设计用由AT89C51编程控制LED七段数码管作显示的球赛计时计分系统。该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩以及赛后成绩暂存等功能。它具有价格低廉,性能稳定,操作方便并且易于携带等特点。广泛适合各类学校或者小型团体作为赛程计时计分 [8]。
通过本次基于C51系列篮球计时计分器的设计,可以了解、熟悉有关单片机开发设计的过程,并加深对单片机的理解和应用以及掌握单片机与外围接口的一些方法和技巧,这主要表现在以下一些方面:
(1) 篮球赛计时计分系统包含了8051系列单片机的最小应用系统的构成,同时在此基础上扩展了一些使用性强的外围接口。
(2) 可以了解到LED显示器的结构、工作原理以及这种显示器的接口实例与具体连接与编程方法。
(3) 怎样利用串行口来扩展显示接口等[6]。
第二章系统硬件介绍
2.1 MCS-51单片机简述
2.1.1 单片机AT89C51简介
本课题中用到的芯片就是AT系列中的AT89C51单片机芯片。
AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案 [7]。
AT89C51具有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。它是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。如图2-1为AT89C51单片机基本构造,其基本性能介绍如图2-1:
图2-1 AT89C51引脚图
AT89C51本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51
可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
2.1.2 主要特性
AT89C51的主要特性如表2-1所示:
表2-1 AT89C51主要功能描述
2.1.3 管脚说明
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后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作
为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表2-2所示:
表2-2 AT89C51特殊功能表
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,
将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE 只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
2.1.4 芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止 [6]。
2.1.5掉电模式
在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。推出掉电模式的唯一方法是硬件复位。复位后将重新定义全部特殊功能寄存器但不改变RAM 中的内容,在VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重新启动并且稳定的工作 [5]。
表2-3 外部引脚状态表
2.1.6程序储存器的加密
AT89C51可使用对芯片上的三个加密位LB1、LB2、LB3[2]进行编程(P)
或者不进行编程(U)。当加密位LB1被编程时,在复位期间,EA断的逻辑电平被采样并锁存,如果单片机上电后一直没有服位,则锁存起的初始值是一个随机数,这个随机数会保存到真正复位为止 [5]。
2.2 显示器及其接口
2.2.1 显示器介绍
显示器是最常用的输出设备,其种类繁多,但在单片机系统设计中最常用的是发光二极管显示器(LED)和液晶显示器(LCD)两种。由于这两种显示器结构简单,价格便宜,接口容易实现,因而得到广泛的应用。液晶显示器分很多种类,按显示方式可分为段式,行点阵式和全点阵式。段式与数码管类似,行点阵式一般是英文字符,全点阵式可显示任何信息,如汉字、图形、图表等 [4]。
两者之间的区别:
(1)二极本身发光,液晶本身不发光,只是透射光。
(2)二极管体积大,图像质量一般,适合作室外大屏幕,价格较低。液晶成本较高,面积无法做得很大,但图像质量很好,适合做显示器。
(3)二极管耗电大,液晶耗电小。
(4)二极管图像刷新率低,液晶的高
2.2.2 结构与原理
图2-2 7段LED数码管
如图2-2,LED显示器又称为数码管,LED显示器由8个发光二极管组成。中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LEDD显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED 显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器 [1]。如图2-3所示。
图2-3 共阴与共阳极LED显示器
2.2.3 LED显示器显示方式
点亮LED显示器有两种方式:一是静态显示;二是动态显示。在本次设计中,采用的是静态显示。
这种电路的优点在于:在同一时间可以显示不同的字符;但缺点就是占用端口资源较多。从下图可以看出,每位LED显示器需要单独占用8根端口线,因此,
在数据较多的时候,往往不采用这种设计,而是采用动态显示方式 [3]。
所谓动态显示,就是将要显示的多位LED 显示器采用一个8位的段选端口,然后采用动态扫描一位一位地轮流点亮各位显示器。图2-4为4位LED 显示器动态显示电路。
图2-4 动态显示图
2.3 CD4094芯片介绍
在本次设计的计分电路中,我们使用集成电路CD4094。CD4094是8位移位寄存器,它主要完成串行输入,并行输出8位数据的功能,所以又叫8位串/并转换器。图2-5为CD4094的引脚图:
图2-5 CD4094引脚分布图
2.4 74LS21芯片介绍
本次设计中的比分校正电路采用四输入与门74LS21来实现。74LS21是双4
端口4端口3端口2端口1
输入与门。在一个芯片里有两个相同的单元,其中一个任何一个都是1/2断口。同型号的74系列、74HC系列、74LS系列芯片,逻辑功能上是一样的。表2-4为74、74HC、74LS系列芯片资料 [8]。
表2-4 74、74HC、74LS相关资料表
2.5 报警器
2.5.1 报警器的分类
蜂鸣器有两类3大品种。一类是压电式,一类是电磁式,电磁式又有两大品种,铁振膜式和动圈式,二者原理一样只是结构不同。所有蜂鸣器都有两种类型:纯蜂鸣器和带驱动的蜂鸣器,蜂鸣器都是用音频信号驱动的,都是交流驱动。
2.5.2 报警器工作原理
报警器的种类很多,比如:扬声器,蜂鸣器等,本次设计采用的是电磁式蜂鸣器作为报警器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、震动膜片以及外壳等组成。接通电源后,振荡器产生的音频信号通过电磁线圈,使得电磁线圈产生了一个磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声 [2]。
第三章硬件电路设计
系统硬件由以下几个部分组成:
(1)单片机 AT89C51
(2)计时电路
(3)计分电路
(4)按键开关
说明:整个系统只用一片AT89C51;在图中将计时电路与计分电路分开画,只是为了能够更好的更清晰的说明问题;并且在整个画图过程中将AT89C51引脚打乱是为了使图示能够更加的清晰明了[7]。
3.1 系统方案设计
3.1.1 系统构成框图
基于单片机系统的篮球赛计时计分器的系统构成框图如图3-1所视。
图3-1 系统构成图
本系统采用单片机AT89C51作为本设计的核心元件。利用7段共阴LED作为显示器件。在本次设计中,共接入十个七段共阴LED显示器,其中6个用于记录甲、乙两队的分数,每队3个LED显示器分数范围可达到0—99分,足够满足赛程需要。另外4个LED显示器则用于记录赛程的时间,其中两个用于显示分钟;2个用于显示秒钟。赛程计时采用倒计时方式。即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。根据设计,计时范围可达0—99分钟,也完全满足赛程的需要。
其次,为了配合计时器和计分器校正、调整时间和比分,特在本设计中设立了7个按键。其中4个用于输入甲、乙两队的分数;另外3个则用于完成设置、调整、启动和暂停赛程时间等功能 [6]。
3.1.2 器件选择
本系统在设计的过程中主要选取了以下一些器件:
单片机:AT89C51
四一七段BCD译码芯片:CD4511
并行 / 串行转换芯片:CD4094
四输入与门:74LS21
显示器件:7段共阴LED显示器
按键:欧姆龙按键
3.2 硬件总体设计
这次设计的核心是:如何运用AT89C51单片机,CD451译码芯片,CD4094 8位移位寄存器。7段共阴LED显示数码管等电子元件完成显示设计在电路上的实现 [8]。
从理论上说,不论显示图形还是文字,只要控制与组成这些图形和文字的各个点所在位置对应的LED器件发光,就能得到结果。
本次设计采用的是静态驱动方式。
所谓静态驱动,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小[4]。
这种电路的优点在于:在同一时间可以显示不同的字符;但缺点就是占用端口资源较多 [3]。
3.3计时电路部分
3.3.1 振荡电路
本次设计要使用到AT89C51单片机的时钟振荡功能。AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自激振荡器[1]。
振荡电路如图3-2所示
图3-2 时钟振荡电路
图3-3 外部时钟电路