技术文档

单片机led灯编程 如何用单片机点亮一个LED灯(入门基础篇)

小编 2025-08-20 技术文档 23 0

如何用单片机点亮一个LED灯(入门基础篇)

这几天主要为大家分享一些元件的基础知识以及在电路的应用,一开始没直接就写单片机之类的,对于单片机来说的,需要我们有一些基础,在应用中不但涉及到模拟电子技术也包括数字电子技术,对于从未接触这方面的人员来说,理解起来是有些难度的,为了能让大家都明白,我们还是先学习下它的基础应用。

今天我们使用的单片机芯片为STC89C52,他和俗称51单片机使用方法一样,就是内存大小不一样而已,在我国大部分人入门单片机是从51开始的,在国外用的最多的是Arduino,这也不是绝对的,考虑到大部分人群,我们今天就用51单片机来讲解。

一提到单片机,没有接触过的会产生一个疑问 ,什么是单片机?

STC89C52芯片

官方解释为:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

简单的理解他就是一个集成电路(内部有很多复杂电路),他能控制许多模块,单片机就像人的大脑,我们做什么是都是由大脑控制,因此单片机的发明使自动化智能化更近了一步。

如果问你如何让一个LED亮的话,可能你想到最直接的方法就是把LED的正极连在VCC,负极连在GND,如果电流太大,可以串联一个电阻起到限制电流的作用;在单片机中道理也是如此,通常我们把LED正极经过串联一个电阻直接连在电源正极,然后另一端接在单片机上。

由原理图可以看出,只要我们把P1^0这个端口接地就行了,因此我们所做的工作就是用单片机能够理解的语言把P1^0这一个端口接地,这就得需要编程,这里就不多介绍编程,回来专门写一篇文章关于编程的文章,这里把程序直接展示出来。

#include<reg52.h>

sbit LED=P1^0;

main()

{

while(1)

{

LED=0;

}

}

这个程序很简单,单片机会一直循环执行LED=0这个语句(在数电中可以简单理解为=0就是接电源负=1就是接电源正),意思就是让P1^0这个端口接地,这样就能使LED一直点亮。

用的贴片展示的效果

一开始学单片机的时候都会从点亮一个LED灯开始做起,就像我们学编程输出一个HELLO WORD一样,大家也不要小瞧LED灯,其实我们生活中很多地方都用到了,像流水灯,交通信号灯,广告牌,甚至连显示屏都会用到LED灯,如果你能够足够熟练操作LED,还是前途无量的。

单片机入手还是比较容易的,如果想熟练应用的话,还是有一定难度的,但是只要我们坚持下来,我相信你就能够熟练开发应用,我会每天发布一些这方面的文章,大家可以关注下,我祝大家能够取得成功!

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。

相关问答

单片机 c语言 编程 点亮 led灯 ?

用c啊,我想想:1、和硬件有点儿关系,这个你清楚么?2、假设led连接到p1口吧。第一个灯接到p1.0。阴极接io,阳极接5v。#includebitsecflag;unsignedchar...

51 单片机LED灯 点亮的c语言 编程 方法?

/*程序详细功能介绍:*利用取表的方法,使端口P0做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。*在用表格进行程序设计的时候,要用以下的.../*...

单片机 C语言编写点亮两盏 led灯 ?

可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。具体实现方法可以参考如下程序:#include#include#defineuintunsignedi...

单片机 led 怎么接线?

将单片机的输出引脚连接到LED的正极,LED的负极连接到单片机的地(GND)引脚。在连接时,确保使用适当的电阻来限制电流,以防止LED烧坏。选择合适的电阻值取决于...

单片机编程 控制8个 LED ,先逐个点亮,再逐个熄灭,再逐个点亮,如此循环,变化间隔为1秒左右,用软件循环实现?

假如:P0口接8个LED,程序可以这样:#include#defineucharunsignedchar#defineuintunsignedintsbitled1=P2^0...

如何用STM32 单片机 控制 LED灯 带的颜色改变?

RGB三原色LED彩灯,由红色、绿色和蓝色三个独立的灯珠构成,常见的有四个引脚,一个公共端和三个颜色控制端。三个颜色任意组合可以产生其他颜色,如红色和绿色同...

51 单片机 串口控制 led灯 方法是什么?

51单片机通过串口控制LED灯需要按照以下几个步骤:1.硬件连接将LED灯连接到单片机的一个GPIO口,控制LED灯的开启和关闭。将串口连接到单片机的RX、TX引脚。...

下面这个 单片机编程 为什么 led =0; led灯 就亮 - 懂得

这个是需要看外围电路的,不一定是输入低电平led就会亮,首先led的正极接到vcc,负极接到单片机的P1.0上,当单片机的P1.0为高电平时,LED两端电压一样,...

单片机 用汇编语言编写用一个控制器控制8个 LED灯 亮?

ORG0000HLJMPMAINORG000BHLJMPT0ISRORG0030HMAIN:MOVTMOD,#01HMOVTH0,#HIGH(65536-50000)MOVTL0,#LOW(65536...

单片机 控制一个 led灯 ,需要哪些电子元件啊,要什么型号和大小例如电阻要说明几欧的?

如果要求元件最少的话,需要一个STC12c2052单片机,一个普通的LED,还有5V电源,要求再多点元件的话,可以再加一个1K的电阻,两个30pF的电容,12M的晶振等如果要求...

猜你喜欢