资源描述
学 科
单片机控制系统运行与检修
授课班级
10411-10414
日期
5.9
课 题
任务9 可控霓虹灯控制
授课类型
项目教学
课时
2
教 材
单片机控应用技术(C语言版)
任课教师
课序
1-2
教学目标
认知目标
了解单片机中断系统的结构及与中断有关的寄存器、中断的开放与禁止
能力目标
掌握中断程序的编写技巧
情感目标
1、通过任务驱动项目教学培养学生学习电子专业单片机课程的浓厚兴趣;
2、养成做事耐心、细致、严谨的科学作风;
3、提高学生“6S管理”意识。
教学重点
中断程序的编写技巧
教学难点
中断程序的编写技巧
教学方法
讲练结合
课前准备
教师准备:1、教案设计2、课件准备;
学生准备:1、学生预习2、完成预习报告,明确任务
设计意图
教师要求学生课前预习,明确本次课学习的内容。教师在单片机实训室按照实训指导书的要求一步步完成相关的实训内容。在教师做适当讲解后尽量让学生自主学习,讨论学习,展示成果。进行总结。
教 学 过 程
教 学 内 容
教师活动
学生活动
一、实训目的
通过采用1个按键输入的可控霓虹灯系统的制作,了解单片机中断系统的结构及与中断有关的寄存器、中断的开放与禁止,以及中断程序的编写技巧。
二、实训要求
在任务3电路的基础上,增加一个按键,通过按键改变霓虹灯的显示方式。要求正常情况下8个霓虹灯依次顺序点亮,循环显示,时间间隔为1S。按键按下后8个霓虹灯同时亮灭一次,时间间隔为0.5S。用T1、工作方式1编制延时程序,按键动作采用外部中断INT0实现。
三、实训电路
可控霓虹灯电路如下图所示,与任务3电路相比,该电路只增加了一个按键,改按键与MCS-51系列单片机的外部中断INT0的终端输入引脚连接,当按键按下时,在引脚产生一个下降沿,向CPU申请中断
四、参考程序
//程序:ex4_3.c
//功能:可控信号灯程序
#include <reg51.h>
//函数名:delay0_5s
//函数功能:用T0的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,定
// 时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒
//形式参数:无
//返回值:无
void delay0_5s()
{
unsigned char i;
for(i=0;i<0x0a;i++) // 设置10次循环次数
{
TH0=0x3c; // 设置定时器初值
TL0=0xb0;
TR0=1; // 启动T0
while(!TF0); // 查询计数是否溢出,即定时50ms时间到,TF0=0
TF0=0; // 50ms定时时间到,将定时器溢出标志位TF0清零
}
}
//函数名:delay_t
//函数功能:实现0.5秒~128秒延时
//形式参数:unsigned char t;
// 延时时间为0.5秒×t
//返回值:无
void delay_t(unsigned char t)
{
unsigned char i;
for(i=0;i<t;i++)delay0_5s();
}
//函数名:int_0
//函数功能:外部中断0中断函数,当CPU响应外部中断0的中断请求时,自动执行该
// 函数,实现八个信号灯闪烁
//形式参数:无
//返回值:无
void int_0() interrupt 0 //外部中断0的中断号为0
{
P1=0x00; //熄灭八个信号灯
delay0_5s(); //调用0.5秒延时函数
P1=0xff; //点亮八个信号灯
delay0_5s(); //调用0.5秒延时函数
}
void main() //主函数
{
unsigned char i,w;
EA=1; // 打开中断总允许位
EX0=1; // 打开外部中断0允许位
IT0=1; // 设置外部中断为边沿(下降沿)触发方式
TMOD=0x01; // 设置T0为工作方式1
while(1) {
w=0x01; // 显示码初值为01H
for(i=0;i<8;i++)
{
P1=~w; // w取反后送P1口,点亮相应LED灯
w<<=1; // 点亮灯的位置移动
delay_t(2); // 调用延时函数delay_t(),实际参数为2,延时1秒
}
}
}
五、程序运行测试
编译、链接、接通电路板电源,即可观察到8个霓虹灯依次顺序点亮,循环显示,时间间隔为1S。按键按下后8个霓虹灯同时亮灭一次,时间间隔为0.5S。
六、任务小结
说明实训内容、目的
说明实训要求
说明实训电路仍旧用以前实训3的电路与任务3电路相比,该电路只增加了一个按键,改按键与MCS-51系列单片机的外部中断INT0的终端输入引脚连接,当按键按下时,在引脚产生一个下降沿,向CPU申请中断
要求学生自己编程序
教师指导
投影学生的程序,大家一起分析
要求学生编译、链接、调试程序
教师记录考核
要求学生小结
学生观看、思考
学生观看、思考
学生拿出以前做的电路,进行修改
学生思考、写程序
学生编程序
学生分析、发言、讨论
学生编译、链接、调试程序
学生小结
教 学 后 记
通过采用1个按键输入的可控霓虹灯系统的制作,学生了解单片机中断系统的结构及与中断有关的寄存器、中断的开放与禁止。学生掌握了中断程序的编写技巧。
学 科
单片机控制系统运行与检修
授课班级
10411-10414
日期
5.9
课 题
C语言的函数
授课类型
项目教学
课时
2
教 材
单片机应用技术(C语言版)
任课教师
王益军
课序
3-4
教学目标
认知目标
1、 知道C语言函数的分类和定义
2、知道函数调用的方法
能力目标
1、会使用标准函数、用户自定义函数
2、会进行函数调用
情感目标
1、通过任务驱动项目教学培养学生学习电子专业单片机课程的浓厚兴趣;
2、养成做事耐心、细致、严谨的科学作风;
3、提高学生“6S管理”意识。
教学重点
1、会使用标准函数、用户自定义函数
2、会进行函数调用
教学难点
1、会使用标准函数、用户自定义函数
2、会进行函数调用
教学方法
讲练结合
课前准备
教师准备:1、教案设计2、课件准备;
学生准备:1、学生预习2、完成预习报告,明确任务
设计意图
本次课理论知识比重较大,引入了一些新的概念。在多媒体教室中利用课件增加信息容量。采用抛出问题,教师引导,学生探究,相互评价的形式推动整体学习积极性。在教学中对于积极发言、探究的学生予以记录加分。
教 学 过 程
教 学 内 容
教师活动
学生活动
1、引入:什么是C语言程序?
(1)在C语言程序中,子程序的作用是由函数来实现的,函数是C语言的基本组成模块,一个C语言程序就是由若干个模块化的函数组成的。
(2)C程序都是由一个主函数main( )和若干个子函数构成,有且只有一个主函数,程序由主函数开始执行,主函数根据需要来调用其他函数,其它函数可以有多个。
函数分类和定义
2、标准库函数
标准库函数是由C51的编译器提供的,用户不必定义这些函数,可以直接调用。KEIL C51编译器提供了100多个库函数供我们使用。常用的C51库函数包括一般I/O口函数、访问SFR地址函数等,在C51编译环境中,以头文件的形式给出。
3、用户自定义函数
(1)特点:用户自定义函数是用户根据需要自行编写的函数,它必须先定义之后才能被调用。
(2)函数定义的一般形式是:
函数类型 函数名(形式参数表)
形式参数说明
{
局部变量定义
函数体语句
}
其中,“函数类型”说明了自定义函数返回值的类型。
“函数名”是自定义函数的名字。
“形式参数表”给出函数被调用时传递数据的形式参数,形式参数的类型必须要加以说明。ANSI C标准允许在形式参数表中对形式参数的类型进行说明。如果定义的是无参数函数,可以没有形式参数表,但是圆括号不能省略。
“局部变量定义”是对在函数内部使用的局部变量进行定义。
“函数体语句”是为完成函数的特定功能而设置的语句。
4、函数调用
函数调用就是在一个函数体中引用另外一个已经定义的函数,前者称为主调用函数,后者称为被调用函数,函数调用的一般格式为:
函数名(实际参数列表);
对于有参数类型的函数,若实际参数列表中有多个实参,则各参数之间用逗号隔开。实参与形参顺序对应,个数应相等,类型应一致。
在一个函数中调用另一个函数需要具备如下条件:
(1)被调用函数必须是已经存在的函数(库函数或者用户自己已经定义的函数。
如果函数定义在调用之后,那么必须在调用之前(一般在程序头部)对函数进行声明。
(2)如果程序使用了库函数,则要在程序的开头用#include预处理命令将调用函数所需要的信息包含在本文件中。如果不是在本文件中定义的函数,那么在程序开始要用extern修饰符进行函数原型说明。
5、举例:主函数中调用软件延时子程序。
6、小结
请学生观看P106,阅读、说明C语言程序。
什么是标准库函数,它有什么功用?
教师记录考核
什么是用户自定义函数,它有什么功用?如何使用?
教师记录考核
如何进行函数调用?
教师记录考核
提出问题
小结
学生观看P106,阅读、说明C语言程序
学生观看阅读、发言
学生观看阅读、发言
学生观看阅读、发言
学生思考回答
教 学 后 记
经过教学,学生会使用标准函数、用户自定义函数;会进行函数调用。达到预期教学目标。
展开阅读全文