《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现Word文档格式.docx
- 文档编号:19452582
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:17
- 大小:262.30KB
《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现Word文档格式.docx
《《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《《单片机C语言程序设计及仿真》教学设计项目三 流水灯的制作与实现Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
程序调试仿真
教学方法
讲授法、分组讨论
教学资源
多媒体教学设备、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.程序编写
reg51.h>
//调用头文件
sbitD1=P0^0;
//位定义
voidmain(void)//主程序
{ //开始
while
(1)//死循环,防止程序跑飞
{
D1=0;
//点亮发光二极管
}
}
4.程序仿真
学生:
在机房电脑上完成程序录入、仿真。
教师:
巡回指导。
讲解仿真结果
三、课堂总结
1.学生总结
(1)你的收获有哪些?
(2)你还有哪些知识没有掌握好?
2.教师总结点评
作业布置
1.创新提高练习
编写程序完成同时点亮发光极管D1和D3,D2和D4熄灭。
2.完成教材课后练习。
任务2发光二极管的闪烁
本任务主要学习C语言单片机各种数据类型;
变量的定义及声明;
编写和使用延时函数;
宏定义的使用;
编写二极管闪烁C程序;
利用Proteus软件调试仿真二极管闪烁程序。
会描述各种数据类型;
会编写和使用延时函数;
会使用宏定义。
会编写二极管闪烁C程序;
会利用Proteus软件调试仿真二极管闪烁程序。
延时函数的编写及使用;
发光二极管闪烁程序编写
1.任务描述
单片机的P1.0端口连接发光一个发光极管,通过编写程序实现发光二极管的闪烁。
1.C语言的基本数据类型
2.变量的定义和声明
(1)变量的定义
变量定义的一般形式:
变量类型 变量名;
如:
unsignedchari;
//定义无符号字符型变量i
(2)变量的声明
变量的声明有两种情况:
●一种是需要建立存储空间。
inta在声明的时候,就已经建立了存储空间。
●另一种是不需要建立存储空间。
externinta其中变量a在别的文件中定义的。
3.函数
(1)库函数
为了简化代码编写的难度,通常C编译器会将一些相对固定功能程序事先编写成函数,以库形式存储起来,这一类函数称为库函数。
头文件名>
或#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++);
要使发光二极管产生闪烁的效果,我们只需要让发光二极管亮一段时间,然后熄灭一段时间再亮一段时间......如此周而复始即可。
当单片机P1.0端口输出1个低电平0时,点亮发光二极管D1;
当单片机P1.0端口输出1个高电平1时,发光二极管D1熄灭。
在编写程序的时候,我们可以直接对单片机端口进行赋值,如:
P1=0xfe;
//发光二极管D1亮
P1=0xff;
//发光二极管D1灭
程序结构:
#deifneucharunsignedchar
voiddelayms(uintx)
voidmain()
while
(1)
发光二极管闪烁语句;
单片机端口P1.0和P1.1,分别连接发光二极管D1和D2,编写程序实现两只发光二极管交替闪烁。
任务流水灯的制作与实现
本任务主要学习C51语言中的各种运算符,并能灵活运用;
C51语言中的循环语句,并能合理运用循环语句编写程序;
流水灯工作原理;
流水灯程序;
调试仿真流水灯程序电路;
理解C51语言中的各种运算符,并能灵活运用;
掌握C51语言中的循环语句,并能合理运用循环语句编写程序;
理解流水灯工作原理;
会编写流水灯程序;
会对调试仿真流水灯程序电路;
C51语言中的循环语句;
C51语言中的各种运算符。
单片机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)
三、任务实施
要使发光二极管产生移动效果,可以让发光二极管亮一段时间后熄灭,然后转移动下一个发光二极管亮一段时间后熄灭......周而复始。
流水灯程序讲解:
num=0xfe;
//赋初值第一个灯亮0xfe;
for(i=0;
8;
i++)//8次循环
P1=num;
//把num变量的值送至单片机P1端口
delay_ms(500);
//延时500ms
num=num<
//下一个发光二极管亮
设计一个依次点亮的流水灯程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机C语言程序设计及仿真 单片机C语言程序设计及仿真教学设计项目三 流水灯的制作与实现 单片机 语言程序设计 仿真 教学 设计 项目 流水 制作 实现