APP下载

任务驱动法在高职单片机课程教学中的应用

2011-10-19苏州建设交通高等职业技术学校

河南科技 2011年14期
关键词:初值计数器单片机

苏州建设交通高等职业技术学校 李 英

任务驱动法在高职单片机课程教学中的应用

苏州建设交通高等职业技术学校 李 英

单片机课程在我校从高职三年级下学期开始学习,学习两学期。高职生本身的特点是没有经过高中阶段,学习积极性不是很高,好奇心强,不太喜欢理论学习,尤其是深奥的专业理论,但是喜欢动脑筋,喜欢自己操作。而单片机课程作为电子信息工程专业主要的专业课之一,本身的特点是内容较多,且多是看不着摸不到的知识,因此,一般高职生认为单片机课程较为深奥,很难听懂学会。笔者个人在单片机课程的教学过程中,根据学生的特点,第一学期主要采用理论讲授,打好理论基础,第二学期主要是实践操作。在第一学期的理论讲授过程中,任务驱动法带来了较好的教学效果。

一、任务驱动法过程

以定时器/计数器部分内容为例,按照单片机教材本身的安排,先是半页介绍定时器/计数器的结构,然后两页介绍定时器/计数器的方式寄存器和控制寄存器(TMOD和TCON),接着三页介绍定时器/计数器的工作方式,最后介绍定时器/计数器的初始化程序设计,在程序设计中才牵涉定时器初值的计算公式和例题。也就是说,普通的教学时间每节课45分钟,需要整整一节课才能介绍完定时器/计数器所牵涉的理论知识,这一节课只需要学生认真听讲,然后第二节课才开始引入计算。可想而知,我们的学生在第一节课只是小部分同学睡着了,极个别同学发呆,还有一部分在挣扎着尽量不睡,其实什么也没听进去。这样的教学效果显然背离了我们教学的初衷。因此,笔者采取了任务驱动法教学。

首先介绍定时器/计数器在实际生活中的应用,比如,学校里提示上下课的自动铃声,自动洗衣机相关的洗涤时间、脱水时间,二极管的闪亮、彩灯循环等,通过这些应用引导学生的思考和兴趣,然后和单片机芯片定时器/计数器联系起来。最后设置问题——如何实现定时功能?带着问题,引导学生认真学习实现定时所需要的大概过程:首先进行定时器的初始化。通俗讲就是给定时器设置初值,因为单片机复位之后除了SP为07H,P0~P3口为0FFH之外,其余寄存器都是OOH。因此如果想定时,必须先设定初值,比如隔1秒二极管闪亮一次,那么就应该设置好1秒。另外,定时器的初始化还包括工作方式的设置,工作方式不同却可以同样实现定时的功能。接着启动定时器。然后判断定时器定时时间是否到,时间到后如何操作就可以完全按照实际需要去做了。那么,我们首先是要讲清楚,如何设置定时器工作方式,从而引出TMOD,进行详细介绍(图1)。

其中,M1M0的组合决定了工作方式:00,对应为方式0,01对应方式1,10对应方式2,11对应方式3。接着,是定时器初值的计算,先给出公式:定时时间t=(2N-X)×机器周期,其中,X为定时器的初值,从而可以推出初值X=2N-t/机器周期。而常见的机器周期只有两种,晶振为12MHz时,机器周期为1μs;晶振为6MHz时,机器周期为2μs。比如,定时器常用的工作方式只有方式0和方式1(应用最多),方式0对应的μ为13,方式1对应的n为16,从而只要知道定时时间就可以计算出初值。

二、例题

设定时器T0选择工作方式0,求最长定时时间,如果要实现定时时间为1ms,fosc=6MHz,试确定T0的初值。并编程实现,当定时时间到后将P1.4取反。

解:晶振fosc=6MHz 时,机器周期为2μs,T0处于工作模式0时,设定时时间为1ms时的初值为X,则X = 213-1ms/2μs = 8192-500 =7 692=1 111 000 001 100B。(1)

T0的高8位TH0= 11110000B,即F0H。

程序清单如下:

三、总结

整整两节课的时间,安排的内容较多,而除了第一节课刚开始的十几分钟内主要是教师本人在简单讲述,其他时间内几乎全体同学都在积极地参与计算、思考。当然,这期间教师要穿插提问和学生板演。事实证明,这两节课不仅学生的参与率很高,而且内容多,学生吸收的东西也多,甚至到下课时,仍有学生在讨论对方计算有失误,最后趁热打铁,布置的作业跟教学内容非常相似,既包括了理论知识的巩固,又有计算题目。笔者认为,这次打破传统的理论讲授,以提高学生积极性为目标,以学生参与为主线,采用任务驱动法的学习方法在实际教学中取得了明显的教学效果。

猜你喜欢

初值计数器单片机
具非定常数初值的全变差方程解的渐近性
采用虚拟计数器的电子式膜式燃气表
一种适用于平动点周期轨道初值计算的简化路径搜索修正法
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
三维拟线性波方程的小初值光滑解
计数器竞争冒险及其处理的仿真分析
Microchip推出两个全新PIC单片机系列
任意N进制计数器的设计方法