基于ATmega16单片机实验系统开发的教学改革与实践
2018-10-19郑祥明
郑祥明
(亳州学院电子与信息工程系,安徽 亳州 236800)
0 引言
单片机课程是电类专业重要的专业课程之一,是培养学生掌握单片机硬件结构、接口技术、硬件设计、软件设计并具备初步工程实践能力和解决实际问题能力的重要工具,具有实践性强,应用范围广的特点[1]。但是,在实际教学过程中学生普遍反应单片机难学,而且单片机种类繁多,在学习的过程中学生很难找到共性,举一反三,学以致用[2]。针对课程实践性强的特点和创新型人才培养的要求,笔者提出基于创新实验系统开发的单片机课程教学改革与实践方案。方案以ATmega16单片机为控制核心,涉及I/O控制、常用传感器及无线通信模块的应用等,包含系统的原理图设计、PCB板设计、焊接调试及程序设计等主要环节。体现了以实践为主,理论为辅;以学生为主,教师为辅的原则,引导学生通过实践环节发现问题和解决问题,更加突出单片机的实践性、应用性和工程性,有利于培养学生主动学习和创新意识的养成[3]。
1 教学计划的制定与实施
单片机技术不仅涉及硬件电路设计,还需熟练掌握软件设计知识,因此本课程在教学计划的制定与实施原则上以实践为引领,教师为主导、学生为主体;在结构上主要分为硬件电路设计和软件程序设计两部分,其中硬件电路设计主要介绍单片机的I/O口资源分配、基本控制及外围电路设计和驱动电路选型[4]。
硬件电路设计:在教师指导下让学生完成单片机最小系统的设计、基本外围电路设计、印制电路板设计与制作、焊接与硬件测试和其他基于单片机系统的硬件设计。
软件程序设计:按由易到难,由简单到复杂的学习思维分别指导学生依次完成板载资源程序设计:LED流水灯实验、数码管显示实验、独立按键实验、矩阵键盘实验、定时中断实验、1602液晶显示、12864液晶显示、18B20温度监控实验(可分别通过数码管显示、1602显示、12864显示等)、温湿度监控实验、数字时钟设计和串口通信等实验项目;对基础知识掌握较扎实,有一定综合应用能力的同学可引导他们进行基于单片机的系统设计,例如:基于nRF24L01的无线通信系统设计、智能车控制等实践项目。
2 单片机实验系统设计
单片机实验系统的设计是课程实施的基础,首先必须充分理解单片机最小系统的工作原理、外围电路的设计思路和ATmega16单片机I/O资源合理分配等。因此教师在原理图设计阶段需及时指导学生并提出修改意见,在印制电路板设计时要求学生熟练使用Altium Designer、Cadence等EDA电路设计软件。
2.1 系统总体设计
图1 系统结构框图
系统总体设计包括ATmega16最小系统设计和外围电路设计,其中最小系统电路由电源、晶振电路和复位电路组成,是单片机系统核心单元[5]。外围电路包括显示模块、按键模块、通信模块及传感器模块等,本实验系统根据课程需要设计了包括LED显示单元、数码管显示单元、蜂鸣器、独立按键及矩阵键盘、串口通信模块、DS18B20、nRF24L01等常用传感器接口电路和液晶显示接口电路等。同时,为便于后期创新实验项目的拓展,本系统将所有I/O口全部引出,增强了系统的实用性和可开发性,系统结构框图如图1所示。
2.2 系统PCB板设计
在系统PCB板设计时要兼顾系统的实用性、可操作性和产品的美观等要求并遵循电路设计基本原则,以手动布局、布线、添加泪滴、铺铜等完成系统的印制电路板设计[6]。本系统将所有的电阻、LED灯、电容及部分按键等均采用贴片封装,大大缩小了实验系统的体积。
2.3 系统焊接与调试
本系统有贴片封装和直插式封装两种封装形式,课程实施过程中采用手工焊接完成创新实验系统的焊接,必要时教师需辅导学生进行贴片元件焊接技能训练。焊接时要注意焊接步骤,首先焊接贴片元件,然后焊接直插式元件。焊接时不要虚焊、漏焊以及注意LED灯、钽电容、数码管、MAX232等元件的极性和方向。焊接完成后首先检测有无虚焊、漏焊、短路等情况,确定无故障后再通电检测:下载测试程序测试各模块是否正常等工作。系统成品的尺寸为:长9.9 cm,宽9.3 cm,高1.5 cm,具有体积小、成本低、功能强、便于扩展等优点,系统实物图如图2所示。
图2 系统实物图
3 实验系统的开发环境与实验项目设计
3.1 软件开发平台
AVR单片机可选择的编译器有ICC AVR和Avr Studio等,根据笔者的实践经历,建议初学者使用ICC AVR。操作步骤为打开ICC AVR编译器,点击Project中的New新建工程;File中的New新建文件,可根据需要保存为.c文件或者.h文件;将所有工程文件下的.c文件和.h文件添加到工程中;点击Build Project编译和生成.hex文件。
3.2 仿真下载器
本系统选用的是Atmel公司生产的USB ISP免驱型编程下载器,使用AVR-ISP接口标准,与设计的ATmega16创新实验系统完全兼容。该下载器提供XP和WIN7兼容的proisp1.72版本上位机软件,采用超稳定自动多级调速固件,下载过程无需人为干预与设置,编程器自动选择最快速度稳定编程,且编程完成不影响目标板的程序运行。操作步骤:首先,将USB ISP下载器一端通过USB与电脑相连,另一端通过10PIN灰色排线与创新实验系统ISP接口相连;其次,给实验系统提供电源,然后打开proisp1.72上位机软件,在“Select Chip”栏选择相应的AVR单片机型号,本系统为ATmega16A;最后,点击“调入Flash”打开已生成的.hex文件,点击“自动”即可烧写成功。
3.3 单片机实验项目开发与实践
实践教学是单片机课程教学的重要组成部分,是培养学生实践动手能力和创新应用能力的载体。而单片机系统又是一个硬件和软件结合非常紧密的系统,这就要求学生具备硬件电路设计与软件设计的综合技能。笔者根据教学实际需要和创新实验系统的资源设计了基础篇、提高篇和创新篇3个模块,通过对单片机I/O端口的控制和各种外围设备的接口电路、驱动电路等方面的应用提高学生的软件设计能力[7]。
3.3.1 基础篇
基础篇程序设计围绕ATmega16单片机I/O配置的介绍、片内资源的实验验证及其简单扩展的应用等,把软件设计内容加载到实验系统上,通过直观的实验现象把设计者的设计思想展示出来,增强初学者感性认识,有利于提高学生的学习兴趣,能够快速有效地引导学生入门ATmega16单片机。本文以流水灯实验、数码管显示实验、键盘实验、中断、定时/计数器、LCD显示和串口通信等实验为例,通过项目式驱动教学法把理论与实践相结合,让学生在学中做,做中学,高效引导学生快速入门ATmega16单片机。
3.3.2 提高篇
提高篇程序设计是在基础知识掌握的基础上利用2~3个知识点设计的实验项目,一方面培养学生对系统电路的理解和控制能力;另一方面,逐步增加程序设计的难度,提高其程序设计能力。同时,在提高篇中可适当增加常用传感器的检测和控制实验,例如数字温度传感器DS18B20、数字温湿度传感器DHT11、超声波测距、继电器、直流电机和步进电机等。在指导教师引导下让学生完成基于单片机的监测控制系统实验项目,在实践中不断激发学生的求知欲和学习兴趣。
3.3.3 创新篇
创新篇程序设计是单片机课程知识的综合应用与创新能力的综合体现,突出单片机的工程性与应用性,可以为实际问题提供解决方案。因此,创新篇的项目设计要具有一定的开放性和拓展性,最好是联合校企合作企业进行共同设计、研发。这个模块具有一定的难度,在课程实施过程中需根据学生具体情况选做。
4 以学科竞赛为载体,提升单片机应用能力
学科竞赛旨在推动高校教学改革,引导和促进学科体系建设,有利于应用型和创新型人才培养,是培养和检验学生实践能力、创新能力和应用能力重要平台[8]。在学习完单片机课程或具备基本单片机开发能力的同学可参加的学科竞赛有全国大学生电子设计竞赛、智能车竞赛、“挑战杯”竞赛和省级单片机与嵌入式等相关赛事。
4.1 以赛促学
学科竞赛一般与专业课程体系或课程内容紧密相连,通过参与学科竞赛的备赛学习,学生能够更深刻地理解课程教学体系。在单片机相关学科竞赛中历练和成长,有助于引导学生理论结合实际,培养学生分析问题、提出解决方案的能力和团队合作的精神,进而提高学生的综合实践能力与创新意识。
4.2 以赛促教
学科竞赛是教学改革的风向标,单片机课程团队通过指导单片机相关的学科竞赛可以更有效地了解学科发展趋势和课程改革方向。一方面,有利于促进单片机课程教学改革,指导教师把学科竞赛备赛和竞赛阶段的项目融入到课程的实验教学过程中,让全体学生受益;另一方面,学生通过更多综合性和应用性的实验项目的实践,增强了单片机综合应用能力;此外,学科竞赛还有利于促进青年教师的成长,不断提升教学团队的教学质量。
5 教学评价体系的优化
本课程的考核由期末实践考核、理论考试和平时表现3部分组成,其中期末实践考核的项目由指导老师根据课程内容,重点考察学生的基础知识掌握情况、灵活运用所学知识的能力和解决实际问题的能力等,占期末总成绩的40%;理论考试为学期末的闭卷考试成绩,本项考核成绩占总成绩的40%;平时表现是教师根据学生的出勤、平时实验的完成情况和课堂表现等作出的评价,占总成绩的20%。
6 效果与总结
通过基于ATmega16单片机实验系统开发的教学改革与实践,进一步强化了学生的电路设计、印制电路板设计、焊接和程序设计能力。单片机实验系统的研发与实践拓展了单片机课程实践环节的学习空间,有利于引导学生学会学习、主动学习和主动实践的意识,在实践中理解和掌握单片机应用技术。对培养学生的实践动手能力、发现问题和解决问题能力等方面有积极影响,对进一步深化单片机课程改革有一定借鉴意义。