项目4单片机控制LED灯的设计.ppt

上传人:小飞机 文档编号:4950331 上传时间:2023-05-25 格式:PPT 页数:33 大小:2.86MB
返回 下载 相关 举报
项目4单片机控制LED灯的设计.ppt_第1页
第1页 / 共33页
项目4单片机控制LED灯的设计.ppt_第2页
第2页 / 共33页
项目4单片机控制LED灯的设计.ppt_第3页
第3页 / 共33页
项目4单片机控制LED灯的设计.ppt_第4页
第4页 / 共33页
项目4单片机控制LED灯的设计.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《项目4单片机控制LED灯的设计.ppt》由会员分享,可在线阅读,更多相关《项目4单片机控制LED灯的设计.ppt(33页珍藏版)》请在三一办公上搜索。

1、电子工业出版社,单片机控制技术 项目式教程(C语言版),电子工业出版社,项目4 单片机控制LED灯的设计,能了解51单片机I/O口的结构;能掌握51单片机I/O口的特点及应用;能掌握51单片机控制LED灯的硬件设计方法;能熟练编写单片机控制LED灯闪烁的程序。,学习目标,工作任务,叙述51单片机I/O口的结构和特点;设计单片机控制单个LED灯闪烁的电路和工作软件;设计单片机控制多个循环LED灯的电路和工作软件。,任务4.1 单片机控制单个LED灯 任务4.2 单片机控制多个循环LED灯 项目小结,项目4 单片机控制LED灯的设计,任务4.1 单片机控制单个LED灯,4.1.1 MCS-51单片

2、机的I/O口介绍,MCS-51系列单片机有4个8位的并行I/O接口:P0、P1、P2和P3口。它们是特殊功能寄存器中的4个。这4个口,既可以作输入,也可以作输出,既可按8位处理,也可按位方式使用。输出时具有锁存能力,输入时具有缓冲功能。,1P0口,P0口是一个三态双向口,包括一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成,它的一位结构如图:,输出驱动器,控制电路,P0口功能,1、通用IO接口:不需要外部扩展时,内部控制信号将使MUX开关接通到锁存器。此时,由于P0口没有内部上拉电阻,通常要在外部加一个上拉电阻来提高驱动能力。,2、地址/数据分时复用:需要进行外部扩展时,内部控制

3、信号将使MUX开关接通到内部地址数据线。此时,P0口在ALE信号的控制下,分时输出低8位地址和8位数据信号。,P0口的工作原理,(1)通用I/O口,作为通用I/O使用,是一个准双向口:“在输入数据时应先把口置1,使V1、V2都截止,引脚处于悬浮状态,可作高阻抗输入”,(2)地址/数据总线口 输出:地址/数据为1,P0 x 高 地址/数据为0,P0 x 低 输入:经缓冲器1读入,(1)P0口既可作地址/数据总线使用,也可作通用I/O口使用。当P0口作地址/数据总线使用时,就不能再作通用I/O口使用了。(2)P0口作输出口使用时,输出级属漏极开路,必须外接上拉电阻,才有高电平输出。(3)P0口作输

4、入口读引脚时,应先向锁存器写1,使V1、V2截止,不影响输入电平。,P0口特点,2.P1口,P1口是准双向口,它只能作通用I/O接口使用。结构与P0口不同,它的输出只由一个场效应管V1与内部上拉电阻组成。,(1)P1口是唯一的单功能口,仅能作为通用I/O口使用。因在其输出端接有上拉电阻,可以直接输出而无需外接上拉电阻。(2)同P0口一样,当作输入口时,必须先向锁存器写“1”,使场效应管V1截止。,P1口特点,3.P2口,P2口也是准双向口,它有两种用途:通用I/O接口和高8位地址线。,P2口作I/O端口使用时:内部控制信号使MUX开关接通到锁存器,此时P2口的用法与P1口相同。P2口作外部地址

5、总线使用时:内部控制信号使MUX开关接通到内部地址线,此时P2口的引脚状态由所输出的地址决定。,需要特别指出的是,由于对片外地址的操作是连续不断的,只要进行了外部系统扩展,此时P0口和P2口就不能再用作I/O端口了。,4.P3口,P3口用作通用I/O口时,其工作原理同P1口类似。此外,它的每一根线还具有第二种功能。,在真正的应用电路中,P3口的第二功能显得更为重要。,4.1.2 单片机控制单个LED灯闪烁的设计,1任务要求设计一个电路,AT89C52单片机的P1.7引脚连接一个LED灯,控制LED闪烁。2任务分析,以单片机为核心的电子设计,硬件设计,软件设计,单片机最小系统加上最简单的输出电路

6、来驱动LED,编程控制P1.7引脚的电平状态,使其持续一段时间的高电平,再持续一段时间的低电平,3任务设计,(1)器件的选择,发光二极管,发光二极管:单向导电性,通过5mA左右电流即可发光,电流越大,亮度越强,但若电流过大会烧毁二极管,一般控制在320mA。工作电压:红色发光二极管1.7-2.5V 绿色发光二极管2.0-2.4V 黄色发光二极管1.9-2.4V 蓝/白色发光二极管3.0-3.8V,限流电阻,二极管串联电阻的目的是为了防止发光二极管和P1.7引脚流过的电流过大,烧毁二极管或单片机,所以该电阻也称为“限流电阻”。限流电阻的选择:假设电源电压为VCC,发光二极管的导通压降为VDD,导

7、通时流过二极管的电流为I,则限流电阻R为:R=(VCC-VDD)/I例如,若二极管的导通压降为2.2V,导通时流过的电流为5mA,则限流电阻为560。,器件清单,(2)硬件原理图设计,再次强调:图中的单片机元件没有“VCC”和“GND”引脚,这是因为Proteus软件中,元件模型中的“电源”和“地”已经进行了连接,“VCC”接到了“+5V”电源,“GND”接到了“地”,所以隐藏了这两个引脚。,(3)软件程序设计,#include/宏定义sbit led=P17;/用sbit 关键字定义P1.7引脚/延时子函数void Delay(unsigned int t)while(-t);/主函数,控制

8、P1.7引脚的LED灯闪烁void main(void)while(1)/主循环 led=0;/将P1.7引脚置0,对外输出低电平 Delay(20000);/调用延时程序 led=1;/将P1.7引脚置 1,对外输出高电平 Delay(20000);/调用延时程序,在软件编程中,通常使用空循环来达到延时的效果。延时时间的长短可以在Keil C51的调试状态下分析。,(4)软硬件联合调试,1任务要求设计一个电路,AT89C52单片机的P1口连接8只LED灯,首先控制P1.0到P1.7连接的8只LED灯逐个点亮,接下来再从P1.0到P1.7连接的8只LED依次全部点亮,然后控制从P1.7到P1.

9、0连接的8只LED灯逐个点亮,最后再从P1.7到P1.0连接的8只LED依次全部点亮,形成流水灯的效果。,任务4.2 单片机控制多个LED灯,2任务分析任务要求单片机控制8个LED灯,当需要对某个I/O口的八位一起操作时,一般采用整体操作的方式,即总线的方式。在软件设计时可以定义一个变量来给P1口赋值,赋的值不同点亮的LED灯不同。由于8只LED灯要按一定规律点亮,这就要求对给P1口赋的变量进行移位,移位操作既可以用标准C中的左移、右移运算符来实现,也可以用C51库自带的函数来实现。,移位运算符,循环移位函数,注意:循环移位函数_crol_()和_cror_()包含在intrins.h头文件中

10、,因此如果在程序中要用到这类函数,就必须在程序的开头处包含intrins.h这个头文件。,由于用到的发光二极管较多,每个发光二极管都需要限流电阻,硬件电路会显得比较复杂,所以这里使用了排阻。排阻,就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。如果一个排阻是由n个电阻构成的,那么它就有n+1个引脚,一般来说最左边的那个是公共引脚。它在排阻上一般用一个色点标出来。,直插式排阻 贴片式排阻,排阻一般用在数字电路上,比如作为某个并行口的上拉或者下拉电阻用。使用排阻比用若干只固定电阻更方便。,3任务设计,(1)器件的选择,器件清单,(2)硬件原理图设计,(3)软

11、件程序设计,#include/宏定义,52单片机头文件#include/包含_crol_、_cror_函数所在的头文件#define uint unsigned int#define uchar unsigned char/延时子函数void Delay(unsigned int t)while(-t);/主函数,循环点亮LED灯void main()uchar k,recy;while(1)/大循环 recy=0 xfe;for(k=1;k=8;k+)/8只LED灯从P1.0到P1.7逐个点亮 P1=recy;/先点亮P1.0的LED灯 Delay(50000);/延时一段时间 recy=_

12、crol_(recy,1);/将recy循环左移1位后再赋给recy,recy=0 xfe;for(k=1;k1;/将recy右移1位后再赋给recy P1=0 xff;/全部熄灭 Delay(50000);,(4)软硬件联合调试,将编写的程序在Keil C51中编译成*.hex后调入Proteus硬件电路图的AT89C52中运行,八只LED灯从P1.0到P1.7逐个点亮,接下来再从P1.0到P1.7依次全部点亮,然后全部熄灭后又从P1.7到P1.0逐个点亮,最后再从P1.7到P1.0依次全部点亮,如此反复形成流水灯。,项目小结,本项目主要介绍了51单片机I/O口结构和应用,通过两个任务实现了单片机对单个LED灯闪烁和多个循环LED灯的控制。51单片机有4个8位的并行I/O接口:P0、P1、P2和P3口。对于P0口要注意其内部没有上拉电阻,所以在硬件设计中要给P0口外接上拉电阻,以保证P0口可以输出高电平。P1口是唯一一个只有输入/输出功能的I/O口。P0口和P2口当有外部扩展存储器时,作为数据/地址的复用口。P3口每一位都具有第二功能。对于单片机的编程,离不开对特殊功能寄存器的操作,所以在程序中一定要有包含对特殊功能寄存器声明的头文件。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号