电子课件-《单片机应用技术(C语言)》-B02-9731 课题四

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课题四 单片机系统的基本应用
一、有参函数定义的一般形式
函数类型 函数名(形式参数表) //表明该函数带有参数传递
{ 局部变量定义; 函数体语句;
}
课题四 单片机系统的基本应用
1.函数返回值 函数返回值通过“return(x)”返回,返回值是通过 函数名带回的,所以一个函数只能有一个返回值。 2.形参与实参 形参:在定义函数时,函数名后面括号中的变量称为 “形参”,定义时不赋值,由调用函数将值传递过来。 实参:主调用函数后面括号中的表达式为“实参”, 实参必须有确定的值。该值在调用时按对应关系传递给形 参。注意:在C语言中参数的传递是单向的。
电路板背面
课题四 单片机系统的基本应用
步骤
说明
3.程序烧入、 运行并调试
彩灯运行图
示范图片
单击此处返回目录
课题四 单片机系统的基本应用
任务3 键控彩灯
1.了解按键的特性及其与单片机端口的连接方法。 2.掌握独立式按键扫描及软件消抖的编程原理。 3.能够设计并制作键控彩灯控制系统。
课题四 单片机系统的基本应用
课题四 单片机系统的基本应用
[例] 将无符号字符型变量m中的数据左环移n(n<8)位。 解: a = m <<n; //将变量m左移n位后并赋给中间变量a
b = m>>(8-n); /*将变量m右移(8-n)位后并赋给中间变量b m = a | b; /*将两个中间变量中的数据进行按位“或”运
算再返还给变量m,则此时m中的数据即为左环移n位后的结果 */
丰富的可直接调用的库函数是C51功能强大及其高效 率的重要体现之一,多使用库函数可使程序代码简化,结 构清晰,易于调试和维护。
课题四 单片机系统的基本应用
2.用户自定义函数 即用户根据自己的需要而编写的函数。从函数定义的 形式上可以划分为无参数函数、有参数函数和空函数。 无参函数的一般形式为: 函数类型 函数名(void) //用“void”声明该函数为
课题四 单片机系统的基本应用
[例] 有参函数的调用及声明。
#include <AT89X51.H>
// 包含AT89单片机寄存器的头文件
#include <stdio.h>
/*包含I/O库函数文件(它当中定义了C51中的输
入和输出函数)*/
int max(int x,int y);
//对max函数进行声明
/* 最外层循环共要循环10次,共计延时约为10×0.1s =1s*/
for(k=10 ; m>0 ; m--)
/*次外层循环共要循环200次,共计延时约为200×0.5ms=100ms=0.1s*/
for(j=200 ; j>0 ; j--)
/*内循环共要循环250次,共计延时约为250×2μs=500μs=0.5ms*/
//无参函数 {
局部变量定义; 函数体语句; }
课题四 单片机系统的基本应用
其中: 函数类型定义了该函数返回值的类型。 函数名后括号中的“void”,声明了该函数为无参函
数,可以省略不写,但括号不能少。 局部变量的定义就是对在本函数内部使用的变量进行
定义,只在本函数内部有效。它与全局变量相对,全局 变量则是定义在函数的外部,一般位于程序的顶部,它 的有效范围为从定义开始的位置到源文件结束。
花样 二
D8 D7 D6 D5 D4 D3 D2 D1 ☆☆☆☆☆☆☆☆ ★☆☆☆☆☆☆☆ ★★☆☆☆☆☆☆ ★★★☆☆☆☆☆ ★★★★☆☆☆☆ ★★★★★☆☆☆ ★★★★★★☆☆ ★★★★★★★☆ ★★★★★★★★
数据编码 0xff 0x7f 0x3f 0x1f 0x0f 0x07 0x03 0x01 0x00
课题四 单片机系统的基本应用
花样灯是按时间依次让灯呈现出规定的花样,相对跑马 灯来说,控制的显示数据之间没有规律,显示上具有多变性 和复杂性,如下图所示。
课题四 单片机系统的基本应用
本任务使用单片机的P2口控制8只LED,循环实现如下图 所示四种花样的显示,完成花样灯控制系统的设计与制作。
注: ★ 灯亮 ☆ 灯灭
课题四 单片机系统的基本应用
二、程序设计
根据上述设计思路编写完整的程序:
课题四 单片机系统的基本应用
三、程序输入与仿真调试
课题四 单片机系统的基本应用
四、制作硬件电路并调试
步骤
说明
示范图片
1.焊接前材料 参照元器件清
准备
单表
课题四 单片机系统的基本应用
步骤
说明
示范图片
电路板元件布局图 2.硬件焊接
课题四 单片机系统的基本应用
二、移位运算符 C51 中 移 位 运 算 符 主 要 包 括 左 移 ( “ <<” ) 和 右 移
(“>>”)两种。 “<< ”运算符的功能是:将一个二进制数的各位全部
左移若干位,移动过程中,高位舍弃,低位补0。 “>>”运算符的功能是:将一个二进制数的各位全部
右移若干位,移动过程中,低位舍弃,高位补0。
课题四 单片机系统的基本应用
花样 三

D8 D7 D6 D5 D4 D3 D2 D1 ☆☆☆☆☆☆☆☆ ☆★☆★☆★☆★ ★☆★☆★☆★☆ ☆★☆★☆★☆★ ★☆★☆★☆★☆ ☆☆☆☆☆☆☆☆ ☆☆☆☆★★★★ ★★★★☆☆☆☆ ☆☆☆☆★★★★ ★★★★☆☆☆☆ ☆☆☆☆☆☆☆☆
数据编码 0xff 0xaa 0x55 0xaa 0x55 0xff 0xf0 0x0f 0xf0 0x0f 0xff
在C51中若要实现汇编移位指令中的环移功能,可以 借助C编译系统中的“INTRINS.H”库函数,其中包含了字 符循环左移(_crol_)和字符循环右移(_cror_)指令。
课题四 单片机系统的基本应用
三、延时程序 采用for三重循环语句结构完成1s延时的函数:
void delay1s(void) //定义一个延时为1s的无参函数供主函数调用 { unsigned char i, j, k; //局部变量定义
课题四 单片机系统的基本应用
步骤
说明
示范图片
电路板元件布 局图
2.硬件焊接
电路板背面
课题四 单片机系统的基本应用
步骤
说明
3.程序烧入、 跑马灯运行
运行并调试

示范图片
单击此处返回目录
课题四 单片机系统的基本应用
任务2 花样灯
1.了解花样灯的工作过程。 2.掌握查表程序的设计方法。 3.掌握有参函数的调用及声明。 4.能够设计并制作花样灯控制系统。
一、设计并绘制电路原理图 单片机对LED控制的连接电路有两种方式,如下图所
示。相应地,硬件上的不同连接方式也决定了软件上的不 同控制逻辑,见下表:
端口控制逻辑电平
端口
LED状态
逻辑电平

0
P0.0

1

1
P2.0
Байду номын сангаас

0
课题四 单片机系统的基本应用
在Proteus中根据上述分析绘制跑马灯电路原理图:
AT89S51的I/O口在外接负载时,要注意其负载能力。P0每位可 驱动8个TTL负载,每一位最大的吸收电流为26mA,P1~P3口每位 可驱动4个TTL负载,每一位最大的吸收电流为15mA。
for(i=250 ; i>0 ; i--) ; /*最内层的循环体为空,循环每次延时2μs*/ }
课题四 单片机系统的基本应用
此延时函数的时间延时只是近似1s,而并非标准的1s 时间,因此只能用于对延时时间要求不是很准确的场 合,若要实现标准的1s延时,可利用以后学习的定时器 功能来完成。
课题四 单片机系统的基本应用
本 任 务 使 用 单 片 机 P0 口 连 接 8 只 彩 色 LED , 按 照 绿 、 黄、红顺序依次排开。使用两个独立按键,分别连接在单 片机的P2.0和P2.1口,实现下表中所述的控制要求,完成 键控彩灯控制系统的设计与制作。
按键编号 连接端口
K1
P2.0
K2
P2.1
按键功能说明 右移按键,彩灯右移一位点亮 左移按键,彩灯左移一位点亮
1
说明
D1亮 D2亮 D3亮 D4亮 D5亮 D6亮 D7亮 D8亮
课题四 单片机系统的基本应用
跑马灯的程序设计流程图如下图所示:
根据上述设计思路编写完整的程序:
课题四 单片机系统的基本应用
三、程序输入及仿真运行
课题四 单片机系统的基本应用
四、制作硬件电路并调试
步骤
说明
示范图片
1.材料准备
参照元器件 清单表
课题四 单片机系统的基本应用
[例] 定义一个返回两个整数的最大值的函数max( )。 int max( int x, int y ) { int z ; z = x > y ? X :y ; return(z); }
课题四 单片机系统的基本应用
二、有参函数调用的一般形式 函数名(实参列表); 有参函数在被调用时,调用函数将要运算的对象以
课题四 单片机系统的基本应用
本任务选用单片机P0口控制8只发光二极管(D1~D8), 使D1~D8由低位到高位依次点亮,时间间隔为1s,如此往复 循环,完成跑马灯控制系统的设计与制作。
课题四 单片机系统的基本应用
一、函数 1.标准库函数 即由C编译系统提供的库函数,在C编译系统中将一些
独立的功能模块编写成公用函数,并将它们集中存放在系 统的函数库中,供程序设计时使用。
//通过表达式求出最大值 //返回最大值
在C51程序设计中,一般将被调用函数放置于主调 用函数之前,这样可以在程序头省去对被调用函数的 声明。
课题四 单片机系统的基本应用
一、设计并绘制花样灯电路原理图
注意:在实际应用电路中,若接节日彩灯或广告霓虹灯,一般还需外 加隔离电路(光电耦合器)和驱动电路(如晶闸管或继电器等)。
课题四 单片机系统的基本应用
任务1 跑 马 灯 任务2 花 样 灯 任务3 键控彩灯 任务4 数显抢答器 任务5 简易数字秒表
课题四 单片机系统的基本应用
任务1 跑马灯
1.了解跑马灯的工作过程及控制原理。 2.掌握单片机I/O口控制外部负载的合理设计方法。 3.掌握移位和延时程序的设计方法。 4.能够设计并制作跑马灯控制系统。
main( )
//主函数
{ int a,b; SCON = 0x50; //串口工作于方式1,10位异步收发
TMOD = 0x20;
//定时器T1工作于方式2自动装入模式
TH1 = 0xFD;
//晶振11.0592MHz,波特率:9600
TI = 1;
//串行发送中断标志位置"1"
TR1 = 1;
//启动定时器T1
while(1)
{ printf(“please input a,b:\n”);
//输入要比较的两个整数
scanf("%d,%d",&a,&b); printf(“max is:%d\n”, max(a,b) ); //调用有参函数并输出最大值 } }
课题四 单片机系统的基本应用
int max(int x,int y) { int z; z=(x>=y?x:y); return(z); }
花样 一
D8 D7 D6 D5 D4 D3 D2 D1 ☆☆☆☆☆☆☆☆ ★☆☆☆☆☆☆★ ★★☆☆☆☆★★ ★★★☆☆★★★ ★★★★★★★★ ★★★☆☆★★★ ★★☆☆☆☆★★ ★☆☆☆☆☆☆★
数据编码 0xff 0x7e 0x3c 0x18 0x00 0x18 0x3c 0x7e
课题四 单片机系统的基本应用
课题四 单片机系统的基本应用
二、程序设计
输出端口
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
D8 D7 D6 D5 D4 D3 D2 D1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
课题四 单片机系统的基本应用
一、键盘及其接口
矩阵键 盘 独立键 盘
课题四 单片机系统的基本应用
独立式键盘的各个按键之间相互独立,每个按键独立 地与一根数据输入线(单片机并行I/O口或其他接口芯片 的并行接口)相连。常见的接口电路如下图所示。
+5V
U1
19 XTAL1 18 XTAL2
实参的形式传递给有参函数,有参函数再将运算对象 带入自身函数体内执行,并在函数结束时返回结果供 调用它的函数使用。
课题四 单片机系统的基本应用
三、自定义函数的声明 [extern] 函数类型 函数名(形式参数表);
函数的声明是把函数名字、函数类型以及形参的类 型、个数和顺序通知编译系统,以便调用函数时系统进 行对照检查。函数的声明后面要加分号。如果声明的函 数在文件内部,则声明时不用加“extern”,如果声明的 函数不在文件内部,而在另一个文件中,声明时须带 “extern”,指明使用的函数在另一个文件中。
相关文档
最新文档