单片机原理与应用课程实验教学设计
摘 要: 《单片机原理与应用》是电子信息工程专业学生必修的一门专业基础课程。作者针对我系《单片机原理与应用》课程在教学中存在的理论性太强的问题,以实验教学设计理论为指导思想,设计了八个软件和硬件实验项目,巩固学生在课堂上所学的理论知识,从而对课程体系结构进行补充和完善。
关键词: 单片机 实验设计 实验教学
一
《单片机原理与应用》是电子信息工程专业的专业基础必修课程,要求以C语言和MCS-51系列单片机为基础,使学生从应用角度出发,熟练掌握单片机基本结构、指令系统、工作原理、接口技术、C语言程序设计与应用方法、单片机内部资源和外部扩展资源的C51语言编程方法及Keil μVision4集成开发环境的使用方法。为从事电子信息产业及相关领域实际工作打下坚实的基础,该课程属于应用型课程[1]。单片机原理与应用课程在实际理论教学中存在教学方法单一,理论性太强,学生对理论知识的学习兴趣不强和动手能力差的问题,因此有必要引入后续单独的单片机原理与应用实验课程形成完整的教学体系,使学生理论联系实际,进一步巩固单片机原理的理论知识,掌握单片机开发技术和C51语言编程方法。
为解决单片机课程教学中存在的老师难教、学生难学的问题,采用“任务驱动法”,为该课程设计若干个任务,每个任务包括若干个知识点,让学生在完成任务的过程中学习,进而掌握知识点。结果表明,利用本方法教学,提高学生的学习积极性和学习效率,培养学生的实践精神和创造精神。由浅入深、循序渐进,从提高学生兴趣出发,以实际项目为驱动,激励学生自主学习相关理论知识,解决完成项目中碰到的各种问题,将项目驱动法引入单片机教学,结合科研项目,把要讲授的各项理论知识和实践技能按由浅入深、现学现用的原则分解到一个个具有应用目标的任务中,让学生在规定时间内依次完成这些任务。在实验教学过程中,项目驱动法要求以完成一个个具体实验任务为线索,把单片机理论教学内容巧妙地隐含在每个实验任务中。引导学生掌握提出问题、分析问题和解决问题的方法,最终让学生通过自己的努力和教师的指导完成任务。
二
从实验出发,让学生循序渐进地掌握书本上的知识,联系实际应用。“单片机原理及应用实验”是通信工程专业“单片机原理及应用”专业课单独开设的实验课程。通过本实验课程教学,学生理论联系实际,进一步巩固单片机原理理论知识,掌握基本单片机开发技术和C语言编程方法,为后续单片机原理及应用课程设计课程打下坚实的基础。
我们首先采用Keil C51和Proteus这两款软件,设计了4个软件实验。KeilC51是德国Keil software公司开发的用于51单片机的C51语言开发软件,在兼容标准C的基础上增加了很多与51单片机硬件相关的编译特性,使得在51系列单片机上开发应用程序更为方便和快捷[1]。Proteus软件是英国Labcenter Electronics公司开发的电路分析与实物仿真软件。可仿真、分析多种模拟器件和集成电路,实现单片机和电路仿真的结合,具有模拟电路仿真、数字电路仿真和仿真单片机及外围电路组成的系统仿真[2]。
学生使用Keil C51进行汇编语言和C语言源程序的编写、调试、编译和执行,可以掌握单片机的硬件结构和内部资源。进一步地,学生使用Proteus对单片机及外围电路组成的系统进行整机仿真,可以更直观地进行单片机整机系统设计,为合理应用单片机进行项目设计与产品开发打下基础。具体四个软件实验项目如下:
1.Keil软件认识实验。让学生采用Keil建立工程和调试工程,对汇编语言源程序进行编译、调试及执行。在程序单步执行过程中,观察包括程序存储器ROM、内部数据存储器RAM和外部数据存储器RAM在内的各内存单元中的数据变化情况。通过该实验,学生对单片机内部硬件和软件资源及Keil软件有直观印象,熟悉Keil编译环境。
2.数据排序实验。将内部数据存储器RAM中50H~5AH单元放入大小不等的数,采用经典的冒泡排序算法编写汇编语言源程序,将数据按由小到大的次序重新排列,并依次放入内部数据存储器RAM中60H~6AH单元。采用Keil软件编译、调试和执行。通过该实验,学生掌握汇编语言程序设计和调试方法。
3.Proteus认识实验。让学生采用Proteus建立工程和调试工程。首先在Proteus的ISIS模块中,建立以单片机为核心,动态LED模块为外部设备的整机仿真电路。然后在Proteus的Source code模块中,采用C51语言编写单片机驱动LED灯进行闪烁的实验程序并采用Keilfor8051编译器对C51语言源程序进行编译,最后在ISIS中进行整机仿真,观察LED灯闪烁情况。通过该实验,学生熟悉Proteus仿真环境。
4.外中断应用实验。让学生采用Proteus建立工程和调试工程。首先在Proteus的ISIS模块中,建立以单片机为核心,单刀单掷开关和动态LED模块为外部设备的整机仿真电路。然后在Proteus的Sourcecode模块中,采用C51语言编写单片机外部中断0(P3.2位口)接收开关状态并驱动LED灯进行循环闪烁的实验程序并采用Keilfor8051编译器对C51语言源程序进行编译,最后在ISIS中进行整机仿真,观察LED灯闪烁情况。通过该实验,学生掌握中断控制的编程及实现方法。
三
在学生学习掌握相关软件知识和程序编程调试技能之后,就可以开始进行软硬件结合的综合实验学习。我们基于深圳市学林电子有限公司生产的XL2000单片机实验仪,编写四个单片机硬件实验项目。XL2000单片机综合试验仪由XL2000开发板和51tracer(追踪者)仿真器组成,集常用的单片机外围硬件、ISP下载线、单片机试验板、编程器、独立仿真器功能于一身[1]。具体四个硬件实验项目如下:
1.小喇叭警报器实验。采用C51语言编写程序实现单片机内部定时/计数器执行定时操作,P3.3位口输出1KHz和2KHz的变频信号,采用Keil软件编译、调试并生成后缀名为.hex的文件。将.hex文件加载到XLISP软件中通过计算机USB口输入至实验箱的AT89S51单片机内。在实验箱上采用1PIN数据线连接P3.3位口和小喇叭的输入端口。由于P3.3位口输出1KHz和2KHz的变频信号,则喇叭里发出滴答一长一短的报警声音。通过该实验,学生掌握定时/计数器定时的编程及实现方法。
2.按键识别数码管显示实验。采用C51语言编写程序实现单片机P3的8位端口读取8位按键状态,P0的8位端口送出字段码控制8段式LED数据管显示不同数字。采用Keil软件编译、调试并生成后缀名为.hex的文件。将.hex文件加载到XLISP软件中通过计算机USB口输入至实验箱的AT89S51单片机内。采用8PIN数据排线连接P3端口和按键模块,用8PIN数据排线连接P0端口和数码管模块。按键模块由8个轻触按键组成,一端接地,按下某个按键时,相应P3端口的某位口接收到低电平信号。通过该实验,学生掌握按键识别及数码管显示的实现方法。
3.DAC0832转换实验。采用C51语言编写程序实现单片机输出数字信号控制DAC0832输出锯齿波模拟信号。采用Keil软件编译、调试并生成后缀名为.hex的文件。将.hex文件加载到XLISP软件中通过计算机USB口输入至实验箱的AT89S51单片机内。采用1PIN数据线连接P3.6位口和DAC0832的WR端口,采用1PIN数据线连接P2.7位口和DAC0832的CS端口,采用8PIN数据排线连接P0端口与DAC0832的数据输入端口,采用示波器观察DAC0832输出的锯齿波模拟信号。通过该实验,学生掌握DA转换编程及实现方法。
4.期末考查综合实验。要求学生在2个小时以内,采用C51语言编程、Keil编译,仿真完成单片机接口电路的一个综合实验。使用定时器/计数器T0,采用方式2定时,实现P1.0位口输出周期为400us占空比为1:9的矩形脉冲(设晶振振荡周期fosc=12MHz)。采用Keil中的LogicAnalyzer窗口观察P1.0位口的电平输出。通过该实验考查学生综合运用所学知识解决实际问题的能力。
通过这8次实验课,由浅入深地使学生掌握单片机原理与应用这门课的重要知识点,锻炼他们的动手能力,充分体现“在做中学、在学中会、在会中懂”的教学理念和教学方式。一年来的教学实践证明,我系电子信息工程专业《单片机原理与应用》教学极大地促进全体学生的学习兴趣,全面增强教学效果,由此证明该实验项目的可行性和有效性。
参考文献:
[1]王浩全,李晋华,张敏娟,等.单片机原理与应用(C语言版).人民邮电出版社,2013.
[2]深圳市学林电子有限公司,http:///.
[3]Keil Software,Inchttp:///.
[4]Labcenter Electronics Ltd,http:///.