单片机虚拟实验室的建立
扫描二维码
随时随地手机看文章
摘要:单片机应用技术所涉及到的实验实践环节比较多,而且硬件投入比较大。在具体的工程实践中,如果因为方案有误而进行相应的开发设计,会浪费较多的时间和经费。本文以学校单片机课程的实验教学为背景,较为全面地阐述采用仿真实验的方法。
关键词:proteus软件 单片机 仿真 虚拟实验室
引 言
单片机课程是机电、自动化等专业的一门重要课程,可以充分体现学生利用已学知识解决实际工程问题的能力。由于该学科是多基础、多理论的实践性学科,在教学过程中必须软件硬件结合,因此有学生感到难学,教师感到难教这样的尴尬。
现代科技的发展,促进了计算机技术在软件和硬件上的飞速发展,利用计算机软件的仿真技术,可以充分地仿真诸如电路的工作等实际的工程问题。作者无意中找到一款软件Proteus,解决了许多的问题,而单片机虚拟实验室也是以该软件为核心建立起来的。
1 Proteus介绍
Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
(1)proteus的工作过程
运行proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Define code generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。
(2)Proteus软件所提供的元件资源
Proteus 软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等,具体情况如表1所列。
(3)Proteus软件所提供的仪表资源
对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。在Proteus软件包中,不存在同类仪表使用数量的问题,其提供的仪表如表2所列。
除了表2所列的测试仪表外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。图形显示功能如表3所列。
(4)Proteus软件所提供的调试手段
Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号,如表4所列。
对于单片机硬件电路和软件的调试,Proteus 提供了两种方法:一种是系统总体执行效果,一种是对软件的分步调试以看具体的执行情况。
对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pause animation菜单项或pause键暂停系统的运行;或用debug菜单下的stop animation 菜单项或shift-break组合键停止系统的运行。其运行方式也可以选择工具栏中的相应工具进行。
对于软件的分步调试,应先执行debug菜单下的start/restart debugging 菜单项命令,此时可以选择step over 、step into 和 step out命令执行程序(可以用快捷键F10、F11和ctrl+F11),执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start / restart debuging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。
2 实验的组织
在单片机的理论教学和实验中,所涉及到的内容包括了四方面,即单片机系统资源、软件技术、硬件接口电路、软件和硬件结合的应用系统。因此教师在进行教学时,应该充分考虑课程的特点并作合理的模块划分,在每次实验课程前作适当的准备工作,以使教学任务能集中和突出。以下例子中所涉及到的单片机均为51系列。
(1)系统资源的实验教学
任何一种单片机均提供了一定的系统资源。对于51系列单片机来讲,其所提供的资源是以寄存器和存储器的方式体现出来的。对于寄存器内容的查看,可以采用多种可以模拟仿真51单片机的软件来实现。对于Proteus 软件来讲,可以执行在debug菜单下registers菜单项命令打开相应的窗口。对于系统内部存储器的查看,同样是执行debug 菜单下的 internal memory 菜单项命令打开相应的窗口。
(2)软件技术
在软件技术的实验中所涉及到的内容主要包括对语言中具体语句的执行效果验证、算法的具体实现、程序中语法错误的检查和逻辑错误的验证等内容。对于纯软件的实验教学内容,教师在实验设置时应充分考虑到学生的能力并作好具体的准备工作,以达到预期的教学目的。
例如,对于两个16位二进制数的乘法运算R4R5×R6R7=R3R4R5R6R7的汇编语言实现。为了较为直观地验证程序执行的正确性,教师在之前应该设计一个硬件电路,能完成数据的输入(带显示)和结果的输出(显示),并设计主程序、bcd码到二进制的转换、二进制码到bcd码的转换、bcd码到显示码的转换、显示等程序的设计,学生只在实验中进行乘法运算的算法设计并作为子程序加入系统中即可。
(3)硬件接口电路
单片机的接口电路所涉及到的知识涵盖了电子电路设计的相关领域,也涉及到单片机应用系统具体的工作需要。接口电路部分涉及到线路的连接、元器件的选择、工作方式的设置、电路工作的稳定性和可靠性、电路的空间需求等等许多方面的知识和内容;但就学生实验来讲,所涉及到的并不需要这么全面。作为Proteus 仿真软件,其仿真电路时所模拟的元件真实工作情况,和单片机应用系统的实际工作环境还是有一定的差别。因此只能根据教学的需要,让学生自行设计电路并设置其工作方式。其实验可以通过两种方式组织实施,一是根据具体的要求,让学生设计接口电路并编写相应的程序;一是根据程序的要求,设计单片机接口电路。
例如,对于键盘输入和显示(数码管)接口电路的设计,可以采用比较多的方法来实现。选择何种方法,与键盘中键的数量和数码管的个数以及显示的方式等都有关系。选择一种采用几种方法都能实现的键盘键数(如12个)和显示位数(如4位或4位半),提出具体的诸如必须预留的口地址、成本控制等要求,让学生自行设计接口电路。当然,对于如A/D转换等接口电路的设计,教师应该在事先设计出单片机电路的其它部分,并以模块的方式进行处理,给学生提供电路的接口信号。
(4)软件和硬件结合的应用系统
软件和硬件的结合,就是一个单片机的应用系统了。这一步的实验可以在课程设计中以课题的方式提出来处理,也可以将其分解成不同的接口部分在接口电路的多次实验中分次完成。在这一阶段,硬件电路的设计已经不是最为关键的了,而软件系统的设计、调试和运行才是实验的主要内容。因此可以以建议性的意见给出具体的硬件电路,并提出该电路所需要完成的具体工作,由学生进行软件的设计和调试。
(5)观摩实验
学生自行设计的硬件系统和软件,一般存在着某方面的不足,当给出了相应的实验设计任务后,学生就算能顺利的完成,但其中所涉及到的有些方式方法并不能在自己的设计中充分领悟。Protues系统提供了相应的一些范例,比如单片机系统中的计算器示例,当教师讲述了其中涉及到的所有(子)程序的功能并将其合理地组织在一起的时候,结合该系统的硬件,将对学生进行程序的设计和系统硬件的设计方法,产生比较大的影响。
3 用Proteus软件虚拟单片机实验的优点
采用Proteus 仿真软件进行虚拟单片机实验,具有比较明显的优势,如涉及到的实验实习内容全面、硬件投入少、学生可自行实验、实验过程中损耗小、与工程实践最为接近等。当然其存在的缺点也是有的。
(1)内容全面
内容全面包括其能实验的内容包括软件部分的汇编、C51等语言的调试过程,也包括硬件接口电路中的大部分类型。对同一类功能的接口电路,可以采用不同的硬件来搭建完成,因此采用Protues仿真软件进行实验教学,克服了用单片机实验教学板教学中硬件电路固定、学生不能更改、实验内容固定等方面的局限性,可以扩展学生的思路和提高学生的学习兴趣。
(2)硬件投入少,经济优势明显
对于传统的采用单片机实验教学板的教学实验,由于硬件电路的固定,也就将单片机的CPU和具体的接口电路固定了下来。在单片机的实际教学中,如果要涉及到51系列,也要涉及到PIC16系列,那么为了教学必然要投入两种单片机的实验教学板;同时在教学过程中所涉及到的接口电路,也需要有较大的投入和储备,以利于实验的进行和在实验过程中元件损毁后的更换。Protues所提供的元件库中,大部分可以直接用于接口电路的搭建,同时该软件所提供的仪表,不管在质量还是数量上,都是可靠和经济的。如果在实验教学中投入这样的真实的仪器仪表,仅仪表的维护来讲,其工作量也是比较大的。因此采用软件的方式进行教学,其经济优势是比较明显的。
(3)学生可自行实验,锻炼解决实际工程问题的能力
实验能力和实验设计能力的培养,是工科学生解决实际工程问题能力中较为重要的。传统的实验教学中,忽视了学生实验能力的培养,对于实验设计能力的培养,则很少涉及到。因此学生学习了理论,要想将其应用到实际的工程实践中,其难度是比较大的。还有,学生毕业后想对单片机控制技术或智能仪表等有较深的研究和学习,如果采用传统的实验教学方法,则学生需要购置的设备比较多,增加了他们学习和研究的投入。采用仿真软件后,学习的投入变得比较的小,而实际工程问题的研究,也可以先在软件环境中模拟通过,再进行硬件的投入,这样处理,不仅省时省力,也可以节省因方案不正确所造成的硬件投入的浪费。
(4)实验过程中损耗小,基本没有元器件的损耗问题
在传统的实验教学过程中,都涉及到因操作不当而造成的元器件和仪器仪表的损毁,也涉及到仪器仪表等工作时所造成的能源消耗。采用Protues仿真软件进行的实验教学,则不存在上述的问题,其在实验的过程中是比较安全的。
(5)与工程实践最为接近,可以了解实际问题的解决过程
在进行课程设计或进行大实验的时候,可以具体的在Protues中做一个工程项目,并将其最后移植到一个具体的硬件电路中,让学生了解将仿真软件和具体的工程实践如何结合起来,利于学生对工程实践过程的了解和学习。
(6)大量的范例,可供学生参考处理
在系统的设计时,存在对已有资源的借鉴和引用处理,而该仿真系统所提供的较多的比较完善的系统设计方法和设计范例,可供学生参考和借鉴。同时也可以在原设计上进行修改处理。
(7)协作能力的培养和锻炼
一个比较大的工程设计项目,是由一个开发小组协作完成的。了解和把握别人的设计意图和思维模式,是团结协作的基础。在Proteus中进行仿真实验时,所涉及到的内容并不全是学生独立设计完成的,因此对于锻炼学生的团结协作意识,是有好处的。
4 一个具体的课程实践
该实验为对8051单片机外围电路进行写数据仿真的电路。课程要求学生设计电路并提供仿真和验证的方法。
(1)电 路
为了简化电路,将单片机的时钟电路直接用CLOCK信号处理;对于数据的写入,采用逻辑分析的方法进行,电路如图1所示。
(2)验证方法
逻辑仿真验证程序执行的正确性和电路工作的情况,可通过时序图的方式进行验证,如图2所示。
(3)程 序
对1234H单元写入数据AAH,循环进行。
ORG 0
loop1: MOV DPTR,#1234H
MOV A,#0AAH
MOVX @DPTR,A
MOVX A,@DPTR
JMP LOOP1
END
结 语
Proteus 不仅可以作为学校单片机(电子等)实验的模拟仿真,也可以作为个人工作室的仿真实验。作为电子技术或控制类相关专业的学生和工程技术人员,在学习了该软件后,可以充分地利用它所提供的资源,帮助自己提高工程应用能力。
在教学中利用该软件,除了能教单片机的具体课程内容外,还可以教会学生应用该工具的能力,为今后的工作打下基础。