设计与开发

51单片机控制led灯 51单片机之LED灯

小编 2024-10-09 设计与开发 23 0

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单片机实例讲解,由按钮控制流水灯程序

由按钮控制流水灯控制要求:在单片机的PP3.0口和P3.1口线上分别接上一个按钮SB1和SB2,P0口上接8只发光二极管LED1~LED8。当按下SB1时,8只发光二极管按方式一从LED1~LED8间隔1s交替正向流水点亮一次,即LED1亮→LED2亮→LED3亮→LED4亮→LED5亮→LED6亮→LED7亮→LED8亮。

当按下SB2时,8只发光二极管按方式二从LED1~LED8间隔1s依次点亮一次,即LED1亮→LED1+LED2亮→LED1+LED2+LED3亮→LED1+LED2+LED3+LED4亮→LED1+ LED2+LED3+LED4+LED5亮→LED1 +LED2 +LED3 +LED4 +LED5 +LED6亮→LED1 +LED2 + LED3 +LED4 +LED5 +LED6+LED7亮→LED1+LED2+LED3+LED4+LED5+LED6+LED7+ LED8亮。

(1)由按钮控制流水灯硬件电路(见图36)。

图36 由按钮控制流水灯接线原理图

(2)由按钮控制流水灯硬件电路元器件(见表14)。

表14 由按钮控制流水灯硬件电路元器件表

(3)由按钮控制流水灯程序流程图(见图37)。

图37 由按钮控制流水灯程序流程图 (a)主程序;(b)显示子程序

(4)由按钮控制流水灯程序。

相关问答

本人想把 led灯 接到 51单片机 上不知道肿么接,哪位师傅懂的,请...

很简单,led正极接1k左右的电阻,负极接单片机任意P端口(8位)找个51的电路图看看将led灯的正极加一个330欧的电阻接正5伏,负极接p口。接接51单片机和LED灯其实...

51单片机控制 16个 led 流水灯的程序?

泻药不加译码器或者锁存器的话,可以用12个引脚+4个三极管(当然还有必要的电阻)实现,如果你的单片机有大电流io口的话,4个三极管也可以省了,12个引脚可以...

51单片机 用1个按键点亮 LED灯 ,另1个按键关?

//假设按键输入P1.0,P1.1,LED控制P2.0,都是低电平有效#include"reg51.h"sbitKEY0=P1^0;关灯按键sbitKEY1=P1^1;开灯按键sb...

51单片机 的题目:依次点亮四个 Led灯 ?

ORG0000HLOOP0:MOVA,#0FEHMOVR0,#4LOOP:MOVP1,ADELL:MOVR7,#0DEL1:MOVR6,#0DEL2:DJNZR6,DEL2DJNZR7...

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

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

51单片机 如何实现 led 的256级灰度显示?

灰度传感器有三条线,VCC,GND,和信号线,他信号线输出的是模拟电压,普通的51只能通过电压比较器LM339来辨别两种不同的颜色,但是如果用增强的51就可以用他自带...

单片机 编写程序,让 LED灯 闪烁三次后熄灭?

#includevoiddelay(unsignedinta){while(a--);}voidmain(void){unsignedchari;while(1){P2=~P2;delay(50000...

2、,使用电流互感器、CS5460、CD4051、MCS 51单片机 、74HC164、 LED 共阴极数码管等器件,完成16路交流电流采?

.2、取样电阻输出连接到两片8选1模拟开关CD4051的输入。3、两片CD4051的输出分别连接AD转换器CS5460的电压输入及电流输入通道,CS5460增益均选择10倍。4、...

51单片机 把38译码器的ENLED,ADDR0,1,2和p1.0~P1.4短接,p1.0~4的作用?

如果是跟P1.0~P1.4连接,那就是代表P1.0~P1.4控制38译码器的输出如果是跟P1.0~P1.4连接,那就是代表P1.0~P1.4控制38译码器的输出

51单片机 按住复位键时 led 亮但是松开就不亮了?

1.不亮2.这种情况可能是由于复位键按下时,导致51单片机的复位电平被拉低,从而导致系统重新启动。而当复位键松开时,复位电平恢复正常,但是由于程序中没有对...

猜你喜欢