基于虚拟仿真的单片机实验教学研究

2021-07-19 09:36唐学锋
湖州师范学院学报 2021年4期
关键词:温湿度调试单片机

唐学锋

(湖州学院,浙江 湖州 313000)

0 引 言

单片机是普通高等院校电子类专业的重要专业基础课程.该课程的教学目的是培养学生具有单片机应用系统软硬件设计、开发、调试的能力,为其在将来的工作中应用单片机技术打下良好的基础.单片机系列课程有“单片机原理与应用”“单片机C语言程序设计”“单片机应用系统设计”等.构建课程群的目的是引导学生由浅入深地建立单片机系统概念,逐步掌握单片机系统的设计与开发[1].传统单片机实验室的主要设备是基于51内核的单片机实验箱.实验箱集成了基本功能模块,学生可以按照实验指导书操作验证模块功能.但由于功能模块已封装好,学生看不到内部电路结构,且实验主要以演示性、验证性为主,实验项目固定不变,所以学生的学习兴趣和主动性不足[2-3].这种传统的实验箱式教学较适合原理性知识的掌握,如辅助“单片机原理与应用”课程教学,但对课程群中的其他课程实验或课程设计不能达到良好的实验教学效果,也不能有效提升学生的实践能力和创新能力.

本文重点针对单片机课程群中的非原理性课程,以培养学生的实际设计、调试能力为出发点,对传统的实验教学模式进行改革,即将虚拟仿真引入单片机实验教学,建立一套基于虚拟仿真的课程体系架构,利用构建的虚拟仿真平台将课堂讲授与实践环节有机地结合起来.在实验和课程设计环节要求学生在虚拟仿真平台中进行设计、调试,仿真正确后下载至实验硬件进行现场调试.该模式的虚拟仿真过程生动直观、操作灵活,可降低实验难度和调动学生的积极性[4-7].

1 单片机虚拟仿真平台的构建

虚拟仿真是信息技术与教学深度融合的教学模式,它能利用软件设计虚拟仪器,从而构建高仿真度的虚拟实验环境.学生在这个虚拟环境中可以自行设计实验方案、拟定实验参数、操作仪器、模拟真实实验过程[8-9].本文采用Proteus和Keil软件构建单片机虚拟仿真平台.首先建立一个计算机局域网,其由一台服务器、一台教师机和若干台学生机组成,然后在服务器上安装Proteus和Keil软件并进行相关设置,可根据需要开发实验教学指导系统,也可指导学生在个人电脑上建立虚拟仿真实验平台,以便课余使用.

Proteus是英国Labcenter公司推出的一款用于单片机系统设计的虚拟仿真软件,已在全球各大高校的单片机课程教学中广泛应用.它很好地解决了单片机与外围电路组成的综合系统协同仿真问题,实现了单片机系统的软硬件同步仿真调试,使单片机应用系统的设计变得简单易用.Proteus软件具有丰富的器件资源,涵盖了目前主流单片机的微处理器模型,系统集成了大量的74系列、CMOS系列、A/D、D/A转换器、键盘、LCD显示器等常用器件,还提供了电压/电流表、示波器、信号发生器等各种虚拟仪表,这些都可直接用于仿真设计[10].Keil是美国Keil Software公司出品的一款51系列兼容单片机C语言开发软件,是目前全球最流行的开发80C51系列单片机的软件工具[11].本文构建的单片机虚拟仿真平台采用Proteus软件建立虚拟单片机硬件系统,采用Keil进行软件程序调试,通过Proteus与Keil的联合调试,其程序运行结果能够在Proteus环境中得以反映,并模拟出“单片机系统+仿真器+开发软件”的实际系统调试效果.

2 单片机虚拟仿真平台的应用

2.1 应用于课堂实例讲解

一般的单片机原理性课程教学采用的是理论教学与实验教学相分离的教学模式,即首先在课堂上教师通过PPT讲解基本知识点,从单片机片内资源、汇编指令到外部接口等;实验课开设相对滞后,且主要针对基本功能模块进行验证.这样的教学模式缺乏一种有效地将软硬件结合、理论与实际相结合的演示方法,课堂内容虽然较全面,但许多学生却难以系统性地掌握.

后续的非原理性课程旨在让学生建立单片机系统概念,提升学生的系统设计与开发能力.在教学中可将单片机应用于工程的典型案例引入教学,围绕具体的应用项目展开,使项目设计贯穿整个教学过程,还可将每个应用项目分解为多个子模块,按照模块化思路讲解相关硬件[12-14].Proteus虚拟仿真软件具有丰富的虚拟元器件资源,配合各种虚拟仪表可以展现整个单片机系统的运行过程.教师通过虚拟仿真平台对案例进行讲解和演示,将原本无法用语言描述的内容直观地展现出来,不仅能够为课堂教学提供很好的交互界面,还能让学生对完整的单片机应用系统有一个感性认识.这种课堂教学模式不仅易于学生更直观、更形象地理解单片机系统的组成,还解决了单片机课堂教学中理论与应用、软件与硬件无法很好结合的难题,能够有效提高学生的学习兴趣和教学效果.

2.2 应用于实验实践

在单片机的非原理性课程教学中,提升学生系统开发能力的实验方式是将基础实验模块进行组合,实现具有一定检测和控制功能的单片机应用系统,并通过增加或改变某方面功能的要求,带动学生去思考和探究[15].单片机应用系统的开发过程包括硬件电路设计、软件设计、PCB电路板制作、元器件焊接和系统调试等几个阶段.整个开发过程不仅需要设计者掌握软硬件技术,还需要设计者具有一定的布线和焊接工艺水平.但系统设计的初学者由于经验欠缺,可能需要反复搭建电路或多次制作PCB板,这就大大增加了开发成本和时间.引入单片机虚拟仿真平台后,学生可以根据实验内容要求,首先利用Proteus软件提供的元器件模型设计硬件电路原理图;然后在Keil软件中编写程序;再利用Keil与Proteus间的软件接口协议将Keil中编写的程序下载到Proteus单片机中进行实时联合调试;最后在调试达到预期效果后再搭建硬件电路实物验证其功能.这种采用Proteus+Keil虚拟仿真平台进行系统仿真开发成功后再进行实际制作的实验方式,能大大提高单片机系统的设计效率.

3 单片机虚拟仿真实验案例设计

本研究设计一个单片机应用系统实验案例,要求学生设计并实现一个基于单片机的温湿度监测系统.案例取材于工程实践,涵盖单片机教学大纲中的多个知识点,具有一定的深度和广度.通过该案例,教师可引导学生如何对一个单片机应用系统进行虚拟仿真和调试,从而锻炼学生综合应用单片机知识解决工程实际问题的能力.

3.1 系统功能要求

本案例的基本任务是采用AT89C51单片机(可选用其它89C51系列的单片机)和温湿度传感器,设计一个温湿度监测系统.系统功能如下:

(1) 上电时能够实时监测环境温湿度数据,并在LCD1602上显示;

(2) 能够通过按键设置温湿度的报警上、下限值,当实际温湿度值不在正常范围内时,相应的LED指示灯报警,并伴随蜂鸣器报警.

3.2 硬件电路设计

学生接受课题任务后,教师引导学生从系统功能出发进行资料收集、小组讨论、师生交流,最终确定方案,然后进行系统总体设计,并将系统分为几个功能模块,最后完成每个功能模块的具体电路设计.实验案例的系统功能框图如图1所示,主要包括单片机最小系统模块、温湿度传感器、显示模块、报警模块、按键电路5个部分.通过对系统功能的分析和对硬件功能模块的划分,实验案例中选择的主要器件可参考表1,也可根据设计需求和器件功能及成本自行选择.

表1 实验案例的主要器件型号

图1 实验案例的系统功能框图Fig.1 System functional diagram of experimental case

完成系统总体设计和器件选型后,学生在Proteus中绘制硬件电路原理图,如图2所示.设计电路图有助于学生深刻理解单片机各引脚的功能和内部硬件资源的分配,以及单片机各引脚与外部硬件电路的连接.对单片机与液晶显示模块LCD1602的连接,教师要引导学生学会阅读LCD1602的datasheet,使其了解1602液晶模块的读写操作和引脚功能等;在单片机的P0口与LCD1602数据口连接中要加拉电阻,引导学生思考,使其对P0口的结构有更深的了解.

图2 实验案例的Proteus设计原理图Fig.2 Proteus design schematic of experimental case

3.3 软件程序设计

单片机的C语言具有移植性好、易懂易用的特点,已成为目前单片机最流行的软件编程工具.教师可建议学生使用C语言编程,采用Keil软件进行编译、调试.系统软件的编写采用模块化设计思路,根据系统功能,软件设计主要包括主程序、DHT11温湿度测量子程序、LCD1602显示子程序、按键子程序、报警子程序等.系统主程序的主要功能是上电后对系统初始化和构建系统的整体软件框架.主程序流程如图3所示.上电完成初始化后调用DHT子程序读取DHT温湿度数据,并在LCD上显示,判断是否有按键按下,若有温湿度上下限设置,则判断温湿度是否超限,若超限则调用报警子程序进行声光报警,并循环监测温湿度直至系统停止运行.

图3 主程序流程图Fig.3 The main program flow chart

进行软件程序编写时,教师应要求学生设计软件系统整体工作流程图,再按功能划分模块,设计每个子模块的工作流程图和软件程序,最后编写系统主程序.采用模块化程序设计方法,不仅能降低程序设计的复杂度,还易于理解和修改程序.

3.4 Proteus与Keil的联合调试

完成电路原理图绘制和软件程序编写后,在Proteus下将Keil编译生成的可执行文件(.hex文件)加载到虚拟单片机中,便可进行软硬件调试和功能效果验证.对较复杂的程序,若没有达到预期效果,则返回到Keil下修改程序,经调试、编译后重新生成.hex文件.这时我们需要将Proteus与Keil进行联合调试,但在联合调试前需要对Proteus和Keil进行相应的设置:

(1) 在Proteus中打开需要联调的电路图,选中“Debug”菜单中的“Use Remote Debug Monitor”选项,使Proteus与Keil进行通信;

(2) 在Proteus安装目录下将VDM51.dll文件复制到Keil安装目录的C51BIN目录下;修改keil安装目录下的Tools.ini文件,在[C51]字段加入“Proteus VSM Monitor-51 Driver”;设置Keil中的Debug选项卡,在“Use”中选择“Proteus VSM Monitor-51 Driver”.

联调设置完成后,在Keil中全速运行程序时,Proteus中的单片机也会自动运行.本实验案例的联调界面如图4所示,左边为KeilμVision4调试界面,右边为Proteus8调试界面.若要观察运行过程中某些变量的值或系统状态,则要用到Keil中的各种调试方式,如单步、跳出、运行到当前行、设置断点等.在Keil里每执行一步操作都可在Proteus里看到相应的单片机引脚高低电平变化、LCD显示等现象.

图4 实验案例的联调界面Fig.4 Joint debugging interface of experimental case

3.5 实验结果

采用Proteus与Keil联合仿真调试后,系统能正确可靠地运行.上电后LCD能正常显示当前的温湿度值和预设的温湿度上下限阈值(图2).当DHT对温湿度模拟改变时,系统能做出相应变化.按电路中“设置”按键能切换温湿度上下限设置,按“增加”和“减少”按键能设置温湿度上下限值.当温湿度超出受限范围时,蜂鸣器报警,4个LED发光二极管电路分别对应4种情况(温度超上限、温度超下限、湿度超上限、湿度超下限)报警,达到声光报警效果.虚拟仿真通过后,学生可进行硬件电路的实物制作与调试.

4 结 语

本文从单片机实验教学现状出发,以培养学生工程实践能力为目标,采用Proteus和Keil软件构建虚拟仿真平台,并将其引入单片机实验教学.同时,以温湿度数据监测系统为例,阐述基于虚拟仿真平台进行单片机应用系统设计及仿真的过程.虚拟仿真平台目前已应用于电子类专业的单片机实验教学环节.实践表明,这种教学模式弥补了传统教学的不足,为学生开展探究性学习、自主实验和创新实践提供了先进手段、开放平台和优质资源,也为实验教学改革和实验室建设增添了活力和动力.但我们以为,虚拟仿真作为一种教学模式,不应该也不可能取代传统的硬件实验方法,而应从提高学生实际操作能力出发,将虚拟仿真与传统的硬件实验教学有机结合起来,取长补短,才能真正提高单片机实验教学效果.

猜你喜欢
温湿度调试单片机
电气仪表自动化安装与调试分析
基于AT89C51的数字型蚕用温湿度计的设计
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
基于温湿度控制的天气预测装置
基于航拍无人机的设计与调试
基于DSP和μcos的温湿度检测系统的设计
PLC在计算机空调机房温湿度控制中的应用