基于Proteus与Keil C的单片机教学实践探索

2015-12-08 12:19李传江冯英鹏张自强,王爱华
电脑知识与技术 2015年25期

李传江++冯英鹏++张自强,王爱华++周鸣++茅红伟++王义庆

摘要:针对单片机教学中存在的问题及弊端,提出了基于Proteus与Keil C的单片机教学实践探索。将单片机硬件电路设计与软件程序编写结合,通过实例仿真操作演示,教学效果良好,非常适合单片机课程的教学。

关键词:单片机教学;Proteus;Keil C

中图分类号:G64 文献标识码:A 文章编号:1009-3044(2015)25-0073-02

目前,单片机技术是高校机电类、电子信息类、自动化类和计算机类等专业开设的一门实践性很强、应用面很广的课程。随着科学技术的发展,单片机技术在智能化电子产品、智能仪器仪表等领域的频繁使用,社会对单片机系统开发人才的需求持续增长。对此,高校对单片机课程教学的要求也越来越高。学生在学习单片机课程的过程中,不仅要熟练掌握单片机技术基础,提高整体专业素养,更要提高动手能力,获得实用的专业技能以增强就业竞争力。但是单片机技术包含的知识面广、内容逻辑性强、难度大、抽象等特点,存在“教师讲授难,学生理解难”的现象,致使单片机教学改革成为高校亟待解决的一项教研课题[1]。本文在研究单片机教学普遍存在的问题的基础上,提出了基于Proteus与Keil C的单片机教学实践探索。

1 单片机教学存在的问题及新方法探索

传统的单片机教学重在讲授单片机的内部结构及其理论知识,没有进行单片机系统的设计与仿真,或者说没能进行单片机相关的应用实践,无法满足培养单片机应用型技术人才的需要。在单片机课程的学习过程中,学生根据课程的安排到实验室使用实验箱等设备进行相关实验,由于学生对单片机基本知识的掌握不够,加上实验内容固定,在有限的时间内,学生多数做的是验证性的实验。实验箱是已经设计好的单片机系统电路与外接电路,学生将课堂上讲授的程序编译好,经下载器下载到单片机系统的CPU中,实验现象和要求的一致,即验证了某种功能。在这种情况下,对电路不了解的学生而言,实验算是完成了,甚至是对电路熟练掌握的学生而言,省略了电路设计思考的工作,本来在学习单片机过程中存在或多或少的问题,但基于实验现象的正确,学生在匆匆做完实验就离开实验室,没能深入分析实际问题,那么单片机实验课就失去了意义。

高校单片机教学目的在于通过课堂讲授单片机的理论知识、程序编写与实验室里进行相关实验结合,达到引发学生学习单片机的兴趣和积极性。借助实验室已有的设备,学生针对自身所学的单片机知识,在教师的引导下,利用硬件与软件独立完成各项目任务。在这过程中,学生要面对实际的设计问题,认真思考,亲自动手,锻炼解决实际工程问题的能力,提高社会就业的竞争力。

根据单片机教学的实践,本文提出了基于Proteus与Keil C的单片机教学实践探索。该方法通过课堂上讲授单片机理论知识,创造鲜活的问题情境,先使用Proteus工具设计单片机电路,再用Keil C软件编程,最后将Proteus与Keil相结合进行仿真及结果演示,加深学生对单片机教学的感性认识,引发学生的学习积极性,发挥其主观能动性。由于这两个仿真软件装在PC机里,就可以进行单片机相关电路设计,灵活性强,大大缩减了硬件成本,便于开放式教学。这种实践性教学方法,学生能够主观地去思考,寻求有效的解决方法,完成设计任务,其教学效果优于单纯讲授的传统教学法。

2 Proteus与Keil软件介绍

Proteus是英国Labcenter公司开发的电路及单片机系统设计与仿真软件,不仅可以实现数字电路、模拟电路的仿真,而且还具有微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能。Proteus是目前唯一能对多种微处理器进行实时仿真、调试与测试的EDA工具,真正实现了从概念到产品的完整设计。其处理器模型支持8051、PIC、AVR、ARM、MSP430、Cortex和DSP系列等,同时也支持IAR、Keil和MPLAB等编译器,非常适合单片机课堂教学与实验教学。

Keil是德国Keil Software公司出品的单片机集成开发系统平台,支持51单片机的所有兼容机,提供了包括C编译器、宏汇编、连接器、库管理及一个功能强大的仿真调试器在内的完整开发方案,并通过一个开发集成环境([μ] Vision3)将这些组合在一起。该软件不需要连接单片机硬件,可直接进行纯软件仿真,具有跟踪、调试、设置断点等工程,能生成在线仿真和烧录到芯片所需的Hex文件。

3 基于Proteus和Keil C的应用系统开发过程

针对具体的单片机系统,这里使用Proteus7.5的ISIS Professional绘制原理图,Keil [μ] Vision3建立项目工程,通过如下简单的设置,即可联合调试单片机仿真:

(1)Proteus的设置。运行Proteus的ISIS,打开电路原理图。

(2)Keil设置。建立Keil工程后,单击“Project菜单/Options for Target ‘Target 1”选项或者点击工具栏的“option for ta rget”,弹出窗口,点击“Output”,在“Create HEX fi…”前打钩,对话框中保持“HEX-80”选项。

(3)Keil和Proteus联调。调试时,只能打开一个Proteus电路原理图。调试步骤为首先点击Keil软件中Debug/Start/Stop Debug session(此项为调试开关),连接成功以后,电路图处于暂停状态,此时可以在Keil中调试程序了。Keil具有跟踪型单步(Step)、通过型单步(Step over)、执行到光标处(Run to cursor line)、全速(Run)、暂停(Stop Running)等功能;同时还可以进行设置断点、观察变量的值(最简单的方法是在暂停状态下将光标移到变量处)等,执行到接口输出功能时,电路图都有相应的反应;Proteus中可以做硬件方面的模拟,如按按键、改变可调电阻的阻值等,Keil中会有反应的。按照项目要求,根据实验现象去修改源程序,直至调试成功为止。

(4)如要退出调试,按Keil的Debug/Start/Stop Debug session即可。

4 单片机实例仿真教学实践

该实践教学项目要求如下:

CPU选择AT89C51芯片,使用定时器T0的工作方式1,采用中断方式,在P2.7口输出周期为2ms的方波,用Proteus自带的虚拟示波器观察输出波形,晶振频率为12MHz。

根据项目要求,分析如下:

机器周期为12/12MHz=1[μ]s,因要求波形周期为2ms,这里定时时间选择为1ms,那么计数次数为1000次,计数初值为(65536-1000)。

按照要求使用Proteus7.5绘制的硬件电路如图1所示:

图1 单片机硬件电路图

根据实验分析,使用Keil [μ]Vision3建立工程,编写程序,软件流程图如图2所示。

图2 软件流程图

程序代码如下:

#include

sbit P2_7=P2^7;

timer0() interrupt 1{ //定时器T0中断函数

P2_7=!P2_7; //P2.7取反,输出周期2ms的方波

TH0=0xfc; //计数器初值装填

TL0=0x18;

}

void main(){

TMOD=0x01; //定时器T0工作方式1

TH0=0xfc; //计数器初值装填

TL0=0x18;

EA=1; //开全局中断

ET0=1; //开定时器T0中断

TR0=1; //启动定时器T0

while(1){}

}

按照上述的环境设置,通过Keil [μ]Vision3编译程序,选择Keil软件中Debug/Start/Stop Debug session,这样就实现了Proteus与Keil的联调。Proteus中显示如图3。

图3 示波器仿真结果

示波器A通道连接AT89C51的P2.7引脚,横轴为1ms/格,发光二极管D1闪烁间隔1ms,由图可见,A通道是周期为2ms的方波。

5 结论

本文将Proteus与Keil [μ]Vision3相结合,用于单片机仿真教学,解决了单片机教学中理论与实践脱节的问题。通过仿真教学演示,学生感知教学任务深刻,提高了学习积极性。这种实践性教学方法,不仅可以减少实验设备的硬件维护,更能让学生面对实际问题,主观地去思考,寻求解决问题的方法,有利于提高学生的创新能力,对单片机教学具有积极的影响。

参考文献:

[1]马华玲.Proteus+Keil在单片机教学中的应用[J]. 高等函授学报,2012(4):26-27.

[2]宋蕴璞,周文泳,徐鸣谦,等. 高校单片机教学实验设备与方式探讨[J]. 实验室研究与探索,2009,28(11):6-9.

[3]张子红,刘鑫. 基于Proteus的单片机课程教学改革[J]. 单片机与嵌入式系统应用,2010(11):15-18.

[4]李绍静. 基于案例驱动的单片机教学模式研究[J] . 信息技术,2013(4):59-62.

[5]张红霞,桂伟. 单片机教学中自主学习能力的培养策略研究与实践. 中国电力教育,2014(6):60-61.