项目2简单IO口控制电路的制作

上传人:宝路 文档编号:48332553 上传时间:2018-07-13 格式:PPT 页数:53 大小:740.58KB
返回 下载 相关 举报
项目2简单IO口控制电路的制作_第1页
第1页 / 共53页
项目2简单IO口控制电路的制作_第2页
第2页 / 共53页
项目2简单IO口控制电路的制作_第3页
第3页 / 共53页
项目2简单IO口控制电路的制作_第4页
第4页 / 共53页
项目2简单IO口控制电路的制作_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《项目2简单IO口控制电路的制作》由会员分享,可在线阅读,更多相关《项目2简单IO口控制电路的制作(53页珍藏版)》请在金锄头文库上搜索。

1、项目二 简单I/O口控制电路设计项目二 简单I/O口控制电路设计 单片机的I/O口控制电路是单片机应用系统设计中 最基本、最简单的应用。 学会制作单片机应用电路是学好单片机的重要一 步。 在单片机控制系统中,通过I/O口进行开关量的控 制占较大的比重,如LED发光二极管的亮灭、电动 机的启停控制等。项目二 简单I/O口控制电路设计任务一 闪烁灯的制作 任务二 广告灯的制作 任务三 花样广告灯的制作 任务四 多路开关状态指示 任务五 继电器控制照明设备 项目二 简单I/O口控制电路设计 任务一 闪烁灯的制作在日常生活中,有各种各位的闪烁灯,有的应用于娱乐场 所,有的应用于店面等的装饰,有的起警示

2、作用。如舞台灯 、汽车转向灯、十字路口的黄闪灯等,如图所示。项目二 简单I/O口控制电路设计任务要求:单片机I/O口作输出口,接8个发光二极管,通过编程 实现一个或多个发光二极管闪烁效果。常见的发光二极管主要有红色、绿色、黄色等单色发光 二极管,另外还有双色的二极管。驱动LED可分为低电平点亮和高电平点亮两种。由于 P1P3口的内部上拉电阻较大,为2040k,属于“弱上拉” ,因此P1P3口输出高电平电流很小(为3060)。而低电 平时,下拉MOS管导通,可吸收1.615mA的灌电流,负载能 力强。因此在设计中,一般采用低电平驱动方式。任务分析项目二 简单I/O口控制电路设计单片机C语言编程的

3、基本方法 例:用C语言编写一个点亮接在P1口的低电平驱动的 发光二极管的程序 。 #include /51系列单片机头文件 int main(void)/主程序main函数 while(1)/主程序中设置死循环程序,保证周而复始运行 /*所有控制程序写在此区域(while循环内)*/ P1=0xfe; /点亮一个发光二极管 相关知识项目二 简单I/O口控制电路设计1、C51中文件包含及常用头文件的说明(1)文件包含文件包含是指一个程序文件将另一个指定的文 件的全部内容包含进去。文件包含的一般格式为:#include 或#include “文件名”如,#include /引用寄存器文件项目二 简

4、单I/O口控制电路设计(2)头文件在程序设计中引用头文件,其实际意义就是将这个 头文件中的全部内容放到引用头文件的位置处,免去 每次编写同类程序都要将头文件中的语句重复编写。C51头文件通常有reg51.h,reg52.h,math.h, ctype.h,stdio.h,intrins.h。项目二 简单I/O口控制电路设计 2、主函数main()main函数的基本格式: int main(void)/主程序main函数 /单片机复位后总是从这里开始执行 语句1; int表示main函数的返回值是int(整数)型,int可以省略。如 果main函数中不加返回语句的话,默认返回0。小括号中的内容

5、表示函数的参数,void表示无参数,即不带任何参数。void可 省略。main函数后面的花括号中的内容就是这个函数的所有代码。每 条独立语句的末尾都要加上分号,一行可以写多条语句。项目二 简单I/O口控制电路设计3、while循环语句while循环语句是常用的条件循环语句,可用来做固定 次数的循环程序和不定次数的循环程序,其格式如下:while(表达式)语句(可为空);/循环体特点:先判断表达式,后执行内部语句。原则:若表达式不是0,即为真,那么执行语句。否则跳 出while语句,执行后面的语句。项目二 简单I/O口控制电路设计需要注意的三点: (1)在C语言中我们一般把“0”认为是“假”,“

6、非0”认为 是“真”,也就是说,只要不是0就是真。(2)内部语句可为空,就是说while后面的大括号里什么都不 写也是可以的,如“while(1);”既然大括号里什么也没 有,那么我们就可以直接将大括号也不写,再如“while(1) ;”中“;”一定不能少,否则while()会把跟在它后面第 一个分号前的语句认为是它的内部语句。(3)表达式可以是一个常数,一个等式,一个不等式,一个 运算或一个带返回值的函数。对于while(1)语句,因为while里的表达式是1,永远为真, 所以程序将永远循环执行这个大括号中的所有语句。项目二 简单I/O口控制电路设计需要说明的是,while语句还有另一种形式

7、:do 语句;/循环体 while(循环条件)执行过程是先执行循环体的内容,再进行判断循 环条件,如果满足,则返回继续执行循环。在此 形式中,循环体的内容至少被执行一次。项目二 简单I/O口控制电路设计4、注释的写法在c语言中,注释有两种写法:/.,两个斜杠后面跟着的为注释语句。这种写 法只能注释一行,当换行时,又必须在新行上重新写两个 斜杠。/*.*/,斜杠与星号结合使用,这种写法可以注释任 意行,即斜杠星号与星号斜杠之间的所有文字都作为注释 。所有注释都不参与程序编译,编译器在编译过程会自 动删去注释,注释的目的是为了使人们读程序方便,一般 在编写较大的程序时,分段加入注释,因为有了注释,

8、其 代码的意义便一目了然了。项目二 简单I/O口控制电路设计硬件电路设计P1.0口的LED亮只要 把P1.0口的电平变 成低电平;P1.0口的LED熄灭, 就应将P1.0口的电 平变成高电平。项目二 简单I/O口控制电路设计1. 点亮发光二极管欲点亮某只发光二极管,只需使与其相连的口 线输出低电平即可。如点亮从高位到低位的第1,3 ,5,7只发光二极管。实现的方法有字节操作和位操作。2.让发光二极管闪烁闪烁,顾名思义,就是将LED点亮再熄灭,不断反 复。软件设计项目二 简单I/O口控制电路设计(1)main函数拼写错误,CPU无法找到主程序而无 法运行; (2)自定义变量,在后面引用时拼写错误

9、; (3)字母大小写错误,如I/O端口P小写; (4)数字“0”写成字母“o”; (5)语句结束少“;”; (6)花括号不配对,漏写或多写。程序调试中常见的错误项目二 简单I/O口控制电路设计目前广告灯的应用非常广泛,用于装饰、广告等目的,如图 所示。其应用场所分布于道路、街道两旁,以及影剧院、展览销会 、商业闹市区、车站、机场、码头、公园等公共场所。任务二 广告灯的制作项目二 简单I/O口控制电路设计实现广告流水灯:即先灭掉前一个灯,然 后点亮后一个灯,再延时一段时间,不断 循环。 任务分析项目二 简单I/O口控制电路设计相关知识一、for语句及简单延时语句for语句格式:for(表达式1;

10、表达式2;表达式3)语句(内部可为空) 执行过程:第1步,求解一次表达式1。第2步,求解表达式2,若其值为真(非0即为真),则执 行for中语句,然后执行第3步;否则结束for语句,直接 跳出,不再执行第3步。第3步,求解表达式3.第4步,跳到第2步重复执行。需要注意的是,三个表达式之间必须用分号隔开。项目二 简单I/O口控制电路设计利用for语句和while语句可以写出简单的延时语句 如 unsigned char i;for(i=2;i0;i-);为了写出长时间的延时语句,可以通过嵌套来实现。unsigned char i,j;for(i=100;i0;i-)for(j=200;j0;j-

11、); 上面这个例子是for语句的两层嵌套,相当于共执行了 100200次for语句。通过这种嵌套便可以写出比较长时间 的延时语句,还可以进行3层,4层嵌套来增加时间,或是改 变变量类型,将变量初值再增大也可以增加执行时间。项目二 简单I/O口控制电路设计二、延时函数函数是指能够执行特定功能和任务的程序代码段。 一个完整的C51程序是由一个主函数和若干个其他函 数组成。 主函数是main( )函数。有且只有一个main( )函数 。项目二 简单I/O口控制电路设计 1、无参函数的定义形式类型标识符 函数名()声明部分语句类型标识符和函数名称为函数头。类型标识符指 明了本函数的类型,函数的类型实际

12、上是函数返 回值的类型。函数名是由用户定义的标识符,函 数名后有一个空括号,其中无参数,但括号不可 少。中的内容称为函数体。在函数体中声明部分, 是对函数体内部所用到的变量的类型说明。在很多情况下都不要求无参函数有返回值,此时 函数类型符可以写为void。项目二 简单I/O口控制电路设计延时改写成一个函数:void Delay()unsigned char i,j;for(i=100;i0;i-)for(j=200;j0;j-); 项目二 简单I/O口控制电路设计 2、有参函数定义的一般形式 类型标识符 函数名(形式参数表列) 声明部分 语句 有参函数比无参函数多了一个内容,即形式参数表 列。

13、 在形参表中给出的参数称为形式参数,它们可以是 各种类型的变量,各参数之间用逗号间隔。在进行 函数调用时,主调函数将赋予这些形式参数实际的 值。形参既然是变量,必须在形参表中给出形参的 类型说明。项目二 简单I/O口控制电路设计例如,定义一个带参数的延时函数可写为: void Delay(unsigned int DT) unsigned int i=0, j=0; for(i=0;i”,其格式如下:a=a2; /将变量a中的数循环右移2位后赋给a注意:移位后末位补“0”方法二相关知识项目二 简单I/O口控制电路设计(2)循环移位函数循环移位函数能够对变量中的数进行循环移位,属于 MCS-51

14、的内部函数,需要包含头文件“intrins.h”。以字符变量的循环移位函数为例来说明循环移位函数的 使用,其格式如下:a=_crol_(a,2); /将变量a中的数循环左移1位后赋给aa=_cror_(a,2); /将变量a中的数循环右移1位后赋给a项目二 简单I/O口控制电路设计二、if 条件语句if语句用来判定所给定的条件是否满足,根据判定结果决定 执行给出的两种操作之一。if语句的基本结构如下:if(表达式) 语句; 括号中的表达式成立时,程序执行大括号内的语句,否则程 序跳过大括号中的语句部分而直接执行下面其他语句。项目二 简单I/O口控制电路设计C51语言提供3种形式的if语句:形式

15、一: if(表达式) 语句;形式二: if(表达式) 语句1;else 语句2;形式三:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;else if(表达式m)语句m;else 语句n;项目二 简单I/O口控制电路设计软件设计#include delay() unsigned int i;for(i=0;i30000;i+); main() unsigned char a;P1=0xfe; while(1)delay();a=P11;P1=a|0x01;if(P1=0xff) P1=0xfe; 项目二 简单I/O口控制电路设计main() unsigned char a;P1=0xfe; while(1)delay();P1=_crol_(P1,1); 项目二 简单I/O口控制电路设计任务二中的广告灯的设计中都是有规律的,可 以利用左、右移运算符或者左、右移函数就可实现 。如果要实现复杂的、没有规律的变换,该如何 做呢?任务三 花样广告灯的制作项目二 简单I/O口控制电路设计项目二 简单I/O口控制电路设计数组C51语言的构造数据类型主要有数组、指针和结 构等。在单片机系统中,数组的应用比较广泛,指 针则次之,结构用的相对较少。数组是同类型变量的一个有序集合。数组用一个 名字来标识,称为数组名。数组中的每个变量称

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

当前位置:首页 > 行业资料 > 其它行业文档

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