1004144586单片机原理及接口技术课程设计比赛计分器设计说明书_第1页
1004144586单片机原理及接口技术课程设计比赛计分器设计说明书_第2页
1004144586单片机原理及接口技术课程设计比赛计分器设计说明书_第3页
1004144586单片机原理及接口技术课程设计比赛计分器设计说明书_第4页
1004144586单片机原理及接口技术课程设计比赛计分器设计说明书_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、比赛计分器设计说明书比赛计分器设计说明书指导老师: 指导学长: 学 院: 机械工程学院 班 级: 姓 名: 学 号: 负责任务: 2011 年 7 月 6 日一一 、任务说明、任务说明设计要求:设计一个甲,乙两队用的比赛计分器,要求实现以下功能: 给甲,乙两队分别设置 1 个加分按钮,按一下能分别实现加一分;给甲,乙两队分别设置 1 个减分按钮,按一下能分别实现减一分;设置一个清零按钮,按一下能实现清零 ;设置预置分按钮;设置一个加减一分、两分和三分的切换按钮。 二、二、 方案论证方案论证单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。我们都知道,

2、设计系统的关键是思路,而系统通常又由各个模块所组成,所以必须先把所要设计系统模块化,再把各个模块组合在一起,实现一个完整的系统。这就要求我们先要有较扎实的理论知识,特别对芯片的各个管脚功能必须了解,这样才能进行硬件设计。同时,又必须掌握 mcs51 的指令功能,通过编程实现其功能,这就能让我们更好地理解单片机原理及应用这门课程,也是一种理论在实践中的运用。在课程设计中,由于它是一个系统,这就要求我们必须建立系统的概念。我们都知道现实运行的都是完整的系统,而且功能相对来说要复杂,如何把一个复杂的系统模块化才能使问题来的简单,这是我们必须首先解决的问题。当各个模块完成之后再组合成一个完成的系统,这

3、当中要考虑模块间的衔接问题,这些都是在以前设计简单程序时不曾遇到的。如果说我们以前学的都只是些理论,包括 c 语言,微机原理,c+,微机接口,protel,单片机,那么这次的课程设计就是一个贯穿多学科的综合性实践!单片机自20世纪70年代问世以来,以极其高的性价比受到人们的重视和关注,所以应用很广,发展很快。单片机的优点是体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。例如,80c51系列单片机已有十多年的生命期,如今仍保持着上升的趋势,就充分证明了这一点。单片机以其一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能

4、化仪器仪表,及通讯设备、日常消费类产品、玩具等。并且已经深入到工业生产的各个环节以及人民生活的各层次中,如车间流水线控制、自动化系统等、智能型家用电器等。而美国 atmel 公司开发生产了新型的8位单片机at89系列单片机。他不但具有一般 mcs-51单片机的所有特性,而且还拥有一些独特的优点,此次设计中所用到的 at89c51就是其中典型的代表。本设计是基于 at89c51 单片机的篮球计分器,利用 7 段共阴 led 作为显示器件。在此设计中共接入了 2 个四位一体 7 段共阴 led 显示器,每队显示器显示范围可达到 0255 分。本设计内容为比赛计分器,主要用于各种体育比赛记录分数。采

5、用独立式键盘作为输入,用户可分别对两队比分进行加 1、加 2、加 3 和减 1 减 2、减 3操作,其加减 1,2,3 分可以通过加减 1 分、2 分和 3 分的切换按钮实现,并通过指示灯显示其每次按下加减分键所加减的分值。通过加减分键和分值切换键配合使用可以较方便实现预置分。比分通过 2 个四位一体 7 段共阴 led 显示器显示,每队比分显示三位数。三、 原理图设计说明1.系统框图at89c51 单片机比分复位独立式键盘比分显示系统分值切换显示2.各元件原理及功能2.1 按钮设置s1甲加1s2甲减1s3乙加1s4乙减1s51/2/3/分切换s6分数清零比比分分纪纪录录控控制制键键按钮功能图

6、独立键盘通过 p1 口输入键值,其中 1/2/3 分切换由发光二极管指示,见图。通过加减分键和分值切换键配合使用可以较方便实现甲乙两队的初始分数。按下清零后,显示的分数清零。2.2 分值切换显示功能分值切换显示功能图2.3 数码管驱动的选择 图 2-3 74ls 引脚功能图74ls245 还具有双向三态功能,既可以输出,也可以输入数据。当 8051 单片机的 p0 口总线负载达到或超过 p0 最大负载能力时,必须接入74ls245 等总线驱动器。当片选端/ce 低电平有效时,dir=“0” ,信号由 b 向 a 传输;(接收)dir=“1” ,信号由 a 向 b 传输;(发送)当/ce 为高电

7、平时,a、b 均为p2.0p2.1p2.21分led-biby2分led-biby3分led-biby分分值值切切换换显显示示高阻态。由于 p2 口始终输出地址的高 8 位,接口时 74ls245 的三态控制端/1g 和/2g 接地,p2 口与驱动器输入线对应相连。p0 口与 74ls245 输入端相连,/e 端接地,保证数据现畅通。8051 的/rd 和/psen 相与后接 dir,使得/rd 或/psen有效时,74ls245 输入(p0.idi) ,其它时间处于输出(p0.idi) 。2.4 发光二极管显示器的结构、工作原理及其接口电路下图为典型的数码管:图 2-4 7 段 led 数码

8、管如上图,led 显示器又称为数码管,led 显示器由 8 个发光二极管组成。中7 个长条形的发光管排列成“日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。ledd 显示器有两种不同的形式:一种是 8 个发光二极管的阳极都连在一起的,称之为共阳极led 显示器;另一种是 8 个发光二极管的阴极都连在一起的,称之为共阴极 led显示器。表 2-1 代码对应表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03fhc087fh80h106hf996fh90h25bha4a77h88h34fhb0b7ch83h466h99hc39hc656dh

9、92hd5eha1h67dh82he79h86h707hf8f71h8eh动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的 8 个笔划段 a-h 同名端连在一起,而每一个显示器的公共极 com 是各自独立地受 i/o 线控制。cpu 向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于 com 端,而这一端是由 i/o 控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的 com 端,使各个显示器轮流点亮。在本课题中采用 p0 口输出段码,p3 口为位控制输出口。乙加分

10、加减分键释放去抖动甲加分s1键释放键释放键释放乙减分s2切换加减分值,相应 led 灯亮甲乙比分清零去抖动去抖动四、程序设计说明1 程序设计1.1 系统流程图表首址送 dptr,比分清零,加减分值为 1调用显示函数判断哪键按下s6 s5 开始初始化s3去抖动s41.2 显示子程序流程图1.3 延时子程序延时子程序就是通过执行一些没用但又占用时间的指令的集合。这个子程序可以用于很多延时的地方因为它延时的时间可以通过 r7 进行改变,所以通用性好,可以将几个延时子程序合为一个,只用在调用前给 r7 赋值,即可根据用户的需要延时,流程图见图 3-2。位 选 通取 段 码送 段 码调用延时程序关 段

11、码将 8 位二进制比分转换为十进制数2.系统的安装调试说明2.1 软件调试上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。很多有经验的单片机设计者都会在系统上电时(特别是第一次上电时)进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式,通过加入测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比如:系统的外部 ram(数据存储器)是单片机系统中常用的器件。外部 ram 如果存在问题,程序通常都会成为无法控制。因

12、此,程序在启动时(至少在第一次上电启动时)一定要对外部 ram 进行检测。给 r6 放初值执行三条空指令返回r6-1,判断 r6 是否为 0r7-1,判断 r7 是否为 0延时子程序流程图另外,在仿真前要做好充分的准备。单片机硬件仿真器给单片机开发者带来了极大的方便,同时也很容易造成人的依赖性。很多时候,没有仿真器却能促使工程师写出更高质量的程序。在硬件仿真调试之前,下面准备工作将是必要的:(1)程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易错的地方进行检查。检查代码是否符合编程规范。(2)对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的

13、代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。(3)如果代码有修改,再次对代码进行检查。调试过程截图:2.2 软硬联调编程后利用 keil uvision3 来进行编译,再生成的 hex 文件装入芯片中,采用 proteus 软件来仿真,检验功能是否能够正常实现。仿真成功后,焊接硬件电路,通过 isp 下载器将 hex 文件烧制到单片机。通电后,led-1 亮,数码管显示“000-000”.。对应的 “s1”键为甲加分按钮,当 led-1 亮时,每次按下“s1”键,甲队分数加 1;当 led-2 亮时,每次按下“s1”键,甲队分数加 2;当 led-3 亮时,每次按下“s1”键

14、,甲队分数加 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” 。五、 电路原理图 六、源程序清单na equ 24hnb equ 25h ;甲乙两队分数temp equ 26h ;存放切

15、换分数 123jiajia bit p1.0 ;甲加分控制位jiajian bit p1.1 ;甲减分控制位yijia bit p1.2 ;乙加分控制位yijian bit p1.3 ;乙减分控制位switch bit p1.4 ;分值切换控制位rst bit p1.5 ;比分清零控制位org 0000hsjmp startstart:mov dptr,#table ;将表首址送 dptrmov na,#0mov nb,#0 ;比分自动清零mov temp,#1 ;开机默认加减分值为 1mov p2,#01h ;分值显示灯亮a1:acall display ;调显示函数 jnb jiajia,

16、s1 jnb jiajian,s2 jnb yijia,s3 jnb yijian,s4 jnb switch,s5 jnb rst,s6 ljmp a1 ;判断按下的控制键s1:lcall delay ;去抖动 jb jiajia,a1 ;确认按键 mov a,na add a,temp mov na,a lcall b0c0:jb jiajia,a1 ;等键释放 lcall display sjmp c0s2:lcall delay ;去抖动 jb jiajian,a1 mov a,na subb a,temp mov na,a lcall b0c1:jb jiajian,a1 ;等键释放

17、 lcall display sjmp c1s3:lcall delay ;去抖动 jb yijia,a1 mov a,nb add a,temp mov nb,a lcall b1c2:jb yijia,a1 ;等键释放 lcall display sjmp c2s4:lcall display ;去抖动 jb yijian,a1 mov a,nb subb a,temp mov nb,a lcall b0c3:jb yijian,a1 ;等键释放 lcall display sjmp c3s5:inc temp mov a,temp cjne a,#2,d0 mov p2,#2 d0:cj

18、ne a,#3,d1 mov p2,#04hd1:cjne a,#4,d2 mov temp,#1 mov p2,#01h ;分值切换循环 1-2-3d2:ljmp a1s6:mov na,#0 mov nb,#0 ljmp a1b0:cjne a,#255,b2 ;是否大于 999? (可以省略) mov na,#0 b2:retb1:cjne a,#255,b3 mov nb,#0 b3:ret;* 显示函数display:mov a,na ;甲队比分显示 mov b,#100 ;将 8 位二进制转换位十进制 div ab clr p3.0 movc a,a+dptr ;送段码 mov p

19、0,a ;显示甲比分比分百位 lcall delay setb p3.0 ;关位选 mov a,b mov b,#10 div ab clr p3.1 ;开位选 movc a,a+dptr mov p0,a lcall delay setb p3.1 mov a,b clr p3.2 movc a,a+dptr mov p0,a lcall delay setb p3.2 clr p3.3 mov p0,#40h ;显示分隔符 lcall delay setb p3.3;* 乙队比分显示 mov a,nb mov b,#100 div ab clr p3.5 movc a,a+dptr mov

20、 p0,a lcall delay setb p3.5 mov a,b mov b,#10 div ab clr p3.6 movc a,a+dptr mov p0,a lcall delay setb p3.6 mov a,b clr p3.7 movc a,a+dptr mov p0,a lcall delay setb p3.7 clr p3.4 mov p0,#40h lcall delay setb p3.4 rettable:db 3fh,06h,5bh,4fh,66h db 6dh,7dh,07h,7fh,6fh ;*延时程序delay:mov r6,#10e:mov r7,#250 djnz r7,$ djnz r6,e ret end; * 2011 年 6 月 30 日编译七、总结与体会回顾此次接近两周的单片机课程设计,我感慨颇多。这次课程设计使我懂得了理论与实际相结合的重要性,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。在设计和制作的整个过程中,我们分工明细。在我们把程序调试好、仿真电路画好并检验之后,就进入了实物制作阶段,这项工作主要由我和同组的另外一名同学完成。在焊接电路板的过程中,我们首先按照

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论