APP下载

单片机原理及应用课程创新实践教学改革

2013-08-15赵月静陈继荣张永弟

实验技术与管理 2013年1期
关键词:汇编语言调试单片机

赵月静,陈继荣,张永弟

(河北科技大学 机械电子工程学院,河北 石家庄 050018)

“单片机原理及应用”课程是机械设计制造及其自动化专业的一门重要的专业基础课程,是机电专业模块的专业必修课。随着各种机械设备自动化程度的提高,设备的控制系统越来越重要,单片机是实现各种机械电子设备控制的重要手段之一。单片机由于具备体积小、成本低、高性能等特点被广泛应用于工业控制、智能仪器和机电一体化等多领域。因此了解单片机的工作原理,掌握单片机技术,特别是具备基本应用操作技能,成为当代相关专业大学生的重要任务。单片机是一门理论和实践结合非常紧密、突出动手能力的课程,但该课程相对比较抽象,学生普遍反映入门较难且难以理解单片机的内部结构,而单片机的传统教学方式多以课堂原理讲解与少量硬件实验相结合,实践内容偏少,不能充分激发学生的学习兴趣,使其处于被动接受知识而不是主动求知[1-2]。

1 教学现状

目前的单片机课程教学主要由课堂教学和实验教学2部分组成。课堂教学普遍采用多媒体设备,将教学内容制作成幻灯片,对着PPT讲解电路和程序、CPU内部结构、I/O接口、硬件、软件,均采用演示的教学方法[1]。这种具备音视频效果的教学方式,使学生一定程度上容易理解和接受所讲授的内容,并对提高学习的积极性有一定效果,但对于单片机这种课程,只是把理论学了,而实际的动手能力没有得到锻炼,效果有限。

现在大多数的单片机教材都是以汇编语言为主,由于汇编语言具有代码紧凑、执行时间短、控制及时且易于记忆等优点,教师也是把很多课时用在汇编语言上面,而单片机的C语言却很少提及[4]。但是随着单片机技术的发展出现了一些问题,主要表现在对硬件结构的过分依赖,不同类型的单片机汇编指令有所不同,而且程序比较繁琐、可移植性差等。与汇编语言相比,C语言在功能上、结构上、可读性和可维护性上有明显的优势,而且C语言有丰富的函数库,可以有效减少编程工作量,对单片机的硬件稍作了解即可进行系统开发,特别是C语言对寄存器的分配与寻址方式都是由编译系统自动完成,所以企业公司开发产品基本上都用 C 语言[5-6]。

现在的考核方式多采用闭卷考试,学生死记硬背硬件内容和软件指令,考完后很快忘掉,但开发单片机应用系统的能力没有任何提高。

单片机是一门注重应用的课程,这门课最终目的还是在于开发产品,这些教学方式忽视了学生设计和创新能力的培养,不利于培养学生解决实际问题的能力,对提高学生的学习兴趣、扩展学生的学习思路收效甚微,对以后课程设计和毕业设计中要应用的单片机控制系统更是知之甚少。

2 创新实践教学的方法策略

为了改善教学效果,增强学生的动手实践能力,在教学过程中采用将理论与实践、硬件和软件有机结合的教学方法。理论教学环节充分利用仿真软件,在教学中引入Proteus仿真软件,加强C51语言的教学,引入Keil C编程软件;采用项目驱动教学法,通过开发单片机应用系统项目,让学生对实际控制系统有直观的认识,并在参与系统开发的过程中加深认识,对整个开发过程有充分的了解。通过仿真的直观性和项目可参与性,以及生动有趣的真实感,激发学生的学习兴趣,提高教学效果,极大地开拓了学生动手实践的时间和空间,降低了学习成本,提高了学习效果。

2.1 Proteus仿真软件的应用

Proteus软件是英国Labcenter electronics公司研发的电路分析与实物仿真软件,具有近20年的历史,是目前最好的单片机及外围器件的仿真工具。Proteus软件提供了大量的仿真设备和元器件,有30多个元件库、近8 000个数字和模拟元件模型(包括各种单片机、常用逻辑电路),有各种调试工具、测试仪器、显示设备、虚拟仪器、调试信号等。它由ISIS和ARES构成。ISIS是原理图编辑与仿真软件,ARES是布线编辑软件[7-9]。

利用Proteus可实现单片机及外围电路的仿真,如单片机软件仿真系统、模拟电路仿真、数字电路仿真、单片机外围电路仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等。该软件不但可以模拟硬件系统,而且可以把编译好的程序代码装入仿真元件中,通过运行仿真系统可以像焊接好的电路板一样看到系统的执行效果,满足了在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果,弥补了理论知识和实践应用间脱节的矛盾,同时也支持第三方的软件编译和调试环境,以及Keil、Maplab等软件整合使用,达到了更好的仿真效果。

Proteus软件真正实现了在计算机上完成从原理图设计、电路分析和仿真、单片机代码调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。

2.2 Keil C软件的学习

Keil C软件是美国Keil Software公司出品的兼容单片机C语言软件的开发系统,它提供了丰富的库函数和功能强大的集成开发调试工具,采用全 Windows界面,并且多数语句生成的汇编代码容易理解,尤其在开发大型软件时更能体现高级语言的优势。一般将其中的C语言称为C51。C51是专门为51系列单片机设计的,根据51单片机的特点对ANSI(标准)C进行了若干扩展,在语法和库函数方面存在稍许差别,使C51可以和汇编语言一样可直接访问51系列单片机的硬件资源,但大部分是兼容[10-11]。keil软件目前已受到单片机爱好者、应用者和开发者的青睐.

Keil CμVision是一款基于51单片机的软件开发工具,提供了强大的项目管理功能,可以十分方便地进行结构化、多模块程序设计。μVision集成开发环境(IDE)包括项目管理器、程序编辑器、Cx51编译器、Ax51宏汇编、BL51/Lx51连接定位器、RTX51实时操作系统、Simulator软件模拟器以及Monitor51硬件目标调试器,所有这些功能都可以在μVision提供的单一灵活的开发环境中极为简单地进行操作[10]。它支持汇编语言、C语言及混合编程,具有强大的仿真功能,可以进行硬件仿真和纯粹的软件仿真。在软件模拟的仿真方式下不需要任何单片机硬件即可完成用户程序仿真调试。

Proteus和Keil各自都可以进行一定程度仿真调试,但效果不是很理想。如果我们把Proteus ISIS与Keil C配合起来使用,充分利用各自的仿真优势功能,使得在仿真过程中的软件调试和硬件设计更加便捷、高效,降低开发成本。

在教学过程中,汇编语言与C51语言都讲,让学生了解汇编语言,掌握C51语言。可以用汇编语言完成简单程序的设计,能够用C51语言完成简单和复杂程序的设计,学生的前序课程中学过C语言,这样大大降低了学生学习的难度,同时,学生能从对比中加深对汇编语言和C51语言的理解。

2.3 采用项目驱动教学方法

项目驱动教学法是通过师生共同实施一个完整项目而进行的教学活动,是围绕项目展开,以项目开发步骤作为教学顺序,将单片机理论知识点插入到开发项目的过程中,以学生为中心,以真实项目为基础,引导学生边做边学,在实践中学习。在项目教学中,教师不再把现成知识技能传递给学生作为教育的惟一目标,而是让学生把看到的、听到的、手上做的结合起来。学生在寻找某个结果过程中,学会思考,学会发现问题、解决问题,进而增强信心、提高学习积极性、锻炼动手实践能力,是引导学生主动学习的方法。项目式教学中教师的作用是辅导,是配角,是给各小组学生提供资料、方法,让学生能够针对问题主动思考并得到解决[12]。项目驱动教学法有利于实施模块式教学,实现阶段性教学目标,培养学生的实际操作技能、综合应用能力和团队精神。

在单片机项目教学中,采用单片机系统虚拟仿真软件Proteus充分仿真单片机系统工作情况,用Keil C软件编程,用虚拟单片机系统代替实际硬件电路,程序运行于虚拟的MCU上,使软件调试不再依赖实物硬件电路,仿真结果达到系统预期效果后,还可以进行硬件实物制作[13]。

在教学过程中,根据要讲授的单片机课程内容,按照项目应用到的理论知识点来设计相应的项目。每个项目设计中包括9个部分:项目名称,项目目的,所用理论知识点拨,项目的硬件电路图及仿真,软件编程,项目注意事项,动手实践焊接电路板,示例,项目拓展。在项目的实施过程中,既学到理论知识,又理论联系实际应用,使学生明白单片机中这些硬件资源的使用方法及应用场合[14]。

针对我们学校的单片机课程,共设计11个项目,分别是:定时器/计数器,中断源,串行通信,I/O接口,I/O接口扩展,键盘接口,显示器接口扩展,数据采集转换系统,步进电机的控制(步进电机驱动),直流电机的控制(直流电机驱动),交通信号灯的控制(模拟交通灯)。这些项目涵盖了单片机中的所有硬件资源及扩展的方法,软件学习贯穿于每个项目中。通过这些项目的实施,学生对单片机的硬件、软件及应用都有很好的实践,提高了学生的综合应用能力,为学生以后开发应用系统打下坚实的基础。

2.4 考核环节的改进

单片机是一门注重应用的课程,学习这门课最终目的在于开发应用系统,因此在课程结束考核阶段,采用让学生设计一个综合、完整的单片机应用系统项目,把学习的所有知识综合起来,锻炼学生设计单片机控制系统的实际应用能力。具体措施如下:

(1)选择合适的课题。教师向学生推荐若干个单片机应用系统课题,学生根据自己的能力和爱好选择其中一个课题,或者自己查找资料,和指导教师一起确定实用性课题。如果课题比较大的话,可以把几个学生合成一个项目组,共同完成一个课题,学生的动手能力得到锻炼,同时也培养了学生的配合、沟通能力。

(2)整个项目的设计与调试。这种方式让学生熟悉单片机应用系统的研制步骤和方法,学生从分析系统入手,经过总体设计—硬件系统—软件系统—仿真调试—固化程序等整个流程,对每一个阶段都有更加深刻的认识,对单片机应用系统的开发系统也有一定的了解。学生自己利用所学的keil C软件程序以及Proteus设计硬件电路,自己进行电路焊接、软硬件的综合调试,并最终焊接电路板,完成作品实物。教师随时根据学生要求进行辅导,帮助学生解决自己无法克服的难题。

(3)作品验收及点评。学生整理材料,做出整个开发过程的PPT进行答辩。教师根据学生在项目分组中的表现和承担的任务,对作品进行点评,给出学生的成绩等级,同时还可锻炼学生搜集、整理资料以及演讲等能力。

2.5 增加课程设计环节

现在单片机的学时数比较少,只能介绍最基础的硬件和软件知识,后面的应用由于时间关系也讲解得很少,应该增加该课程的学时数,给学生更多的学时巩固使用单片机。对于机电专业的学生,机械类的课程学完后,很多课都有课程设计,电类课程也要引入课程设计环节,否则学生学完电方面的课程,只掌握理论知识不会应用,是一个缺憾。机电并重的学生才真正是企业所需要的机电一体化专业人才。

3 结束语

本文指出了单片机教学中出现的问题,并引入Protues和Keil C软件,利用项目驱动教学法进行教学,改进考核环节。经实践证明,效果良好,学生动手能力得到了较大的提高。在实践过程中,可以要求学生借助于网络,特别是各种单片机论坛,从更多的渠道

获得开发经验与技巧,拓宽知识面。引导学生查阅各种单片机的芯片资料,为单片机的选型和硬件电路的搭建奠定基础,为开发单片机应用系统起到辅助作用。单片机是机电专业的一门重要的专业课,学好、用好单片机可以提升学生就业竞争能力。

(References)

[1] 杨立林.单片机原理与应用课程教学的实践与思考[J].江苏技术师范学院学报:自然科学版,2009,15(2):62-66.

[2] 陈卫国.机械电子工程专业中单片机课程群设置的研究与实践[J].当代教育理论与实践,2011(5):63-65.

[3] 许超,吴新杰,张丹.基于Proteus和Keil的单片机课程教学改革[J].辽宁大学学报:自然科学版,2011,38(1):27-29.

[4] 焦振宇.浅谈新形势下我国高校“单片机”教学的课程改革[J].高教论坛,2005(1):102-104.

[5] 王晓荣,权义萍,张印强.基于C语言的“单片机”教学方法[J].中国电力教育,2009(6):96-97.

[6] 石明江,顾亚雄,张禾.单片机原理与应用课程教学改革与实践[J].计算机教育,2011(6):11-13.

[7] 刘燎原,孙秋波.Proteus软件在单片机项目教学中的应用[J].徐州建筑职业技术学院,2009,9(2):63-65.

[8] 周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2006:154-202.

[9] 周润景,袁伟亭,景晓松.Proteus在 MCS-51&ARM7系统中的应用百例[M].北京:电子工业出版社,2006.

[10] 张齐,朱宁西.单片机应用系统设计技术[M].北京:电子工业出版社,2009:70-75.

[11] 殷士勇.Keil和Proteus在单片机实验教学中的应用[J].重庆工商大学学报:自然科学版,2009,26(6):567-570.

[12] 张富贵,黄海松,吕敬堂,等.单片机设计性实验与工程实践能力的培养[J].实验技术与管理,2011,28(2):135-138.

[13] 曾成,伍萍辉,刘艳萍.基于虚拟硬件环境的单片机原理与应用实验开发[J].实验技术与管理,2011,28(2):91-93.

[14] 杨明欣,郑郁正,赵建,等.结合电子设计竞赛进行单片机课程改革[J].实验科学与技术,2007,5(4):94-97.

猜你喜欢

汇编语言调试单片机
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
汇编语言与C语言的混合程序设计技术研究
基于单片机的便捷式LCF测量仪
基于航拍无人机的设计与调试
FOCAS功能在机床调试中的开发与应用
提高《汇编语言程序设计》教学效率的思考与实践
无线通信中频线路窄带临界调试法及其应用
调压柜的调试与试运行探讨