基于单片机的模块化教学研究

2010-04-04 11:57陈洪财
电气电子教学学报 2010年6期
关键词:数码管子程序功能模块

陈洪财

(韩山师范学院,广东潮州 521041)

“单片机应用技术”是电子和自动化等专业的必修课,它融合了电子、计算机、电路设计及工艺等技术,是一门理论和应用性很强的课程。对于初学者来说,要掌握单片机难度很大,如果不根据学生的认知规律和单片机课程的特点教学,将给学生的学习造成困难。我们经过多年的教学实践,发现基于模块化的单片机教学方法切实可行,效果明显[1]。

1 模块化的单片机教学

模块化的单片机教学就是把单片机系统分成各个具有独立功能又可以互相衔接的简单模块,将复杂难懂的指令、语法、编程及其电路分解,使编程简单化的教学方法。通过对各个模块的学习,使学生掌握相关电路原理及编程控制方法,再把不同功能模块连接起来组成一个具有完整功能的应用系统。

我们根据学生的认知规律,将单片机教学模块分成三个部分:硬件模块、软件模块和程序功能模块。其中程序功能模块关系到教学的成败[2]。

2 程序功能模块

按照单片机的功能开发思路和教学先后顺序,我们将程序功能模块分成三大部分:端口基本功能模块、中断基本功能模块和外围驱动高级功能模块。上一个程序的功能在下一个程序中作为一个子程序得到运用,功能逐渐增强,使程序成为一个具有强大功能的实用程序。

2.1 端口基本功能模块

端口功能模块的设置目的是:掌握单片机汇编语言的编程思想,熟悉汇编指令,通过仿真理解单片机的内部结构。在学习过程中,掌握延时子程序、查表子程序、数码管显示子程序和键盘子程序的编写方法。这些子程序是单片机的控制基础,也是项目开发所必须的基本功能,是单片机入门的基础。教学中可以完成多个基本应用程序,每一个程序都是独立的。上一个程序可以作为子程序在下一个程序中应用,如LED流水灯控制、单个数码管基本显示、多数码管静态显示、数码管的选择和数码管数字显示控制等。

2.2 中断基本功能模块

中断、定时/记数和串行通信是单片机学习的难点,应该从简单的INT0中断开始,建立含有INT0中断的完整程序框架,让学生模仿中断控制寄存器IE、TCON设置和中断子程序的编写,进行中断响应过程仿真。学生一旦学会INT0中断的应用,INT1中断往往不需要具体讲解就会应用。对于T0、T1中断需要重点讲解工作方式控制寄存器TMOD。模仿教师的演示程序非常重要,以便让学生建立起含有所有中断及其子程序的完整程序框架,子程序内容可以自行设置,以便让学生掌握单片机程序的可移植性,而对不同的电路结构只需改变单片机端口和寄存器的相关参数。我们还要求学生建立自己的控制寄存器手册,将控制控制字结构和意义加以注释,方便编程时查找、理解和应用。

2.3 外围驱动高级功能模块

外围驱动模块的应用是针对外围硬件电路而言的,如常用的集成芯片:DS1302、AT24C02、DS18B20、TLC549、A/D模数转换芯片以及步进电机、红外线遥控模块等。虽然各种集成芯片驱动时序及其控制方法不相同,但无论是串口还是并口其读写方法是相同的。我们需要对不同芯片建立不同的驱动和控制子程序,讲清典型的控制方法,如AT24C02、A/D芯片的通信和控制。

3 硬件电路设计模块化

为了配合模块化的教学,硬件电路设计也应该模块化。将单片机的各个功能模块以独立的原理图形式出现,各个模块通过印制板上预留的连接器与系统主板进行连接,然后用排线组合成所需要的系统。硬件电路模块应包含两种基本模块:独立式键盘(或行列式键盘)模块和多位动态数码管显示模块。我们选取的应用模块有:RS232通讯模块、DS1302时钟模块、AD0832模数转换模块、LCD显示模块、EEPROM读写模块、串口通信模块、DS18B20温度测量模块及无线遥控模块等。

4 汇编语言编程与C语言编程融合

我们在教学中,应首先采用汇编语言,这有利于程序的模块化。一般用汇编进行数码管及键盘程序的编写,然后用C语言编写同样功能的模块进行对照,即横向融合。

学生可以先用WAVE软件进行汇编端口功能模块程序编写。为了过渡到C语言编程,同时用汇编语言和C语言编写中断基本功模块。对于外围硬件驱动因其功能强大,借助KEIL软件,独立用C语言程序。根据笔者多年的教学经验,以上的方法取得的教学效果良好。

5 结语

充分利用教学评价手段可以调动学生的学习积极性,教学过程中分三个阶段给出学习成绩:基本功能开发的书面报告和实际电路作品:40分;高级功能开发的书面报告和实际电路作品:40分;电路特色和功能创新、结合市场需要:20分。这样的评价可以激发学生的动手制作和编程热情,同时,也可以根据需要提高平时分数所占的比重,而期末考试的成绩只占总成绩的30%。这种评价体系更适合单片机实践教学。

采用单片机功能模块教学方法的是学生能够熟练掌握重点指令,编写并积累了大量的完整的实用单片机程序,能够熟练操作单片机开发的整套工具,以提高学生的动手能力和产品设计能力[3,4];整个学习过程中,先学的功能是下一功能的基础或子程序,功能开发相衔接,学习效率大大提高。

[1] 胡敬朋,王聪.单片机项目教学研究及实践[J].南京:电气电子教学学报,2009(5)

[2] 唐鸿儒;夏扬;黄亚忠.单片机课程的实践教学探索[J].南京:电气电子教学学报,2009(1)

[3] 刘国光.任务驱动法在单片机教学中的应用[J].北京:高等教育研究学报,2004(4)

[4] 孙肖子,吴鹏.美国工程教育改革计划简介及启示[J].南京:电气电子教学学报,1998(4)

猜你喜欢
数码管子程序功能模块
微课教学设计之“数码管动态显示”
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于ASP.NET标准的采购管理系统研究
输电线路附着物测算系统测算功能模块的研究
浅谈子程序在数控车编程中的应用
功能模块的设计与应用研究
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序