电路仿真与工具软件应用学习第九章.ppt
文本预览下载声明
山东师范大学 第九讲:PROTEUS_ISIS、KEIL软件的综合应用实例 51系列单片机在很多产品中得到了广泛的应用。在具体的工程实践中,单片机应用技术所涉及的实践环节较多,且硬件投入较大,如果因为控制方案有误而进行相应的开发设计,会浪费较多的时间和经费。Proteus仿真软件很好地解决了这些问题,它可以绘制硬件原理图并实现硬件调试,再与Keil编程软件进行联调,实现对控制方案的验证。尤其对于初学单片机的用户提供了极大的方便。 9.1 PROTEUS_ISIS的微处理器仿真应用-8位抢答器 9.2 PROTEUS_ISIS与KEIL软件的综合仿真应用-流水灯电路 9.1 PROTEUS_ISIS的微处理器仿真应用-8位抢答器 在Proteus ISIS系统中对多种微处理器进行仿真,是其最突出的特点。在这个系统中可以通过仿真方式在计算机上执行各种微处理器的指令,并与所连接的接口电路同时仿真实现对电路的快速调试。 【例9-1】:Proteus仿真设计一个八位的抢答器。 在本例中用到了数码管、蜂鸣器、三极管、按键这些最普通也是最常用的元器件,也用到了总线和总线分支这种布线方式。我们用51单片机的P1口来驱动一个数码管;用P3口作为八个抢答信号的输入端;用P2.0通过三极管Q1来驱动蜂鸣器;用P2.2作为抢答器复位信号的输入端。电路如下图所示。 9.1.1 元器件查找、放置与电路连线 9.1.2软件编程 设计好了硬件线路之后,接下来就是软件编程的问题。如何编写程序呢?当然需要根据硬件的连接情况和控制要求来编写程序。 程序要达到的控制要求是: 只要一开电源或者主持人按下复位按键,数码管就显示“0”表示可以开始抢答。 一旦有抢答信号,就立即判断出是那一位最先抢答,并把相应的位号送至数码管显示,对其后的抢答信号不再响应,同时蜂鸣器持续间隔鸣响,给出音响提示信号。 当主持人按下复位信号后开始下一轮抢答! 程序设计流程图右图所示。 八位输入抢答器参考程序清单 ORG 0000 JMP BEGIN ;程序开始 BEGIN: MOV P2,#0FFH ;P2口置高电平,准备接收信号。 MOV R4,#0 ; “R4”的位标志值清零。 MOV A,R4 ; “R4”位标志值送A寄存器 AGAIN: MOV DPTR,#TABLE ;共阴极数码管代码表首址送DPTR MOVC A,@A+DPTR ;取出显示”0”的代码送P口显示 MOV P1,A LOOP: MOV A,P3 ;接收P3口的抢答信号。 CPL A ;抢答信号求反 JZ LOOP ;如果没有抢答信号再返回LOOP继续扫描 LOOP1: RRC A ;有抢答信号则逐次移动判断是那一位抢答 INC R4 ;每移一次位,R4位标志值加1 JNC LOOP1 ;如果没有遇到抢答信号返回LOOP1继续移位 MOV A,R4 ;遇到抢答信号把R4位标志的只送A MOVC A,@A+DPTR ;找到相应位的显示代码 MOV P1,A ;送P1口显示 LOOP2: JNB P2.2, BEGIN ;若主持人按了复位信号健则转向程序复位 CPL P2.0 ;若没按复位信号键,则通过P2.2给出高低信号驱动蜂鸣器 MOV R5,#20 ;准备调用20次延时20ms程序 LCALL DELAY ;调用延时程序 SJMP LOOP2 ;P2.2口反复间隔0.4秒变化,驱动蜂鸣器 DELAY: MOV R6,#50 ;延时R5×20ms子程序 D1: MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET TABLE: ;共阴极数码管代码表
显示全部