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

时间:2022-07-01 09:49:16

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

摘 要 针对目前单片机类课程的教学现状和实际科研的需要,改革授课内容,提出以C语言为主的单片机类课程的教学方法。加强实践环节的训练,提高学生学习专业知识的兴趣,取得良好的教学效果。

关键词 单片机;教学改革;C语言

中图分类号:G642.0 文献标识码:B 文章编号:1671-489X(2012)24-0080-03

Teaching Reform and Probe of Microcontroller & Interface Techniques Course based on C Language//Ju Yang

Abstract The paper presents the reform of teaching contents of microcontroller courses based on present situation of teaching and practice application in our country. The teaching methods of microcontroller courses based on C language are discussed in detail. The research and practice of research-oriented teaching are enhanced. The study interests of undergraduates are increased and good teaching results are obtained in practice.

Key words microcontroller; teaching reform; C language

Author’s address School of Electric Power of Nanjing Institute of Technology, Nanjing, China 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语言的直观了解。

上一篇:论职业教育中职业道德与职业技能的统筹发展 下一篇:物理化学常用公式的线性化探讨