当前位置:首页 期刊杂志

高职单片机教学研究——定时器应用教学

时间:2024-05-04

季红梅 / 安徽财贸职业学院

高职单片机教学研究
——定时器应用教学

季红梅 / 安徽财贸职业学院

教学须因材施教、因人施策。面对高职学生群体,运用怎样的教学方法才能达到最佳教学效果呢?根据自己多年教学体会,认为高职课堂教学,既不能等同于高中教学,也不能完全照搬高校教学,它必须具有高职的特色:理论适用、技能为主,课堂教学既要注重知识性,更要注重趣味性,通过学生跟着老师做、学生学着自己做、理论实践相结合、现场教学做总结的方式,达到加快理解掌握单片机功能应用的技能。

高职教学;单片机应用;理论结合实训

1.引言

单片机在工业仪表、实时分散控制、物联网应用等方面都有着不可或缺的作用。在高职学院单片机的课堂教学成为电子技术、物联网技术甚至计算机应用专业等相关专业的重要专业基础课,特别是当前各类高职技能大赛项目的机器人控制、非接触识别等科目,单片机相关知识点的学习掌握更是重中之重。而常规的单片机教学模式是从芯片原理到编程使用讲解,理论性强、记忆内容多,往往一开始就使得不少学生难以理解接授,产生畏难情绪。因此,设计出一套适合高职学生的教、学、做一体化模式,就像过去师傅带徒弟一样,使学生通过做、学、教的实践体会,真正在做中学,在实践中理解,在理解中提升,达到加快理解掌握单片机功能应用技能的教学目标。下面本人以定时器的教学设计为例,设计教学模式如下。

2.概述单片机的实用性与基础知识

首先,在开始定时器知识点教学之前,应该通过实验演示、图片、视频等方式给同学们展示单片机的应用实例,同时启发大家推举生活中遇到的相关实例,越是接近生活的实例越是能激起同学们学习的兴趣。教师需要充分准备具备较强的相关知识应对学生提出的难题实例,适当引用到后续实训中。

其次,对于学习单片机相关专业的同学,都能熟练使用电脑的优势,以电脑为例,用比拟法教学,使得同学们基本了解单片机的基本构件,参见图 1。

图1 功能比较图

其三,强化二进制与十六进制的应用知识教学。计算机基础对于二进制的教学仅仅告诉了同学们一种数制方式,我们需要同学们充分了解以下问题:

1.什么是二进制?一个字节几位二进制数?

2.什么是十六进制?一个十六进制表示几个字节?

3.为何要使用二进制、十六进制?

4.十进制数0-15用十六进制如何表示?

5.一个字节用十六进制如何表示?

6.二进制与十六进制如何快速转换?

其四,在充分了解了二进制与十六进制,掌握位操作的概念,认识0和1标识的状态应用,特别是必须牢记如何置0与位置1。对于位置0和位置1总结出一个算式,能理解就自己设置,不能理解就按照老师给的算式设置,强行记忆。

位操作要点:

1.能够直接位访问的,直接设置

例如:EA=0 或 EA=1

2.字节访问的位操作,改变操作的某位,不能影响其他位的状态

置0用&=~算式,置1用|=。(案例略)

通过一定数量的练习,保证同学们能够熟练进行状态设置位操作。基础准备好了,兴趣提起来了,能够使得同学们期待你的下一次课程,那么你才是成功的授者。

3.定时器的模式和应用

单片机以CC2530为教学应用对象。

在开始定时器教学之前,需要通过几个小实验,展示位操作的学习成果,学习通过I/O口寄存器的设置,设计LED灯的每秒闪烁一次的实验,通过不同参数调整延时,可以体会一下要求达到的时间精度的不可控性,导出了精确时间定时需要定时器…通过精确计算时间,获得准确的LED定时闪烁。

CC25030定时器T1的主要功能是这样介绍的:

◆五个捕获/比较通道

◆16位定时器

◆自由运行、模模式、正数/倒数计数操作

◆时钟分频系数:1、8、32、128

◆在每个捕获/比较和最终计数上生成中断请求

如果我们就是上述功能展开教学,能听下去的同学可预见的是寥寥无几。所以教学设计直奔主题:T1是16位定时器,有自由重载模式、模模式、正倒数模式,计数范围0-65535(复习十六进制,讨论此数来由),假定使用32MH时钟,分别带同学们学习三种不同模式下的定时器的应用。

(1)计数次数获得

计数的时间间隔由时钟频率计算获得,假设使用32MHz时钟8分频,获得0.5s的时间间隔,需要计数多少次数呢?频率Hz的倒数是秒,定时器计数次数获得:需要的时间秒数/(1/分频后频率Hz),如果次数大于65535,需要程序控制计数若干次。0.5s/(1/(32*106/8))s就是0.5s需要的计数次数,计算结果大约是65535*30次。

(2)自由重载模式

所谓自由重载模式就是,16位计数器从0开始计数加1直到65535时加1计数溢出,计数器重新载入0再次计数到65535如此重复。参见图2。

图2 自由重载模式

自由重载模式案例参考代码:32MHz时钟8分频,获得0.5s的时间间隔LED闪烁,时间间隔精确度有差异。

#include "ioCC2530.h" // 引用头文件,包含对CC2530的寄存器、中断向量等的定义

//定义led灯端口

* 函数名称:init

* 功 能:初始化系统IO,定时器T1控制状态寄存器

(3)模模式

自由重载模式计数次数区间是0-65535很难匹配精确的适合秒数的计数次数,因此导出使用模模式。模模式是采用比较计数次数达到T1CC0寄存器指定的参数(初始化中预置)时,计数溢出计数器重新载入0再次计数到T1CC0。参见图3。例如:32MHz并128分频时获得0.5s计数次数是62500*2即可,可以获得精确定时计数。

图3 模模式

模模式下案例:32MHz时钟128分频,获得0.5s的时间间隔LED闪烁,时间间隔精确度无差异。修改参数如下:

T1CTL=0x0e; // 配置128分频,模模式计数工作模式,并开始启动

T1CCTL0 |= 0x04; //设定timer1通道0比较模式,定时器1的通道0的中断

//使能T1CCTL0.IM默认使能

T1CC0L =62500 & 0xFF; // 把62500的低8位写入T1CC0L

T1CC0H=((62500& 0xFF00) >> 8); //把 62500 的高 8 位写入T1CC0H

//计数次数为2次即可获得0.5s计时间隔。

(4)正倒数模式

正倒数模式即是计数器0加到T1CC0上限再减到0为一次计数溢出,相当于二次模模式。参见图4。例如:32MHz128分频时获得0.5s计数次数是1次,可以获得精确定时计数。

图4 正倒数模式

正倒数模式下案例:32MHz时钟8分频,获得0.5s的时间间隔LED闪烁,时间间隔精确度无差异。修改参数如下:

T1CTL=0x0f; // 配置128分频,模比较计数工作模式,并开始启动

T1CCTL0 |= 0x04; //设定timer1通道0比较模式,定时器1的通道0的中断

//使能T1CCTL0.IM默认使能

T1CC0L =62500 & 0xFF; // 把62500的低8位写入T1CC0L

T1CC0H=((62500& 0xFF00) >> 8); //把 62500 的 高 8 位 写 入T1CC0H

//计数次数为2次即可获得0.5s计时间隔。

(5)CC25030其他定时器T2、T3、T4简介

T2定时器被系统使用,T3、T4基本功能与T1类似,但要注意,只有T1定时器为16为定时器,其他均为8为定时器,相同的定时间隔相差256倍。

(6)设计实验案例

定时LED灯闪烁,定时跑马灯(正向反向变换),定时显示计数等等。几种功能可以通过按键切换,通过调整按键延时,观察按键反应时间,引导出后续知识点中断功能的应用。

4.教学方法与教学设备利用

(1)教学方法

常规做法是教师教(理论或原理)学生听学,本课程采用教师做学生模仿做,实现练习目标之后,总结实现实训的过程(步骤),再对应原理(理论)加以理解。教师提出拓展目标案例,学生在理解的基础上完成拓展实训。总结为:做、学、教,拓展提升。

(2)教学设备利用

由于场地受限,本实验室目前仅有13套设备,教师使用一套,同时只能有12组学生参与实验,对于近50人的班级,我们采用分2组且同学自带笔记本上课方式,二人一组共享一套设备,基础设计编程使用各自的笔记本电脑,连接调试分时使用实验设备,既充分利用设备资源也能达到高效教学的目标。

经过二届学生的教学实践,学生基本都能够掌握教授单片机的应用技能。教学过程中,尽量将学习的知识点划分为几个固定的基本步骤,一点一点添加或通过循序渐进修改初始化的部分参数,即可实现不同类型的设置方式,完成相关要求项目,方便学生学习及记忆。开始学生按照老师要求的方法记忆式学做实验,多做几个实验,即可在教师的指导启发下完成自主设计的实验项目,在最后的课程实训周,能够独立完成较高难度的综合实训项目,达到教学目标。

[1]姜仲 刘丹 ZigBee技术与实训教程[M]北京 清华大学出版社 2014.

[2]物联网无线传感网实训教程[M]北京 新大陆时代教育科技有限公司 2014.

[3]本书编委 ZigBee技术开发-CC2530单片机原理及应用[M]北京 清华大学出版社 2015.

[4]杨玥 单片机与接口技术-基于CC2530的单片机应用[M]北京 清华大学出版社 2017.

季红梅,安徽财贸职业学院 云桂信息学院。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!