用单片机控制双色闪烁的LED灯,所以说单片机真的无所不能
还记得我们前面有讲过双色闪烁LED”的制作吗?听我这么一提,你是不是要问我,能否用单片机来完成?是啊!单片机是无所不能的,当然可以完全可以胜任!
双色闪烁LED电路图
元器件清单

程序设计
#include<reg52.h>//头文件
#define uchar unsigned char//用uchar代替unsigned char
#define uint unsigned int//用uint代替unsigned int
sbit led1=P1^0;//定义接口
sbit led2=P1^1;
void delay_ms(uint a)//毫秒级延时函数
{
uint i,j;
for(i=a;i>0;i--)
for(j=110;j>0;j--);
}
void main( )
{
while(1)//不断循环
{
led1=0;
led2=1;
delay_ms(1000);//延时函数
led1=1;
led2=0;
delay_ms(1000);
}
}
程序解释
在while(1)大括号中,led1点亮,led2熄灭,延时一段时间,led2点亮,led1熄灭,不断循环,形成闪烁效果。请自己修改延时参数,改变闪烁速度。
双色闪烁LED”面包板制作展示
如何用单片机点亮一个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,还是前途无量的。
单片机入手还是比较容易的,如果想熟练应用的话,还是有一定难度的,但是只要我们坚持下来,我相信你就能够熟练开发应用,我会每天发布一些这方面的文章,大家可以关注下,我祝大家能够取得成功!
相关问答
怎样用 单片机 控制两个 LED 同时亮?很简单。一个LED,正极接IO引脚,负极接地。即可实现:IO口输出1时,灯亮。另一个LED,正极接正电源,负极接IO引脚。即可实现:IO口输出0时,灯亮。注...
51 单片机 c语言编程 led 灯1,3,5,7和2,4,6,8交替闪烁?假设你的8个LED是通过低电平来点亮,即LED负极连接P口,正极连接电源:1.当1,3,5,7亮时,我们的P2口状态以二进制表示应该是10101010,也就是0xAA,程序应该写成...
单片机 8个 LED 灯随机闪烁怎么做?方法:1:设定一个变量i,可以从0到3循环的变化2:检测一个经过消抖处理的按键,按一下,i+13:当i值为各个值时,执行相应的花样。流水灯参考程序#include...方...
单片机 C语言编写点亮两盏 led 灯,首先从中间两盏点亮,依次相邻两盏灯点亮,依次循环永不停息?#includesbitM=P1^0;voiddelayms(unsignedcharms){unsignedinti;while(ms--){for(i=0;i}}...
led 三线和四线的区别?1、成本:三线片更节约成本,四线片所增加的浆料提高了成本2、性能:四线电对细栅线电流的采集效果更好,转换效率更高并且功率损耗比三线低,更加牢固稳定。不...
单片机 灯光交替闪烁的原理?这是一个简单的震荡电路,由散件组成,可以使两个LED交替闪烁。两个电容C1、C2轮流充放电,是关键。1、Q1导通时C1放电,LED1亮。此时C2充电。2、Q2导通时C2放...
51 单片机 怎样控制 LED 的光亮度?pwm,用定时器T1溢出做pwm周期,在每次T1开始计数时触发输出,软件边增1计数边检查溢出标志。如果软件计数满则清输出,否则直到溢出清输出、清软件计数满值。改变...
单片机 如何控制一个 LED 灯闪烁频率不断加快?暂时想到两种解决方案:1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回...
51 单片机 C程序实验 LED 灯:[1]单个灯闪烁?单片机控制LED灯间隔时间闪烁,所用程序很简单,实际情况可作相应变化,也有多种方式实现。那么51单片机C程序实验LED灯:[1]单个灯闪烁?我们该怎么办呢?所需...单...
单片机 里声明 LED 数码管为共阴,共阳的代码怎么写?共阳共阴不通用,共阳的消隐应该是P0=0。在位选打开之后首先读到的就是消隐程序(P0=0xff),郭的数码管是共阴,也就是位选低电平有效,而P0=0xff八位都是高...共...