APP下载

Proteus软件在单片机教学中的应用

2022-03-30赵继忠

电大理工 2022年4期
关键词:数码管原理图指令

赵继忠

(辽宁开放大学,辽宁沈阳 110034)

0 引言

单片机原理是计算机类、自动化类等专业学生必修的一门实践性很强的技术基础课程[1]。本课程涉及硬件设计和软件编程两个层面的综合知识,对于普通在校学生而言,该课程接受起来有一定难度。在理论教学中,教师介绍单片机原理时,即使配上再好的结构图也很难说清;在实践教学中,一些学生往往对单片机实验电路板的认知上有困难,主要原因是单片机实验电路板的电路结构复杂,难以清晰地表达电路结构。鉴于此,本文展开基于Proteus软件的单片机理论和实践教学一体化的研究,以提高教师对本课程的教学水平和学生对本专业知识的掌握程度。

1 Proteus软件与单片机原理的结合优势

Proteus软件是一款极好的单片机应用开发工具软件,其特有的虚拟仿真技术很好地解决了单片机及其外围电路的设计和仿真问题,可以在没有单片机实际硬件的条件下,利用PC以虚拟仿真方式实现单片机系统的软、硬件同步仿真调试,使单片机应用系统设计变得简单容易。

Proteus软件与单片机原理这门课程结合优势,主要体现在以下三个方面:

第一,使用Proteus进行单片机仿真,对于学生来说具有较强的直观性。通过Proteus的单片机仿真实验,学生可以得到比在电路板上更直观的电路中各元件连接关系的视觉感受。例如单片机与4位七段数码管的实验项目,图1(a)是单片机与七段数码管连接的PCB,图1(b)是利用Proteus绘制的仿真电路图。从视觉上看,图1(b)比图1(a)简单很多,电路中各元件连接更直观,更能清晰表达出各元件直观的关系。学生可以从图1(b)中清楚地看出单片机与七段数码管的连接方式,对程序编制,程序运行和单片机运行的理解都有非常重要的帮助。

图1 单片机与七段数码管连接电路图

第二,利用Proteus进行单片机教学和学习,对于教师和学生来说具有适度的渐进性。利用Proteus可以从极为简单的单片机控制电路开始,逐渐增加单片机电路的复杂度。电路图纸渐进地从简单到复杂,非常适配教师由简到难的授课逻辑,也符合学生的学习习惯。

第三,利用Proteus 可以更加便捷设计各种电路,对于教师和学生而言其具有很好的灵活性。尽管现有的单片机实验电路板已经非常丰富,但是实验步骤和内容受到固定的硬件电路结构限制,教师必须按照硬件电路板不可更改的电路结构进行知识点讲授,同时学生很难按照自己的想法,随意设计硬件结构和编制相应的控制程序。利用Proteus软件进行学习,学生可以根据自己对知识的理解和兴趣,创新性地选择和设计实验内容,培养学生的创新意识。

由于电子电路本身具有一定的抽象性,特别是电路实验箱这种以PCB为载体的元件连接方式,元件与元件的连接不能直观地呈现在学生面前。对于初学者而言,如图1(a)PCB的连接方式没有图1(b)原理图连接方式看起来直观。因此,这种将理论课堂与实验课堂搬到一起的理实一体化课程教学方式,对于电子类课程,特别是单片机这门课程而言,意义不大。“即学即练”才是本门课程教学改革的关键。总之,作为一个开放性的仿真实验平台,利用其特有功能,完全可以建立一个设备齐全的综合性仿真实验室。

2 基于Proteus的单片机课程理论教学

目前,单片机课程教学都是理论教学和实践教学分开进行,理论课程中要介绍单片机硬件基本结构、指令系统、汇编语言程序设计、存储器扩展、中断与定时器、I/O扩展、串行数据通信、模数/数模转换等;实践教学就是通过实际电路板完成对理论学习知识的验证和扩展。教师若能将难于理解的理论知识点配合形象化的仿真设计,对于学生来说,理论知识点的理解就能更易于接受。

下面以理论教学中指令系统讲授为例,说明如何利用Proteus开展单片机课程的相关理论教学。指令系统是学习单片机的基础,掌握指令系统对于了解单片机内部运行情况十分必要,从多年的教学经历可以看到学生理解和掌握指令系统比较困难。枯燥的指令系统往往令学生感到十分困惑,也给理解单片机结构和运行机制造成了不小的障碍。关于这两个指令的理论教学,教师通常进行如下陈述性讲授:MOV指令是数据传送指令,也是最基本的编程指令,用于将一个数据从源地址传送到目标地址。其特点是不破坏源地址单元的内容。ACALL指令是短调用指令,是子程序调用指令的一种,所调用的子程序首地址必须在ACALL指令后第一字节开始的2 KB范围内的程序储存器中。通常,在写几行用到该指令的程序,带领同学读懂程序,以帮助对指令的理解和掌握。从实践经验看出,若通过如上教学方法,学生并不能很好掌握指令的实际用途和具体使用方法,更无法灵活使用。在此通过对MOV、ACALL两个指令的举例介绍,阐述基于Proteus的单片机理论教学改革方法。

若采用实例仿真,设计一个简单的案例,将指令融入案例中,学生对指令的理解会更加深刻,对自己使用指令有很大帮助。例如,教师利用单片机控制一位LED的亮/灭,实现以上两个指令的讲解。电路图如图2所示。

图2 单片机控制LED亮/灭

首先,利用MOV指令,可以将立即数00000000传送到单片机端口P1,使P1口全灭,然后,利用ACALL指令调用延时程序(DE⁃LAY),控制LED灭一段时间;最后利用MOV指令,将立即数00000001传送到单片机端口P1,使P1.0口亮。LED亮/灭时间分别为100 ms。程序如下:

通过以上例子所产生的LED亮/灭100 ms的交替效果,可以很好地解释MOV指令是如何将数据传送到P1锁存器的,也很好解释ACALL是如何调用延时子程序进行亮灭交替闪烁的。通过在Proteus软件的仿真实验作为配合,可以让学生相对容易理解汇编指令。

3 利用Proteus开展的实践教学举例

单片机课程动手操作非常重要,因此,实践教学也就显得尤为重要。实践教学一般利用单片机硬件实验箱来完成,但存在一些不足。首先,实验箱所布置好的硬件电路,是为了完成一些特定规范实验而设置的,实验个数有限,实验内容固定,实验灵活性差。虽然有些实验箱预留了外部接口,可以做规范实验之外的项目,但是需要外部硬件电路作为支撑,操作复杂度大,对于初学者来说不可实现。其次,由于很难察觉,实验箱某一电路或者芯片的损坏,将会造成实验结果的不准确,对学习单片机十分不利。同时,实验箱价格比价贵,配置一个50人的标准单片机实验室,电脑和单片机实验箱价格大概30万元,且面临设备更新等困扰。设备资源不能在学生课余时间得到充分利用,即使开放实验室,也不能满足大量学生的需求。基于此,建立仿真单片机环境,开展实验教学尤为必要[2-3]。

3.1 课堂实践教学案例

基于Proteus软件的实践要充分利用其灵活性、适度的渐进性等特点,设计实践教学案例。第一,实验指导书只给出实验目的、内容、要求和硬件原理框图,不给出硬件电路图。学生要利用Proteus软件独立完成硬件电路图的绘制,并根据硬件电路图设计情况,编写软件程序,经过调试,完成仿真实验。第二,仿真实验成功后,再根据实验箱的硬件连线情况,调整程序,对真实系统进行调试、分析实验结果。

本文通过以4×4矩阵键盘电路为例,说明基于Proteus软件的实践教学的教学过程。

3.1.1 实验要求及步骤

实验目的。掌握中断使用,特别是分析外部中断与内部中断不同之处;加深理解8051单片机设计步骤和方法。

实验内容。4×4矩阵键盘共16个按键作为输入,每一个按键代表一个数值,例如当按下1号按键时,二位七段数码管显示01,依次类推,按下16号按键,二位七段数码管显示16。硬件电路框图如图3所示。

图3 矩阵(4×4)键盘电路

实验步骤。实验步骤如图4所示,首先要利用Proteus绘制电路原理图,其次根据电路原理图完成程序设计,调试和仿真,最后当仿真成功后,结合实验箱电路情况对程序进行修改并观察实际硬件电路的运行实验结果。

图4 实验步骤

3.1.2 硬件电路设计

硬件电路的设计以实验指导书中硬件结构框图为参考来完成。硬件电路原理图如图5所示。

图5 键盘矩阵电路原理图

本电路原理图在单片机最小系统基础上,连接了4×4矩阵键盘、七段数码管译码驱动芯片7447和2位七段数码管。单片机最小系统是设计基础,学生独立设计仿真过程,就是不断熟悉理论知识和运用理论知识的过程。学生必须分析矩阵键盘和七段数码管译码驱动芯片7447如何连接到单片机的I/O上,七段数码管译码驱动芯片7447如何和2位七段数码管连接等问题,才能实现实验目的。

电路原理图连接是根据实验指导书提供的电路原理图框图绘制的,因此每个学生绘制的电路原理图会根据个人设计习惯和对电路原理图框图的理解而不同。这样设计完成的电路原理图才会更能体现学生对知识的掌握程度,便于教师及时掌握学生学习情况。

3.1.3 软件编程与调试

此实验编程主要考虑的是矩阵键盘信号扫描、外部中断初始化以及2位七段数码管显示的控制。从电路原理图可以看出,4×4矩阵键盘的8个引脚分别与P2.0-P2.7连接作为信号输入,P0.0-P0.3等4个引脚作为输出端与七段数码管译码驱动芯片7447的译码输入端ABCD连接,P3.0控制第一个数码管的亮/灭,P3.1控制第二个数码管的亮/灭。程序设计的关键点就是单片机要通过其P2.0-P2.7输入端有效信号,准确地判断有效信号来源于16个按键的哪一个,这样才能够通过7447译码驱动芯片驱动七段数码管的正确显示。

程序设计如下:

程序编写完毕后,用keil软件对程序进行编译。编译成功后,生成key.hex文件。将key.hex文件加载到Proteus所绘制的电路原理图中单片机中,最后运行仿真。例如按下按键1,那么七段数码管显示01,如图6所示。

图6 按下按键1,七段数码管显示01

仿真实验完毕后,学生基本掌握了本电路设计原理和实现方法。为了在实际电路中再次得到验证,观察实验箱中相同或者类似实验,根据要求,修改部分程序代码(若实际硬件电路连线发生变化就要修改程序代码),再次对软硬件进行调试,并与虚拟仿真结果进行对比和验证。最后撰写实验报告,完成实验,达到学习的目的[4-6]。

学生根据自己绘制的电路原理图来编制软件程序就会很好地理解基于硬件平台的软件编程的要求和特点。

3.2 课后实践学习

Proteus仿真软件的好处是可以仅有一台运行本软件的电脑,就能完成单片机的学习,不受实验室限制。学生可以根据自己所想,调整硬件电路结构,修改程序代码,观察变化,不断加深单片机这门实践性很强的课程学习。利用Proteus进行仿真实验,可以提升学生的实验兴趣和创新思维能力[7]。

4 结束语

电子类专业由于其非主观等特殊性,教学创新是十分必要的。基于Proteus软件在单片机原理与接口技术课程教学的应用有利于教师深入浅出的课堂教学和学生循序渐进地学习。对于一门实践性强的课程,利用虚拟仿真软件有效地解决了学习空间、时间的限制。虚拟仿真与实际硬件操作的有机结合,对学生创新能力提升起到了十分积极有效的作用。

猜你喜欢

数码管原理图指令
微课教学设计之“数码管动态显示”
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
ARINC661显控指令快速验证方法
杀毒软件中指令虚拟机的脆弱性分析
中断与跳转操作对指令串的影响