董增文,徐健宁,刘国平
(南昌大学 机电工程学院,江西 南昌 330029)
研究性学习是指学生结合课程教学内容,在教师的指导下,选择研究课题,以类似科学研究的方式,主动发现问题、获取知识、应用知识、解决问题的学习过程[1],是一种“授人以渔”的教学模式,以培养学生的创新精神和创新能力为目标[2],能够提升学生对课程知识和实验原理的理解和记忆,增强学习兴趣,提高学生的实践能力和创新能力[3]。
“单片机原理与接口技术”作为应用性课程,要进行研究性学习,其实践环节尤其重要。传统实验设备的开放性有限,教学大多只能停留在课堂的板书与实验室的验证实验层面上[4]。研究性学习的教学模式应用于该课程时,学生针对千差万别的实际项目,往往受硬件资源、时间和空间等条件的限制[5]。有时由于经费问题,甚至无法开展硬件实验,这大大影响了学生进行研究性学习的效率和效果。
虚拟实验室在实验教学中具有广阔的应用前景[6],通过软件仿真来进行单片机系统实验也是比较经济实用的[7-9]。单片机虚拟实验室对于引导学生进行研究性学习,提高学生的实际动手能力、综合设计能力、创新能力具有非常明显的作用[10]。为此,笔者结合多年教学经验,联合应用VC++和Proteus等软件,设计研发了单片机课程虚拟实验室,以补充和完善传统实验教学模式,为研究性学习提供平台。
面向对象的VC++编程功能十分强大,开发的软件具有自主版权,工业现场的上位机监控软件很大一部分是采用VC++开发的,所以采用VC++开发虚拟实验室的仿真效果十分贴近工业现场的应用。
Keil软件和Proteus软件仿真功能强大,不仅能仿真嵌入式系统CPU执行程序的情况,还能结合外围电路,进行整个系统硬件原理图的仿真,其实验效果非常接近于实际工程系统[11-13]。
联合采用VC++和Proteus等软件开发的单片机虚拟实验室实现原理如图1所示。其中VC++开发上位机监控软件,仿真工业现场的上位机监控;Proteus软件开发单片机的控制系统原理图,结合Keil软件编写的单片机控制程序,仿真工业现场单片机(下位机)控制系统的运行;上位机和下位机软件通过虚拟串口SerialNull连接并交换数据。
图1 单片机虚拟实验室实现原理
学生进行研究性学习时,根据掌握知识由浅到深的原则,实验分成不同的层次,该虚拟实验室架构上也分为4个层次,依次体现4个实验模块。
(1)基础实验模块。此实验模块针对单片机课程的一些基本概念及知识点进行设计。比如:对P0口的应用特点、做通用I/O口需要上拉的输出特性;设计出P0口控制LED的电路。学生在进行研究性学习时,可以自己编程验证该实验电路的控制效果。由于能仿真出P0口作为I/O输出口时接上拉电阻和不接上拉电阻的控制效果的差异,学生能更形象、直观地理解该知识点,从而在入门阶段就对本课程建立兴趣。该模块不但可以让学生在自己个人电脑上进行验证实验,还可以在上课时结合多媒体设备进行课堂演示,做到“实验进课堂”,提高课堂教学的效果。
(2)综合实验模块。本模块重点训练学生对上一模块中基础知识点的综合应用。单片机的重要知识点,如中断、定时器等对单片机的应用开发极为重要。综合实验模块以这些重要知识点为目标,以实际应用系统的某部分为对象进行仿真设计。如开关控制蜂鸣器的实验就综合了中断和定时器的使用。学生通过研究性学习后完成此实验,可以巩固和提升对知识点的掌握,并得到实际应用的初步训练。
(3)设计性实验模块。设计性实验的内容都是针对实际生活当中的系统,这些系统的设计涉及单片机课程的大部分知识点,能充分发挥学生的主观能动性及创造性,完成之后具有一定的成就感,能得到硬件电路设计和软件设计方面的训练。
(4)课程设计模块。单片机课程设计的任务是设计一套有实际应用的、具有一定复杂程度的单片机控制系统,要求学生手工绘出系统原理图,并开发相应的系统控制软件,学生设计的原理图及开发的软件将在该模块得到检验、修改和调试。
以直流电机速度监控系统为例来说明单片机虚拟实验室的实现方法。系统的开发包括VC++上位机监控软件、Proteus下位机控制系统原理图设计、keil单片机Demo控制程序开发、SerialNull上位机和下位机虚拟串口连接和系统的联合仿真。
(1)VC++开发上位机监控软件。本监控系统中,上位机监控软件包括当前转速显示、历史转速曲线绘制、监控数据报表显示、按钮控制直流电机减速或加速、按钮保存报表数据库及系统日期和时间的显示。
实现步骤如下:
第一步,利用 MFC AppWizard[exe]向导建立一个基于对话框的工程。
第二步,在对话框中加入相应控件分别实现上述功能,如采用MSComm控件实现上位机和下位机的串口通信;采用List Control控件实现报表显示;采用ADO Data控件实现报表数据库存储;采用Teechart控件实现转速曲线绘制等。
第三步,对上述控件编写控制代码。值得一提的是,在对话框工程初始化函数中对MSComm控件初始化时,应与虚拟串口连接软件SerialNull的设定、Proteus中COMPIN虚拟器件的设定、单片机程序中波特率和帧格式的设定相对应。本例中,上位机监控软件采用虚拟串口COM3通信,波特率为9600,帧格式为10位。
故MSComm控件初始化如下:
(2)下位机控制系统设计。首先在Proteus中设计单片机(下位机)控制原理图,本控制系统中采用电位计控制直流电机转速。电位计的模拟量值由ADC0808采集,转速采用2位LED显示,控制直流电机转速的PWM波由DAC输出。与上位机的通信采用COMPIN虚拟串口器件,对应计算机的虚拟串口COM4。该器件集成了电平转换功能,不需要另接MAX232进行电平转换,使用方便。
然后采用Keil软件编写单片机Demo控制程序,值得注意的是,单片机串口波特率和帧格式的设定要和上位机监控软件的设定相对应。本例中是:
TH1=0xfd;//波特率9 600,帧格式10位,方式1,不倍增;
TL1=0xfd;
TR1=1;
SCON=0x50;
PCON=0x00。
最后将Keil生成的.HEX文件加入到Proteus的控制系统原理图中。
(3)虚拟串口连接。采用SerialNull软件实现上位机和下位机的虚拟串口连接,上位机监控软件对应COM3,下位机原理图COMPIN对应COM4。
(4)上位机和下位机仿真软件联合运行。上位机监控软件和下位机控制系统设计完成后,进行整个系统联合运行,并根据运行结果进一步调试程序和修改原理图。系统完善后,联合仿真运行效果见图2和图3。从运行效果看,该系统具有高开放性、高逼真性,可作为学生进行直流电机控制方面的研究性学习平台。
图2 VC++上位机监控软件运行结果
为配合学生的研究性学习,必须有相应的实验平台。笔者研发的单片机虚拟实验室经过近2年的使用表明,其具有高开放性、使用方便、实验成本低、几乎无消耗等优点,在促进学生进行研究性学习方面效果明显。
图3 下位机(单片机)控制系统仿真运行结果
该实验系统配合多媒体设备,可以很方便地在课堂上边教学边演示实验,丰富了课堂教学的手段,大大促进了教学质量的提高。
(References)
[1]董增文,胡瑢华,刘国平.机电控制器类课程虚拟实验系统的研究与开发[J].实验技术与管理,2011,28(8):53-56.
[2]任长松.探究式学习:l8条原则[J].教育理论与实践,2002(2):56-59.
[3]袁丽环,段江燕.研究性学习在高校生化实验教学中的探索与实践[J].实验技术与管理,2010,27(6):12-14.
[4]苏变玲,朱志平,袁卫,等.基于Proteus的单片机仿真教学的研究[J].实验室研究与探索,2009(4):75-78.
[5]陈龙,张亚君.Proteus仿真软件在单片机实验教学中的应用[J].实验技术与管理,2009,26(8):73-75.
[6]宋象军.虚拟实验室在高校实验教学中的应用前景[J].实验技术与管理,2005,22(1):35-37.
[7]孙凌燕,黄允千.Proteus与Keil软件的整合在单片机实验开发中的应用[J].实验室研究与探索,2008(4):59-61.
[8]风标科技公司.Proteus VsM:完善的电子设计系统[M].风标科技公司,2005.
[9]钟艳花.Proteus仿真软件在单片机教学中的应用[J].江门职业技术学院学报,2007(4):1-3.
[10]匡载华,邓小鹏.电子类学科专业Proteus实验室的建设[J].实验技术与管理,2009,26(1)155-158.
[11]Wang Huiqiang,Xing Yanqiu,Xiao Tao.The Control System of Belt Grinder Which Based On The Touch Screen And PLC[C]//International Conference on Computer Application and System Modeling.Taiyuan,2010.
[12]Matti Vaananen,Jussi Horelli,Juha Katajisto.Virtual Learning Environment Concept for PLC-programming -Case:Building Automation[C]//2010 2nd International Conference on Education Technology and Computer.Shanghai,2010.
[13]刘心童,郭福田,孙振兴,等.Proteus仿真技术在单片机教学中的应用[J].实验技术与管理,2007,24(3):96-98.