基于Proteus 和Keil 的单片机课程教学模式改革
2014-03-17姚存治
姚存治
(郑州铁路职业技术学院,河南 郑州 450052)
单片机应用技术是各工科院校电类专业的一门很重要的专业基础课,主要内容包括单片机存储器结构、片内资源(如中断系统)、定时计数器、串行口、汇编语言、C51 编程语言以及单片机接口技术,是一门理论性和实践性都很强的课程。
传统的单片机教学中,理论教学和实验教学一般是在不同的场地进行:在教室进行理论教学,顶多是借助于多媒体,辅以一定的动画教学;在实验室进行实验,一般是用现成的实验箱,只需进行少量的硬件连线,输入程序即可进行验证性实验。长期以来,这样的理论教学方法单一,抽象枯燥难懂;实验教学可操作性差,课程设计缺乏创新,加之学生基础薄弱,导致教学效果欠佳。单片机课程枯燥深奥,致使很多学生由最初对专业的满腔热情变得失去兴趣,考试不及格、继而荒废学业。
针对单片机课程的特点以及在教学中发现的难点,笔者逐渐摸索出一套行之有效的方法:在教室上课时,使用多媒体投影,进行理论讲授时,比较抽象的地方用自己做的FLASH 动画帮助学生理解,需要看程序运行后硬件实验现象的利用Proteus 软件进行原理图设计,利用Keil 软件进行汇编程序或C51程序的编写和编译,然后将编译后的HEX 文件和原理图中的单片机关联起来,进行硬件和软件的联合调试,可直观形象地看到和实际试验设备一样的结果。单片机是一门实践性非常强的课程,里面涉及到的硬件和软件综合的例子非常多,只在课堂上进行理论讲授学生是很难理解接受的。采用这个模式,方便灵活,随时可以画出需要的硬件电路,随时可以编写出相应的程序,然后联合调试看运行结果。这就彻底改变了传统的单片机教学中理论教学和实验实训教学场地分开的模式。经过几个学期的尝试,取得了非常好的教学效果。
一、Proteus 和Keil 软件简介
Proteus 软件是英国Labcenter electronics 公司出版的EDA 工具软件(仿真软件)。它不仅具有其它EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和MSP430 等,2010 年又增加了Cortex 和DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil 和MPLAB 等多种编译器。
Keil 公司是一家业界领先的微控制器(MCU)软件开发工具的独立供应商。Keil 公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH 和美国德克萨斯的Keil Software Inc。Keil C51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。在这个集成环境中,用户可使用C 语言或汇编语言编程。
二、Proteus 和Keil 在课堂教学中的应用
笔者将EDA 软件Proteus 仿真技术引入教学,使用Proteus 软件中的ISIS 画出单片机的硬件系统原理图,通过多媒体直观地展示电路的仿真,形象逼真地讲解单片机各应用系统的搭建;使用Keil 软件编写C 语言或汇编语言程序并编译输出HEX 文件,让原理图中的单片机和HEX 文件关联,可以在ISIS 中进行联合仿真调试,控制单片机应用系统工作。学生可以清晰直观地观察到程序运行后的现象、单片机的管脚输出状态及各种指示灯情形,从感性上加深对单片机应用系统的理解,直观地掌握教学内容,提高教学效果与效率。
下面以笔者讲授LED8 段数码管接口技术为例来展现这崭新的课堂授课模式。
首先,借助自己制作的FLASH 课件,进行LED显示器结构、工作原理、静态显示和动态显示的讲述。图1 是课件中的一个页面,讲述的是动态显示的结构和分时显示原理。
图1 LED 显示器的动态扫描显示
接下来,在Proteus 中画出一个具体例子:带年、月、日、时、分、秒的16 位LED 电子钟。ISIS 的一个显著特点是可以虚拟模型仿真,里面有大量的非常逼真的虚拟模型,具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、动态仿真、IIC 调试器、SPI 调试器、键盘和LED、LCD 系统仿真的功能;提供了多种虚拟仪器,如示波器、逻辑分析仪、信号发生器等;多种显示设备,如模拟仪表、数字仪表、串口终端、噪声与失真信号显示器等;还有各种调试信号,直流、交流、脉冲及各种变化信号等,极大地方便了仿真调试。
图2 16 位LED 显示器硬件原理图
然后,在Keil 中进行汇编程序的设计。Keil 中可非常方便地进行C51 语言和汇编语言程序的编写和编译。如图3 所示。
图3 Keil 输入程序界面
对应的部分程序如下:
将程序编译后得到HEX 文件,在ISIS 中将单片机和此文件关联。如图4 所示。
图4 ISIS 中单片机关联HEX 文件界面
最后,点击Debug 工具条上的Play 按钮,可非常直观地看到程序运行后LED 的显示情况。如图5 所示。能看到单片机管脚电平的实时变化情况。
图5 程序运行后LED 的显示界面
在调试过程若不满足预定的功能,则需要进行修改,硬件方面的修改可以直接在Proteus 中进行,软件问题则需要返回到Keil 中进行修改,再次进行编译调试,然后重新导入、运行观察现象,如此反复,直到满足控制要求为止。在这个单片机应用系统开发过程中,因为硬件电路是使用Proteus 仿真环境搭建的,可以随意修改,这比以往的实际硬件连接改变接线、更换元器件容易得多,且不需要成本,并且可以在教室里进行,这是使用Proteus 进行单片机教学的最大优势。
三、结束语
使用Proteus 软件进行原理图设计,用Keil 软件进行C51 程序或汇编程序的编写和编译,在ISIS中将原理图中的单片机和编译后的HEX 文件关联起来,进行硬件和软件的联合调试,使学生直观形象地看到一个个应用系统的运行结果,很好地解决了单片机教学中理论教学和实验实训教学场地分开的弊端,方便灵活,只要有投影仪的教室都可实现这样的教学模式。实践证明,此教学模式极大地改变了学生对抽象复杂的单片机理论知识和应用系统的理解程度,取得了非常好的教学效果。
[1]侯秀丽.基于Proteus 仿真的高职单片机应用技术课程教学改革[J].中国科技纵横,2011(21):292-293.
[2]许超,吴新杰,张丹.基于Proteus 和Keil 的单片机课程教学改革[J].辽宁大学学报(自然科学版),2011,38(1):27-29.
[3]殷士勇.keil 和proteus 在单片机实验教学中的应用[J].重庆工商大学学报(自然科学版),2009,26(6):567-570.
[4]万胜前.proteus 在单片机实验教学中的应用[J].鄂州大学学报,2008,15(2):15-17.
[5]伍冯洁,谢斌.基于proteus 与keil 的单片机实验教学改革[J].实验室研究与探索,2009,28(7):125-127.