APP下载

虚拟仿真软件在单片机教学改革中的应用

2022-07-23广西大学

电子世界 2022年1期
关键词:数码管中断实验课

广西大学 聂 雄

针对电子信息类专业单片机课程的教学现状,将Proteus仿真软件引入“微机原理与单片机应用”课程教学环节,改革现有教学方法和手段,改善课程的教学效果。实践表明,采用仿真软件辅助教学,能提高学生的学习兴趣,锻炼和提升学生的单片机编程设计能力。

1 教学现状

微机原理与单片机应用课程是电子通信类专业的基础核心课程,该课程与已经开设的电路分析、模拟电路和数字电路等单纯硬件系统的课程不同,它是硬件电路与软件设计相结合的,两者缺一不可,课堂上单纯的介绍理论知识,学生感觉抽象难懂,且较为枯燥。虽然安排有实验环节,但受课时安排和设备数量等因素的限制,理论课和实验课还是存脱节现象。因此,将实践教学和理论教学相结合是必然的选择。然而,传统的教学存在以下问题:

1)课时分配不合理,理论课时相对较多,实验课时较少,学生动手能力难于提高。以我校为例,课程总学时56,理论学时44,实验学时12,通常每个实验至少2个学时,最多能安排6个实验。对于单片机这种实践性很强的课程来而言,12个实验学时远远不够,但由于该课程理论课教学内容也很多,又不能通过减少理论课时来增加实验课时。

2)教学手段单一,没有充分利用仿真软件等进行动态教学演示和实例分析。老师课堂上仅使用PPT投影方式进行教学,难于激发学生的学习兴趣。

3)理论教学和实验教学较为脱节,不够连贯。由于实验设备数量有限,为了做到一人一台设备,一个班学生通过要分成几批安排实验,时间上要拉长,无法做到理论课讲完一个内容,接着安排对应的实验。而且实验课时较少,无法做到每个教学内容都安排实验。

4)实验场所较为固定,开放时间也都是有限制,因而学生参与实验受到时间和空间的限制,不能灵活安排。

针对上述存在的问题,我们在教学上引入了Proteus仿真软件平台。课堂教学中,在IO端口、数码管显示、定时器/计数器、中断和外设总线等教学内容中增加Proteus虚拟仿真环节,使学生在学习单片机理论知识时,也能生动形象地了解单片机的动态工作过程和运行结果,克服传统方式下教学手段单一、理论和实践脱节等问题,同时提高了学生学习的兴趣。在实验教学中,引入Proteus虚拟仿真平台后,学生可在自己个人计算机上安装了Proteus软件,在到实验室上实验课之前,可以自己先用Proteus软件对实验内容进得仿真,实验课时再通过实际的单片机实验设备进一步验证仿真结果,仿真过程不受实验室开放时间和实验设备数量的限制,有效的打破传统教学方式下实践环节受时间和空间限制的问题。引入Proteus虚拟仿真平台后,学生可以在学习理论课内容后,课余时间自主完成该内容对应的仿真实验,能有效弥补实验课时不足问题,能效避免理论教学与实践教学的脱节问题。

2 Proteus虚拟仿真平台

Proteus是英国Labcenter Electronics公司开发的一款EDA工具软件,它支持众多的模拟和数字元器件仿真,特别是支持8051、ARM7和MSP430等多种处理器,可实现代码调试到处理器与外围电路的协同仿真。同时支持字符型LCD模块、图形LCD模块、LED点阵、数码管、电机和键盘等外部设备仿真。支持IAR、Keil和ICCAVR等多种编译生成的机器码文件的调试。Proteus内置的仿真仪表资源众多,包括示波器、信号发生器、逻辑分析仪、虚拟终端和SPI调试器等。在此平台上可开展模拟电路、数字电路、单片机等多种课程的教学和实验,可有效解决单片机教学中前述提到的相关问题。

3 虚拟仿真软件在理论教学中的应用

微机原理与单片机应用课程以51单片机为基础进行教学,教学内容丰富,我们从中选取了IO端口、外部中断、定时器、数码管显示及SPI总线等几个比较基础的、较为抽象的内容,在课堂教学时,使用对应的仿真电路,进行虚拟仿真演示,这种方式比使用开发板实物进行演示更为直观。

3.1 IO端口和外部中断的仿真

IO端口和外部中断的仿真使用图1所示电路,单片机为AT89S52,图中P1.7外接LED发光二极管,可用IO端口输出测试,电路中P3.2外接按键开关,可作为IO端口输入测试,同时P3.2第二功能为外部中断输入引脚,可用作外部中断功能测试。内部IO端口是学生接触到的第一个功能模块,虽然编程很简单,但对于首次接触单片机这类硬件软件相结合器件的学生,还是较为抽象的,特别是当IO端口作为输入时,有个关键的知识点:“IO端口引脚作为输入使用时,必须先将端口锁存器置1,才能正确读取外部引脚状态”,通过理论讲解,再结合仿真演示,就能理解和掌握。

图1 IO端口和外部中断的仿真电路

教师讲解中断内容时,使用图1电路进行中断功能仿真。软件设计时先对P3.2进行中断的初始化,并编写外部中断INT0的中断服务程序,控制P1.7外接LED亮或灭,来观察外部中断的工作状态。

3.2 定时器/计数器和数码管显示的仿真

在学习数码管显示相关内容时,使用图2所示的电路进行仿真测试。通过软件控制P2或P0端口,逐个点亮数码管的每个笔画,以了解其对应关系;在讲解段码表时,可以演示段码值与显示字符的对应关系。

图2 定时器/计数器和数码管显示的仿真电路

在讲解定时器模块时,定时器内部逻辑比较抽象,但通过仿真可以把定时器的定时状态用数码管显示出来。对于定时时间为ms或us级别的,则在电路中添加虚拟示波器来观察定时时间。把抽象的定时功能通过示波器直观的显示出来。在仿真计数器功能时,P3.4作为外部计数脉冲的输入信号控制端,每按一次P3.4外接按键,内部计数器加1,通过数码管直接显示出来,原来枯燥的内容可变得形象生动。

3.3 A/D转换和SPI总线接口的仿真

在学习A/D转换和SPI总线接口这两部分内容时,使用图3的电路来进行仿真测试。51单片机没有集成硬件SPI,只能通过IO端口软件模块SPI总线。图中,U2的ADC0832的SPI信号与单片机的P3口部分引脚相连接,编程时,将P3.2、P3.4、P3.5和P3.6等IO端口软件模拟SPI接口。仿真时,对SPI信号设置电压探测点,通过虚拟逻辑分析仪捕捉SPI接口通信时序信号。图4所示为ADC0832仿真时的总线时序信号。

图3 A/D转换和SPI总线接口的仿真电路

图4 ADC0832时序信号

在图3中P2口外接LCD显示模块数据总线,P1.3~P1.5分别连接显示模块的RS、RW和E控制线,实现A/D转换结果的实时显示,调节RV1改变ADC0832的CH0输入电压,通过LCD显示模块观察A/D转换测量结果。

4 虚拟仿真软件在实验教学中的应用

虚拟仿真平台可应用到实验教学中。具体方法为:实验课前,学生先阅读和理解实验内容与要求,然后参考实验讲义上的原理图,利用Proteus设计该实验的仿真电路,接着编写程序,并进行仿真调试。到实验课时,学生已经熟悉电路结构,软件也基本编写好,此时在实验板上进行实验就顺利得多,即使是基础比较差的学生,在老师的指导下,也有足够的时间完成实验。单片机实验项目与学时如表1所示。

表1 单片机实验项目与学时

5 结果分析

2020学年开始将Proteus虚拟仿真软件应用于单片机课程的教学,为观察课程教学改革的成效,我们将2019学年和2020学年教学班的卷面成绩、学生完成实验用时、提前完成实验的人数等数据进行统计分析,结果如表2~表5所示。

表2 2019学年教学班卷面成绩统计

表3 2020学年教学班卷面成绩统计

表4 学生完成实验平均用时统计

表5 学生提前完成实验人数统计

从统计结果看,与2019学年相比,2020学年教学班的卷面不及格人数减少1人,良好和优秀的人数增加6人,卷面平均分增加3.28分,学生完成各个实验平均用时明显减少,提前完成实验的人数明显增加。

实践表明,通过将Proteus虚拟仿真软件应用于“微机原理与单片机应用”的理论教学和实验教学环节,能有效的解决理论与实验相脱节的问题,避免因实验学时较少而造成学生动手能力不足问题,提高了学生的学习兴趣,教学效果得到明显改善。

猜你喜欢

数码管中断实验课
基于51单片机的分数计数器设计
微课教学设计之“数码管动态显示”
密林深处——“从写生到创作”的水墨实验课
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
Arduino编程
有趣的实验
MC9S08FL16单片机数码管静态显示分析
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)