基于proteus的PIC单片机设计_第1页
基于proteus的PIC单片机设计_第2页
基于proteus的PIC单片机设计_第3页
基于proteus的PIC单片机设计_第4页
基于proteus的PIC单片机设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

安徽工业大学电气信息学院共41页第1页装订线CGBTCN目录1绪论311课题研究的相关背景312选题的目的和意义313课题研究的内容314国内外研究现状415抢答器目前存在的主要问题42PROTEUS简介421进入PROTEUSISIS522PROTEUS工作界面523PROTEUS的主要功能8231PROTEUSVSM功能8232PROTEUSPCB设计功能83PIC单片机931PIC单片机简介932PIC16F87的RAM数据存储器9321通用寄存器9322特殊功能寄存器1033输入/输出端口的基本功能1034PIC单片机指令系统简介1135MPLAB简介144抢答器系统的设计原理及方案1541方案15安徽工业大学电气信息学院共41页第2页装订线411方案一(采用数字电路)15412方案二(采用单片机)16413方案三(采用PLC)1642方案比较及选择175基于PROTEUS的多路抢答器硬件电路设计1751多路抢答器设计要求1752PIC单片机控制的多路抢答器工作原理1853基于PROTEUS的多路抢答器硬件电路设计19531多路抢答器总体电路设计19532多路抢答器编码电路设计22533多路抢答器报警电路设计2354多路抢答器系统软件设计23541多路抢答器系统软件流程图23542汇编程序清单24543基于MPLAB的程序编译和调试306仿真与调试3361仿真结果分析及说明33611仿真分析35612仿真说明36总结与展望38致谢40参考文献41安徽工业大学电气信息学院共41页第3页装订线昨天的事1绪论11课题研究的相关背景抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手号码。现在大多数抢答器均使用单片机和数字集成电路,并增加了许多新功能,如选手号码显示、抢按前或抢按后的计时、选手得分显示等功能。12选题的目的和意义通过这次设计,掌握PIC单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。初步掌握多功能抢答器的调整及测试方法。提高动手能力和排除故障的能力。13课题研究的内容本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。主持人有开始和结束、复位键。在后台主持人可以修改,抢答时间和选手回答问题的时间设置,原始状态下抢答时间为20S,回答问题时间为30S。通过加键和减键修改上述时间,改完后结束键确定。新时间开始有效,主持人按键开始后,选手开始抢答为有效,数码显示屏显示抢答时间倒计时和选手号,在最后五秒扬声器发生提示。如果主持人没有按下开始键而选手就抢答视为犯规,数码显示屏显示犯规者的代号,扬声器持续发生。主持人可按键结束,新一轮抢答开始。通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机内安徽工业大学电气信息学院共41页第4页装订线部,第二,工作性能可靠,抗干扰能力优于目前抢答器。所以本研究是一个实用的工程设计,具有创新性。本论文章节的结构和内容如下第一章绪论。简要介绍了抢答器的发展现状,说明了本课题研究的内容。第二章PROTEUS简介。简要介绍PROTEUS。第三章PIC单片机简介。简要介绍PIC16F87的主要性能和主要输入输出端口以及其MPLAB。第四章抢答器的设计原理及系统方案。第五章基于PROTEUS的多路抢答器设计。第六章仿真与调试。第七章总结。总结课题设计,指出设计中的一些问题,提出改善的意见,并展望抢答器的未来设计。14国内外研究现状抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块,而专用集成块的购买又很困难。为适应高校等多代表队单位活动的需要而设计一个多功能抢答器,这种抢答器具有电路简单,元件普通,易于购买等优点,很好地解决了制作者制作困难和难于购买的问题。在国内外已经开始了普遍的应用2。15抢答器目前存在的主要问题随着改革开放事业的不断深入,促使人们学科学、学技术、学知识的手段多种多样,抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率校低,且有的要么制作复杂,要么可靠性低,减少兴致。作为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展。而且目前多数抢答器存在3个不足之处第一,现场线路连接复杂。因为每个选手位于抢答现场的不同位置,每个选手与控制台之间要有长长的连接线。选手越多,连接线就越多、越乱,这些连接线不仅影响了现场的美观,而且降低了抢答器的可靠性,增加了安装的难度,甚至影响了现场人员的走动。第二,电路复杂。因为单片机只完成号码处理、计时、数据运算等功能,其它功能如选手号码的识别、译码、计分显示等仍只能通过数字集成电路完成。采用单片机扫描技术识别选手抢按号码时,电路的延迟时间较大。第三,选手抢按成功,但出现没有抢答被记录的问题。2PROTEUS简介PROTEUSISIS是英国LABCENTER公司开发的电路分析与实物仿真软件。它运行于安徽工业大学电气信息学院共41页第5页装订线WINDOWS操作系统上,可以仿真、分析SPICE各种模拟器件和集成电路,该软件的特点是实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KEILC51UVISION2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。21进入PROTEUSISIS双击桌面上的ISIS6PROFESSIONAL图标或者单击屏幕左下方的“开始”“程序”“PROTEUS6PROFESSIONAL”“ISIS6PROFESSIONAL”,出现如图11所示屏幕,表明进入PROTEUSISIS集成环境。图11启动时的屏幕22PROTEUS工作界面PROTEUSISIS的工作界面是一种标准的WINDOWS界面,如图12所示。包括标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。安徽工业大学电气信息学院共41页第6页装订线图12PROTEUSISIS的工作界面为了方便介绍,我分别对窗口内各部分进行中文说明(见上图)。下面简单介绍各部分的功能1图形编辑窗口(THEEDITINGWINDOW)顾名思义,它是用来绘制原理图的。蓝色方框内为可编辑区,元件要放到它里面。注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。2预览窗口(THEOVERVIEWWINDOW)它可显示两个内容,一个是当你在元件表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。3绘图工具栏(MODESELECTORTOOLBAR)主要模型(MAINMODES)1选择元件(COMPONENTS)(默认选择的)安徽工业大学电气信息学院共41页第7页装订线2放置连接点3放置标签(用总线时会用到)4放置文本5用于绘制总线6用于放置子电路7用于即时编辑元件参数(先单击该图标再单击要修改的元件)配件(GADGETS)1终端接口(TERMINALS)有VCC、地、输出、输入等接口2器件引脚用于绘制各种引脚3仿真图表(GRAPH)用于各种分析,如NOISEANALYSIS4录音机5信号发生器(GENERATORS)6电压探针使用仿真图表时要用到7电流探针使用仿真图表时要用到8虚拟仪表有示波器等2D图形(2DGRAPHICS)1画各种直线2画各种方框3画各种圆4画各种圆弧5画各种多边形6画各种文本7画符号8画原点等4对象选择器窗口(THEOBJECTSELECTOR)用于挑选元件(COMPONENTS)、终端接口(TERMINALS)、信号发生器(GENERATORS)仿真图表(GRAPH)等。举例,当你选择“元件(COMPONENTS)”,单击“P”按钮会打开挑选元件对话框,选择了一个元件后(单击了“OK”后),该元件会在元件列表中显示,以后要用到该元件时,只需在元件列表中选择即可。5预览对象方位控制按钮(ORIENTATIONTOOLBAR)旋转旋转角度只能是90的整数倍。翻转完成水平翻转和垂直翻转。使用方法先右键单击元件,再点击(左击)相应的旋转图标。6仿真进程控制按钮安徽工业大学电气信息学院共41页第8页装订线仿真控制按钮1运行2单步运行3暂停4停止23PROTEUS的主要功能231PROTEUSVSM功能PROTEUS软件的ISIS原理图设计界面同时还支持电路的虚拟仿真VSM。当电路元件在调用时,选用具有动画演示功能的器件或具有仿真模型的器件,当电路连接完成无误后,直接运行仿真按钮,即可实现声、光、动等逼真的效果,以检验电路硬件及软件设计的对错。PROTEUSVSM有两种不同的仿真方式交互式仿真和基于图表的仿真。交互式仿真实时直观地反映电路设计仿真结果;基于图表的仿真用来精确分析电路的各种性能,如频率特性、噪声特性等。PROTEUSVSM中的整个电路分析是在ISIS原理图设计模块下延续下来的,原理图中可以包含以下仿真工具探针直接布置在线路上,用于采集和测量电压/电流信号;电路激励系统的多种激励信号源;虚拟仪器用于观测电路的运行状况;曲线图表用于分析电路的参数指标。232PROTEUSPCB设计功能PROTEUS不仅可以实现高级原理图设计、混合模式SPICE仿真,还可以进行PCB系统特性设计以及手动、自动布线,以此来实现一个完整的电子系统设计。基于高性能网表的ARESPCB设计软件完全补足了ISIS。ARESPCB设计系统是一个具有32位数据库,能够进行元件布局、撤消和重试的,具有自动布线功能的超强性能的PCB设计系统,其自动布局和自动布线工具使PCB的设计尽可能地简便,复杂的工作尽量都由计算机来完成。同时,ARES也支持手动布线,系统限制相较少。ARESPCB设计系统的主要特性表现在以下几个方面1有16个铜箔层,2个丝印层和4个机械层;2能够将元件进行任意角的布置;3在放置元件时能够自动生成飞线和力向量;4具有理想的基于网表的手工布线系统;5物理设计规则检测功能可以保证设计的完整性;安徽工业大学电气信息学院共41页第9页装订线6具有超过1000种标准封装的元件库;7具有完整的CADCAM输出以及嵌板工具;8当用户修改了原理图并重新加载网表,ARES将更新相关联的元件和连线。同理,ARES中的变化也将自动地反馈到原理图中。3PIC单片机31PIC单片机简介PIC单片机系列是美国微芯公司MICROSHIP的产品,是当前市场份额增长最快的单片机之一。CPU采用RISC结构,分别有33、35、58条指令视单片机的级别而定,属精简指令集。而51系列有111条指令,AVR单片机有118条指令,都比前者复杂。采用HALYARD双总线结构,运行速度快指令周期约160200NS,它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期个别除外,这也是高效率运行的原因之一。此外,它还具有低工作电压、低功耗、驱动能力强等特点。PIC系列单片机的IO口是双向的,其输出电路为CMOS互补推挽输出电路。IO脚增加了用于设置输入或输出状态的方向寄存器TRISN,其中N对应各口,如A、B、C、D、E等,从而解决了51系列IO脚为高电平时同为输入和输出的状态。当置位1时为输入状态,且不管该脚呈高电平或低电平,对外均呈高阻状态;置位0时为输出状态,不管该脚为何种电平,均呈低阻状态,有相当的驱动能力,低电平吸人电流达25MA,高电平输出电流可达20MA。相对于51系列而言,这是一个很大的优点,它可以直接驱动数码管显示且外电路简单。它的AD为10位,能满足精度要求。具有在线调试及编程ISP功能。该系列单片机的专用寄存器SFR并不像51系列那样都集中在一个固定的地址区间内80FFH,而是分散在四个地址区间内,即存储体0BANK0007FH、存储体1BANKL80FFH、存储体2BANK210017FH、存储体3BANK31801FFH。只有5个专用寄存器PCL、STATUS、FSR、PCLATH、INTCON在4个存储体内同时出现。在编程过程中,少不了要与专用寄存器打交道,得反复地选择对应的存储体,也即对状态寄存器STATUS的第6位RPL和第5位RPO置位或清零。数据的传送和逻辑运算基本上都得通过工作寄存器W相当于5L系列的累加器A来进行,而51系列的还可以通过寄存器相互之间直接传送如MOV30H,20H;将寄存器20H的内容直接传送至寄存器30H中,因而PIC单片机的瓶颈现象比51系列还要严重,这在编程中很有感受。32PIC16F87的RAM数据存储器321通用寄存器安徽工业大学电气信息学院共41页第10页装订线通用寄存器(GPR,GENERALPURPOSEREGISTERS)用于通用目的,即由用户自由安排和存放随机数据(单片机上电复位后其内容是不确定的),因此称为“通用寄存器”。对于870来说,共有128个单元,划分为2部分第1部分位于体0中,有96个单元,地址为20H7FH;第2部分位于体1中,有32个单元,地址为A0HBFH。其中体0中高地址处的16个单元比较特殊(70H7FH),在其它3个体内,分别利用地址F0HFFH、170H17FH和1FOH1FFH,都能够访问到这16个单元。322特殊功能寄存器1状态寄存器STATUSBIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0IRPRP1RP0TOPDZDCCQ其中Z是零标志位,若为1,则表示算术或逻辑运算的结果为0,为1则表示算术或逻辑运算的结果不为0。RP0和RP1是RAM数据存储器体选位,仅用于直接寻址。若为00则表示选中体0,为01表示选中体1,为10表示选中体2,为11表示选中体3。在这里其他几位就不做详细介绍了。2实现间接寻址的寄存器INDF和FSR其实位于RAM最顶端、地址码为00H的INDF寄存器,是一个空寄存器,它只有地址编码,并不存在一个真正(物理上)的寄存器单元。用它来与FSR寄存器配合,实现间接寻址。当寻址INDF时,实际上是访问以FSR内容为地址的RAM单元。3与程序计数器PC相关的寄存器PCL和PCLATH程序计数器PC是一个13位宽的、专门为CPU提供程序存储器地址的寄存器,它的内容时刻指向CPU下一步要执行的那条指令所在的程序存储器单元。为了与其他8位宽的寄存器进行交换,将它分成PCL和PCH两部分低8位PCL有自己的地址,可读可写;而高5位PCH却没有自己的地址,不能用软件访问,也就不能直接写入,只能用寄存器PCLATH装载的方式来进行直接写入。除了上面介绍的5个寄存器外,还有其它一些寄存器,在这里就不再具体介绍了。33输入/输出端口的基本功能输入/输出端口(也称I/O口)是单片机内部电路与外部世界交换信息的通道。输入端口负责从外界接收监测信号、键盘信号等各种开关信号。输出端口负责向外界输送由内部电路产生的处理结果、显示信息、控制命令、驱动信号等。1与输入/输出端口相关的2个寄存器在PIC单片机中,各个I/O端口都具备两个基本的专用寄存器数据寄存器和安徽工业大学电气信息学院共41页第11页装订线方向寄存器即PORTX和TRISX。2基本输入/输出端口的工作原理对一个端口引脚进行4种基本操作分别说明如下1)写I/O方向寄存其TRISLATCH根据方向寄存器中写入内容的不同,又可以分为两种情况写入1则对应引脚被设置为“输入”;写入0则对应引脚被设置为“输出”。2)经端口引脚输出数据经端口引脚输出数据的前提是,该端口引脚必须预先被设定为“输出”态。然后把欲输出的数据X(0或1)放到数据总线上,接着由控制线WRPORT送来脉冲下降沿作为触发信号,X被锁入DATALATCH中。3)从端口引脚输入数据对于这种操作,根据防线寄存器内容的不同,又可以分为两种情况(1)方向寄存器的内容为1,读取的是引脚的网逻辑电平。(2)方向寄存器的内容为0,读取的是端口数据寄存器中锁存的数据。4)读取I/O方向寄存器TRISLATCH由RDTRIS送来“读脉冲”,打开三态门将TRISLATCH锁存的内容转移到内部数据总线上。34PIC单片机指令系统简介每个PIC指令都是14位字长,可以分为指明指令类型的操作码和进一步指明指令操作的一个或多个操作数。仅有35条指令RISC,都是单字节(14BIT)指令,除了跳转指令以外所有指令都是单周期指令。341指令说明1、数据传送类指令1)MOVFF,D移动F操作数0F127D0,1受影响的状态位Z根据D的状态,将寄存器F的内容移入目标寄存器。如果D0,目标寄存器是W寄存器。如果D1,目标寄存器是F寄存器本身。由于该指令影响状态标志位Z,可用于在D1时检测数据寄存器的内容是否为0。2)MOVWFF将W的内容移动至F操作数0F127受影响的状态位无说明将数据从W寄存器送入寄存器F。3)MOVLWK将立即数移动到W寄存器操作数0K255受影响的状态位无说明8位立即数K送入W寄存器。4)SWAPFF,DF半字节交换操作数0F127安徽工业大学电气信息学院共41页第12页装订线D0,1受影响的状态位无说明寄存器“F”的高半字节和低半字节交换。如果“D”为0,结果存入W寄存器。如果“D”为1,结果存回到寄存器“F”。2、算术运算类指令1)ADDWFF,DW加F操作数0F127D受影响的状态位C,DC,Z说明W寄存器与“F”寄存器的内容相加。如果“D”为0,结果存入W寄存器。果“D”为1,结果存回到寄存器“F”。2)SUBWFF,DF减去W操作数0F127D0,1受影响的状态位C,DC,Z说明F寄存器内容减去W寄存器内容(使用2进制补码的方法)。如果“D”为0,结果存入W寄存器。如果“D”为1,结果存回到寄存器“F”。3)ADDLWK立即数加W操作数0K255受影响的状态位C,DC,Z说明8位立即数“K”与W寄存器的内容相加,结果存入W寄存器。4)SUBLWK立即数减去W操作数0K255受影响的状态位C,DC,Z说明8位立即数“K”减去W寄存器的内容(使用2进制补码的方法)。结果存入W寄存器。5)INCFF,DF加1操作数0F127D0,1受影响的状态位Z说明寄存器“F”的内容递增。如果“D”为0,结果存入W寄存器。如果“D”为1,结果存回到寄存器“F”。6)DECFF,DF减1操作数0F127D0,1受影响的状态位Z说明寄存器“F”减1。如果“D”为0,结果存入W寄存器。如果“D”为1,结果存回到寄存器“F”。3、逻辑运算类指令1CLRFFF清零操作数0F127受影响的状态位Z说明寄存器F已清零,Z位置1。2CLRWW清零操作数无安徽工业大学电气信息学院共41页第13页装订线受影响的状态位Z说明W寄存器被清零。全零位(Z)置1。3CLRWDT看门狗定时器清零操作数无受影响的状态位TO,PD说明CLRWDT指令复位看门狗定时器。而且还复位WDT预分频器。状态位TO和PD置位。4BCFF,BF位清零操作数0F1270B7受影响的状态位无说明寄存器“F”中的“B”位被清零。5BSFF,BF位置1操作数0F1270B7受影响的状态位无说明寄存器“F”中的“B”位被置1。6RLFF,DF带进位左循环操作数0F127D0,1受影响的状态位C说明寄存器F的内容连同进位标志位循环左移1位。如果“D”为0,结果存入W寄存器。如果“D”为1,结果存回到寄存器“F”。7RRFF,DF带进位右循环操作数0F127D0,1受影响的状态位C说明寄存器F的内容连同进位标志位循环右移1位。如果“D”为0,结果存入W寄存器。如果“D”为1,结果存回到寄存器“F”。8ANDWFF,DW和F与运算操作数0F127D受影响的状态位Z说明W寄存器和F寄存器进行与运算。如果“D”为0,结果存入寄存器W。如果“D”为1,结果存回到寄存器“F”。9IORWFF,DW和F或运算操作数0F127D0,1受影响的状态位Z说明W寄存器和F寄存器进行或运算。如果“D”为0,结果存入W寄存器。如果“D”为1,结果存回到寄存器“F”。10XORWFF,DW和F异或运算操作数0F127D0,1受影响的状态位Z说明W寄存器与“F”寄存器的内容进行异或运算。如果“D”为0,结果存入W。如果“D”为1,结果存回到寄存器“F”。11ANDLWK立即数和W与运算操作数0K255受影响的状态位Z说明寄存器W的内容与8位立即数“K”进行与运算,结果存入W寄存器。12IORLWK立即数和W或运算安徽工业大学电气信息学院共41页第14页装订线操作数0K255受影响的状态位Z说明寄存器W的内容与8位立即数“K”进行或运算。结果存入W寄存器。13XORLWK立即数和W异或运算操作数0K255受影响的状态位Z说明寄存器W的内容与8位立即数“K”进行异或运算。结果存入W寄存器。14COMFF,DF取反操作数0F127D0,1受影响的状态位Z说明取寄存器“F”中内容的补码。如果“D”为0,结果存入W。如果“D”为1,结果存回到寄存器“F”。4、控制转移类指令1CALLK调用子程序操作数0K2047受影响的状态位无说明调用子程序。首先,将返回地址(PC1)压入堆栈。11位立即数地址被装入PC位。PC高位从CLATH装入。CALL是双周期指令。2GOTOK无条件转移操作数0K2047受影响的状态位无说明GOTO是无条件转移指令。11位立即数被装入PC位。PC高位从PCLATH装入。GOTO是双周期指令。3BTFSCF,B检测位,为0则跳过操作数0F1270B7操作如果(F)0则跳过受影响的状态位无说明如果寄存器“F”的位“B”为“1”,则执行下一条指令。如果寄存器“F”的位“B”为“0”,则放弃执行下一条指令,而执行一条NOP指令,使该指令变成2TCY指令。4BTFSSF,B检测F的位,为1跳过操作数0F1270B)1则跳过受影响的状态位无说明如果寄存器“F”的位“B”为“0”,则执行下一条指令。如果位“B”为“1”,则放弃执行下一条指令而执行一条NOP指令,使该指令成为2TCY指令。5RETURN从子程序返回操作数无操作TOSPC受影响的状态位无安徽工业大学电气信息学院共41页第15页装订线说明从子程序返回。执行出栈操作,将栈顶(TOS)单元内容装入程序计数器。这是双周期指令。35MPLAB简介MPLAB集成开发环境(IDE)是一个综合的编辑器、项目管理器和设计平台,适用于使用MICROCHIPPICMICRO和DSPIC单片机进行嵌入式设计的应用开发。MPLABIDE的功能MPLABIDE是基于WINDOWS操作系统的集成开发环境,适用于PICMICROMCU系列和DSPIC数字信号控制器的开发。MPLABIDE提供以下功能使用内置的编辑器创建和编辑源代码。汇编、编译和链接源代码。通过使用内置的软件模拟器观察程序流程,或者使用在线仿真器或在线调试器以实时方式观察程序流程来调试可执行逻辑。用软件模拟器或仿真器进行时序测量。查看WATCH窗口中的变量。使用器件编程器将固件烧写入器件4抢答器系统的设计原理及方案41方案制作抢答器可以用好多的方法,可以用单片机来完成,它的功能强大制作简单,并且外围的元件也很少;也可以用PLC来实现,他的制作也是比较简单;还可以用我们学过的EDA技术来制作;最后也可以用数字电路来实现,它的原理比较简单,集成块的价格也比较便宜且很容易购买。411方案一(采用数字电路)1、原理方框图定时抢答器的总体框图如图411所示,它由主体电路和扩展电路两部分组成。主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成定时抢答的功能。安徽工业大学电气信息学院共41页第16页装订线图411图411所示的定时抢答器的工作过程是接通电源时,节目主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯,定时显示器显示设定的时间,当节目主持人宣布“抢答开始”,同时将控制开关拨到“开始”位置,扬声器给出声响提示,抢答器处于工作状态,定时器倒计时。当定时时间到,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。当选手在定时时间内按动抢答键时,抢答器要完成以下四项工作优先编码电路立即分辨出抢答者的编号,并由锁存器进行锁存,然后由译码显示电路显示编号;扬声器发出短暂声响,提醒节目主持人注意;控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;控制电路要使定时器停止工作,时间显示器上显示剩余的抢答时间,并保持到主持人将系统清零为止。当选手将问题回答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。412方案二(采用单片机)1、原理方框图此电路完成的功能如图412所示,当主持人宣布抢答开始的时候,按下开始按钮,此时电路进入抢答状态,选手的输入采用了扫描式的输入,之后把相应的信息送往单片机,再由单片机输出到显示输出电路中。此时有人第一按下相应的抢答按钮,安徽工业大学电气信息学院共41页第17页装订线经过单片机的控制选择,在八段显示器上显示相应的号码,并锁存,同时禁止其他按钮的输入。图412413方案三(采用PLC)1、原理方框图此电路的功能如图413所示,当主持人打开启动开关后,在设定时间TO内,如果某组抢先按下抢答按钮,则驱动音效电路发出声响,指示灯LI亮,并且在8段数码管显示器上显示出抢答成功的组号,此时电路实现互锁,其他组再按下抢答按钮为无效如果在时间TO内,无人应答,则驱动音效电路发出声响,指示灯L2亮,表示抢答者均放弃该题在抢答成功后,主持人打开限时开关SW2,启动计时器,在设定的时间TI内回答有效,当到达设定时间TI时,驱动音效电路,指示灯L3亮,表示答题时间到。安徽工业大学电气信息学院共41页第18页装订线图41342方案比较及选择方案比较数字电路单片机PLC制作难度低一般一般实现难度一般低低价格低一般高电路原理简单一般一般设计难度简单高一般通过上面的方案比较,数字电路的制作方案比较容易实现,但是所需要的芯片太多,不易于集成。PLC的价格太贵,对于抢答器的设计并不适合。而用单片机设计抢答器其所需的芯片并不太多,而且价格较低,虽然其设计难度较高,但对于当今社会的发展,学好一门单片机是相当重要的,所以本次设计我采用PIC单片机来设计抢答器。5基于PROTEUS的多路抢答器设计51多路抢答器设计要求多路抢答器电路可供不少于8名参赛选手使用;每名参赛选手各有一个抢答按钮,在主持人用按钮清零,并发出抢答指令后,实行抢答;电路配有LED数码显示,能显示优先抢答的选手编号,同时配有语音提示电路。数码显示和语音提示可由主持人用清除按钮解除;电路对参赛选手的动作先后有较强的分辩能力。52PIC单片机控制的多路抢答器工作原理用单片机设计多路抢答器包括硬件电路设计和软件程序设计。硬件电路的核心是PIC16F87单片机,配以输入输出电路构成。软件程序采用PIC汇编语言编写单片机程序。PIC单片机控制的多路抢答器原理框图,如图51所示。单片机控制器(PIC16F87)抢答输入编码电路解除输入复位输入锁存器1解除指示启动指示抢答显示语音报警锁存器2抢答显示安徽工业大学电气信息学院共41页第19页装订线如图51所示,系统框图各部分功能说明如下单片机控制器选用PIC16F87单片机,输入端接收抢答输入、解除输入和复位输入信号等,经运算和处理后,输出信号经锁存器控制抢答指示灯和抢答显示数码管等。抢答输入共8路,选用单刀双掷开关,实现参赛选手的抢答输入,并封锁后抢答输入信号。编码电路对8路抢答输入信号进行编码(输出为4位二进制代码),实现对PIC16F87输入端口的扩展。解除输入选用单刀双掷开关,实现封锁的解除,为继续抢答作准备。复位输入选用单刀双掷开关,可对单片机进行硬件复位操作。锁存器1和锁存器2用锁存器实现对PIC16F87输出端口的扩展。抢答指示共8路,对应指示参赛选手的抢答输入。抢答显示用LCD数码管显示参赛选手的编号。启动指示和解除指示分别指示仿真运行后的状态(抢答开始)和解除封锁后的状态(解除封锁后,允许继续抢答)。语音报警电路当有抢答输入时,语音报警电路发出一定频率的声音,起到提示的作用。当解除信号输入时,语音报警电路停止工作。53基于PROTEUS的多路抢答器硬件电路设计531多路抢答器总体电路设计1创建一个新的设计文件首先进入PROTEUSISIS编辑环境。选择“FILE/NEWDESIGN”选项,在弹出的模板对话框中选择DEFAULT模板,并将新建的设计保存。如图531A所示。图51PIC单片机控制的多路抢答器原理框图安徽工业大学电气信息学院共41页第20页装订线如图531A2置工作环境打开TEMPLATE菜单,对工作环境进行设置。3拾取元器件选择LIBRARY下的PICKDEVICE/SYMBOL菜单项,出现如图531B所示对话框。安徽工业大学电气信息学院共41页第21页装订线图531B元件拾取对话框在KEYWORDS中输入你所需要的元器件名称,单击OK按扭,或在元器件列表区域双击元器件名称,即可完成对该元件的添加。4在原理图中放置元件选择对象选择器中的PIC16F84A元器件,在PROTEUSISIS编辑环境主界面的预览窗口将出现PIC16F84A的图标。在编辑窗口双击鼠标左键,元器件PIC16F84A被放置到原理图中。按照上述步骤,将其他元器件放置到原理图中。5编辑元器件放置好元器件后,双击相应的元器件,即可打开该元器件的编辑对话框。6绘制原理图单击的一个对象连接点。如果想让PROTEUSISIS自动定出走线路径,只需单击另一个连接点;如果想自己决定走线路径,只需在希望的拐点处单击。按照上述步骤,将所有的原器件按照所需方式连线。连接后的原理图如图531C所示。U3U4U5R147KR247KR347KR47KR647KR74KR847K5VR547KD03Q0214152726D38Q394134125455D617Q6167879OE1CLKU774S374D03Q0214152726D38Q394134125455D617Q6167879OE1CLKU874S374R4DC7Q3GND1VC8TR2TH6CV5U95R910K5VC10UFC2047UFBUZ1BUZER5VRA7/OSC1/LKIN16RB0/INT/CP161/SDI/A7B2/O/RX/T8B3/CP19R4/SK/SL10B5/TX/6/T1OS/1CKI12RB7/TOSI3RA0/N0171/18RA2/N2/CVEF13/3/1OUT2A4/T0KI/236/2/OUT5RA5/MCLR4U1PIC6F871122313452637485910Q091726Q314U74LS147U10U6L1L2L3L4L5L6L71VL81VL92VL102VSW2PDT531C连接后的原理图8对原理图进行电气规则检测选择TOOLS下的ELECTRICALRULECHECK菜单项,出现电气规则检测报告单。如图531D所示。安徽工业大学电气信息学院共41页第22页装订线图531D电气规则检查报告单9存盘及输出报表将设计好的原理图文件存盘。同时,可使用TOOLS菜单下的BILLOFMATERIALS草单项输出BOM文档。如图531E所示。图531E输出的BOM文档532多路抢答器编码电路设计因为本次设计是用PIC16F87作为核心器件,而对于八路抢答器而言所需输入端口安徽工业大学电气信息学院共41页第23页装订线较多,但是PIC16F87的输入/输出端口并不是太多,因此对于PIC16F87的输入/输出端口进行阔展无疑是本次设计的一个难点。而本次设计采用由74LS147等组成的编码电路将八路抢答信号进行编码,输出四路编码信号,这样就减少了对于PIC16F87输入/输出的要求。其功能表如图532A所示。输入输出I1I2I3I4I5I6I7I8I9Y4Y3Y2Y10000000000000110011010001000111100001101000001011000000100100000000111000000000101000000000001图532A74LS147的功能表而74LS147输出的是反码,因此需要加上反向器,编码电路如图532B所示。112123134152637485910Q0917Q26314U174LS147U2U3U4U5图532B编码电路533多路抢答器报警电路设计对于报警电路的设计,我采用由一个提供频率为1HZ的信号源、一个与门和一个SOUNDER(声音输出仿真,元件)组成的电路,如图533所示。安徽工业大学电气信息学院共41页第24页装订线U9D0U9ANDLS1SOUNDER图533报警电路54多路抢答器系统软件设计541多路抢答器系统软件流程图软件设计思路本处程序采用查询方式,检测抢答输入信号。抢答信号的互锁用状态标志FLAG(表示寄存器FLAG的BIT0)实现,当FLAG1时,允许抢答;FLAG0时,禁止抢答。一旦有抢答输入,在对应的子程序中将状态标志FLAG清0,则其他抢答输入被封锁。直到程序检测到解除信号后,在解除子程序中,将状态标志FLAG置位,允许继续抢答。多路抢答器软件程序流程图多路抢答器软件程序流程图,如图541所示。安徽工业大学电气信息学院共41页第25页装订线A主程序542汇编程序清单INCLUDE“P16F87INC“;MPASM汇编器包含对PIC16F87的定义FLAGEQU20H;定义标志变量寄存器FLAG,用FLAG作为抢答允许标志ORG00H;程序存放首地址;主程序MAINBSFSTATUS,RP0;选择1区MOVLW0X3F;将A口方向控制码3FH先送WMOVWFTRISA;再转存至方向寄存器TRISA(A口低6位输入,高2位输出)MOVLW0X00;将B口方向控制码00H先送WMOVWFTRISB;再转存至方向寄存器TRISB(B口全为输出)图541多路抢答器程序流程图(B)解除子程序(C)1抢答子程序安徽工业大学电气信息学院共41页第26页装订线BCFSTATUS,RP0;选择0区MOVLW0XD0;以W作中转MOVWFPORTA;将11000000B送A口,最高位为1不影响MOVLW0X00;以W作中转MOVWFPORTB;将00000000B送B口,灯全不亮CALLLATCH_1;调用LATCH_1子程序,将B口数据锁存至锁存器1MOVLW0X40;将01000000B,锁存至锁存器2(启动指示灯X10亮,数码管显示0)MOVWFPORTBCALLLATCH_2BSFFLAG,0;FLAG1(标志位置1,允许抢答);循环检测LOOPBTFSSPORTA,4;检测RA4(解除输入),若RA41(无解除输入),跳转一步CALLJIECHU;若RA40(有解除输入),调用JIECHU(解锁子程序);检测1参赛选手的抢答情况BTFSSFLAG,0;检测允许抢答标志,若FLAG1,允许抢答,跳转一步,检测1抢答输入情况GOTOLOOP;若FLAG0,禁止抢答,跳转至LOOP(重新检测)MOVFPORTA,0;以W作中转ANDLW0X0F;将A口内容和00001111B按位与操作,保留最低4位(编码电路的输出代码)SUBLW0X01;用01H和A口最低3位数据相减,检测是否等于1(是否1参赛选手抢答)BTFSCSTATUS,Z;检测状态寄存器STATUS,若Z0,表示A口最低3位数据不等于1,则跳转一步,继续检测其他抢答信号CALLS1;若Z1,表示A口最低3位数据等于01H(1(A)主程序安徽工业大学电气信息学院共41页第27页装订线参赛选手有抢答),调用S1;检测2参赛选手的抢答情况BTFSSFLAG,0GOTOLOOPMOVFPORTA,0ANDLW0X0FSUBLW0X02BTFSCSTATUS,ZCALLS2;检测3参赛选手的抢答情况BTFSSFLAG,0GOTOLOOPMOVFPORTA,0ANDLW0X0FSUBLW0X03BTFSCSTATUS,ZCALLS3;检测4参赛选手的抢答情况BTFSSFLAG,0GOTOLOOPMOVFPORTA,0ANDLW0X0FSUBLW0X04BTFSCSTATUS,ZCALLS4;检测5参赛选手的抢答情况BTFSSFLAG,0GOTOLOOPMOVFPORTA,0ANDLW0X0FSUBLW0X05BTFSCSTATUS,ZCALLS5;检测6参赛选手的抢答情况BTFSSFLAG,0GOTOLOOPMOVFPORTA,0ANDLW0X0F安徽工业大学电气信息学院共41页第28页装订线SUBLW0X06BTFSCSTATUS,ZCALLS6;检测7参赛选手的抢答情况BTFSSFLAG,0GOTOLOOPMOVFPORTA,0ANDLW0X0FSUBLW0X07BTFSCSTATUS,ZCALLS7;检测8参赛选手的抢答情况BTFSSFLAG,0GOTOLOOPMOVFPORTA,0ANDLW0X0FSUBLW0X08BTFSCSTATUS,ZCALLS8GOTOLOOP;处理1抢答子程序S1BCFFLAG,0;抢答标志复位(FLAG0),禁止其他抢答输入MOVLW0X01;以W作中转MOVWFPORTB;将01H(控制指示灯X1亮,其他均不亮)送B口CALLLATCH_1;调用LATCH_1,进一步将01H锁存至锁存器1MOVLW0X51;以W作中转MOVWFPORTB;将51H(控制启动指示灯X10亮,其他均不亮,数码管显示“1”,同时控制蜂鸣器发声)送B口CALLLATCH_2;调用LATCH_2,进一步将51H锁存至锁存器2RETURN;处理1抢答子程序返回;处理2抢答子程序S2BCFFLAG,0MOVLW0X02安徽工业大学电气信息学院共41页第29页装订线MOVWFPORTBCALLLATCH_1MOVLW0X52MOVWFPORTBCALLLATCH_2RETURN;处理3抢答子程序S3BCFFLAG,0MOVLW0X04MOVWFPORTBCALLLATCH_1MOVLW0X53MOVWFPORTBCALLLATCH_2RETURN;处理4抢答子程序S4BCFFLAG,0MOVLW0X08MOVWFPORTBCALLLATCH_1MOVLW0X54MOVWFPORTBCALLLATCH_2RETURN;处理5抢答子程序S5BCFFLAG,0MOVLW0X10MOVWFPORTBCALLLATCH_1MOVLW0X55MOVWFPORT

温馨提示

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

最新文档

评论

0/150

提交评论