“单片微型计算机”课程的仿真教学探析

2018-12-10 11:03郭杰
教师·中 2018年9期
关键词:数码管调试电路

郭杰

一、Proteus和Keil介绍及联调

理论教学在以往的单片微型计算机课程教学过程中实施比较多,而实验教学因条件限制开展较少。教师讲解软件设计、硬件设计和单片微型计算机的原理等理论知识,学生在学习过程中普遍感觉枯燥、概念抽象,很难领会和应用;开展的大多数的实验也仅仅是验证性的基于单片微型计算机实验箱的简单实验,学生很难掌握单片微型计算机系统开发的实战经验[1]。此外,有不少学校通过单片微型计算机实验箱或实验电路板另外加上硬件电路仿真头的模式,需要采购大量的定制仪器和实验设备,设备使用过程中损坏比较严重,维护工作量很大[2]。Proteus仿真软件和Keil编译软件的出现,很好地解决了这些问题,提供了很好的“单片微型计算机”课程的仿真教学平台。

1.软件简介

由英国Lab Center Electronics公司设计开发的Proteus仿真软件是一款高效仿真工具,由ISIS模块和ARES模块组成,其中ISIS模块用于原理图的编辑和仿真,ARES用于PCB布线编辑[3]。与别的单片微型计算机仿真软件相比, Proteus除了能仿真单片微型计算机芯片的工作情况,也可以同时仿真单片微型计算机以外的电路和没有用到单片微型计算机的其他模拟电路、数字电路的工作情况。该软件的应用能够进行单片微型计算机系统的无失真仿真。

Proteus仿真软件与其他电路设计仿真软件相比最大的差别在于,它的功能是全面的,它有非常强大的元件库,甚至超过任何其他电路设计软件。就其电路的仿真方面的功能能够比过Multisim,而且它具有的单片微型计算机的仿真功能,Multisim和任何其他仿真软件是不具备的。另外,Proteus仿真软件的PCB电路设计、制版功能可以和Protel不相上下。其功能之强大,丝毫不亚于Protel,是众多电子产品设计者使用得心应手的工具软件。

由德国开发的Keil软件是一款51单片微型计算机开发设计平台,支持采用多种编程语言,包括汇编语言、C语言等高级语言。目前常用的 Keil μVision版本除了能够进行单纯的软件仿真(只进行软件程序仿真,不搭接硬件电路),同时能够通过硬件仿真器,加上单片微型计算机的硬件系统,在仿真器当中加载设计程序后进行电路的實时仿真。另外,还能够利用μVision内部嵌入的Keil Monitor-51模块,不额外增加硬件仿真器的情况下,对单片微型计算机硬件、软件系统综合调试[4]。

Keil C51目标代码生成效率很高,大部分语句汇编代码生成很紧凑,理解起来比较容易。开发复杂软件系统更加能够表现出使用高级语言的编程优势。较汇编语言相比,在功能、结构、可读性、可维护性上C程序设计语言有显著的优势,因而好学易用。用过汇编语言的设计人员,今后再使用C语言来编程,会有更加深刻的体会。

2.Proteus与Keil软件的联调方法

Keil编译软件和Proteus仿真软件的联合调试,也就是要建立软件和硬件仿真调试联合的过程。硬件仿真环境和软件执行环境能够组成软件硬件联合仿真系统,一般软件设计环境和硬件仿真环境都有一套自己的查错和修改页面,利用 Proteus仿真软件和 Keil设计软件就能够完美地进行软件和硬件系统的联合调试。在该联合调试项目系统中,Proteus仿真软件作为硬件仿真界面,而Keil设计编译软件作为软件调试界面。

二、单片微型计算机设计任务项目的模块化分解

1.系统资源

所有的单片微型计算机都结合了一套系统资源。51单片微型计算机提供的资源包括寄存器和存储器。我们可以利用多种51单片微型计算机的模拟仿真软件来查看寄存器内容。另外,在仿真软件Proteus 中,执行debug菜单下registers菜单命令可以调出相应的仿真窗口。要想查看系统内部存储器,可以通过执行debug 菜单下的 internal memory 菜单项命令。

2.硬件接口

单片微型计算机的接口电路知识包含了应用电子技术的各个领域,根据单片微型计算机应用系统的产品任务需要,Proteus仿真将单片微型计算机仿真和SPICE电路仿真进行了整合,仿真工具包含各种仪器仪表,有示波器、逻辑分析仪,等等。

3.软件程序

在课程的教学过程中,软件程序的教学包括语句的结构、功能讲解,检查语法错误和逻辑错误。在项目课程实施时,针对具体单片微型计算机的任务,教师可以结合Keil和Proteus软件进行仿真、演示和讲解,以取得良好的教学效果。

4.综合应用

一个完整的单片微型计算机的应用系统包括软件和硬件。在学完相关理论知识点后,通过项目任务的实施,可以将一个项目分解成多个子任务,通过几节课来完成,这样学生更加容易掌握。这个阶段,软件的编写、调试是学习的主要内容。教师引导学生根据功能要求设计硬件电路,给出参考程序,帮助学生分析、理解、修改软件达到项目设计的要求。

根据单片微型计算机课程的大纲要求结合学生的具体情况,教学中我将整个单片微型计算机课程的教学内容设计成单片微型计算机基础知识、流水灯电路的设计与制作、交通灯电路的设计与制作、数字钟的设计与制作以及汉字点阵LED显示的设计与制作等项目。我将课程的知识点贯穿于项目任务中,指导学生通过实践学习掌握单片微型计算机的应用。

三、项目仿真教学实例

“单片微型计算机”是一门注重实践的学科,学生要想很好地领会和应用,必须通过真实的项目任务来实施。单片微型计算机系统是软硬件结合的系统,教学中搭建硬件电路需要耗费大量的时间,如果采用传统的实验箱又不利于学生理解硬件。同时,单片微型计算机系统的开发过程就是软件、硬件不断修改完善的过程。使用仿真软件免去了反复修改硬件的不便,使单片微型计算机的学习拓展到课堂之外。下面,我将以单片微型计算机的典型应用“数码管显示”为例说明单片微型计算机的仿真教学。

“数码管显示”是单片微型计算机项目课程中的重点、难点。特别是数码管的动态扫描显示技术,其硬件电路结构复杂,如果让学生搭接电路,大致需要四节课时,而且容易出错。采用Proteus仿真软件搭接电路既节省时间,又不易出错,电路改动非常方便,特别适合循序渐进、由浅入深地开展探究式教学。教学过程中,结合课程标准及教学目标,我将数码管的显示分为三个子任务,从单个数码管到多个数码管,由静态显示到动态显示,借助仿真软件由易到难、层层推进地完成教学任务。任务一是数码管的静态显示,具体要求是用一个数码管循环显示0~9,时间间隔约0.5s。

四、任务实施步骤

本任务的学习目标是理解数码管静态显示的硬件结构及原理;巩固一维数组的定义、初始化及数组元素的引用方法;熟练掌握Keil调试软件及Proteus仿真软件的使用方法。

课前,我布置学生复习数码管的结构、类型及工作原理;让学生查阅数码管显示0~9时的共阴和共阳段码表;复习一维数组相关知识;到课程资源库中观看静态显示和动态显示的动画视频。

课上,我对学生课前的预习情况进行检查,及时了解学情以便及时调整上课方案;讲解静态显示原理及硬件结构,给出参考原始程序,要求学生通过 Proteus搭接电路,利用 Keil软件编译程序;最后在仿真平台上进行软硬件的综合调试,巡回指导学生调试,及时解决调试过程中遇到的问题,确保每组学生的基本功能程序调试成功。

1.打开Proteus软件,绘制单个数码管的静态显示原理图

通过硬件电路的绘制,我让学生熟悉常用元件的名称和位置,掌握快速查找元器件的方法,本例中,數码管采用共阴极数码管,让学生注意辨别。另电路省略了数码管的限流电阻,不影响仿真,但实际电路中要接上。单片微型计算机的时钟和复位电路在仿真电路中可以不画,不影响仿真结果(如图1)。

2. 打开Keil软件,按照参考程序编辑软件查错、编译,产生HEX文件

采用C语言编写程序,可读性强,保存时,注意提醒学生保存为C文件,勾选产生HEX文件,在遇到未能编译时需要查错,直到产生HEX文件。程序不长,重点和学生讲解数组的结构和应用、延时程序的修改,等等(如图2)。

3.在Proteus仿真软件中,将HEX文件加载到单片微型计算机中,运行,观察调试现象,完成基本功能任务

加载文件需要正确选择HEX文件的保存路径,所以,文件保存时,提醒学生不要乱存,方便查找。如若软件、硬件正确,一般调试应该正常。

4.修改基本功能程序,实现拓展功能

①实现0、2、4、6、8循环显示;②实现1、3、5、7、9循环显示;③实现由9至0依次递减循环显示。

学生分组讨论、探究,教师点拨。在教师的引导下学生尝试修改程序,观察程序运行效果,不断完善功能,达到知识的深度理解、灵活应用。

拓展功能的实现,进一步加强学生对一维数组的理解、通过反复修改程序加强学生对Proteus仿真软件和Keil软件的熟练使用。这种需要频繁修改程序的课程更加能够体现利用仿真软件教学带来的便利性和直观性,大大地提高课堂教学的效率。

五、结语

与传统教学相比,采用Proteus仿真软件进行单片微型计算机的仿真教学,优势非常明显,克服了教学过程中枯燥的理论难于理解的问题。学生可以通过软件仿真看到直观的现象,帮助修改调试程序,快速掌握知识点,提高学习兴趣。这种软件仿真教学硬件投入少、没有硬接线和元器件的损耗,既节约资源也省时省力,确保了很好的教学效果。

参考文献:

[1]胡敬朋,王 聪.单片机项目教学研究及实践[J].电气电子教学学报,2009(5):82-84.

[2]袁锋伟,赵立宏,朱慧玲,等.基于Proteus的单片机课程教学与实验改革[J].实验室研究与探索,2007(12):75-78.

[3]刘燎原,孙秋波.Proteus软件在单片机项目教学中的应用[J].徐州建筑职业技术学院学报,2009(2):63-65.

[4]孙凌燕,黄允千.Proteus与Keil软件的整合在单片机实验开发中的应用[J].实验室研究与探索,2008(4):59-61,68.

猜你喜欢
数码管调试电路
电路的保护
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
巧用立创EDA软件和Altium Designer软件设计电路
基于Qt的数码管数字编码系统的设计与实现
基于MATLAB模拟混沌电路
基于航拍无人机的设计与调试
FOCAS功能在机床调试中的开发与应用
无线通信中频线路窄带临界调试法及其应用