《单片机课程教学案例》由会员分享,可在线阅读,更多相关《单片机课程教学案例(12页珍藏版)》请在金锄头文库上搜索。
1、单单片机片机课课程教学案例程教学案例单片机是一门综合性、实践性极强的课程,通常分为理论教学与实践教学两部分。由于单片机的概念多、专有名词多,内容抽象,指令丰富,且软、硬件发展很快,新器件不断,故相当多数量的学生在学习单片机时感到郁闷,实际使用不知如何下手,不能真正掌握单片机技术。因此,如何安排教学内容,使学生既能了解新技术又能对单片机的应用技术融会贯通;如何设计教学方法,激发学生的学习兴趣,真正理解和掌握单片机技术,是在单片机教学中需要解决的问题。针对教学对象的特点和课程特点,我们提出了“边学边干、边干边学、理论指导实践、实践带动理论”的教学理念,以达到“精理论、重实验、会设计”的人才培养效果
2、。 “精理论”,精化理论教学内容。从职业能力分析入手,确定教学的要求和知识点、突出课程的基本内容,精选、精讲、精练基础理论、基本概念、基本分析方法。在保证“必需、够用、管用”的原则下,坚决砍掉那些陈旧,与其他相关课程有重复或过于繁琐数学推导部分。吸收一些代表现代水平的新观点、新理论、新技术、新器件、新方法等内容,真正实现“厚基础”、“宽口径”的教学要求。“重实验”,建立“干中学”的思路,以任务驱动学生学习潜能和兴趣,改进实验内容和方法,变单一验证性实验为多类型实验,即有仿真型又有验证型、设计型和综合型。使学生在实验课上由被动转为主动,不再是依葫芦画瓢,培养他们严谨的科学作风,在最大程度上掌握所
3、学知识,并学以致用。 “会设计”,增设单片机课程设计,以选题的综合性和先进性为出发点。训练和提高学生综合素质,学会设计思路和方法。借鉴电子设计竞赛的经验,引入一定数量的综合性较强的电子综合系统设计的内容。下面以单片机定时器一节为例,介绍如何安排教学以体现我们所提倡的教学理念,并达到所期望的教学效果。授授课题课题目目:第五章 单片机定时器/计数器与中断系统一一一单片机的定时器/计数器课时课时安排安排:1 学时授授课类课类型型:理论课教学方式教学方式:讲授、讨论教学教学资资源源:多媒体、实物、黑板教学目的教学目的:知识目标-理解 51 单片机的计数功能、定时功能,预置数的意义;掌握计数初 值的计算
4、方法,定时器/计数器的工作方式以及相关的寄存器。能力培养目标-培养学生学习单片机的主动性,提高动手能力,发展分析和解决利用单 片机计数器/定时器进行应用设计过程中出现的问题的能力。情感目标激发学生强烈的求知欲,培养学生的积极探索、勇于创新的精神和工程意识。教学内容教学内容:基本内容-常用的定时方法,定时器/计数器的定时和计数功能,定时器/计数 器的控制寄存器,定时器的应用。重点-与中断控制相关的寄存器(TCON、SCON 等)。难点定时中断。参考参考资资料料:MCS-51/96 系列单片机原理及应用孙涵芳编,北航出版社教学教学过过程程设计设计:1.情景导入 师:从选票的统计谈起:画“正”。这就
5、是计数,生活中计数的例子处处可见。例如:家里 面用的电度表、汽车上的里程表等等。师:举一个工业生产中的例子,线缆行业在电线生产出来之后要计米,也就是测量长度, 怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很 巧妙的方法,用一个周长是 1 米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一 周不就是线长 1 米嘛,所以只要记下轮转了多少圈,就可以知道走过的线有多长了。师:单片机中的计数器的计数功能与此类似,不同的是例子中计的是轮子转的圈数,而 单片机的计数器计的是从单片机 P3.4、P3.5 引脚进入的脉冲的个数。我们今天就来学习 一下单片机的计数器/定时器及其应
6、用。(板书课题:51 单片机的计数器/定时器)师:说到容器,我们都知道它有一定的容量。比如从一个生活中的例子看起:一个水盆在 水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴不断落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满,装满水盆需要的水滴数量就是水盆的计数容量。那么单 片机中的计数器有多大的容量呢?(课件显示,引出计数器的容量)2.计数器的容量 MCS-51 单片机中有两个计数器,分别称之为 T0 和 T1,这两个计数器分别是由两个 8 位的 RAM 单元组成的,即每个计数器都是 16 位的计数器,最大的计数量是216=65536。师:计时器计满了会怎么样呢?让我们再来看水滴的例子
7、,当水不断落下,盆中的水不 断变满,最终有一滴水使得盆中的水满了。这时如果再有一滴水落下,就会发生什么现 象?水会漫出来,用个术语来讲就是“溢出”。 水溢出是流到地上,而计数器溢出后将 使得 TF0 位变为“1”,此时单片机自动将计数器清零。至于 TF0 位是什么我们稍后再 谈。师:拿出一个闹钟。(实物)请大家思考,我将它定时在 1 个小时后闹响,请问秒针动了多少次?生:回答 3600 次。师:也就是说,秒针走了 3600 下的时间正好是 1 个小时。换言之,时间就转化为秒针走 的次数的,也就是计数的次数了,可见,计数的次数和时间之间的确十分相关。那么它们 的关系是什么呢?那就是秒针每一次走动
8、的时间正好是 1 秒。请大家想一想,如果计数 器所计的脉冲的间隔相等,那么计数值是不是就代表了时间的流逝?(课件显示,引出 定时器) 3.定时 师:单片机中的定时器和计数器是一个东西,只不过计数器是记录的从单片机 P3.4、P3.5 引脚进入的脉冲的个数,这些脉冲的周期可能是未知的,也可能不是等间隔的,因此单 片机只能在脉冲的下降沿进行记录,每遇到一个下降沿记录一个数,因此只能记录脉冲 的个数,不能确定时间;而定时器则是由单片机提供一个非常稳定的计数源。那么提供 定时器的计数源是什么呢?看图所示。(课件显示)师:原来就是由单片机的晶振经过 12 分频后获得的一个脉冲源。晶振的频率当然很准, 所
9、以这个计数脉冲的时间间隔也很准。问题:一个 12M 的晶振,它提供给计数器的脉冲 时间间隔是多少呢?生:12M/12=1M,T=1/f=1/106s,就是 1 个微秒。 师:我们得出这样的结论:单片机的定时的本质就是计数,但计数脉冲的间隔与晶振有关, 12M 的晶振,计数脉冲的间隔是 1 微秒。师:前面我们提到,计数器计满了就会溢出,溢出后将使得 TF0 位变为“1”,就象定时 的时间一到,闹钟就会响一样。现在我们来研究另一个问题:要有多少个计数脉冲才会 使 TF0 由 0 变为 1。生:65536 个。师:不错。我们刚刚研究过,计数器的容量是 16 位,也就是最大的计数值到 65536,因此
10、 计数计到 65536 就会产生溢出。这个没有问题,问题是我们现实生活中,经常会有少于 65536 个计数值的要求,怎么实现?提示:如果是一个空的盆要 1 万滴水滴进去才会满,在开始滴水之前先放入一勺水,还 需要 10000 滴吗?生:不需要。师:对了,采用预置数的方法可以解决这个问题。(课件显示)师:通过上面的学习,我们知道单片机中的定时/计数器都可以有多种用途,那么怎样才 能让它们工作于我们所需要的用途呢?这就要通过定时/计数器的方式控制字来设置。 (课件显示)4.计数器/定时器的方式和控制寄存器 师:在单片机中有两个特殊功能寄存器与定时/计数有关,这就是 TMOD 和TCON。TMOD
11、和 TCON 是名称,我们在写程序时就可以直接用这个名称来指定它们。师:从图中我们可以看出,TCON 被分成两部份,高 4 位用于定时/计数器,低 4 位则用于中断(上节课学习过)。而 TF1(0)我们已经提到了,当计数溢出后,TF1(0)就由 0 变为1。原来 TF1(0)在这儿!那么 TR0、TR1 又是什么呢?TR0(1)称之为运行控制位,可用指令 SETB 来置位以启动计数器/定时器运行,用指令 CLR 来关闭定时/计数器的工作,一切尽在自已的掌握中。(课件显示)师:从图中我们可以看出,TMOD 也被分成两部分,每部分 4 位,分别用于控制 T1 和T0。其中,GATE 位为定时器/计
12、数器运行门控标志位。(课件显示定时器/计数器逻辑结构图)师:看图,当我们选择了定时或计数工作方式后,定时/计数脉冲却不一定能到达计数器端,中间还有一个开关,显然这个开关不合上,计数脉冲就没法过去,那么开关什么时候过去呢?有两种情况。GATE 位=0,分析一下逻辑,GATE 位经非门后是变为 1,进入或门,或门总是输出 1,和或门的另一个输入端无关,在这种情况下,开关的打开、合上只取决于 TR1,只要TR1 是 1,开关就合上,计数脉冲得以畅通无阻,而如果 TR1 等于 0 则开关打开,计数脉冲无法通过,因此定时/计数是否工作,只取决于 TR1。 GATE 位=1,在此种情况下,计数脉冲通路上的
13、开关不仅要由 TR1 来控制,而且还要受到引脚的电平状态来控制,只有 TR1 为 1,且引脚也是高电平,开关才合上,计数脉冲才得以通过。这个特性可以用来测量一个信号的高电平的宽度,想想看,怎么测? (留作思考题)师:-前面我们说过,定时/计数器既可作定时用也可作计数用,到底作什么用,由我们根据需要自行决定,也说是决定权在编程者。如果为位 0,就是用作定时器(开关往下打),如果 C/T 为 1 就是用作计数器(开关往下打)。(结合课件显示的逻辑结构图说明)。顺便提一下,一个定时/计数器同一时刻要么作定时用,要么作计数用,不能同时用的,这一点教材没有提到,但很多初学者却会有此困惑。师:M1M0-定
14、时/计数器一共有四种工作方式,就是用 M1M0 来控制的,2 位正好是四种组合,对应方式 0方式 3。(课件显示)师:定时器/计数器的工作方式 0 称之为 13 位定时/计数方式,它由 TL(1/0)的低 5 位和TH(0/1)的 8 位构成 13 位的计数器,此时 TL(1/0)的高 3 位未用,计数容量为 213。(课件显示工作方式 0 的逻辑结构图)为什么在这种模式下只用 13 位呢?干吗不用 16 位,这是为了和 51 机的前辈 48 系列兼容而设的一种工作方式。工作方式 1 是 16 位的定时/计数方式,除了计数容量变为 216 外,其它特性与工作方式 0 相同。师:我们知道,每当定
15、时器/计数器计满时会溢出,然后单片机自动将计数器清零,如果用户要计 100 个数,则计满后要重新给计数器设置初值,否则计数器将从 0 开始计,再次溢出时单片机计的不再是 100 个数,所以采用工作方式 0 或 1 都要在溢出后做一个重置预置数的工作,做工作当然就得要时间,一般来说这点时间不算什么,可是有一些场合我们还是要计较的,所以就有了第三种工作方式,即工作方式 2,这是一个自动重装入初值的 8 位定时/计数方式,只有低 8 位参与计数,而高 8 位不参与计数,用作预置数的存放。(课件显示工作方式 2 的逻辑结构图)。师:如图所示,每当计数溢出,就会打开 T(0/1)的高、低 8 位之间的开
16、关,预置数进入低8 位。这是由硬件自动完成的,不需要由人工干预。通常这种式作方式用于波特率发生器(我们将在串行接口中讲解),用于这种用途时,定时器就是为了提供一个时间基准。计数溢出后不需要做事情,要做的仅仅只有一件,就是重新装入预置数,再开始计数,而且中间不要任何延迟,可见这个任务用工作方式 2 来完成是最妙不过了。 师:工作方式 3 仅用于定时/计数器 0,此时定时/计数器 0 被拆成 2 个独立的定时/计数器来用。其中,TL0 可以构成 8 位的定时器或计数器的工作方式,而 TH0 则只能作为定时器来用。(课件显示工作方式 2 的逻辑结构图)。师:我们知道作定时、计数器来用,需要控制,计满后溢出需要有溢出标记,T0 被分成两个来用,那就要两套控制及溢出标记了,从何而来呢?TL0 还是用原来的 T0 的标记,而 TH0 则借用 T1 的标记,因此 T1 没有这种工作方式。师:学习了单片机的计数器/定时器的基础知识后,我们更关心的是在实际应用中如何使用它,下面我们以八只彩灯依次循环点亮为例加以说明。5.应用举例 师:我手中所拿的就是能实现彩灯依次循环点亮功能的实验