内容正文:
《单片机技术及应用》(高教版第四版) 教案
课 题
制作1位倒计时器(3)
课 型
理论
课 时
2
授课班级
授课时间
授课教师
教材分析
任务二为单片机定时器应用的核心实践章节,聚焦 “1 位倒计时器制作” 目标,系统讲解软件实现(流程图绘制→编程→仿真→下载)与硬件控制(定时器 0 中断应用)。教材采用 “任务驱动” 结构,通过流程图、代码示例(主函数、中断服务函数)及拓展任务(正计时器、分段显示),将定时器中断理论(50ms 中断→20 次累计 1 秒)与实际应用深度融合。作为衔接基础编程(数码管显示)与复杂控制(多任务调度)的关键环节,本节培养学生单片机实时控制能力(定时中断处理)和工程实践能力(软件调试→硬件验证),为后续开发多功能计时器、智能仪表等系统奠定基础,是掌握单片机定时器技术的核心实践任务。
学情分析
学生已掌握单片机基础编程(如数码管静态显示、简单延时函数),但对定时器中断应用(50ms 中断 20 次实现 1 秒计时)、程序流程图绘制及 Keil 工程编译流程认知较浅。部分学生熟悉 C 语言基础语法,但对中断服务函数编写(如定时器 0 中断函数)、寄存器配置(TMOD=0x01、TH0/TL0 初值计算)易出错,尤其在时间常数设置(50ms 定时的初值计算)和中断标志位处理上常因公式理解偏差导致计时不准。实践中,仿真调试时易因 HEX 文件加载错误或定时器参数配置不当出现倒计时异常;下载验证时,硬件接线(数码管与 P2 口连接)接触不良会影响显示效果。需通过流程图示例、代码逐行解析及 “仿真调试 - 硬件验证” 实践,强化定时器中断原理与程序调试能力,突破倒计时器的技术瓶颈。
学习目标
知识目标:
1. 了解定时器 / 计数器的工作方式及特点
2. 掌握定时 / 计数程序的编写方法
技能目标:
1. 能够在 1 位 LED 数码管上实现每秒倒计时,显示数字 “9~0” 循环往复
2. 能够完成 1 位倒计时器的程序流程图绘制、编程、仿真调试和程序下载验证功能
情感目标:
培养情绪管理与自我调节能力,在高强度工作中维持身心平衡与职业健康。
学习重难点
重点:
1. 软件和定时器实现 1 位倒计时器的编程思路和方法
2. 利用定时器中断实现 1 位倒计时器的编程
难点:
1. 准确计算定时器初值以实现所需的定时时间
2. 确保倒计时功能的准确实现
教学方法
案例分析、讲授法、小组讨论法
课前准备
1.查找相应网站资料,课堂演示使用。
2.学生课前预习。
教学媒体
电子课件、多媒体视频
教学过程
教学环节
教师活动设计
学生活动设计
设计意图
活动一:
创设情境
生成问题
【课程导入】
在之前我们已经学会了定时器 / 计数器的基本概念和工作方式,现在我们来进一步探讨如何制作1位倒计时器,以及思考程序是否可以优化。
【新知识传授】
· 软件实现
(1) 绘制程序流程图
① 启动流程图绘图软件 Diagram Designer,新建一个文件,文件名为 “软件实现 9~0 倒计时器.DDD”,设置图纸大小为 A4。
② 从右侧的标准框图符号库中拖取所需的框图符号,调整其大小和位置。
③ 在框图中输入文本。
④ 用指向线连接框图符号。
⑤ 保存文件。
(2) 编程(新建工程与源文件)
① 启动 Keil uVision2,新建一个工程文件 “软件实现 9~0 倒计时器.uV2”。
② 新建一个 C51 源程序文件 “软件实现 9~0 倒计时器.C”,将该文件加载到该工程中。
//软件实现9~0倒计时
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
uchar n=10;
uchar code SEG[10]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0×82,0xf8,0×80,0x90}; //共阳极数码管
void delay(uint ms); //函数声明
(3) 编程(新建工程与源文件)
void main(void)
{
while(1)
{
if(n==0)
n=9;
else
n--;
P2=SEG[n];
delay(1000);
}
}
void delay(uint ms) //函数定义
{
uchar i;
uint j;
for(j=0;j<ms;j++)
for(i=0;i<125;i++);
}
③ 编译,生成 HEX 文件 “软件实现 9~0 倒计时器.HEX”。
2.引导学生带着问题去课本寻找答案,明确本节课的学习内容。
3.展示本讲学习目标。
1. 接收并查看本节课堂任务书。
2. 了解学习目标,带着目标进行学习。
3. 观察生活中常见的多媒体信息形式,思考其背后的技术支撑。
4. 针对教师给出的问题,初步发表个人见解。
5. 目标明确:跟随教师引导,明确本节课学习目标。
1.以提问的方式导入课程,让学生带着问题有针对性的进行学习。
2.通过任务实施,调动学生积极性。
活动二:
调动思维
探究新知
【新知识传授】
· 软件实现
(1) 仿真调试与程序下载
1 启动仿真软件Proteus 7.4,新建一个仿真文件(软件实现 9~0 倒计时器.DSN)。
2 根据电路原理图绘制仿真电路图(省略复位和时钟电路),添加电源(VCC) 和地端,修改元件标号和标称值。
(1) 下载程序,验证功能
① 启动编程软件EasyPRO Programmer。
② 加载HEX 文件(静态显示一个字符.HEX)。
③ 单击“操作一键通”按钮,完成程序的下载。
④ 将单片机插到最小系统板的ZIF 插座上。
⑤ 加电,观察其功能。
2. 教师操作演示
3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。
1. 阅读探究:阅读课本相关内容,探究多媒体技术的产生背景。
2. 概念理解:理解多媒体、多媒体技术和多媒体系统的定义,并尝试用自己的话复述。
3. 要点记录:记录多媒体技术强调的要点,加深理解。
1. 了解学生现有知识储备。
2. 巩固练习。
活动三:
调动思维
探究新知
【新知识传授】
· 单片机定时器实现
(1) 编程思路
① 将共阳极数码管的段码表存入一个 ROM 数组中。
② 在数码管上显示数码 “9”。
③ 开定时器 0 中断,启动定时器 0,每 50 ms 中断一次,中断 20 次即 1s,此时将计时数值减 1,然后在数码管上显示对应的数值。
④ 当计时数值为 0 时,重新将计时数值置为 9,重复倒计时。
(2) 程序代码
① 启动 Keil uVision2,新建一个工程文件 “软件实现 9~0 倒计时器.uV2”。
② 新建一个 C51 源程序文件 “软件实现 9~0 倒计时器.C”,根据程序流程图,编写如下 C51 源程序代码。
· 编程实现
#include <reg51.h>
unsigned char counter = 0; // 记录中断次数的全局变量unsigned char i = 9; // 存放倒计时数值全局变量
unsigned char codeSEG[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99,
0x92, 0x82, 0xf8, 0x80, 0x90}; // 共阳极数码管段码表
void timer0(void) interrupt 1 using 0
{
TH0 = -50000 / 256; //重装50ms定时时间常数
TL0 = -50000 % 256;
counter++;
if (counter == 20) // 每计到20次中断,约为1s的时间(50ms×20 = 1s)
{
counter = 0;
if (i == 0)
i = 9; // 当计时数值为0时,重新将计时数值置为9,重复倒计时
else {
i--;
P2 = SEG[i]; // 取对应数字的段码,然后送P2口输出显示
}}
void main(void) {
P2 = SEG[9]; // 首先在数码管上显示9
TMOD = 0x01; // 定时器0,方式1
TH0 = -50000 / 256; // 50ms定时时间常数
TL0 = -50000 % 256;
EA = 1; // 开总中断
ET0 = 1; // 允许定时器0中断
TR0 = 1; // 定时器开始定时
while (1)
{;}
}
③ 编译,生成 HEX 文件 “软件实现 9~0 倒计时器.HEX”。
· 注意事项
· 定时器初值的计算要准确,以确保定时时间的精度。
· 定时器溢出标志位 TF0 需要在中断服务函数中手动清零。
2. 教师操作演示
3. 引导学生带着问题去课本寻找答案,明确本节课的学习内容。
1. 应用列举
2. 影响分析
3. 创新思考
1. 引导学生主动思考,发散思维,参与课堂。
2. 培养学生发现问题,解决问题的能力。
3. 了解相关知识。
4. 辩论形式让学生参与并归纳总结。
活动四:
巩固练习
素质提升
【随堂检测】
1 绘制程序流程图时,不需要保存文件。( )
2 在单片机定时器实现 9~0 倒计时器中,当计时数值为 0 时,会停止计时。( )
3 简述软件实现 9~0 倒计时器的主要步骤
4 阐述单片机定时器实现 9~0 倒计时器的编程思路
【分组讨论】
分组讨论,讨论如何优化行列矩阵式键盘电子密码锁的电路设计,提高其稳定性。分析在编程过程中,键盘扫描函数可能出现的问题及解决办法。
1. 答案交流
2. 话题讨论
3. 效率分析
4. 挑战探讨
5. 总结汇报
知识检测与巩固
课堂小结
作业布置
课堂小结
作业布置
复习本节课内容,预习下节课内容。
板书设计
1. 软件实现
2. 单片机定时器实现
教学反思
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$