技术文档

51单片机led灯亮 51单片机实例讲解,由按钮控制灯亮程序

小编 2024-10-12 技术文档 23 0

51单片机实例讲解,由按钮控制灯亮程序

按钮控制灯亮接线原理图如图11所示。在单片机的P1口的低4位按上按钮,在高4位接上发光二极管。当按下SB1时(P1.0口为“0”),LED1发亮(P1.4口为“0”)。同理,若分别按下SB2、SB3、SB4,则对应的端口P1.5、P1.6、P1.7输出低电平,对应的发光二极管LED2、LED3、LED4就发亮。

若同时按下两个以上的按钮,则对应的发光二极管发亮。例如按下SB1和SB3,则对应的输出端口P1.4和P1.6输出为低电平,对应的发光二极管LED1、LED3发亮。

(1)按钮控制灯亮硬件电路(见图11)。

图11 按钮控制灯亮接线原理图

(2)按钮控制灯亮硬件电路元器件(见表3)。

表3 按钮控制灯亮硬件电路元器件表

(3)按钮控制灯亮程序流程图(见图12)。

图12 由按钮控制灯亮程序流程图

(4)按钮控制灯亮程序。

51单片机之LED灯

实验要求

LED灯以一秒的频率闪烁

众所众知,软件编程的第一个小程序就是打印“hello world”,同样硬件的编程也有他的第一个小程序,那就是LED灯的点亮,如果不做一个这样的小实验,学再多理论也是纸上谈兵。下面我们来实现LED灯闪烁的实验。

物料清单

电容

12M晶振

点阵开关

电阻

LED灯

AT89C52单片机(和51效果一样)

原理图

为了更形象的讲解LED灯闪烁的实验,笔者特意画了LED闪烁的原理图,他们的作用如下:

18脚和19脚接的是12M晶振系统,它是系统时序的由来;

9脚所接的是复位系统,当我们按下按键之后,系统会从程序最开始的代码开始运行;

P0.0接了一个电阻和一个LED灯,为什么接这个电阻呢?如果不加电阻,电流过大可能会烧坏LED灯,所以LED灯使用的时候一般都加限流电阻。

复位电路和晶振电路是单片机的固定外围电路,数据手册上已经给出,不需要我们花心思研究。

程序

我们要做的是让单片机控制LED灯以一秒的频率闪烁,这就避免不了写程序,看看现在的硬件产品吧,哪一个硬件产品里面没有集成电路,又有哪一个没有代码的“参与”。所以不要说硬件工程师就只做硬件,写单片机代码也是硬件工程师分内的事。下面把完整代码分享给大家。

#include <reg51.h>

void delay(void)

void main()

{

while(1)

{

P0=0x01;

delay();

P0=0x01;

}

void delay(void)

{

unsigned char a,b,c;

for(c=167;c>0;c--)

for(b=171;b>0;b--)

for(a=16;a>0;a--);

_nop_;

}

}

delay()函数是由单片机小精灵生成的,如果我们自己计算的话太麻烦了。

实验现象

视频加载中...

最后

我们实验的当中只用到了一个LED灯,所以直接用单片机驱动也可以,但是单片机的总的驱动电流就很小,如果LED灯多了的话,51单片机是驱动不了的,这时候就需要外加电源和开关管来驱动LED。

相关问答

51单片机led灯 加载什么电平?

51单片机引脚加载高低电平都可以驱动LED发光管,取决于引脚如何连接LED:如果LED的阳极接电源正极,阴极接单片机引脚,输出低电平可以点亮LED;如果单片机引脚接...

求一个 51单片机 的程序:一个按键控制 led灯 闪烁,就是按一下灯闪,再按灯就灭了?

LEDBITP1.0KEYBITP1.1ORG0000HLJMPMAINORG0030HMAIN:CLR00HMAIN1:JBKEY,LOOPJNBKEY,$CPL00H...

51单片机 led 是多大电阻?

51单片机控制LED的电阻大小通常取决于两个因素:供电电压和LED的额定工作电流。LED需要适当的电流来工作,过高的电流会损坏LED,过低的电流会导致LED不发光。...

51单片机 ,按键控制流水灯程序,懂的进!八个 LED灯 与单片机P1口...

[最佳回答]假如,你的程序在执行key_scan();是触发了两次中断导致num>20,你的显示函数将永远被跳过,你应该写成if(num>20)��{���num=0;���display();�.....

51单片机 如何接 LED ?

89C51或89C52单片机P0P1P3P4四组共32个IO口都可以驱动LED灯。这种单片机的高电平驱动能力很弱,通常IO输出低电平驱动LED,LED的另一端接限流电阻然后再接电源正...

自制的 51单片机 学习板继电器、蜂鸣器有反应 但数码管、 LED 都...

2:LED方向是否正确?3:确认数码管是否正确,有共阴共阳之分.线路是否正确?4:用万用表测试脚位电平是否正常.5:检查单片机是否有部分I/O口损坏.或是更换试...

51单片机 ,一个按键怎么控制两个灯轮流闪动,看详细说明?

先设置一个位变量,表征现在是启动还是停止。再设置一个位变量,表征应该是LED1亮还是LED2亮。然后在检测到按键的同时,启动定时器,取反第一个变量,计时五秒...

(求大神解答)选择:1.一个 单片机 应用系统用 LED 数码管显示字...

[最佳回答]1.一个单片机应用系统用LED数码管显示字符“8”的段码是80H,可以断定该显示系统用的是(B)。A、不加反相驱动的共阴极数码管B、加反相驱动的共阴极...

单片机 矩阵 led灯 原理?

原理就是用51单片机的一个引脚同时驱动两只LED,并在这个引脚上输出0.5赫兹以上的方波,就可以让发光管产生交替闪烁效果原理就是用51单片机的一个引脚同时驱动...

51单片机 C语言 如何写代码。控制2个 LED 的亮和灭。

[最佳回答]比如你的8个灯连在P0口,如果是阴极的你只要先定义sbitP0^0=LED0;.....一定定义下去然后再定义一个按钮比如P1.1sbitP1^1=key;代码里写12...

猜你喜欢