虚拟仿真平台在单片机教学中的应用

2010-09-15 11:45王本有黄欣钰汪德如
皖西学院学报 2010年5期
关键词:中断端口单片机

王本有,黄欣钰,汪德如

(1.皖西学院信息工程学院,安徽六安237012;2.上海交通大学研究生院,上海 2 00240)

虚拟仿真平台在单片机教学中的应用

王本有1,黄欣钰2,汪德如1

(1.皖西学院信息工程学院,安徽六安237012;2.上海交通大学研究生院,上海 2 00240)

基于Proteus仿真软件的特点和功能,阐述了Proteus软件的使用方法,并用实例介绍了Proteus仿真软件在单片机教学中的应用,软硬件协同设计,仿真单片机执行过程,提高了单片机教学效果。

仿真平台;Proteus;单片机

单片机技术是一门综合性、工程性、实践性很强的电类专业核心课程,实验实践环节是该课程学习过程中必不可少的一个重要环节[1](P194-226)。在传统单片机教学中,理论教学与实验教学分开独立进行,难以有机融合,更谈不上相互贯通,而且由于传统实验箱硬件电路已做好,接线也已固定,在实施教学的过程中,学生只能进行简单的接线,往往学生写完程序后对系统硬件原理理解仍旧很模糊,更谈不上学生自己设计单片机硬件电路。这样的结果往往是理论课枯燥空洞,而实践时学生又回忆不起理论课的知识,理论与实践脱节,大大降低了课堂教学效果。本文介绍利用Proteus软件构建单片机虚拟仿真实验平台,能在PC机上“边讲解边演示”,“边学边做”,既能通过演示解释理论中的概念和难以理解的内部结构和应用,又可验证所设计电路的正确性和实用性[2](P3-36)。教学效果表明:基于Proteus软件的单片机仿真,把教学内容、实验设备、教师指导、学生操作等有机地融为一体,解决了传统单片机教学问题,由于只需安装Proteus仿真软件的PC机,实验室可移动,完全开放,极大地提高了教学灵活性,有利于深入学习,加强实践,并逐步形成软硬结合协同设计的新思路和新方法。

1 Proteus仿真软件

1.1 Proteus仿真软件简介

Proteus是英国Lab Center Electronics公司研发的电子产品设计与仿真系统,其不仅是模拟电路、数字电路、模数混合电路的设计与仿真平台,更是目前世界上最先进的基于微控制器(MCU)应用系统软、硬件设计仿真平台之一,其最大特点就是基于微控制器的设计连同所有的外围电路一起仿真,可直接在单片机虚拟系统上对MCU编程,可对软件源代码进行实时调试,并支持第三方的软件编译和调试环境,如AVR studio、Kei1等。同时,它具有电路互动仿真功能,通过动态外设模型,如键盘、LED、LCD等,可实时系统输入、输出结果,或配合Proteus提供的虚拟仪器如示波器、虚拟终端等实现交互仿真,真正实现了在PC上完成从原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB制板图的完整电子设计过程[2](P3-26)。

Proteus有超过万种的元器件模型库、元器件封装库,支持主流的CPU类型,如ARM 7、8051/51、AVR、PIC10/12、PIC16/18、HC11、BasicStamp等,CPU类型随着版本升级还在继续增加(需要购买Proteus VSM并需要指定具体的处理器类型模型);为电子产品设计提供了功能强大的虚拟实验室(虚拟示波器、虚拟逻辑分析仪、多种虚拟信号源、高级图表仿真ASF、……),它们是电路设计与仿真、PCB板设计与仿真的基础;原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计[2](P3-26)[3]。

1.2 Proteus仿真软件使用方法

单片机课程是一门硬件电路与软件编程统一协调的课程,硬件电路为基础,软件控制硬件[2](P3-26)。要理解以硬件为基础的接口扩展方法和控制,必须通过设计硬件电路,进行软件编程,而软件又不能脱离硬件电路,最后通过实验,才可真正领会其软硬件统一协调的含义[2](P3-26)[3]。在Proteus ISIS上做单片机实验,需要做好下面三件事[4][5]:

(1)在Pro teus ISIS上制作实验所必须的实验电路图(注意MCU的最小系统的外围电路在仿真时可以省略)。

在Proteus平台上进行原理图设计,通过模糊搜索可以快速定位所需要的器件,如电阻使用 RES或10K均可找到,自动连线功能使连接导线简单快捷,使用总线布线使电路设计简明清晰;设计好电路后可使用Proteus提供的电气检测工具对电路进行电气检测,若电路出现电气错误,会弹出信息报告,可根据报告排除电气错误。

(2)学生需根据实验电路图设计实验程序,调试通过并生成十六进制目标代码。

软件调试方面,其自身只带汇编编译器,不支持C语言。但可以将它与 Keil C51集成开发环境连接,将用汇编或C语言编写的程序编译生成十六进制目标代码文件后[2][6](P134-179),可以立即进行软、硬件结合的系统仿真。

(3)将(2)生成的十六进制目标代码文件与中实验电路图中的单片机绑定在一起,仿真实际效果,若不满意可修改(1)原理图和(2)程序,直至成功。

系统仿真像使用仿真器一样调试程序。若未达到设计目标,则可多次进行仿真设计,直到满意为止。仿真显示生动直观,用色点显示引脚的数字电平,默认设置红色为高电平,蓝色为低电平,灰色为无效电平,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真直观、生动[2](P3-26)。

2 Proteus仿真可提高单片机教学效果

2.1 单片机端口分析与应用

在单片机教学中,端口的正确运用很重要,因此必须掌握端口的内部结构,P0端口内部结构不同于P1、P2、P3端口[6](P134-179),其内部集电极没有上拉电阻和电源相接(称为OC门),作为I/O口时,须使用外接电源和上拉电阻,才能驱动负载。通过图1由Proteus仿真电路来演示端口驱动能力,可明确 P0口用作驱动电路时不同于其它端口。从图1可看出,单片机上电运行,P1-P3输出为高电平,相应管脚的电平显示为红色,而 P0口理论上为高电平,但实际为灰色即无效电平,P0.0相连的LED灯不能被驱动点亮,当P0.1外接电源和电阻后输出的高电平点亮LED灯。这样的演示可让学生明白OC门的带载特点,加深印象,为正确运用和扩展端口奠定基础。

图1 端口驱动能力演示

由于单片机课程内容本身具有抽象性和实践性,在理论教学时学生普遍感觉难学,教师感觉难教。例如控制流水灯实验的讲解,虽然以往笔者在理论教学过程中也分析程序进行实例讲解,但是由于缺乏直观印象,教学效果并不理想。利用虚拟仿真实验,可以很好地解决这个问题。课堂上如图1通过P1口的8个LED灯来模拟实际生活中多样化广告灯的控制。多样化广告灯的功能是将灯的造型设计为首先单灯往返移动,其次双灯往返移动,最后全部灯依次被点亮的动态效果,并循环往复。事先将灯的状态以16进制或2进制形式保存在以L ED_TABLE为首地址的存储单元中,执行时,通过改变指针DPTR实现状态数据送到 P1口。多样化广告灯汇编程序可由Proteus自带的汇编编译器生成目标程序,也可通过Keil C51集成开发环境生成十六进制目标文件,最后,绑定到单片机仿真即可达到如图2所示的效果。通过虚拟仿真给学生演示,灯亮的5种状态循环往复,学生普遍表现出浓厚的兴趣,从而自行设计其它电路和程序并仿真。

;多样化广告灯程序如下:;

图2 多样化广告灯效果演示

2.2 单片机中断处理及应用

中断及其优先级从概念来说,学生是可以理解的,但程序如何按中断向量表执行[6](P134-179)[7](P113-180),当多个中断源申请中断时,如何根据IE、IP的设置判断中断优先级,如何响应中断服务程序,如何实现中断嵌套,学生在实验中较模糊,可由图3硬件原理图和图4软件框图来仿真中断响应和中断嵌套的各个过程。设计要求是:程序使P0、P1、P2都能使数码管循环显示0-9,但 P0口运行即显示,P1(P2)口能否驱动数码管显示受 IN T0(IN T1)中断服务程序控制,并设置 IN T0中断优先级最高,IN T1次之,当有中断响应时,蓝色数码管停止闪烁,并根据优先级来响应中断,响应后对应数码管从0显示到9后自动返回,当中断1申请并响应,红色数码管显示,这期间若 IN T0申请,红色数码管停止,绿色数码管显示,实现中断嵌套,但在 IN T0中断响应期间,IN T1申请将得不到响应。主程序和中断服务程序用汇编或C语言都可以实现,仿真效果如图3所示。

图3 中断处理仿真

图4 主程序和中断服务程序INT0(INT1)流程图

尽管两个示例演示功能简单,但对概念的理解、软硬结合实现控制、主程序和中断服务程序之间的中断响应、中断嵌套和中断返回过程非常清楚,实现了理论和实践结合,可通过设计或综合型实验引导学生结合实际设计实用控制电路。软硬件综合开发应用和直观仿真,使学生有成就感,对激发学生学习兴趣有着很重要的意义。

对于Proteus软件来讲,可使用单步、断点和连续方式来调试、运行,单片机资源是以寄存器和存储器的方式体现出来的[2](P3-26)。对于寄存器内容的查看,可以执行在debug菜单下registers菜单项命令打开相应的窗口;对于系统内部存储器的查看,同样是执行debug菜单下的internalmemo ry菜单项命令打开相应的窗口,查看、调试非常方便。

3 结束语

利用Pro teus仿真软件对所设计的单片机系统进行仿真,不但能测试程序执行时单片机某些寄存器值的变化,更能从工程的角度直接看程序运行和系统工作的过程和结果。从某种意义上讲,这样的仿真实验克服了用单片机实验教学中实验箱或实验仪硬件电路固定、实验内容固定、学生自主性差等方面的局限性,更好地弥补了实验和工程应用脱节之间的矛盾,当虚拟单片机系统的仿真结果达到系统预期效果后,再进行硬件实物开发,不仅省时省力,也可以节省因方案不正确所造成的硬件投入浪费,而且实验过程与工程实践相接近,可在不投入硬件的情况下锻炼学生进行软硬件综合开发的能力。

基于Pro teus仿真软件进行单片机教学,已成为我校单片机教学与实践的重要环节,将理论与实践相结合,解决了学生理论学习与动手实验这个环节之间的衔接问题,巩固了理论教学,强化了动手能力;通过引导学生科技创新,培养了创新意识和创新能力,取得了明显成效。实践证明:基于 Proteus仿真技术,电子产品设计灵活、快速,它明显提高了设计效率,缩短了设计周期,节约了设计成本,正成为智能电子产品设计、改进、升级的重要手段。

[1]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2005.

[2]张靖武,周灵彬.单片机系统的设计与仿真[M].北京:电子工业出版社,2008.

[3]李莉.基于Proteus的数据采集系统仿真设计[J].电力学报,2009,24(3):226-228.

[4]周灵彬,张靖武.基于仿真技术的电子产品设计变革[J].系统仿真技术,2009,5(2):130-134.

[5]田军营,韩建海.单片机实验的虚拟化改革[J].实验室科学,2008,(6):121-124.

[6]张义和,王敏男,许宏昌,等.例说51单片机(C语言版)[M].北京:人民邮电出版社,2008.

[7]马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计(第4版)[M].北京:北京航空航天大学出版社,2007.

Application of Virtual Simulation Platform in the Teaching of Single-chip M icrocomputer

WANGBen-you1,HUANG Xin-yu2,WANGDe-ru1
(1.College of Inform ation Engineering,West Anhui University,L u’an 237012,China;2.Graduate School,Shanghai Jiao Tong University,Shanghai 200240,China)

Based on the features and functionsof Proteus software,the paper,illustrated w ith examp les,discusses the app lication of Proteus software in single-chip microcomputer teaching.The combined design of software and hardware and single-chip microcomputer simulating the p rocess help a lot to imp rove the teaching effect of single-chip microcomputer.

simulation p latfo rm;Proteus;single-chip microcomputer

TP392

A

1009-9735(2010)05-0032-04

2010-06-28

安徽高校省级自然科学研究一般项目(KJ2010B265);皖西学院校级教学研究项目(JYXM200914)。

王本有(1970-),男,安徽六安人,皖西学院信息工程学院副教授,硕士,研究方向:嵌入式系统及应用。

猜你喜欢
中断端口单片机
一种端口故障的解决方案
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
基于FPGA的中断控制器设计*
端口阻塞与优先级
跟踪导练(二)(5)
千里移防,卫勤保障不中断
系统网络端口安全防护