1、智能仪表综合课程设计 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; AT89C5
3、2 智能仪表综合课程设计 2 目录 1. 绪论 . 2 1.1 技术概述 . 2 1.2 本课题的背景和意义 . 错误 !未定义书签。 2.系统设计简介 . 4 2.1 系统总体方案设计 . 4 2.2 硬件电路设计 . 5 2.2.1 时钟电路模块 . 6 2.2.2 复位电路模块 . 6 2.2.3 显示模块 . 7 2.2.4 报警模块 . 8 2.2.5 总硬件电路设计 . 9 3 设计语言及软件介绍 . 10 3.1 C 语言介绍 . 10 3.2 PROTUES 软件介绍 . 11 4 软件设计 . 10 4.1 概述 . 12 4.2 系统程序设计模块 . 13 4.2.1 延时
4、模块设计 .14 4.2.2 数码管动态刷新显示程序 .14 4.2.3 T0 中断程序 .16 4.2.4 加分子程序 .17 4.2.5 减分子程序 .17 4.2.6 调整时间子程序 .18 4.2.7 半场交换比分子程序 .20 4.2.8 比赛暂停 子程序 .20 4.2.9 中场指示灯程序 .21 4.2.10 主程序 .23 4.3 控制源程序 . 错误 !未定义书签。 4.4 调试及仿真 . 30 结论 . 33 参考文献 . 34 智能仪表综合课程设计 3 1. 绪论 1.1 技术概述 体育比赛计时计分系统是对体育比赛过程中所产生的时间 ,比分等数据进行快速采集记录,加工处理
5、,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评 分类,命中类,制胜类得分类等多种类型。 篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统。篮球比赛的计时计分系统由计时器,计分器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时计分系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。 由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特
6、 的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由计时器,计分器,综合控制器和 24 秒控制器 等组成。 1.2 本课题的背景和意义 本设计是基于 AT89S52 单片机的篮球计时计分器,利用 7 段共阴 LED 作为显示器件。在此设计中共接入了 1 个四位一体 7 段共阴 LED 显示器, 2 个两位一体 7 段共阴LED 显示器,前者用 来记录赛程时间,其中 2 位用于显示分钟, 2 位
7、用于显示秒钟,后者用于记录甲乙队的分数,每队 2 个 LED 显示器显示范围可达到 099 分。赛程计时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。 其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了7 个按键,用于设置,调整时间,启动,调整分数和暂停等功能。采用单片机控制是这个系统按键操作使用简洁, LED 显示,安装方便。 任务: 设计一个用于赛场的篮球计时计分器。 智能仪表综合课程设计 4 要求: 1、 能记录整个赛程的比赛时间,并能随时实现暂停。 2、 能随时刷新甲 、 乙两队在整个过程中的比分。 3、 中场交换比赛场地时,能自动交换甲 、 乙两队比分的
8、位置。 4、 比赛中场和结束时,能发出报警声。 5、 通过指示灯指示上下半场。 6、当比赛时间需要回倒时,能通过按键实现回表。 7、加分有误时可通过按 键实现减分调整。 课程设计使我们进一步熟悉和掌握了单片机的内部结构和工作原理,了解了单片机应用系统设计的基本方法和步骤 , 掌握 了单片机仿真软件 Proteus 的使用方法,键盘和显示器在 的 单片机控制系统中的 应用 以及 撰写课程设计报告的方法。此次设计很好的将书本上的理论知识和实践有机的联系了起来,是我们对理论知识有了更进一步的掌握,锻炼了我们的动手能力,同时也让我们懂得了理论与实际相结合的意义。为以后的工作和学习提供了宝贵的经验。 智
9、能仪表综合课程设计 5 2.系统设计简介 2.1 系统总体方案设计 篮球计时计分器主要包括 单片机控制系统、计时显示模块、计分显示模块、定时报警,按键控制键盘模块。通过这几个模块的协调工作就可以完成相应的计时计分控制和显示功能。这四个模块的相互连接如下图 1所示: 图 1 模块连接图 本设计是基于 AT89S52 单片机的篮球计时计分器,利用 7段共阴 LED 作为显示器件。在此设计中共接入了 1个四位一体 7段共阴 LED 显示器, 2个两位一体 7 段共阴 LED 显示器,前者用来记录赛程时间,其中 2 位用于显示分钟, 2位用于显示秒钟,后者用于记录甲乙队的分数,每队 2 个 LED 显
10、示器显示范围可达到 099 分。赛程计 时采用倒计时方式,比赛开始时启动计时,直至计时到零为止。 智能仪表综合课程设计 6 2.2 硬件电路设计 单片机 AT89S52 简介 AT89S52 是一个低功耗,高性能 CMOS 8 位单片机,片内含 8k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8位中央处理器和 ISP Flash存储单元,功能强大的微型计算机的 AT89S52可为许
11、多嵌入式控制应 用系统提供高性价比的解决方案。 AT89S52 单片机引脚图 具有如下特点: 40 个引脚, 8k Bytes Flash 片内程序存储器, 256 bytes 的随机存取数据存储器( RAM), 32 个外部双向输入 /输出( I/O)口,5个中断优先级 2层中断嵌套中断, 2个 16位可编程定时计数器 ,2个全双工串行通信口,看门狗( WDT)电路,片内时钟振荡器 .如图 2 所示: XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.
12、6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1A T 8 9 C5 1图 2 AT89S52 单片机引脚图 此模块电路包括时钟电路模块,复位电路模块及报警显示模块。 2.2.1时 钟电路模块 时钟电路在 单片机 系统
13、中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟 是 保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢 。为达到振荡周期是 12MHZ智能仪表综合课程设计 7 的要求,这里要采用 12MHZ 的晶振,另外有两个 22P 的电容,两晶振引脚分别连到 XTAL1和 XTAL2 振荡脉冲输入引脚。具体连接图如图 3所示: 图 3 晶振电路 2.2.2 复位电路模块 复位是单片微机的初始化操作,其主要功能 是把 PC 初始化为 0000H,使单片微机从0000H 单元开始执行程序。除进入系统的正常初始化之外,当由于程序运
14、行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。 RST 引脚是复位信号的输入端。复位电路在这里采用的是上电 +按钮复位电路形式,具体连接电路如图 4所示: X T A L 218X T A L 119A L E30EA31P S E N29R S T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23
15、P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I N T 012P 3 .3 /I N T 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C 5 1K5C11 0
16、uR62 0 0 RC32 2 p图 4 复位电路 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT
17、012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1C13 3 pC53 3 pX2CR Y S T A L智能仪表综合课程设计 8 2.2.3显示模块 本设计采用共阴极数码显示器, 通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输
18、出端。当某 段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 本次设计在显示模块用到的是一个 4 位一体和 2个两位一体共阴极数码管,共有 8个代码输入口和 8 个位选输入口,采用排阻提供上拉电流数码管,以保证有足够大的电流点亮数码管,采用 动态驱动 , 使各位数码管逐个轮流受控显示,这就是动态驱动 , 由于扫描速度极快 , 显示效果与静态驱动相同 ,其具体图形如 下图 5 图 6 所示: 图 5 计时 显示 图 6 计分显示 智能仪表综合课
19、程设计 9 2.2.4 报警模块 蜂鸣器通过一 NPN 三极管进行驱动,触发信号有基极引入。如图 7 所示 : L S 1S P E A K E RQ2N P NR30 R 1图 7 蜂鸣器设计部分 2.2.5总硬件电路设计 本设计的总硬件电路设计图如图 8 所示: 图 8 总体硬件设计 智能仪表综合课程设计 10 3 设计语言及软件介绍 3.1 C 语言介绍 C 语言的发展过程 C 语言是在 70 年代初问世的。一九七八年由 美国电话电报公司(AT&T)贝尔实验室正式发表了 C 语言。同时由 B.W.Kernighan 和 D.M.Ritchit 合著了著名的 “THE C PROGRAMM
20、ING LANGUAGE” 一书。通常简称为 K&R ,也有人称之为 K&R标准。但是,在 K&R中并没有定义一个完整的标准 C 语言,后来由 美国国家标准学会 在此基础上制定了一个 C 语言标准,于一九八三年发表。通常称之为 ANSI C。 当代最优秀的程序设计语言 早 期的 C语言主要是用于 UNIX 系统。由于 C 语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代, C 开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。 C 语言的特点 C 语言是一种 结构化语言 。它层次清晰,便 于按模块化方式组织程序,易于调试和维护
21、。 C 语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位 (bit)一级的操作。由于 C 语言实现了对硬件的编程操作,因此 C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外, C 语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的 C语言。 C 语言版本 目前最流行的 C 语言有以下几种: Microsoft C 或称 MS C Borland Turbo C 或称 Turbo C AT&T C 这些 C 语言版本不仅实现了 A
22、NSI C 标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。 面向对象的程序设计语言 在 C 的基础上,一九八三年又由贝尔实验室的 Bjarne Strou-strup 推出了 C+。 C+进一步扩充和完善了 C 语言,成为一种面向 对 象的程序设计语言。 C+目前流行的最新版本是 Borland C+4.5,Symantec C+6.1,和 Microsoft VisualC+ 2.0。 C+提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。 C 和 C 但是, C 是 C+的基础,C+语言 和 C 语言在很多方面是兼容的。因此,掌握了 C语言,再进一步学习 C+就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。 C源程序的结构特点 为了说明 C语言源程序结构的特点,先看以下几个程序。这几个程 序由简到难,表