1、 单片机综合设计报告设计课题:拔河游戏模拟机学 院:桂林电子科技大学北海职业技术学院专 业:电子信息工程技术作 者:陆业晓 学 号:1012220705 日 期:2011 年 12 月 16 日目录摘要1、课题背景.31、设计任务分析42、实验设计思路43、实验设计方案51、方案一.52、方案二.73、方案对比与选择.94、元器件选用与电路图95、实验程序116、总结137、参考文献13课题背景随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言逐渐过过度到使用高级语言开发,其中又以 C 语言为主,市场上集中常见的单片机均有其 c 语言开发坏境,应用于 51 系列单片机开发的
2、c 语言,通常简称为 c51 语言。现在忠实开发工具与仿真工具的使用,既便于多媒体教学,有方便学生学习,例题丰富详实,可操作性强,每章均配有实训,内涵思考与练习,内容选择难易适中,符合高职高专的教学要求。单片机应用系统由硬件系统和软件系统两部分组成。硬件系统是指单片机以及扩展的存储器、IO 接口、外围扩展的功能芯片以及接口电路。软件系统包括监控程序和各种应用程序。在单片机应用系统中,单片机是整个系统的核心,对整个系统的信息输入、处理、信息输出进行控制。与单片机配套的有相应的复位电路、时钟电路以及扩展的存储器和 IO 接口,使单片机应用系统能够运行一、设计任务分析:单片机课程设计是单片机电子技术
3、基础课程的实践性教学环节,是为了理论结合实际的电子基础知识,验证,巩固和消化电子技术基本知识,综合应用单片机电子技术解决生产第一线的实际问题,提高基本的专业动手能力,进一步培养分析问题和解决问题的能力,以后更好的为社会服务。设计主要内容及要求 :1、设计一个模拟拔河游戏比赛的逻辑电路。2、电路使用 7 个发光二极管,开机后只有中间的一个发亮,此亮点表示拔河的中心。3、比赛双方各持一个按钮,快速不断地按动按钮,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一位。4、亮点移到任一方终端发光二极管时,胜利信号灯就会亮,这一方就获胜,此时,双方的按钮都应无作用,输出状态保持,只有复位后,
4、在拔河绳子中间的发光二极管重新亮。二、实验设计思路基本要求如下: (1)比赛开始时,由裁判下达命令后,甲乙双方才能输入信号。(2)“电子绳”由 7 个 LED 管构成, 裁判下达“开始比赛”的命令后,位于“电子绳”中点的 LED 点亮。甲乙双方通过按键输入信号,使发亮的 LED 管向自己一方移动,并阻止其向对方延伸。当自己一方终点的 LED 管点亮时,表示比赛结束。由裁判按复位键使电路复位。三、总体设计方案:3、1 电路设计原理拔河游戏机需用 7 个发光二极管排列成一行,开机后只有中间一个点亮,以此作为拔河的中心线,游戏双方各持一个按键,迅速地、不断地按动产生脉冲,谁按得快,亮点向谁方向移动,
5、每按一次,亮点移动一次。移到任一方终端二极管点亮,这一方就得胜,此时双方按键均无作用,输出保持,只有经复位后才使亮点恢复到中心线。3、2 电路设计方案:方案一:1、1 电路原理图:复位 晶振起振电路单片机控制电路亮点显示复位上图一(电路框图)图二(原理图)1、2 电路工作原理本实验方案采用单片机电路,有晶振电路为单片机提供脉冲输出,单片机芯片通过程序的烧录将其信号通过按键 S2,S3 控制单片机的 P2 的 I/O 口的高低电平,使其按键对 7 个输出端控制 LED 的亮暗。单片机原始状态输出低电位。当按动 S2、S3 两个按键时,单片机输出驱动电平指示灯点亮并产生位移,当亮点移到任何一方终端
6、后,这一状态被锁定。如按动复位键,亮点又回到中点位置,比赛又可重新开始。1、3 各单元电路设计:1、电源及复位电路电路:电源电路为整个拔河器电路提供电压输入,使其运行,开关 S1 每当按下几位比赛复位,当胜利一方获胜时,则通过复位电路使其重新开始比赛2、晶振电路:单片机晶振电路为单片机提供工作信号,12M 晶振的工作速度为每秒12M,连接晶振电路是,必须先经过晶振再经过电容,不然影响单片机程序的烧录下图为晶振电路:晶振电路通过单片机 XTAL1,XTAL2 两 I/0 口为单片机输入脉冲3、单片机控制电路:晶振电路为单片机提供时序,使单片机开始工作,按动按钮 S2、S3 使输入信号,单片机对输
7、入的信号进行处理,输出信号到译码器。电路如图:按键 S2 接单片机的 P2.0 口,S3 接单片机的 P2.1 口,通过这两个口控制拔河双方4、单片机最小系统电路:1、如果 P0 不用,那 J34 上拉电阻也不需要,用到哪个 IO 就在哪个 IO 上加上 拉电阻。如果是一个 P 口的 8 个 IO 都要用,就统一用排阻(SIP9 封装) 。2、有一个电源指示灯。3、下载线只要把 P3.0 P3.1 引出来接实验箱或下载线即可。4、有一个晶振 12M 或 11.0592M,两个小电容 20p。5、复位电路的手动复位按键(S54)可要,可不要。方案二:1、1 电路原理图:图一, 图二分别为拔河游戏
8、机的电路框图、整机逻辑图。2、2 电路工作原理:可逆计数器 CC40193 原始状态输出 4 位二进制数 0000,经译码器输出使中间的一只电平指示灯 Q0点亮。当按动 A、B 两个按键时,分别产生两个脉冲信号,经整形后分别加到可逆计数器上,可逆计数器输出的代码经译码器译码后驱动电平指示灯点亮并产生位移,当亮点移到任何一方终端后,由于控制电路的作用,使这一状态被锁定,而对输入脉冲不起作用。如按动复位键,亮点又回到中点位置,比赛又可重新开始。将双方终端指示灯的正端分别经两个与非门后接到 2 个十进制计数器 CC4518 的使能端 EN,当任一方取胜,该方终端指示灯点亮,产生 1 个下降沿使其对应
9、的计数器计数。这样,计数器的输出即显示了胜者取胜的盘数。2、3 各单元电路的设计:1.编码电路的设计:由双时钟二进制同步可逆计数器 CC40193 构成,它有 2 个输入端,4 个输出端,能进行加减计数。通过编码器来控制电平指示灯的显示,加计数时向右移动,进行减计数时,向相反方向移动。3.译码电路:由 4 线16 线译码器 CC4514 构成。译码器的输出 Q0Q 15中选 9 个接电平指示灯,电平指示灯的负端接地,而正端接译码器;这样,当输出为高电平时电平指示灯点亮。比赛准备,译码器输入为 0000,Y 0输出为 1,中心处指示灯首先点亮,当编码器进行加法计数时,亮点向右移,进行减法计数时,
10、亮点向左移。电路图如下图所示:4.控制电路:由异或门 CC4030 和与非门 CC4011 构成,其作用是指示出谁胜谁负。当亮点移到任何一方的终端时,判该方为胜,此时双方的按键均宣告无效。将双方终端指示灯的正接至异或门的 2 个输入端,当获胜一方为“1” ,而另一方则为“0” ,异或门输 出为“1” ,经与非门产生低电平“0” ,再送到 CC40193 计数器的置数端,于是计数器 停止计数,处于预置状态,LD由于计数器数据端 D0、D 1、D 2、D 3和输出 Q0、Q 1、Q 2、Q 3对应相连,输入也就是输出,从而使计数器对脉冲不起作用。电路图如下图所示:5.胜负显示:由计数器 CC451
11、8 和译码显示器构成。将双方终端指示灯正极经与非门输出后分别接到 2 个 CC4518 计数器的 EN 端,CC4518 的两组 4 位 BCD码分别接到实验箱中的两组译码显示器的 8、4、2、1 插孔上。当一方取胜时,该方终端指示灯发亮,产生一个上升沿,使相应的计数器进行加一计数,于是就得到了双方取胜次数的显示,若 1 位数不够,则进行 2 位数的级连。电路图如下:6.复位控制:CC40193 的清零端 CR 接一个电平开关,作为一个开关控制,进行多次比赛而需要的复位操作,使亮点返回中心点。CC4518 的清零端 RD也接一个电平开关,作为胜负显示器的复位来控制胜负计数器使其重新计数。3、2
12、 方案比较与选择方案一与方案二对比,在学了并会使用单片机的前提基础下,方案一显得更加简单,所用的芯片也较少,方案二所用芯片多,焊接较为复杂,同时方案是通过单片机实现数电芯片的功能,使其更加简单快捷,而且成本相对来比较低,也更加能加深对单片机程序学习和理解,相比之下方案一的电路做起来也比较轻松,不容易出错。但方案一没有显示电路,这是方案一的缺点。最后还是选择了方案一,因为方案一的电路所用器件较少,焊接也较为容易。四、元器件的选用及电路图4、1 元件的选用51 单片机 1 片电阻: 1K/ 10K/300 1 个/1 个/1 个晶振 12M 1 片 开关 4 个电容 30pF /10pF 2 个/
13、1 个LED 9 个PCB 板 计算机一台 PC 机一台4、2 电路仿真图4、3 拔河器电路原理图4、4 电路 PCB 图4、5 拔河器实物图5、实验程序:#include #define Leds P0#define off 1#define on 0sbit key1=P20; sbit key2=P21;sbit led=P07;unsigned char counter;unsigned char code numtab10=0x7e,0x18,0xb6,0xba,0xd8,0xea,0xee,0x38,0xfe,0xfa;unsigned char state;void delay(
14、unsigned char delay_time)unsigned char a,b,c;for(a=0;a1;state=state|0x80;Leds=state;a=0;if(state=0xfe)led=0;counter=0;if(state=0xdf)led=0;counter=0;六、调试电路板与程序联调过程中遇到的问题及解决方案:1、PCB 图中因为按键管脚尺寸错误,使其按键不能插入,通过对按键封装的重新布置才能使其正常工作2、电路板按键部分的 GND 连接错误,通过对导线进行拆除,重新焊接,使其按键两个相对距离较短的管脚进行连接才能使用3、晶振电路连接错误,应先通过晶振再经过
15、电容,不然不能使其程序烧录4、电路其中有个开关无作用。本开关不影响实验电路六、总结:6、1 实验结果:按方案一制作完成电路板后,经调试,电路工作正常,基本符合本实验任务要求.由脉冲发生器产生脉冲信号,经单片机电路后,甲乙均能有效计数,当信号灯移到任一方终端指示灯点亮,则这一方就获胜,按复位键后,亮点重新回到中点,又可以重新开始游戏。6、2 实验评价:本实验采用单片机实验电路,电路虽然比较简单,并能实现大部分的功能,但编写的 51 单片机的程序还不完美,存在一些缺陷,与最终的要求还是有一定的差距。还有就是没有加上显示电路,不能显示每一方获胜的次数,这是本实验还需继续改进的地方。6、3 实验心得:
16、这次的设计,我还接触到了很多新的东西,学会了怎样画原理图、使用PCB 软件,怎么仿真,怎样转印电路图,怎么做 PCB 板等。通过此次的设计实验,我从中得到很多乐趣与成就感,虽然电路板初期没能成功实现功能,但经过叶俊明和苏鹏鉴两位老师耐心的指导调试和检查电路下,终于发现了各个的问题所在,并一一得到了解决,最终成功实现各项功能。通过本次实验,让我知道今后要更加努力学好专业的理论知识,才能更好的应用于实践,也只有通过实践,才能更好的理解和应用理论知识。至此,谢谢各位帮助我的同学们,叶俊明和苏鹏鉴两位老师,谢谢你们!七、参考文献:单片机原理及应用 (第 2 版) 单片机机实验与实践教程单片机 C 语言程序设计教程与实训百度文献