单片机系统的基本应用.

上传人:我** 文档编号:117867338 上传时间:2019-12-11 格式:PPT 页数:80 大小:4.85MB
返回 下载 相关 举报
单片机系统的基本应用._第1页
第1页 / 共80页
单片机系统的基本应用._第2页
第2页 / 共80页
单片机系统的基本应用._第3页
第3页 / 共80页
单片机系统的基本应用._第4页
第4页 / 共80页
单片机系统的基本应用._第5页
第5页 / 共80页
点击查看更多>>
资源描述

《单片机系统的基本应用.》由会员分享,可在线阅读,更多相关《单片机系统的基本应用.(80页珍藏版)》请在金锄头文库上搜索。

1、课题课题 四 单单片机系统统的基本应应用 任务1 跑 马 灯 任务2 花 样 灯 任务3 键控彩灯 任务4 数显抢答器 任务5 简易数字秒表 课题课题 四 单单片机系统统的基本应应用 任务务1 跑马马灯 1了解跑马灯的工作过程及控制原理。 2掌握单片机I/O口控制外部负载的合理设计方法。 3掌握移位和延时程序的设计方法。 4能够设计并制作跑马灯控制系统。 课题课题 四 单单片机系统统的基本应应用 本任务选用单片机P0口控制8只发光二极管(D1D8) ,使D1D8由低位到高位依次点亮,时间间隔为1s,如此 往复循环,完成跑马灯控制系统的设计与制作。 课题课题 四 单单片机系统统的基本应应用 一、

2、函数 1标准库函数 即由C编译系统提供的库函数,在C编译系统中将一些 独立的功能模块编写成公用函数,并将它们集中存放在系 统的函数库中,供程序设计时使用。 丰富的可直接调用的库函数是C51功能强大及其高效 率的重要体现之一,多使用库函数可使程序代码简化,结 构清晰,易于调试和维护。 课题课题 四 单单片机系统统的基本应应用 2用户自定义函数 即用户根据自己的需要而编写的函数。从函数定义的 形式上可以划分为无参数函数、有参数函数和空函数。 无参函数的一般形式为: 函数类型 函数名(void) /用“void”声明该函数为 /无参函数 局部变量定义; 函数体语句; 课题课题 四 单单片机系统统的基

3、本应应用 其中: 函数类型定义了该函数返回值的类型。 函数名后括号中的“void”,声明了该函数为无参函数 ,可以省略不写,但括号不能少。 局部变量的定义就是对在本函数内部使用的变量进行 定义,只在本函数内部有效。它与全局变量相对,全局 变量则是定义在函数的外部,一般位于程序的顶部,它 的有效范围为从定义开始的位置到源文件结束。 课题课题 四 单单片机系统统的基本应应用 二、移位运算符 C51中移位运算符主要包括左移(“”)两种。 “”运算符的功能是:将一个二进制数的各位全部 右移若干位,移动过程中,低位舍弃,高位补0。 课题课题 四 单单片机系统统的基本应应用 例 将无符号字符型变量m中的数

4、据左环移n(n8)位 。 解: a = m (8-n); /*将变量m右移(8-n)位后并赋给中间 变量b m = a | b; /*将两个中间变量中的数据进行按位“或” 运算再返还给变量m,则此时m中的数据即为左环移n位后的结果 */ 在C51中若要实现汇编移位指令中的环移功能,可以 借助C编译系统中的“INTRINS.H”库函数,其中包含了字 符循环左移(_crol_)和字符循环右移(_cror_)指令。 课题课题 四 单单片机系统统的基本应应用 三、延时程序 采用for三重循环语句结构完成1s延时的函数: void delay1s(void) /定义一个延时为 1s的无参函数供主函数调用

5、 unsigned char i, j, k; /局部变量定义 /* 最外层循环共要循环10次,共计延时约为 100.1s =1s*/ for(k=10 ; m0 ; m-) /*次外层循环共要循环200次,共计延时约为 2000.5ms=100ms=0.1s*/ for(j=200 ; j0 ; j-) /*内循环共要循环250次,共计延时约为 2502s=500s=0.5ms*/ for(i=250 ; i0 ; i-) ; /*最内层的循环体为空,循环每次延时2s*/ 课题课题 四 单单片机系统统的基本应应用 此延时函数的时间延时只是近似1s,而并非标准的1s 时间,因此只能用于对延时时

6、间要求不是很准确的场合 ,若要实现标准的1s延时,可利用以后学习的定时器功 能来完成。 课题课题 四 单单片机系统统的基本应应用 一、设计并绘制电路原理图 单片机对LED控制的连接电路有两种方式,如下图所 示。相应地,硬件上的不同连接方式也决定了软件上的不 同控制逻辑,见下表: 端口控制逻辑电平 端口LED状态逻辑电平 P0.0 亮0 灭1 P2.0 亮1 灭0 课题课题 四 单单片机系统统的基本应应用 在Proteus中根据上述分析绘制跑马灯电路原理图: AT89S51的I/O口在外接负载时,要注意其负载能力。P0每位可 驱动8个TTL负载,每一位最大的吸收电流为26mA,P1P3口每位 可

7、驱动4个TTL负载,每一位最大的吸收电流为15mA。 课题课题 四 单单片机系统统的基本应应用 输 出 端 口 说 明 P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0 D8D7D6D5D4D3D2D1 11111110D1亮 11111101D2亮 11111011D3亮 11110111D4亮 11101111D5亮 11011111D6亮 10111111D7亮 01111111D8亮 二、程序设计 课题课题 四 单单片机系统统的基本应应用 跑马灯的程序设计流程图如下图所示: 根据上述设计思路编写完整的程序: 课题课题 四 单单片机系统统的基本应应用 三、程序输入及仿真运

8、行 课题课题 四 单单片机系统统的基本应应用 四、制作硬件电路并调试 步骤骤说说明示范图图片 1材料准备 参照元器件 清单表 课题课题 四 单单片机系统统的基本应应用 步骤骤说说明示范图图片 2硬件焊接 电路板元件布 局图 电路板背面 课题课题 四 单单片机系统统的基本应应用 步骤骤说说明示范图图片 3程序烧入、 运行并调试 跑马灯运行 图 单击此处返回目录单击此处返回目录 课题课题 四 单单片机系统统的基本应应用 任务务2 花样样灯 1了解花样灯的工作过程。 2掌握查表程序的设计方法 。 3掌握有参函数的调用及声明 。 4能够设计并制作花样灯控制系统。 课题课题 四 单单片机系统统的基本应应

9、用 花样灯是按时间依次让灯呈现出规定的花样,相对跑马 灯来说,控制的显示数据之间没有规律,显示上具有多变性 和复杂性,如下图所示。 课题课题 四 单单片机系统统的基本应应用 本任务使用单片机的P2口控制8只LED,循环实现如下 图所示四种花样的显示,完成花样灯控制系统的设计与制 作。 花样样D8D7D6D5D4D3D2D1数据编码编码 一 0 xff 0 x7e 0 x3c 0 x18 0 x00 0 x18 0 x3c 0 x7e 注: 灯亮 灯灭 课题课题 四 单单片机系统统的基本应应用 花样样D8D7D6D5D4D3D2D1数据编码编码 二 0 xff 0 x7f 0 x3f 0 x1f

10、 0 x0f 0 x07 0 x03 0 x01 0 x00 课题课题 四 单单片机系统统的基本应应用 花样样D8D7D6D5D4D3D2D1数据编码编码 三 0 xff 0 xaa 0 x55 0 xaa 0 x55 四 0 xff 0 xf0 0 x0f 0 xf0 0 x0f 0 xff 课题课题 四 单单片机系统统的基本应应用 一、有参函数定义义的一般形式 函数类型 函数名(形式参数表) /表明该函数带有参数传递 局部变量定义; 函数体语句; 课题课题 四 单单片机系统统的基本应应用 2形参与实参 形参:在定义函数时,函数名后面括号中的变量称为“ 形参”,定义时不赋值,由调用函数将值传

11、递过来。 实参:主调用函数后面括号中的表达式为“实参”,实参 必须有确定的值。该值在调用时按对应关系传递给形参。 注意:在C语言中参数的传递是单向的。 函数返回值通过“return(x)”返回,返回值是通过函 数名带回的,所以一个函数只能有一个返回值。 1函数返回值 课题课题 四 单单片机系统统的基本应应用 例 定义义一个返回两个整数的最大值值的函数max( )。 int max( int x, int y ) int z ; z = x y ? X :y ; return(z); 课题课题 四 单单片机系统统的基本应应用 二、有参函数调用的一般形式 函数名(实参列表); 有参函数在被调用时,

12、调用函数将要运算的对象以 实参的形式传递给有参函数,有参函数再将运算对象 带入自身函数体内执行,并在函数结束时返回结果供 调用它的函数使用。 课题课题 四 单单片机系统统的基本应应用 三、自定义函数的声明 extern 函数类型 函数名(形式参数表); 函数的声明是把函数名字、函数类型以及形参的类型 、个数和顺序通知编译系统,以便调用函数时系统进行 对照检查。函数的声明后面要加分号。如果声明的函数 在文件内部,则声明时不用加“extern”,如果声明的函数 不在文件内部,而在另一个文件中,声明时须带“extern” ,指明使用的函数在另一个文件中。 课题课题 四 单单片机系统统的基本应应用 例

13、 有参函数的调调用及声明。 #include / 包含AT89单片机寄存器的头文件 #include /*包含I/O库函数文件(它当中定义了C51中的输 入和输出函数)*/ int max(int x,int y); /对对max函数进进行声明 main( ) /主函数 int a,b; SCON = 0 x50; /串口工作于方式1,10位异步收发 TMOD = 0 x20; /定时器T1工作于方式2自动装入模式 TH1 = 0 xFD; /晶振11.0592MHz,波特率:9600 TI = 1; /串行发送中断标志位置1 TR1 = 1; /启动定时器T1 while(1) printf(“please input a,b:n”); /输入要比较的两个整数 scanf(%d,%d, printf(“max is:%dn”, max(a,b) ); /调用有参函数并输出最大值 课题课题 四 单单片机系统统的基本应应用 int max(int x,int y) int z; z=(x=y?x:y); /通过表达式求出最大值 return(z); /返回最大值 在C51程序设计中,一般将被调用函数放置于主调 用函数之前,这样可以在程序头省去对被调用函数的 声明。 课题课题 四 单单片机

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号