当前位置:首页 > 读后感 > [单片机软件仿真在高校实验教学中的应用]单片机仿真软件proteus实验
 

[单片机软件仿真在高校实验教学中的应用]单片机仿真软件proteus实验

发布时间:2019-07-20 03:51:24 影响了:

  摘 要:对软件仿真在本科单片机实验教学中的应用做了探讨,为在现有实验教学资源的条件下迅速提高教学质量提供了一种新的思路。  关键词:单片机 软件仿真 中断  中图分类号:TP38 文献标识码:A 文章编号:1672-3791(2012)06(c)-0182-03
  单片机,又称单片微控制器,是将计算机系统集成到一个芯片上的电子系统,应用范围十分广泛。目前,各高校电子信息和自动化等专业均开设了单片机课程,注重对学生进行单片机知识的普及和单片机使用技能的培养[1]。
  单片机是一门实践性很强的课程,从某种意义上讲,学生上机体验丰富与否,将直接影响教学效果。然而,受到实验课时和实验资源的限制,仅凭课堂有限的学时是无法大幅度提升学生的单片机应用能力的,他们不得不在课下缺少单片机资源的条件下进行学习。因此,使用单片机的软件仿真环境,也成为了他们的必备技能之一。除了满足脱机环境下的学习需求之外,软件仿真在控制程序的精确耗时方面有着独特的优势。所以,注意在单片机实验教学中培养学生应用软件仿真分析问题的能力是十分必要的[2]。
  1 单片机软件仿真在高校教学中的应用
  1.1 单片机软件仿真环境
  单片机软件仿真是指在没有或尚未连接单片机的情况下,采用上位PC机软件模拟单片机运行状态的辅助开发手段。本文以天津科技大学PIC单片机授课所使用的microchip公司18F4520单片机为研究对象,具体介绍软件仿真在高校单片机教学中的应用。
  1.2 定时器中断程序设计的代表性
  众所周知,中断是单片机教学的重点和难点,这是因为它要涉及程序的暂停、中断的开启、数据的暂存、中断的终止、数据的恢复和主程序的执行等内容,涉及知识点多,学生理解起来较为抽象,所以一般的短时实验教学效果并不理想,需要学生在课下通过软件仿真来慢慢消化理解。教学中常用的中断有两种:一种是如由诸如按键按下等外部事件引发的中断;另一种则是由定时器所产生的中断。对于前者,由于有外部行为的发生作为标志,理解起来相对容易;对于后者,由于单片机的指令周期很短,通常都在微秒级别,人的生理器官无法体察如此短的时间变化,而中断的一系列过程又恰恰在这期间渐次发生。所以,如果能让这些微秒级别的程序流程变得直观可测,无疑将有助于提高教学效果[3]。
  软件仿真的应用,可以使上述要求得到满足,这也是本文选择定时器中断程序进行软件仿真的原因。
  1.3 应用软件仿真进行定时器中断程序的教学
  (1)教学要求。
  要求学生完成如下设计:使用外接10MHz时钟的18F4520的TMR0定时器,每隔100μs发出中断指令并进行往复取反操作,以产生一个5kHz的方波并驱动蜂鸣器发声。程序较为简单,其原理见图1。可以看出,程序的关键在于如何精确发出中断指令。
  学生的困惑集中在下面两个方面:(1)如何发出中断,中断的流程如何;(2)如何精确确定定时器的触发时间。这两点,均可通过软件仿真解决。
  (2)使用软件仿真帮助学生完成设计。
  18F4520单片机集成开发环境Mplab自带了Mplab SIM软件仿真器,可以用设置断点的方法,跟踪软件的流程和各数据项的数值变化。由于外部时钟的周期为0.1μs,因此18F4520的指令周期为0.4μs,要满足100μs的间隔,TMR0这个8位计时器应该每计时250个指令周期发出一条中断指令。
  大多数学生的编程思路如下:首先,为中断程序进行必要的环境标志位设置;之后,将TMR0计时器的初始值设为6。这是因为TMR0是8位计数器,每个指令周期,即0.4s计数一次,增加到255后的下一个指令会使TMR0溢出,产生中断指令。学生认为应给计数器赋初值6,使其在溢出时计数250并产生100μs延时。这种方法乍看起来没有纰漏,但却无法得到正确结果。这是因为学生没有明白中断的具体流程,不清楚除了计数的时间消耗之外,还有诸如中断跳转语句之类的其他隐性消耗,如不加以考虑,是不可能得出理想结果的。
  为了帮助学生熟悉程序流程,提示学生使用软件仿真器跟踪程序的主要步骤并观察TMR0中断计时器的低字节TMR0L(用来存放计数初值)的数值变化。在设置定时器初值的语句TMR0L=6处设置断点,让程序调试运行到此处,然后开始单步运行,很容易发现在语句执行到T0CONbits.TMR0ON=1处初值开始增加,说明计数器已经开始计数,当计数器增加到255(二进制11111111)时,TMR0L计数溢出,程序跳转并开始执行新的中断程序,说明中断指令是在溢出之后自动发出的,如图2所示,此过程不断往返重复。
  通过软件仿真,程序的流程、中断从哪里发出、计时从哪里开始等关键问题一目了然。而中断计时是否符合要求,也可以得到验证。在执行中断的语句部分设定断点,然后应用Mplab软件仿真器的stopwatch功能观察每个中断周期的具体耗时,可以发现结果是105.6ms,与设计要求的100ms存在较大差距,如图3所示。造成这一状况的原因是程序在跳转至中断语句的过程中还要产生额外延时5.6ms,即14个计数周期,若不使用软件仿真,这样的症结所在很难被察觉。排除此干扰的方法是在TMR0计时器的理论初始值6的基础上加14,将计数初值设为20。具体情形如图3所示。
  可以看到,使用软件仿真后,迅速执行的程序内部流程变得清晰可见,各步骤的耗时情况也变得量化可查,学习过程由抽象变得具体,理解难度也随之大大降低,因而学生在课上和课下的学习效率得到了很大的提升。
  2 结语
  单片机软件仿真技术特别适合初学单片机的本科生,结合课堂的讲授,他们可以在课下没有单片机的大量时间中利用该技术熟悉环境、编制和调试程序,巩固所学知识,无形中大大提高了课堂的教学效果和上机操作水平。
  当然,软件仿真只能作为一种辅助教学手段,无法代替实际操作环节。只有将软件仿真和课堂上机实践有机结合起来,才能最大限度地利用好现有的教学资源,达到最佳的实验教学效果[4]。
  参考文献
  [1] 姜宁,樊延虎.单片机教学改革与实践[J].延安大学学报(自然科学版),2011,30(1).
  [2] 乔吉新.浅谈单片机的教学方法与教学手段[J].中国校外教育,2011,4.
  [3] 胡坤.单片机的中断技术[J].辽宁师专学报,2003,5(2).
  [4] 孙书芳,张家海,陈海霞.单片机教学中学生应用能力的培养[J].中国电力教育,2011,35.

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3