Proteus与Keil软件在“C语言”教学过程中的应用
2014-11-12王艳艳张荣国罗晓锋
王艳艳 张荣国 罗晓锋
(1.内蒙古科技大学 矿业与煤炭学院,内蒙古 包头 014010;2.太原科技大学 计算机学院,山西 太原 030024)
随着计算机技术普遍应用于电气工程领域,对学生进行计算机技术基础教育势在必行,C语言集高级语言和低级语言的优点于一身,成为高校计算机技术基础教学的首选必修课。受课程设置及学时的影响,目前,“C语言”是我院电气类专业学生的必修课,其它专业的选修课,开设该课程旨在提高学生的逻辑思维能力和实际编程技能,为后继的《单片机与接口技术》课程及其他程序设计课程的学习和应用打下坚实基础。由于我院一直将煤炭、冶金作为主体专业,面向科研、生产一线,服务于自治区的支柱产业,为工矿企业培养大批急需的研究型及技术型人才,因此这门课程对我院的其它专业,如机电一体化、机械制造与自动化等具有同等意义。
“C语言”是电气自动化专业程序语言必修课程,“单片机”是一门应用型课程,这两门课程对电气专业的大学生将来的发展起着举足轻重的作用[1]。学习“C语言”是为能更好学习 “单片机”;在单片机的学习过程中,又可以提升程序设计能力。因此这两们课程的学习是相辅相成[2],但就目前的实际情况而言,两门课程是完全割裂的,这是由于目前的教学现状造成的。
1 目前的教学现状
1.1 “C语言”教学中存在的问题
多年来,笔者一直承担电气专业“C语言”这门课的教学任务,通过日常观察及与学生的交流发现,大部分学生反映上课时都能听懂,可动手编写程序时无从下手。存在的问题主要有以下几方面:
1)学生不知道为什么要学习“C语言”,学完后有什么用,因此对该课程没有兴趣。目前由于大学生自身能力水平的原因,对程序语言的学习容易产生枯燥难懂并且厌恶的情绪,他们认为这门课就是介绍关于C语言本身的一些语法规则,只能输出一些黑底白字的结果,对以后的学习、就业和发展没有什么影响,所以学生不愿学。
2)C语言本身的特点增加了学习难度。C语言是学生接触的第一门程序设计语言,具有数据类型和运算符丰富、语法限制不严格、程序设计自由度大、可由用户自定义数据类型等特点。这种课程内容与专业其它课程内容区别很大,且没有先序课程起到承上的作用,因此对于初学者来说,会感到突兀,不易接受,因此也增加了学习难度。
3)学生不善于动手,过分依赖课本和教师。C语言的实验教学往往采取学生模仿实验指导书的内容进行练习,教师答疑辅导的形式。在调试程序的过程中,大部分同学看不懂给出的错误信息,基本是靠教师指点,学生过分依赖教师,没有达到提高独立设计、调试程序能力的目的。
1.2 “单片机”教学中存在的问题
1)单片机内部结构复杂,电路设计难度大。学生很难弄清楚清楚单片机的工作原理,学习起来势必吃力,部分学生将会失去兴趣。在教学的过程中难免出现注重理论而轻实践状况。
2)汇编语言晦涩难懂。好多教材陈旧,往往以汇编语言作为编程工具,而汇编语句抽象,可读性差,学生难理解;编程效率低,学生学习难度大;代码结构复杂,难以维护、更新。
3)缺少综合设计能力的培养。由于学时的限制,课堂的试验基本上是些验证性的小实验,没有一些综合性的试验,既可以考查学生的硬件设计能力,又可以锻炼学生的软件编程能力。因而,不能调动学生学习的积极性。
因而多年来,学生不愿学习“C语言”,更不愿意学习“单片机”。学完“C语言”的不知道其用途,学完便忘;学习“单片机“的学生,感觉单片机内部结构错综复杂,难以理解,到最后,连最基本的程序也无法完成。
因此,通过对上述这两门课程的教学现状的分析发现,之所以这两门课难教难学,其根本原因是由这两门课的教学过程完全割裂导致的。因此,提出把Proteus与Keil软件融入到“C语言”教学中,即对一个实例,先用proteus绘制出电路图,再在keil中用C语言编写程序,通过将keil程序与proteus电路联调,就可以看到keil程序的运行效果,很自然地将“C语言”与“单片机”这两门课程结合起来从而进行整合式教学。
2 改革的可行性
2.1 Proteus和 Keil软件的特点
Proteus软件最令人称赞的是电路原理的仿真功能,除了普通分立器件、小规模集成器件的仿真功能以外,还具有多种带有CPU可编程器件的仿真功能,如80C51系列、68系列、PICS系列等;具有多种虚拟仪器帮助完成实时仿真调试,用于课堂教学也是一种非常好的演示工具。
Keil C51是目前世界上最优秀、最强大的51系列单片机开发应用平台之一,它集成编辑、编译、仿真于一体。支持C语言的程序设计,界面友好,易学易用。它内嵌的仿真调试软件可以让用户采用模拟仿真和实时在线仿真两种方式对目标系统进行开发。
2.2 整合的前导性知识的掌握
在学习“C语言”之前,“电路基础”、“模拟电路”等一些学习“单片机”的前导课程已经学习结束,学生对电路设计不会感到十分的困难,学习Proteus软件容易上手。即使有的同学短时间学不会Proteus软件,网上大量的电子书、视频、案例等丰富的proteus教学资源应有尽有,可以选择有代表性的电路图下载,直接在Keil中编写C程序与其联接观看程序的模拟效果。另外,这些在Keil下编译的C程序,可以随时修改,直到调试成功,省时省力,效果良好。
3 改革的步骤
首先,培养学生学习“C语言”的兴趣。由于C语言课程是在机房上,有速龙系统电子教室系统,在教师机上的任何操作学生都可以看得见,且每台学生机上都装有Proteus和Keil两个软件。由于学生还没有接触过单片机,C语言编程还刚刚起步,因此,老师可以根据课程的教学进度选取典型的简单的例子进行现场模拟示范,利用模拟得到的现象与每句程序语句对应起来进行讲解。由于程序的每条语句都与模拟中具体现象相对应,直观明了,使其知其然,又知其所以然,学生将会产生浓厚的兴趣。
其次,教师告诉学生如何对程序进行修改,就可以出现不同的模拟效果,或者指导学生用不同的语句编程实现相同的功能,达到举一反三的目的。这样极大地提高了学生的积极性。由于学生的编程积极性提高了,在学习理论课的过程中必将注重每个环节,为下一次的实验课打下良好的基础。
图1 为红绿灯proteus电路图
图2 为模拟效果图
另外,教师在课堂演示或者给同学们上机指导时,对单片机硬件设计进行一些简单的介绍,虽然学生还不知道单片机硬件的具体功能和结构,但已对单片机硬件有了初步的认识。这些都为后续 “单片机”课程的学习打下坚实的基础,在讲授“单片机”课程的同时,可根据编程的需要,不断地渗透C语言的知识,再通过观察程序驱动硬件的现象,深入体会单片机的原理。
4 改革试验与效果
在课堂中,我们引入了“LED模拟交通灯”案例(Proteus电路图可在网上下载)。模拟效果:当东西向绿灯亮时,南北向的红灯亮;当四方向的黄灯闪烁后,东西向红灯亮,南北向的绿灯亮,依次循环往复。图1为红绿灯proteus电路图。图2为模拟效果图。
Keil程序如下:
通过上例我们可以看出,在“C语言”教学过程中,当讲完if语句后,学生已经可以顺利使用if语句编写该程序,当讲完switch语句的语法规则后,可以让学生自己动手将上述程序用switch语句来实现,达到举一反三的目的。将“C语言”知识以一种显性的方式体现出来,提高教学效果。
5 总结
在“C语言”的教学过程中,采用任务驱动教学模式,将Proteus和Keil软件用于“C语言”课程的教学过程,使得程序效果得以实时模拟与体现,有助于提高学生的学习兴趣和创新意识、培养了学生的探究性学习能力;实现了知识循序渐进的传授,取得了良好的课堂效果。
[1]汤旭慧,等.基于工学结合的高职电子类专业C语言教学新模式的探索[J].中国职业技术教育教学与教研,2008,4(302):13-14,17.
[2]苏波,陶宁.“C语言”与“单片机”相结合的教学研究[J].光学技术,2010,12(36):108-110.