摘要:针对单片机项目式教学中出现的问题,提出了将Proteus仿真软件和Keil软件引入到单片机项目式教学中。以”简易温室监控系统”项目为例,详细阐述Proteus软件和Keil软件在单片机课程教学中的使用方法和仿真调试过程。实践证明,该教学方法能激发学生学习的热情,锻炼了学生的创新能力和单片机软硬件综合开发能力,取得了良好的教学效果,是提高单片机教学效率和教学质量的一种有效方法。
关键词:MCU;项目式教学;Proteus仿真软件;Keil软件
《单片机原理与应用》是高职机电类专业的核心课程之一,也是一门综合性、实践性、应用性很强的专业课。传统的单片机课程教学采用“先理论讲解,再动手实验”的教学模式,该教学模式造成学生理论知识与实践应用严重脱节,忽视了对学生创新能力和综合运用知识的能力的培养,教学效果并不理想。目前一种新的教学方法即项目式教学法被许多高职院校应用与单片机课程教学中,这种教学方法将理论教学和实践教学有机结合,有利于培养学生单片机的应用综合能力,提高了学生的综合职业能力,取得了良好的教学效果。但是在课程实施过程中也遇到了一些问题。第一实施项目式教学要求采购大量的硬件设备,而且单片机技术发展日新月异,设备的更新维护都需要投入大量的经费。第二在单片机项目式教学中难以辅助硬件电路进行教学演示,即便演示,效果也不是很理想。第三在实施项目化教学过程中,一个项目从硬件电路的设计,焊接制作,再到软硬软件的调试,实施周期过长,教学效率有待提高。鉴于此本文将Proteus和Keil软件引入到单片机的项目式教学中,通过仿真的直观性和生动有趣的真实感,激发学生的学习兴趣,不仅节约了硬件资源的投入,而且提高了教学效率和教学质量。
1 Proteus和Keil软件的介绍
Proteus软件是英国Labcenter electronics公司开发的电路分析与实物仿真软件,它除了具有其他EDA工具的原理布图、PCB自动或人工布线、电路仿真等功能外,Proteus最大的特点是基于微控制器的设计连同所有的外围电路一起仿真,可直接在单片机虚拟系统上对MCU编程,并可对软件源代码进行实时调试。同时,它具有电路互动仿真功能,通过动态外设模型,如键盘、LED/LCD等,可实时显示系统输入、输出结果,以实现交互仿真,或配合Proteus配置的虚拟仪器如示波器、逻辑分析仪等,使单片机虚拟系统实现预期的实验效果。
Keil软件是美国Keil Software公司出品的兼容单片机C语言软件的开发系统,是目前世界上最好的51单片机开发工具之一。它提供了丰富的库函数和功能强大的集成开发调试工具,生成的目标代码效率高,多数语句生成的汇编代码很紧凑,容易理解。
Proteus和Keil各自都可以进行仿真调试,但效果不是很理想,如把两者结合起来相互配合,则可发挥Proteus和Keil的优势使其在仿真过程中的软件调试和硬件设计更加便捷、高效。
2 基于Proteus和Keil的单片机项目式教学
单片机项目式教学是以培养学生的职业能力为核心,将整门课程围绕项目展开,以项目的开发步骤作为讲课顺序,将所要讲授的单片机理论知识和实践技能循序渐进地分解到开发项目的过程中,引导学生边千边学,在完成一个又一个项目的实践过程中学习。在单片机项目式教学中使用Proteus和Keil软件教学,可以预先设计大量的单片机应用实例,在课堂上通过多媒体设备使用Proteus和Keil仿真软件演示从单片机硬件设计到软件调试的全过程,这种实时的交互式仿真能够让学生体会到单片机系统设计仿真调试的整个工作过程,增强学生对单片机的感性认识,提高了学生的学习兴趣和学习积极性。另一方面.通过使用Proteus和Keil软件,学生不仅学习了单片机的硬件设计和软件编程,而且也学习了仪器仪表的使用,提高了学生的动手能力和解决问题的能力。此外还可以解决实训室设备有限的难题,不仅节约了硬件资源,也提高了教学效率,对单片机教学有着积极的作用。
3 仿真项目教学案例
项目教学法的教学过程是紧紧围绕一个或多个完整的项目展开的,因此教学项目的设计,是单片机课程教学成败的关键。按照以课程内容为依托和以就业为导向的项目开发原则,设计了LED流水灯、秒表、数字温度计、电子万年历和简易温室监控系统五个教学项目案例,这些项目案例大部分来自实际工程项目,再经过适当的教学加工而成。文中通过“简易温室监控系统”这一项目教学案例来介绍Proteus和Keil在单片机教学中的应用。
3.1 硬件设计
本案例所设计的温室监控系统整体结构框图如图1所示,主要由信号采集模块、单片机模块、液晶显示模块、时钟与存储模块、键盘模块和开关量输出模块所组成。系统以ATC89C55单片机作为控制核心,通过信号采集模块将温室内的温度、湿度、光照度和二氧化碳浓度等环境参数采集送入到单片机,单片机实现对环境参数的实时存储与显示。同时单片机把采集来的环境参数与预先设定的参数值进行比较,当温室内环境因子参数超出预先设定的值时,单片机控制开关量输出模块启动相应的执行机构,调节环境参数至设定范围内,以满足不同农作物的生长需求。
在Proteus ISIS界面下完成系统电路原理图的绘制,信号采集模块中,采用DS18B20和SHT11作为温度和湿度传感器,单片机的P1.0、P1.4、P1.5引脚分别接DS1BB20的DQ和SHT11的SCK、DATA管脚。用两个分压可变电路模拟光照度传感器和二氧化碳传感器输出的电压变化(0~5 V),单片机的P1.6引脚控制八路模拟开关CD4051选择相应的传感器输出通道,将输出的电压信号经由OP07所构成的负反馈运算电路后输送到A/D转换芯片MAX187的模拟输入端中,单片机的P1.1~P1.3引脚分别接MAX187的SCLK、CS、DOUT管脚,从而控制MAX187工作。信号采集模块电路原理图如图2所示。
键盘模块设置了4个独立按键,用于实现对温室监控系统参数的设置,键0为参数设置键,用于选择不同的参数设置。键1,键2分别为++键,和--键,用于对所设参数进行递增和递减的调整。键3为↑↓键,用于选择上极限值和下极限值。液晶显示模块采用不带字库的HDG128 64F-1型的LCD液晶显示器,单片机的P0.0~P0.4引脚分别接液晶显示器的SI、SCL、A0、RES、CS1引脚。时钟与存储模块采用DS13B20和AT24C02芯片,单片机的P0.5~P0.7引脚接DS13B20的RST、SCLK、I/O引脚,P3.0和P3.1接AT24C02的SCK和SDA引脚。其电路图如图3所示。单片机P2口的8个引脚用于开关量的输出控制,每个引脚通过光电耦合器件TLP521与输出通道进行隔离,隔离信号再经三极管的放大后驱动12 V的小型继电器,从而控制执行设备执行相应的动作。图3为简易温室监控系统的信号采集模块、显示模块和时钟存储模块电路原理图如图2所示。
3.2 软件设计
系统控制软件采用模块化的程序设计思想,将系统的整体功能分为不同的模块,各个模块单独设计、编程、调试。完成之后进行系统总的联调。系统所有程序均在Keil C环境下进行编译调试。系统的软件设计主要包括主程序,系统初始化子程序,温室参数采集子程序、时钟子程序、存储子程序、按键扫描子程序、数据控制处理子程序和液晶显示子程序等模块。其中主程序控制流程如图4所示。
3.3 软硬件联合仿真调试
将编写的程序在Keil μVision3集成开发环境上编译调试,生成相应的HEX文件。按照文献上对Proteus和Keil软件进行相关设置,实现Proteus和Keil的联合仿真。
系统刚开始工作时,液晶屏会显示当前温室所采集到的温度、湿度、光照度、二氧化碳浓度和时间。当采集环境参数均在设定范围时,执行机构均停止工作。按下参数设置键,液晶屏会显示温度的上下极限值设定界面,接着可通过↑↓键来实现对上下极限的切换,按++键和--键可对温度的上下极限值进行修改,修改好后再按下参数设置键,液晶屏就会跳到湿度的上下极限值设定界面,按照上述操作对湿度上下限值进行修改。同样的,可对光照度和二氧化碳浓度也进行上下极限值的设置,设置完之后,再按一下参数设定键,液晶屏又会回到初始界面,而所设定的环境参数极限值也会自动存到单片机中。以温度和CO2浓度控制为例,将4个环境参数的上下极限值设置成如图5所示。通过调整DS18B20的↑↓键和滑动变阻器RV1来改变温室的温度值和CO2浓度值,当温室温度超出所设温度上限,而CO2浓度低于所设下限时,P2.1和P2.6引脚变为低电平,降温系统和CO2补气系统马上开始工作,此时的液晶仿真界面如图6所示。而当温室温度低于所设温度下限,而CO2浓度超出所设上限时,P2.0和P2.7引脚变为低电平,增温系统和通风系统随之工作。而当温室温度和CO2浓度在所设定的上下限范围内时,上述系统都停止工作。该系统对其他环境参数也具有相同的控制效果。
4 结论
通过几年的教学实践证明,相对于传统的单片机课程教学方式,将Proteus和Keil软件引入到单片机项目式教学中的教学方式不仅克服了单片机实训室设备硬件的束缚,使理论教学和实践教学有机结合,而且易于激发学生的学习热情,有利于培养学生的单片机综合应用能力、动手能力和创新能力,明显的提高了单片机教学效率和质量。