您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 单片机比赛计分器课程设计
1第1章系统总体方案设计1.1.概述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。我们都知道,设计系统的关键是思路,而系统通常又由各个模块所组成,所以必须先把所要设计系统模块化,再把各个模块组合在一起,实现一个完整的系统。这就要求我们先要有较扎实的理论知识,特别对芯片的各个管脚功能必须了解,这样才能进行硬件设计。同时,又必须掌握MCS51的指令功能,通过编程实现其功能,这就能让我们更好地理解《单片机原理及应用》这门课程,也是一种理论在实践中的运用。在课程设计中,由于它是一个系统,这就要求我们必须建立系统的概念。我们都知道现实运行的都是完整的系统,而且功能相对来说要复杂,如何把一个复杂的系统模块化才能使问题来的简单,这是我们必须首先解决的问题。当各个模块完成之后再组合成一个完成的系统,这当中要考虑模块间的衔接问题,这些都是在以前设计简单程序时不曾遇到的。如果说我们以前学的都只是些理论,包括c语言,微机原理,c++,微机接口,protel,单片机,那么这次的课程设计就是一个贯穿多学科的综合性实践!单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。例如,80C51系列单片机已有十多年的生命期,如今仍保持着上升的趋势,就充分证明了这一点。单片机以其一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以2及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器等。而美国ATMEL公司开发生产了新型的8位单片机——AT89系列单片机。他不但具有一般MCS-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的AT89C51就是其中典型的代表。本设计是基于AT89S51单片机的篮球计分器,利用7段共阴LED作为显示器件。在此设计中共接入了1个八位一体7段共阴LED显示器,每队显示器显示范围可达到0~255分。本设计内容为比赛计分器,主要用于各种体育比赛记录分数。采用独立式键盘作为输入,用户可分别对两队比分进行加1、加2、加3和减1减2、减3操作,其加减1,2,3分可以通过加减1分、2分和3分的切换按钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。通过加减分键和分值切换键配合使用可以较方便实现预置分。比分通过1个八位一体7段共阴LED显示器显示,每队比分显示三位数。1.2.系统框图AT89C51单片机比分复位独立式键盘比分显示系统分值切换显示3第2章系统硬件设计2.1.按钮设置图2-1按钮功能图独立键盘通过P1口输入键值,其中1/2/3分切换由发光二极管指示,见图1-2。通过加减分键和分值切换键配合使用可以较方便实现甲乙两队的初始分数。按下清零后,显示的分数清零。2.2.分值切换显示功能S1甲加1S2甲减1S3乙加1S4乙减1S51/2/3/分切换S6分数清零比分纪录控制键4图2-2分值切换显示功能图2.3.数码管驱动的选择图2-374LS引脚功能图74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。P2.0P2.1P2.21分LED-BIBY2分LED-BIBY3分LED-BIBY分值切换显示5由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,/E端接地,保证数据现畅通。8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.I←DI),其它时间处于输出(P0.I→DI)。2.4.发光二极管显示器的结构、工作原理及其接口电路下图为典型的数码管:图2-47段LED数码管如上图,LED显示器又称为数码管,LED显示器由8个发光二极管组成。中7个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LEDD显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED显示器。表2-1代码对应表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC087FH80H106HF996FH90H625BHA4A77H88H34FHB0B7CH83H466H99HC39HC656DH92HD5EHA1H67DH82HE79H86H707HF8F71H8EH动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在本课题中采用P0口输出段码,P3口为位控制输出口。7乙加分加减分键释放去抖动甲加分S1键释放键释放键释放乙减分S2切换加减分值,相应LED灯亮甲乙比分清零去抖动去抖动第3章软件设计3.1.系统流程图表首址送DPTR,比分清零,加减分值为1调用显示函数判断哪键按下S6S5开始初始化S3去抖动S483.2.显示子程序流程图图3-1显示子程序流程图位选通取段码送段码调用延时程序关段码将8位二进制比分转换为十进制数93.3.延时子程序延时子程序就是通过执行一些没用但又占用时间的指令的集合。这个子程序可以用于很多延时的地方因为它延时的时间可以通过R7进行改变,所以通用性好,可以将几个延时子程序合为一个,只用在调用前给R7赋值,即可根据用户的需要延时,流程图见图3-2。给R6放初值执行三条空指令返回R6-1,判断R6是否为0R7-1,判断R7是否为0图3-2延时子程序流程图10第4章系统的安装调试说明4.1.软件调试上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。很多有经验的单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比如:系统的外部RAM(数据存储器)是单片机系统中常用的器件。外部RAM如果存在问题,程序通常都会成为无法控制。因此,程序在启动时(至少在第一次上电启动时)一定要对外部RAM进行检测。另外,在仿真前要做好充分的准备。单片机硬件仿真器给单片机开发者带来了极大的方便,同时也很容易造成人的依赖性。很多时候,没有仿真器却能促使工程师写出更高质量的程序。在硬件仿真调试之前,下面准备工作将是必要的:(1)程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程规范。(2)对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。(3)如果代码有修改,再次对代码进行检查。114.2.软硬联调编程后利用KeiluVision3来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能是否能够正常实现。仿真成功后,焊接硬件电路,通过ISP下载器将hex文件烧制到单片机。通电后,LED-1亮,数码管显示“000--000”.。对应的“S1”键为甲加分按钮,当LED-1亮时,每次按下“S1”键,甲队分数加1;当LED-2亮时,每次按下“S1”键,甲队分数加2;当LED-3亮时,每次按下“S1”键,甲队分数加3;可以通过按“S5”键来实现LED-1,LED-2,LED-3之间的切换。对应的“S2”键为甲队减分键,当LED-1亮时,每次按下“S2”键,甲队分数减1;当LED-2亮时,每次按下“S2”键,甲队分数减2;当LED-3亮时,每次按下“S2”键,甲队分数减3;“S3”键为乙加分键,“S4”键为乙队减分键,其实现功能与甲队一样。对应的“S6”键为清零按钮,按下可以实现复位。数码管显示甲乙队当前分数,复位后,数码管显示“000--000”。12第5章总结在本次课程设计中,我通过基于典型单片机AT89C51的设计和应用,对于单片机工作原理,功能有了宏观的了解,并对单片机汇编程序的应用有了新的、进一步的认识。在设计的过程中,我发现很多的问题,给我的感觉就是下手很难,很不顺手,看似很简单的电路,要动手把它给设计出来,是很难的一件事,主要原因是我们没有经常动手设计过电路。另外单片机系统的知识似懂非懂,而且很多知识当时弄明白了,现在要用的时候又不记得,造成我用了大量的时间去查阅各种资料和程序命令,因此整个过程时间安排不合理。由于设计的计划没有安排好,设计的时间极为仓促,尤其是在硬件调试的过程中出现了很大的问题。另外资料的查找也是一大难题,这就要求我们在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论是对我们以后的就业还是学习,都会起到很大的促进和帮助。为了准备这次课程设计,我在结合以前老师上课所讲授知识的基础上将32集的东南大学远程教学视频一口气看完,这样对单片机基本知识有了进一步的了解。在做课题的过程中,发现很多知识还不够熟悉,但是毕竟有了基础,查阅书本后就能弄懂并加以运用。面对大量的参考资料甚至是几乎现成的参考报告,我选择了在学习吸纳的基础上另辟蹊径,虽然这个课题不算难,但是从硬件电路到最后程序的编写和调试都是一步一步摸索出来的,这个过程中也遇到了不少困难,更多的是成功后的喜悦。学习永无止境,很多知识和工具都必须现学现用,培养学习能力十分重要。同时只有把学习和实践当做一种乐趣那么即便有再大的困难也会是一种享受。非常感谢老师的热心指导和同学的帮助。13第6章参考文献[1]、《微型计算机原理及应用》许立梓编机械工业出版社2002[2]、《微型计算机接口技术及应用》刘乐善编华中理工大学出版社2000[3]、《计算机硬件技术基础试验教程》邹逢兴编高等教育出版社2000[4]、《16位微型计算机原理接口及其应用》周佩玲编中国科学技术大学出版社2000[5]、《微型计算机原理与接口技术》吴秀清编中国科学技术出版社2001[6]、《微型计算机接口技术》邓亚平编清华大学出版社2001[7]、《单片机原理及及应用》王迎旭编机械工业出版社2001[8]、《单片机应用程序设计技术》周航慈著北京航空航天大学出版社2002[9]、《单片机实用技术问答》谢宜仁主编人民邮电出版社200214附录A:源程序清单NAEQU24HNBEQU25H;甲乙两队分数TEMPEQU26H;存放切换分数1\2\3JIAJIABITP1.0;甲加分控制位JIAJIANBITP1.1;甲减分控制位YIJIABITP1.2;乙加分控制位YIJIANBITP1.3;乙减分控制位SWITCHBITP1.4;分值切换控制位RESETBITP1.5;比分清零控制位ORG0000HSJMPSTARTSTART:MOVDPTR,#TABLE;将表首址送DPTRMOVNA,#0MOVNB,#0;比分自动清零MOVTEMP,#1;开机默认加减分值为1MOVP2,
本文标题:单片机比赛计分器课程设计
链接地址:https://www.777doc.com/doc-7191943 .html