APP下载

基于C语言的单片机与接口技术课程教学改革探索

2012-12-03鞠阳

中国教育技术装备 2012年24期
关键词:汇编语言课程设计例题

鞠阳

南京工程学院电力工程学院 南京 211167

单片机是典型的嵌入式微控制器,在工业控制、机电一体化、通信终端、智能仪表、家用电器等诸多领域应用广泛。国内高校的一些相关专业在20世纪80年代末就开设了单片机原理及应用课程,并成为电气信息类、机械类等专业的专业核心课程。因为单片机在实际生活中广泛应用,该课程在培养环节中都被定位在理论与实践并重,着重培养学生开发实际应用系统的能力。

该门课程是一门涉及硬件、软件技术的综合性课程。在学习本课程的时候,学生应该掌握逻辑电路设计、计算机原理硬件以及软件编程等知识。但在实际教学中发现,当需要学生综合运用这些知识分析解决单片机在实际生产过程中的具体问题时,往往不能融会贯通地加以理解和应用,容易造成学生对本课程的畏难情绪,学习积极性受到影响。原因有不少,采用汇编语言为主的传统授课方式就是其中之一,分析其原因包括:汇编语言语句抽象,可读性差,学生难理解;汇编语言编程效率低,学生学习难度大;汇编语言代码结构复杂,难以维护、更新;汇编语言对硬件结构依赖较大,难以实现在不同种类和系列单片机之间移植。

如今,企业的单片机项目开发,一般都采用C语言。为适应时代发展的要求,需要培养满足社会需求的基于C语言的单片机人才。在多年的课程教学及科研实践中,不断总结、摸索和改革,构建一套以C语言为主、汇编语言为辅、单片机应用系统为教学主线、能力培养为目标的课程教学体系。

1 C语言的特点

C语言源于编写UNIX系统,与汇编语言和其他高级语言相比,优点有很多:具有丰富的流程控制语句,适用于结构化和模块化设计,使得程序层次清晰,易于阅读、编写、调试和维护;使用范围广泛,可移植性强,目前主流的CPU和MCU都有支持C的编译器;数据结构和运算符丰富,有强大的库函数支持,使用灵活方便;允许直接访问物理地址,可以直接操作计算机硬件;编程和调试效率高,目标代码质量好。

用C语言编写单片机程序与用汇编语言编写单片机程序不太一样。用汇编语言编写单片机程序要按实际地址组织、分配存储器资源,处理端口数据;用C编写程序不必十分熟系处理器的运算过程和数据的具体组织,可以更专注于算法而不是具体实现细节,也更符合人们的思考习惯。由于C语言具有这样的优点,几乎各品种单片机的厂商都发布了相应的C语言开发,因此采用C语言开发单片机已成为必然趋势。

2 教学内容和教学方法

在传统的教学模式中,“单片机与接口技术”课程内容安排一般都是概述、硬件结构、指令系统、汇编语言设计、存储器扩展、中断与定时系统、I/O口扩展及应用、串行数据通讯。采用C语言教学,汇编语言应要求适当掌握。因为大量现有的宝贵资料是汇编语言编制的,需具备一定的阅读能力。掌握的程度以能阅读和理解常用的指令为度,不要求所有的指令都熟记。

在课程内容安排上,可以采用这样的模式:概述、硬件结构、I/O口和存储器扩展、中断与定时系统、应用、串行数据通讯。其中,指令系统的讲解穿插在各个章节中,以例题的形式讲解。例题中用到哪条指令就讲哪条指令,不再单独讲解,也不单独讲解指令的寻址方式。汇编语言章节可不讲,但要求学生能读懂课本该章节中的部分例题。由于学生的先修课程中已经学过C语言,该部分内容也不单独介绍。在各章的由浅入深的例题中,带着学生一边复习和巩固C语言知识,一边介绍C51与标准C语言的不同点和编程注意事项,并逐渐让学生熟悉编写较大规模C语言程序的思维模式。

在教学过程中让学生树立学习信心,吸引他们的学习兴趣。教师将Keil C51集成开发软件和编程器带到教室,编程实现单片机控制8个LED闪烁的简单程序。通过软件编译仿真演示后,下载至单片机中进行硬件演示,让学生了解单片机开发的全过程。上课时教师多用通俗易懂的语言讲解,多举实例,使学生容易理解和消化。在教学过程中,尽量采用讲解、演示方法,如讲完整形变量的概念后,通过软件演示,可以看到变量在内存中存放的位置、存储的内容和存放方式,这样学生对整形变量就有完整清晰的认识。通过进一步演示可以看到整形变量的值为32767时,再加1不等于32768,而是等于-32768,但其溢出时系统却没有任何报警提示,所以要求程序设计者做出正确处理,如溢出饱和等。同样,讲完定时器/计数器的工作原理和初始化方法后,编写简单的定时器/计数器应用程序,在仿真软件中运行进行演示,可以清楚看到程序运行时,计数器的值不断变化,也可以看到定时器中断服务程序的执行结果。这样定时器/计数器的整体形象非常生动,其工作原理也就不难理解了。通过讲解、演示这些教学方式,使学生掌握了Keil C51集成开发软件的使用方法,以后只要碰到有疑难的地方,就可以用仿真软件调试运行解决,增强了对C语言的直观了解。

下面以流水灯为例,介绍以C语言为主的教学法具体讲解步骤。

1)硬件部分:P1口接8只发光二极管,编写程序实现让发光二极管按P1.0—P1.1—P1.2—…P1.7—P1.0—…的顺序依次循环点亮。图略。

2)软件部分:

3)利用仿真器或编程器在面包板上现场调试并运行该实例,证明软硬件设计的正确性。

4)软件部分,介绍主要语句功能。

5)讲解课本相关知识点。

6)在学生掌握该例题后,引申该例题,同学生互动(如若采用定时器,程序应如何修改?等等)。

7)讲解相应的汇编程序。

8)讲解该例题未涉及的知识点。

3 加强实验教学,重视课程设计

该课程是实践性很强的课程,因此除理论教学外必须重视实验教学。尽量给学生提供充分的上机实践是调动、激发学生学习主动性的很好手段。通过上机实践,学生能自主地获得知识,提高调试程序的能力。这样就可以把一部分教学内容移到上机的过程中去自行获取,既能节约教学学时,又能帮助学生牢固掌握知识。一般课堂教学学时与上机实践学时应掌握为3:1。

在实验内容安排上,努力建立由浅入深、从基础到前沿、从接受知识到培养综合能力的实验新体系。在实验内容上要突出综合性、实践性特点。综合性实验着重于实验原理及要求。实验内容、操作步骤等从略或简述操作事项,以加强实验动手能力的培养。例如,为了让学生真正掌握可编程并行接口芯片8255A的使用,要求学生对它的实验原理及编程方法吃深吃透,从最简单的做起,让8255A芯片的PA口的8个引脚PA7~PA0与8个发光二极管相接,让发光二极管一个一个或两个两个或三个三个循环闪烁显示。当学生真正理解了8255A芯片使用主要在于编程,其3种工作方式可用软件编程的方法来实现后,再在指导性实验后面增加相关的思考题,要求学生按照教师提出的实验目的和要求,自己设计、自拟操作方法与步骤,在面包板上接插线,上机调试。当学生做完实验后又要求他们写出有结论、有分析、有体会的实验报告,经过这样的举一反三,活学活用,充分调动学生积极性,有利于培养新型人才。它可以开阔学生知识面,有利于学生的动手能力的培养,使学生学到的知识得到巩固和升华。

课程设计是一个综合性的教学环节,也是一个实战练兵的机会。为此安排一周的课程设计,让学生有较充裕的时间系统地编写并调试一套完整并有一定程序量的程序。课程设计题目分为两大类型,即基本类型和提高类型。基本类型包括电子钟程序设计、交通灯控制器程序设计、模拟全主动洗衣机程序设计、步进电机单步进给特性的测试等题目;提高类型包括单片机与微机串行通信软件设计、闭环恒温控制系统程序设计、倒车雷达设计、温度显示仪表等题目。学生可根据自己的情况自主选择设计内容。

课程设计要求完成硬件原理图、软件流程图、调试成功的软件。通过课程设计的实战练兵,可以达到以下几个目的:1)进一步巩固了所学理论知识;2)使学生对该课程有系统的认识;3)使学生对这门课从理论到实践跨出了关键性的一步。

4 结束语

通过采用以C语言为主、汇编语言为辅的教学方法的改革后,学生学习单片机与接口技术的积极性有了较大的提高,学生既能扎实地学好理论知识,又具备了较强的动手能力。根据对几届学生的调查和成绩统计来看,学生对该课程的掌握与实际开发能力均得到了较大的提高,为学生今后的毕业设计乃至将来的工作打下了良好的基础。学生在学完本课程后,参加校内和省内的电子设计竞赛的成绩比以前有了较大的提高。

在以后的教学进程中,还需要进一步完善课程的教学改革,为培养出高素质、能力强、符合现代化建设需要的新型人才,为实现学校的人才培养目标继续努力,力争使教学水平、教学质量跃上一个新的台阶。

[1]胡汉才.单片机原理及其接口技术[M].2版.北京:清华大学出版社,2004:237-367.

[2]牛骁.单片机和C语言的教学探讨[J].江苏机械制造与自动化,2001(4):136-138.

[3]林益平,等.单片机C语言课程教学的探索与实践[J].电气电子教学学报,2007(4):104-106.

[4]苗新法.单片机教学改革方案探索[J].中国现代教育装备,2009(8):79-80.

猜你喜欢

汇编语言课程设计例题
由一道简单例题所引发的思考
由一道简单例题所引发的思考
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
龙凤元素系列课程设计
汇编语言与C语言的混合程序设计技术研究
提高《汇编语言程序设计》教学效率的思考与实践
向量中一道例题的推广及应用
问渠哪得清如许 为有源头活水来
基于Articulate Storyline的微课程设计与开发
基于自动化系统的PLC课程设计