1、单片机原理及接口技术课程设计-比赛计分器设计说明书【完整版】(文档可以直接使用,也可根据实际需要修订后使用,可编辑放心下载)比赛计分器设计说明书指导老师: 指导学长: 学 院: 机械工程学院 班 级: 姓 名: 学 号: 负责任务: 2021年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按钮设置按钮功能图独立键盘通过P1口输入键值,其中1/2/3分切换由发光二极管指示,见图。通过加减分键和分值切换键配合使用可以较方便实现甲乙两
6、队的初始分数。按下清零后,显示的分数清零。2.2分值切换显示功能分值切换显示功能图2.3数码管驱动的选择 图2-3 74LS引脚功能图74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载到达或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0,信号由 B 向 A 传输;接收DIR=“1,信号由 A 向 B 传输;发送当/CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,/E
7、端接地,保证数据现畅通。8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入P0.IDI,其它时间处于输出P0.IDI。2.4发光二极管显示器的结构、工作原理及其接口电路下列图为典型的数码管:图2-4 7段LED数码管如上图,LED显示器又称为数码管,LED显示器由8个发光二极管组成。中7个长条形的发光管排列成“日字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LEDD显示器有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极
8、LED显示器。表2-1代码对应表显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码03FHC087FH80H106HF996FH90H25BHA4A77H88H34FHB0B7CH83H466H99HC39HC656DH92HD5EHA1H67DH82HE79H86H707HF8F71H8EH动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,那么取决于COM端,而这一端是由I/O控制的
9、,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在本课题中采用P0口输出段码,P3口为位控制输出口。四、程序设计说明1程序设计开始1.1系统流程图初始化S4表首址送DPTR,比分清零,加减分值为1调用显示函数判断哪键按下S6 S5S3去抖动甲乙比分清零切换加减分值,相应LED灯亮S2 去抖动乙加分加减分键释放去抖动甲加分S1键释放键释放键释放乙减分去抖动1.2显示子程序流程图将8位二进制比分转换为十进制数位 选 通取 段 码送 段 码调用延时程序关 段 码1.3延时子程序延时子程序就是通过执行一些没用但又占用
10、时间的指令的集合。这个子程序可以用于很多延时的地方因为它延时的时间可以通过R7进行改变,所以通用性好,可以将几个延时子程序合为一个,只用在调用前给R7赋值,即可根据用户的需要延时,流程图见图3-2。给R6放初值执行三条空指令返回R6-1,判断R6是否为0R7-1,判断R7是否为0延时子程序流程图2.系统的安装调试说明2.1软件调试上电时对系统中进行检测是单片机程序中的一个良好设计。在硬件设计时也应该细细考虑将各个使用到的芯片、接口设计成容易使用软件进行测试的模式。很多有经验的单片机设计者都会在系统上电时特别是第一次上电时进行全面的检测,或者更进一步,将系统的运行状态中分为测试模式和正常运行模式
11、,通过参加测试模式对系统进行详细的检测,使得系统的批量检测更为方便容易。另外要注意的是,一个简单明了的故障显示界面也是颇要费得心思的。比方:系统的外部RAM数据存储器是单片机系统中常用的器件。外部RAM 如果存在问题,程序通常都会成为无法控制。因此,程序在启动时至少在第一次上电启动时一定要对外部RAM 进行检测。另外,在仿真前要做好充分的准备。单片机硬件仿真器给单片机开发者带来了极大的方便,同时也很容易造成人的依赖性。很多时候,没有仿真器却能促使工程师写出更高质量的程序。在硬件仿真调试之前,下面准备工作将是必要的:1程序编完后,对代码仔细逐行检查。检查代码的错误,建立自己的代码检查表,对经常易
12、错的地方进行检查。检查代码是否符合编程标准。2对各个子程序进行测试。测试的方法:用程序测试程序,编制一个调用该子程序的代码,建立要测试子程序的入口条件,再看看它是否按预期输出结果。3如果代码有修改,再次对代码进行检查。调试过程截图:2.2软硬联调编程后利用Keil uVision3来进行编译,再生成的HEX文件装入芯片中,采用proteus软件来仿真,检验功能是否能够正常实现。仿真成功后,焊接硬件电路,通过ISP下载器将hex文件烧制到单片机。通电后,LED-1亮,数码管显示“000-000.。对应的 “S1键为甲加分按钮,当LED-1亮时,每次按下“S1键,甲队分数加1;当LED-2亮时,每
13、次按下“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。五、 电路原理图 六、源程序清单NA EQU 24HNB EQU 25H ;甲乙两队分数TEMP EQ
14、U 26H ;存放切换分数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
15、JIAJIA,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,A
16、1 ;等键释放 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,#
17、2 D0:CJNE 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 ;送段码 MO
18、V P0,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
19、MOV 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
20、,#250 DJNZ R7,$ DJNZ R6,E RET END; * 2021年6月30日编译七、总结与体会回忆此次接近两周的单片机课程设计,我感慨颇多。这次课程设计使我懂得了理论与实际相结合的重要性,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。在设计和制作的整个过程中,我们分工明细。在我们把程序调试好、仿真电路画好并检验之后,就进入了实物制作阶段,这项工作主要由我和同组的另外一名同学完成。在焊接电路板的过程中,我们首先按照仿真电路在板子上对元件进行布局,确认无误后,再在电路板上进行焊接。由于要焊接的触点太多,而且第一次接触到贴片式元器件焊接,导致中途
21、出现过几次虚焊,每次都是在焊接完成后检测电路的时候发现的,然后再重接焊接。在不断重复的实验下,我们焊接的熟练程度也越来越高,总结经验就是:一定要细心,睁大眼睛,千万不要粗心大意焊错了;还有就是发现了自己的动手能力真的有待提高,第一次拿到焊笔的时候,都不知道怎么下手,实践证明,会看的东西,不一定会摸,所以这也是我们在今后的学习中需要加强的方面;最后就是觉得我们的知识面还得有待增强,对常用的单片机应用元器件要熟悉了解。课程设计是培养我们学生综合运用所学知识,发现、提出、分析和解决实际问题、锻炼实践能力的重要环节,是对我们学生实际工作能力的具体训练和考察。随着科学技术开展的日新月异,单片机在当今计算
22、机应用中空前活泼,在生活中的应用也可以说无处不在。我想,通过本次的课程设计,为我们掌握单片机的应用及其开发过程会有很大的帮助,在今后的学习和生活中,我也相信我们也会更多的去关注这些方面的东西,不断的充实自己,将理论与实际真正结合起来。最后,衷心的感谢老师的指导和研究生师兄以及同学的帮助。八、参考文献1、?单片机原理及接口技术? 李朝青编著 北京航空航天大学出版社 2005 2、?微型计算机原理及应用?许立梓编 机械工业出版社 20023、?微型计算机接口技术及应用?刘乐善编 华中理工大学出版社 2000 4、?计算机硬件技术根底试验教程?邹逢兴编 高等教育出版社 20005、?16位微型计算机原理接口及其应用? 周佩玲编 中国科学技术大学出版社 2000 本账号发布文档来源于互联网和个人收集,仅用于技术分享交流,版权为原作者所有。如果侵犯了您的知识版权,请提出指正,我们将立即删除相关资料。免费格式转换请发豆丁站内信。网易博客腾讯微博新浪微博 :/weibo /hiyoho直接联系QQ2218108823