《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现.docx
- 文档编号:6438853
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:17
- 大小:262.30KB
《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现.docx
《《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现.docx》由会员分享,可在线阅读,更多相关《《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现.docx(17页珍藏版)》请在冰豆网上搜索。
《单片机C语言程序设计及仿真》教学设计项目三流水灯的制作与实现
项目三流水灯的制作与实现教学设计
任务(课题)名称
任务1点亮发光二极管
授课班级
课型
理实一体化
课时
4
授课时间
任务(教学内容)描述
本任务主要学习简单C语言程序结构;利用位定义方式点亮发光二极管的方法;编写、调试和仿真“点亮发光二极管”C程序。
教学目标
知识目标
学会分析电路的方法;
理解简单C程序的结构;
理解位操作的应用;
能力目标
会利用keil软件编写C程序;
会利用Proteus软件仿真调试C程序;
情感态度与
价值观目标
培养学生自主讨论学习的能力;
教学重
难点
重点
C程序的结构;程序调试仿真
难点
C程序的结构;
教学方法
讲授法、分组讨论
教学资源
多媒体教学设备、PPT、EDA仿真机房
教学过程
教学环节
教学内容
知识点与技能点
一、布置任务
任务描述
单片机P0.0端口连接一个发光二极管D1,编写程序点亮D1。
二、新课讲解
1.发光二极管简介
发光二极管,俗称LED,是由半导体砷、磷、镓及其化合物制成的二极管,它不仅具有单向导电性,而且通电后能发出红、黄、绿等鲜艳的色光,它工作时只需加1.5-3V正向电压和几毫安电流就能正常发光,在使用需串联一个限流电阻。
它体积小、反应快、价廉并且工作可靠,广泛应用于各种指示电路当中。
2.单片机常用术语
●位(Bit)
位是指一个二进制位,它是计算机中所能表示的最小数据单位。
用b表示。
●字节(Byte)
由8位二进制数构成。
●字(Word)及字长
若干个字节定义一个字。
一个字所包含的二进制位数称为字长,字用W表示。
一般微机中定义一个字长为2个字节。
●常量
在程序执行过程中,其值不发生改变的量称为常量。
●变量
在程序执行过程中,取值可变是量称为变量。
3.头文件
调用头文件的格式:
#include<>格式:
引用标准头文件,编译器从标准库目录开始搜索。
#include””格式:
引用非标准头文件,编译器从用户的工作目录开始搜索。
4.位定义
sbit
sbit:
表示位的意思,它是非标准C语言的关键字,编写程序时如需操作寄存器中的某一位时,需定义一个位变量,此时需要用到sbit,如D1=P0^0;,EA=0xaf;
5.C语言编程的基本语法和格式要求
(1)括号的用法
C语言中常用的4种括号。
它们分别是大括号“{ }”、圆括号“( )”、方括号“[ ]”、尖括号“<>”。
(2)C语言中逗号“,”和分号“;”的用法。
1.任务分析
根据电路图分析,发光二极管D1的负极连在单片机P0.0端口,发光极管的正极通过限流电阻R接在5V电源的正极。
根据二极管的单向导电性可知,通过编程使单片机P0.0输出一个低电平0即可点亮发光二极管。
2.程序流程图
3.程序编写
#include
sbitD1=P0^0;//位定义
voidmain(void)//主程序
{ //开始
while
(1)//死循环,防止程序跑飞
{
D1=0;//点亮发光二极管
}
}
4.程序仿真
学生:
在机房电脑上完成程序录入、仿真。
教师:
巡回指导。
讲解仿真结果
三、课堂总结
1.学生总结
(1)你的收获有哪些?
(2)你还有哪些知识没有掌握好?
2.教师总结点评
作业布置
1.创新提高练习
编写程序完成同时点亮发光极管D1和D3,D2和D4熄灭。
2.完成教材课后练习。
项目三流水灯的制作与实现教学设计
任务(课题)名称
任务2发光二极管的闪烁
授课班级
课型
理实一体化
课时
4
授课时间
任务(教学内容)描述
本任务主要学习C语言单片机各种数据类型;变量的定义及声明;编写和使用延时函数;宏定义的使用;编写二极管闪烁C程序;利用Proteus软件调试仿真二极管闪烁程序。
教学目标
知识目标
会描述各种数据类型;
会编写和使用延时函数;
会使用宏定义。
能力目标
会编写二极管闪烁C程序;
会利用Proteus软件调试仿真二极管闪烁程序。
情感态度与
价值观目标
培养学生自主讨论学习的能力;
教学重
难点
重点
延时函数的编写及使用;发光二极管闪烁程序编写
难点
发光二极管闪烁程序编写
教学方法
讲授法、分组讨论
教学资源
多媒体教学设备、PPT、EDA仿真机房
教学过程
教学环节
教学内容
知识点与技能点
一、布置任务
1.任务描述
单片机的P1.0端口连接发光一个发光极管,通过编写程序实现发光二极管的闪烁。
二、新课讲解
1.C语言的基本数据类型
2.变量的定义和声明
(1)变量的定义
变量定义的一般形式:
变量类型 变量名;如:
unsignedchari;//定义无符号字符型变量i
(2)变量的声明
变量的声明有两种情况:
●一种是需要建立存储空间。
如:
inta在声明的时候,就已经建立了存储空间。
●另一种是不需要建立存储空间。
如:
externinta其中变量a在别的文件中定义的。
3.函数
(1)库函数
为了简化代码编写的难度,通常C编译器会将一些相对固定功能程序事先编写成函数,以库形式存储起来,这一类函数称为库函数。
#include<头文件名>或#include”头文件名”。
(2)自定义函数
用户根据自已需要编写的完成相应功能的程序段,这一类函数称为自定义函数。
其格式如下:
类型标识符 函数名(形式参数列表)
{
声明部分;
语句部分;
}
如:
voiddelay_ms(unsignedintx)//定义延时函数
(3)函数的声明和调用
●函数的声明
函数声明的一般格式:
类型标识符 函数名(参数类型1形参名,参数类型2形参2……,参数类型n形参n);
如:
voiddelay_ms(unsignedintx);//对延时函数进行声明
●函数的调用
调用函数的一般格式:
无参数函数调用的一般形式:
函数名();如:
delay_ms();//调用延时函数
有参数函数调用的一般形式:
函数名(有数列表);如:
delay_ms(500);//调用延时函数,实参值为500
4.宏定义
宏定义的作用是用一个标识符(宏名)来表示一个字符串,其格式为:
#define标识符(宏名) 字符串
如:
#defineuintunsignedint
#defineucharunsignedchar
5.延时函数编写
延时函数由循环语句构成:
while,for循环等。
ms级延时函数编写
voiddelayms(uintx)//当晶振为12MHz时,延时xms;
{
uchari;
while(x--)
for(i=0;i<123;i++);
}
1.任务分析
要使发光二极管产生闪烁的效果,我们只需要让发光二极管亮一段时间,然后熄灭一段时间再亮一段时间......如此周而复始即可。
当单片机P1.0端口输出1个低电平0时,点亮发光二极管D1;当单片机P1.0端口输出1个高电平1时,发光二极管D1熄灭。
在编写程序的时候,我们可以直接对单片机端口进行赋值,如:
P1=0xfe; //发光二极管D1亮
P1=0xff; //发光二极管D1灭
2.程序流程图
3.程序编写
程序结构:
#include
#defineuintunsignedint
#deifneucharunsignedchar
voiddelayms(uintx)
{
}
voidmain()
{
while
(1)
{
发光二极管闪烁语句;
}
}
4.程序仿真
学生:
在机房电脑上完成程序录入、仿真。
教师:
巡回指导。
讲解仿真结果
三、课堂总结
1.学生总结
(1)你的收获有哪些?
(2)你还有哪些知识没有掌握好?
2.教师总结点评
作业布置
1.创新提高练习
单片机端口P1.0和P1.1,分别连接发光二极管D1和D2,编写程序实现两只发光二极管交替闪烁。
2.完成教材课后练习。
项目三流水灯的制作与实现教学设计
任务(课题)名称
任务流水灯的制作与实现
授课班级
课型
理实一体化
课时
4
授课时间
任务(教学内容)描述
本任务主要学习C51语言中的各种运算符,并能灵活运用;C51语言中的循环语句,并能合理运用循环语句编写程序;流水灯工作原理;流水灯程序;调试仿真流水灯程序电路;
教学目标
知识目标
理解C51语言中的各种运算符,并能灵活运用;
掌握C51语言中的循环语句,并能合理运用循环语句编写程序;
理解流水灯工作原理;
能力目标
会编写流水灯程序;
会对调试仿真流水灯程序电路;
情感态度与
价值观目标
培养学生自主讨论学习的能力;
教学重
难点
重点
C51语言中的循环语句;C51语言中的各种运算符。
难点
C51语言中的循环语句;C51语言中的各种运算符。
教学方法
讲授法、分组讨论
教学资源
多媒体教学设备、PPT、EDA仿真机房
教学过程
教学环节
教学内容
知识点与技能点
一、布置任务
任务描述
单片机P1端口连接8个发光二极管,通过对发光二极管点亮时间及顺序的控制,产生“流水灯”循环效果。
二、新课讲解
1.流水灯工作原理
采用位运算符及其循环语句,这样可以简化程序,节约单片机资源,提高程序执行效率。
表达式:
num=num<<1|0x01;//定义一个保存移位运算的变量num。
2.运算符
(1)算术运算符
(2)赋值运算符
赋值运算符(=),在C51中它的功能是给变量赋值。
它的作用是将一个数据赋给一个变量。
如:
a=3;//把常数3赋给变量a
(3)自增、自减运算符
C51语言中除了基本的加减乘除运算符之外,还提供一种特殊的运算符:
++//自增运算符
--//自减运算符
自增和自减运算符的作用是使变量加1或减1。
++i使用i的值之前先使i加1,然后再使用i的值;
--i使用i的值之前先使i减1,然后再使用i的值;
i++使用完i的值以后,再让i的值加1;
i--使用完i的值以后,再让i的值加1;
++i和i++的运算类似,相当于执行i=i+1操作,但它们也不有同之处。
(4)关系运算符
(5)位运算符
(6)复合赋值运算符
3.程序
(1)程序的构成
一个完整的C程序可由一个主函数和若干个函数组成,由主函数调用其他函数,其他函数也可互相调用。
同一个函数可以被一个或多个函数调用任意多次。
C语言中的主函数为main()函数。
(2)程序的注释
为了提高程序的可读性,要以程序行的适当位置加入注释。
注释形式一般有两种:
●单行注释:
直接在该行需要注释的地方加“//”。
其格式:
//注释文字及符号
“//”后面的部分就被注释了,在程序编译时不起作用,但“//”前面的部分不受影响。
●多行注释:
在需要注释的段落开始位置加入“/*”,结束位置于加“*/”。
其格式:
/*
注释文字
注释文字
......
*/
(3)局部变量与全局变量
●局部变量:
在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,即只有在本函数内才能作用此变量,称之为“局部变量”。
●全局变量:
在函数之外定义的变量称为全局变量。
全局变量可以在本文件中供所有的函数使用。
它的有效范围从定义变量的位置到本源文件结束。
4.循环语句
(1)while语句
while(表达式)
{
语句;
}
(2)do-while语句
do
{
语句;
}
while(表达式);
(3)for语句
for语句的一般形式为:
for(表达式1;表达式2;表达式3)
{
语句;
}
三、任务实施
1.任务分析
要使发光二极管产生移动效果,可以让发光二极管亮一段时间后熄灭,然后转移动下一个发光二极管亮一段时间后熄灭......周而复始。
2.程序流程图
3.程序编写
流水灯程序讲解:
num=0xfe;//赋初值第一个灯亮0xfe;
for(i=0;i<8;i++)//8次循环
{
P1=num;//把num变量的值送至单片机P1端口
delay_ms(500);//延时500ms
num=num<<1|0x01;//下一个发光二极管亮
}
4.程序仿真
学生:
在机房电脑上完成程序录入、仿真。
教师:
巡回指导。
讲解仿真结果
三、课堂总结
1.学生总结
(1)你的收获有哪些?
(2)你还有哪些知识没有掌握好?
2.教师总结点评
作业布置
1.创新提高练习
设计一个依次点亮的流水灯程序。
2.完成教材课后练习。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机C语言程序设计及仿真 单片机C语言程序设计及仿真教学设计项目三 流水灯的制作与实现 单片机 语言程序设计 仿真 教学 设计 项目 流水 制作 实现