计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx

上传人:b****8 文档编号:23971983 上传时间:2023-05-23 格式:DOCX 页数:24 大小:842KB
下载 相关 举报
计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx_第1页
第1页 / 共24页
计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx_第2页
第2页 / 共24页
计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx_第3页
第3页 / 共24页
计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx_第4页
第4页 / 共24页
计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx

《计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx》由会员分享,可在线阅读,更多相关《计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx(24页珍藏版)》请在冰豆网上搜索。

计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文.docx

计算机控制技术课程设计基于at89s52单片机的比赛记分牌设计本科论文

计算机控制技术课程设计论文

 

选题名称:

基于AT89S52单片机的比赛记分牌设计

系(院):

电子电气工程学院

专业:

自动化

班级:

姓名:

学号:

指导教师:

学年学期:

2013~2014学年第2学期

时间:

2014.05.12~2014.06.13

 

摘要:

单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。

它是一种集计数和多接口于一体的微控制器,被广泛应用在智能产品和工业自动化上,而AT89S52单片机是单片机中较为典型和有代表性的一种。

本次实习的主要任务是设计一个比赛记分牌,包括硬件设计和软件设计。

硬件设计的主要任务是:

LED数码管显示、按键控制系统、单片机主控系统及电源模块设计。

软件设计包括:

实现加分、减分及复位。

本文主要介绍了单片机实现记分牌的整个设计流程,采用汇编语言编写程序。

本课题选择AT89S52为核心控制元件,设计了日常比赛中用到的记分牌。

设计同时引用74LS06专用驱动芯片,解决了共阴码字表向共阳的转换,同时提高了数码管的亮度。

本项目设计的计分牌系统,电路简单,成本较低,灵敏可靠,操作方便,具有较高的推广价值。

 

关键词:

AT89S51单片机;LED数码管;8255芯片;汇编;记分牌

 

目录

(〇)绪论1

(1)系统原理1

1.1设计方案1

1.2系统框图1

1.3单片机的时钟电路原理2

1.4单片机复位电路工作原理2

1.5单片机晶振电路工作原理3

1.6显示数码管原理5

(2)硬件设计7

2.1按键电路的设计7

2.2键盘显示电路的设计8

2.3芯片介绍9

AT89S51单片机引脚9

(3)软件设计12

3.1程序框图12

(4)设计结果14

4.1软件调试14

4.2设计结果14

(5)课程小结15

5.1课程分析15

5.2小结15

(6)附录16

 

(〇)绪论

单片机是一个单芯片形态,面向控制对象的嵌入式应用计算机系统.它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域。

由于本次设计的简单篮球记分牌体积小,故要求其控制器体积更小以便能嵌入其结构之中。

单片机以微小的体积和编程的灵活性而产生多种控制功能,完全可以满足需求。

可以适应不同规则下操作。

现在大多数比赛活动中都会遇到需要向观众和选手展示选手得分的情况,需要用到比赛记分牌。

在目前的市场上,普通计分牌系统都需要几百块,价钱比较高。

本项目设计的记分牌系统,电路简易,灵敏可靠,具有一定的使用价值和竞争价值。

(1)系统原理

1.1设计方案

计分牌主要用途是展示选手的得分情况,当选手得分时记分牌加上相应的分数,当选手失分时减去相应的分数。

根据项目要求进行系统设计。

基于AT89S52单片机比赛记分牌,采用12MHz晶振。

项目具体要求如下:

(1)得分的时候加上相应的分数

(2)失分时减去相应的分数。

(3)计分范围设为0~F。

(4)分别记录两个队伍的分数

1.2系统框图

基于AT89S52单片机比赛计分牌由显示模块、按键模块、单片机主控模块、电源模块等组成,系统框图如图1-1所示:

 

图1-1基于AT89S51单片机比赛记分牌体统框图

1.3单片机的时钟电路原理

单片机本身是一个复杂的同步时序系统,为保证同步工作方式的实现,单片机必须有时钟信号,以使其系统在时钟信号的控制下按时序协调工作。

单片机的时钟电路由振荡电路和分频电路组成。

其中震荡电路由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲。

而分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。

如图1-2

图1-2单片机的时钟电路

1.4单片机复位电路工作原理

复位是单片机的初始化操作,其作用是使CPU中的各个部件都处于一个确定的初始状态,并从这个状态开始工作。

当单片机的ALE及两脚输出高电平,RST引脚高电平时,单片机复位。

单片机的复位电路有上电复位和手动按钮复位两种形式,RST/VPD端的高电平直接由上电瞬间产生高电平则为上电复位;若通过按钮产生高电平复位信号称为手动按钮复位。

在实际应用系统中,有些外围芯片也需要复位,如果这些复位端的复位电平要求与单片机的要求一致,则可以与之相连。

复位后,P0—P3四个并行接口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。

目前,在单片机体统中共使用4种类型的复位电路,分别为:

积分型电路、微分型电路、比较器型和看门狗型。

其中前三种是在芯片外面用分立元件或集成电路芯片搭建的,而最后一种位于芯片内部,是单片机芯片的一部分。

对于片外复位电路,无论哪种类型,加电复位和手动复位是必不可少的基本功能。

如图1-3所示:

图1-3复位原理电路

1.5单片机晶振电路工作原理

每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。

晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。

在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。

高级的精度更高。

有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。

晶振的作用是为系统提供基本的时钟信号。

通常一个系统共用一个晶振,便于各部分保持同步。

有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。

晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。

如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。

下面具体的介绍一下晶振的作用以及原理,晶振一般采用如图1-4a的电容三端式(考毕兹)交流等效振荡电路;实际的晶振交流等效电路如图1-4b,其中Cv是用来调节振荡频率,一般用变容二极管加上不同的反偏电压来实现,这也是压控作用的机理;把晶体的等效电路代替晶体后如图1-4c。

其中Co,C1,L1,RR是晶体的等效电路。

图1-4晶振电路及其等效槽路

分析整个振荡槽路可知,利用Cv来改变频率是有限的:

决定振荡频率的整个槽路电容C=Cbe,Cce,Cv三个电容串联后和Co并联再和C1串联。

可以看出:

C1越小,Co越大,Cv变化时对整个槽路电容的作用就越小。

因而能“压控”的频率范围也越小。

实际上,由于C1很小(1E-15量级),Co不能忽略(1E-12量级,几PF)。

所以,Cv变大时,降低槽路频率的作用越来越小,Cv变小时,升高槽路频率的作用却越来越大。

这一方面引起压控特性的非线性,压控范围越大,非线性就越厉害;另一方面,分给振荡的反馈电压(Cbe上的电压)却越来越小,最后导致停振。

通过晶振的原理图你应该大致了解了晶振的作用以及工作过程了吧。

采用泛音次数越高的晶振,其等效电容C1就越小;因此频率的变化范围也就越小。

微控制器的时钟源可以分为两类:

基于机械谐振器件的时钟源,如晶振、陶瓷谐振槽路;RC(电阻、电容)振荡器。

一种是皮尔斯振荡器配置,适用于晶振和陶瓷谐振槽路。

另一种为简单的分立RC振荡器。

用万用表测量晶体振荡器是否工作的方法:

测量两个引脚电压是否是芯片工作电压的一半,比如工作电压是51单片机的+5V则是否是2.5V左右。

另外如果用镊子碰晶体另外一个脚,这个电压有明显变化,证明是起振了的。

晶振的类型有SMD和DIP型,即贴片和插脚型。

其中DIP:

常用尺寸有HC-49U/T,HC-49S,UM-1,UM-5,这些都是MHZ单位的。

1.6显示数码管原理

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。

共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。

当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。

共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。

当某一字段的阳极为低电平时,相应字段就不亮。

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

下图1-5分别为共阳极和共阴极数码管引脚图:

图1-5左为共阳极右为共阴极引脚结构

(2)硬件设计

2.1按键电路的设计

本次实验用了两个按键电路:

加一电路和减一电路。

两个按键电路都是通过手动按下按键拉低电平来分别实现相应的加减功能。

按键电路接线图如图2-1所示:

图2-1按键电路连线图

2.2键盘显示电路的设计

数码管采用共阳极的接法,8个发光二极管与8255芯片的B口相连,以B口控制段选。

Com端与8255芯片的A口相连,以此控制位选。

具体接线图如图2-2所示:

图2-2显示电路连线图

2.3芯片介绍

AT89S51单片机引脚

功能特性:

AT89S51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

8位微控制器8K字节在系统可编程FLASHAT89S52P0口。

其引脚结构如图2-3:

图2-3AT89S51引脚图

8255芯片引脚

8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。

其各口功能可由软件选择,使用灵活,通用性强。

8255可作为单片机与多种外设连接时的中间接口电路。

8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。

同时必须具有与外设连接的接口A、B、C口。

由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:

与CPU连接部分、与外设连接部分、控制部分。

其引脚图如图2-4所示:

 

图2-48255引脚图

2.4芯片接口图

根据分析设计,设计出基于AT89S51单片机的比赛计分牌电路原理图如图2-5所示。

电源电路为单片机以及其他模块提供标准5V电源。

晶振模块为单片机提供时钟标准,使系统各部分能协调工作。

复位电路为单片机提供复位功能。

单片机作为主控制器,根据输入信号对系统进行相应的控制。

数码管显示选手当前的得分。

按键设置模块用来刷新选手的得分,当选手得分或者失分时可以通过这两个按钮对选手分数重新设置。

 

图2-5比赛记分牌的原理图

(3)软件设计

3.1程序框图

单片机开始运行时显示选手0分,数码管显示0,主程序循环调用显示选手得分,见扫描程序循环执行,当判断有键按下时,跳转子程序程序,执行左右记分牌的加减分程序,并在数码管显示。

具体如图3-1显示:

 

图3-1程序流程图

 

(4)设计结果

4.1软件调试

单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误时在软件调试的过程中被发现和纠正的。

但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。

可见硬件的调试是基础,如果硬件调试不通过,软件设计则无从做起。

但是由于本次课程设计时使用的实验箱子内部的接线是已经接好的,所以硬件调试部分只要保证通讯口连接正常,模块地址连接无误即可。

而软件调试时由于此次程序设计跳转子程序较多且按键标志FLAG的标志置位比较复杂,所以执行程序时采用单步跟踪跳转,这样才能即使发现具体的设计不合理的地方并进行修改。

另外,具体调试时分模块进行,如显示模块,按键模块,加一减一模块等,各模块均调试正常后再进行总体的调试。

4.2设计结果

调试完毕后,运行程序所得结果如图4-1所示:

(5)课程小结

5.1课程分析

此次课程设计的课题由于实验箱子内部接线电路的限制,与键盘和显示管位选脚相连的8255的A口需要一直在输入输出口之间转换,所以无法保持显示灯管常亮。

一开始的时候并不是很了解这个情况,所以我们尝试让显示子程序循环跳转的方式解决,但是发现这样虽然可以使灯管常亮,但是无法与键盘扫描子程序衔接。

所以只能退而求其次,按键的时候显示管亮。

另外一个问题是按键后加一减一的锁定,不设标志位时,按下键后会持续的加一和减一,所以我们后来想了个办法,就是给加一或减一的程序设定一个前提条件,利用FLAG的高低电平来控制。

最后经过整体的调整,能够实现按一下键,加/减一个数的功能。

软件设计的过程中,还碰到过一些程序跳转返回顺序的问题,但是都通过单步跟踪执行的方法成功解决了。

5.2小结

通过四周的努力,本次课程设计任务终于能够成功,系统部分功能能够实现。

通过设计调整软件能够实现基本计分功能。

该设计通过制作记分牌,将几个模块有机融合起来,对使用单片机设计记分牌进行了分析设计,并介绍了基于单片机比赛记分牌的硬件组成,功能模块清晰,编程时,根据硬件来分模块编程。

当然这中间也还是有许多不足之处,一开始电路不是很稳定,尤其是数码管部分,最开始是不亮,然后是按设计要求应是每次加一或减一,有时也会出现乱码或加减混乱的情况,后来通过查找资料,不断调试,请教老师才将问题一个个解决。

这次的单片机课程设计使我收益颇丰,最终完成这个简易的比赛记分牌,对整个的过程更加熟悉,对其中的原理更加清晰。

课程设计是本科学习阶段很有价值的理论与实践相结合的机会。

这次比赛记分牌的设计提高了我运用所学的专业基础课来解决实际问题的能力,看到了单片机应用的实际价值。

最后,此次单片机课程设计过程使我们认识到自身知识及能力的薄弱,更让我们知道实践的重要性。

在以后的学习过程中,我们会更加努力学习单片机的相关知识和应用,真正能够运用单片机组成的微控制系统解决各种实际的问题。

(6)附录

程序代码

C8255EQU0F22BH;8255命令口地址

P8255AEQU0F228H;8255PA口地址

P8255BEQU0F229H;8255PB口地址

P8255CEQU0F22AH;8255PC口地址

COUNTEQU30H

COUNT2EQU60H

NUMEQU40H

FLAGEQU50H

YFLAGEQU70H

ORG0000H

LJMPSTART

ORG0100H

START:

MOVSP,#60H

MOVFLAG,#00H

MOVYFLAG,#00H

MOVCOUNT,#00H

MOVCOUNT2,#00H

MOVR2,#0FEH;位码初始值

MOVDPTR,#C8255

MOVA,#90H;PC口输出,PA输入,PB口输出

MOVX@DPTR,A

MOVDPTR,#P8255C

MOVA,#00H

MOVX@DPTR,A

KB_DIS:

LCALLRD_KB;读键子程序

MOVA,YFLAG

JNZYKB_XSHI

KB_XSHI:

MOVDPTR,#C8255

MOVA,#90H;PC口输入,PA,PB口输出

MOVX@DPTR,A

MOVDPTR,#SMBIAO

LCALLXSHI;显示子程序

LCALLKB_DIS;循环扫描

XSHI:

MOVA,COUNT

ANLA,#0FH

MOVCA,@A+DPTR

MOVDPTR,#P8255B

MOVX@DPTR,A

MOVA,R2

MOVDPTR,#P8255A

MOVX@DPTR,A

LCALLDEL

RET

YKB_XSHI:

MOVDPTR,#C8255

MOVA,#90H;PC口输入,PA,PB口输出

MOVX@DPTR,A

MOVDPTR,#SMBIAO

LCALLYXSHI;显示子程序

LCALLKB_DIS;循环扫描

YXSHI:

MOVA,COUNT2

ANLA,#0FH

MOVCA,@A+DPTR

MOVDPTR,#P8255B

MOVX@DPTR,A

MOVA,R2

MOVDPTR,#P8255A

MOVX@DPTR,A

LCALLDEL

RET

DEL:

MOVR7,#10H

DEL1:

MOVR6,#200H

DEL4:

MOVR5,#250H

DJNZR5,$

DJNZR6,DEL4

DJNZR7,DEL1

RET

RD_KB:

MOVDPTR,#C8255

MOVA,#90H;PC口输出,PA输入,PB口输出

MOVX@DPTR,A

MOVA,#02H;键盘扫描第一行

MOVDPTR,#P8255C

MOVX@DPTR,A

MOVDPTR,#P8255A

MOVXA,@DPTR

MOVNUM,A

CPLA

JZUNFLAG

UFLAG:

MOVA,NUM

CJNEA,#0FFH,KEY_L0

RET

UNFLAG:

MOVFLAG,#00H

JMPUFLAG

KEY_L0:

LCALLDELAY22;延时消抖

;MOVDPTR,#P8255B;读键值

MOVDPTR,#P8255A

MOVXA,@DPTR

CPLA

MOVNUM,A

ANLA,#01H

JNZJIAYI

MOVA,NUM

ANLA,#02H

JNZJIANYI

MOVA,NUM

ANLA,#40H

JNZYJIAYI

MOVA,NUM

ANLA,#80H

JNZYJIANYI

LJMPKB_DIS

JIAYI:

MOVA,FLAG

JZJIA

LJMPKB_XSHI

JIA:

INCCOUNT

MOVYFLAG,#00H

MOVFLAG,#01H

LJMPKB_XSHI

JIANYI:

MOVA,FLAG

JZJIAN

LJMPKB_XSHI

JIAN:

DECCOUNT

MOVYFLAG,#00H

MOVFLAG,#01H

LJMPKB_XSHI

YJIAYI:

MOVA,FLAG

JZYJIA

LJMPYKB_XSHI

YJIA:

INCCOUNT2

MOVYFLAG,#01H

MOVFLAG,#01H

LJMPYKB_XSHI

YJIANYI:

MOVA,FLAG

JZYJIAN

LJMPYKB_XSHI

YJIAN:

DECCOUNT2

MOVYFLAG,#01H

MOVFLAG,#01H

LJMPYKB_XSHI

DELAY:

MOVR0,#0H;延时20MS子程序

DELAY0:

MOVR1,#27H

DJNZR1,$

DJNZR0,DELAY1

RET

DELAY1:

MOVR0,#0H;延时

DELAY11:

MOVR1,#00H

DJNZR1,$

DJNZR0,DELAY11

RET

DELAY2:

MOVR0,#0H;延时

DELAY22:

MOVR1,#20H

DJNZR1,$

DJNZR0,DELAY22

RET

SMBIAO:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;0,1,2,3,4,5,6,7

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;8,9,A,B,C,D,E,F

END

 

参考文献

1赵鑫,蒋亮,齐兆群等.数字电路设计.北京:

机械工业出版社,2005

2苏家健,曹柏荣,汪志锋.单片机原理及应用技术.北京:

高等教育出版社,2003

3李朝青.单片机原理及接口技术.北京:

北京航天航空大学出版色,2001

4胡汉才.单片机原理及其接口技术.北京:

清华大学出版社,2004.

5潭浩强.C语言程序设计.北京:

清华大学出版社.2005

6李华,李东.MCS51/98系列单片机原理与应用.北京:

机械工业出版社.1997

7谢自美等.电子线路设计、实验、测试.北京:

华中科技大学出版社.2002

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1