因为单片机只需要考虑开和关两种状态,但LED灯不能接单片机的问题属于驱动能力不够。如果每次设计都要去考虑单片机可以承受或者输出LED灯的电流大小,或者计算单片机可以带动多大的负载,这样设计工作的复杂性就会成倍的放大,同时可靠性也会降低很多,所以LED灯是不能直接连接单片机的。

十六进制0xfe,对应二进制 1111_1110 这个二进制,对应引脚为 p1.7 p1.6 p1.5 p1.4 p1.3 p1.2 p1.1 p1.0 p1 = 0xfe,则对应p1.0为0,其他引脚输出1.你的led,必然是共阳极。所以p1.0对应的灯亮。(如果是共阴极,那么p1.7~p1.1共7个led亮,p1.0上的led不亮)

不能\x0d\x0a\x0d\x0a准确的说是不允许。单片机应只考虑开和关两种逻辑状态。这种LED灯是不是能接单片机的问题属于驱动能力问题。如果每次设计都要去考虑单片机管脚可以承受或者输出的电流,或者计算单片机可以带多大的负载,那你的设计工作的复杂性就会成倍的放大同时可靠性也会降低很多。\x0d\x0

搭建好51单片机运行的最小系统,并连接好下载线。LED灯的正极经过470Ω电阻连接在电源正极上,LED灯的负极连接在单片机的某个接口上,例如连接I/O口P1.0上。编程使P1.0输出低电平,将编译好的程序下载到单片机里,在单片机再次上电后就可以看到LED灯发光亮起了。

如果是STC的单片机,每个I/O脚的低电平就能驱动LED指示灯,LED和一个限流电阻(510~1K)串联后接在电源和I/O引脚之间,LED的负极接到I/O脚上,当I/O脚输出低电平时,LED亮。如果不是STC单片机,需要用一个三极管(9013-NPN型的),基极接到I/O脚上,发射极接一个限流电阻,再接到LED正极上,

89C51或89C52单片机P0P1P3P4四组共32个IO口都可以驱动LED灯。这种单片机的高电平驱动能力很弱,通常IO输出低电平驱动LED,LED的另一端接限流电阻然后再接电源正。限流电阻的选择上,个人经验电流控制在2-7mA之间,根据对亮度和功耗的要求调整选择

很简单,led正极接1k左右的电阻,负极接单片机任意P端口(8位)

本人想把led灯接到51单片机上不知道怎么接,哪位师傅懂的,请详细说明,在此

不能,因为一个管脚的灌电流也好驱动电流也罢不能大于20毫安,而LED最小工作电流也在5毫安以上,16个就需要至少80毫安电流,怎么也无法直接由一个管脚来直连,但你可以通过一个管脚来控制16个LED,比如加一个三极管,用一个光耦隔离一下等待。

很简单那就是当按下某个按键时调用对应LED灯闪烁程序就可以了

P1.0口加上270Ω上拉电阻,P1口是准双向口不能输出电流 先将delay的时间变短一些,或去掉delay看看。计算机仿真的速度没那么快。

接法:9脚接地,10脚COM端,接+5V 1 到 8,2803的输入控制端,接单片机的8个IO管脚 11到18,2803的输出控制端,接你灯的负极,灯的正极接电源 注意这样的接法是,单片机IO管脚单片机驱动

给个框架和思路吧。LED二极管正极串一个限流电阻接在+5V电源上,负极接在MCU一个管脚上,如P20,如果灯不够亮,可以加个三极管放大电流。程序思路:main(void){ while(1){ 延时 P20=~P20 //P20取反 点亮和熄灭LED } }

void main(){ while(1) { LED1 = 0; delay10ms(100); LED1 = 1;LED2 = 0; delay10ms(100); LED2 = 1; }}

1、首先将两种连接方式与单片机IO端口内部简化。2、其次单片机输出1时T断开。3、最后VCC通过电阻R连接到IO即可2路led循环闪烁用单片机管脚接线。

2路led循环闪烁,用单片机管脚怎么接线

以下是一个简单的51单片机程序,通过按下按键可以实现4种不同状态的灯亮灭,包括正闪、反闪、多种间隔闪。程序中使用了定时器来实现闪烁功能。程序中使用了P1.0到P1.3作为控制灯的引脚,P3.2作为按键的引脚。每当按下按键时,通过判断状态值来切换不同的灯亮灭模式。定时器中断函数用来实现灯的

当单片机LED灯一亮一灭间隔1秒时,可以使用以下代码实现:// 初始化IO口 P1 = 0xFF; // 设置延时时间 while (1) { P1 = 0x00; // 延时1秒 for (int i = 0; i < 10000; i++) { // 空循环 } P1 = 0xFF; // 延时1秒 for (int i = 0; i < 10000; i++) { // 空循

1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回值作延时函数参数,关闭LED,利用键盘返回值作延时函数参数。2.精确解决方案——定时器:初始化定时器,打开中断等,然后进入while等待中断,在中断函数里先定义一个变

通过51单片机控制时钟,从而控制时间,来完成闪烁 /***/ /*程序名称:点亮一个P1。0口的发光管*/ /*说  明 :利用软件延时500ms*/ /*操作类型:位操作        */ /*作者  :铁手一郎 /*QQ:347999853    

在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该在循环内部加入一个延时操作,等待一定时间再进入下一次循环。

51单片机控制LED闪烁频率

2、导入51单片机的头文件,否则后续使用的端口都会出现未定义的情况,然后在主函数中,使得EA=1,即总中断允许,打开中断的总开关。3、分别打开外部中断0和外部中断1的分开关,即EX0=1和EX1=1,同时设置中断的触发方式为跳沿触发,可以避免增加额外的电路。4、如果不添加别的代码的话,此时这两个中断

中断分为4个步骤:中断请求→中断相应→中断处理→中断返回(先做更重要的事) 1、数据的输入/输出传送方式 外部中断要看对应引脚外部的电平状态。 例如:外部中断0(INT0)对应的引脚是P32, 当出现 低电平 ,即P32引脚连接的地方是 低电平 ,进入相应的中断函数; 当出现 下降沿 ,即P

51单片机外部中断使用方法:1、51单片机的外部中断int0对应的引脚为p3.2。2、设置寄存器,打开终端并选择中断的触发方式。EA为整体中断允许位,首先要将EA置1,打开中断。EX0为外部中断INT0,置1开启。IT0寄存器:置0为低电平触发,置1为下降沿触发。3、编写中断函数,int0的中断编号为0,这里使用中断

中断用的是外部中断0,要触发中断的时候,就用一根杜邦线一端接地,一端接到单片机的P3.2口就行,这样,就满足了你的要求了。外部中断的触发方式有低电平触发和下降沿触发。到底是那种触发方式,要设置中断允许寄存器中IT0的值,如果IT0=0,像我写的程序,就是低电平触发,如果为1,就是下降沿触发

一、设置 EX0(IE.0)为1 INT0 中断允许位 二、设置 PX0(IP.0)为1 INT0 的优先权层次 三、设置 IT0(TCON.0) INT0 类型控制位。 为 1 时为上升沿触发, 为 0 时为低电平触发 四、IE0(TCON.1) INT0 中断标志位。 运行中断服务程序时, 硬件自动清除 五、0003H

关于51单片机的外部中断使用方法

1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回值作延时函数参数,关闭LED,利用键盘返回值作延时函数参数。2.精确解决方案——定时器:初始化定时器,打开中断等,然后进入while等待中断,在中断函数里先定义一个

include include unsigned char a;void main(){ int i, j;a = 0xfe;while(1) { a = _crol_(a, 1);P1 = a; //单个LED灯,接在P1的任意引脚 for(j = 100; j > 0; j--)for(i = 1000; i > 0; i--);} }

define uchar unsigned char sbit LED1=P1^7; //位定义。void delay_ms(uint);//mS级带参数延时函数。void main(){ while(1){ LED1=0;delay_ms(1000);LED1=1;delay_ms(1000);} } void delay_ms(uint z) //延时子程序 { uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--)

在无限循环中,不断检测K1和K2按键状态,以改变全局变量“freq”并控制LED灯的闪烁频率;然后使用一个计时器中断服务程序来控制LED灯的闪烁,具体实现方式请参考代码注释。最后,为了保证每个周期的闪烁持续时间与频率相符,应该在循环内部加入一个延时操作,等待一定时间再进入下一次循环。

1、新建项目,如图所示。2、添加头文件,创建延迟函数。3、创建C主函数。4、添加死循环效果。5、点亮LED灯。P1=0x7e;二进制11111110。6、添加延迟效果。注意事项:很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要

程序清单 说明: 先写的延时子程序,放在了前面 然后是闪烁的主程序 includereg51.h sbit led=P1^0; //延时子程序 void delay() { int i; for(i=0;i=30000;i++); } //主程序 void main() { led=0; while(1) { led=~led; delay(); } } 完成结果仿真图 (tip:双击单片机,选

51单片机C程序实验LED灯:[1]单个灯闪烁

#include unsigned char n = 0; sbit key = P3^4; sbit led = P1^0; void delay() { unsigned int i, j; for(i = 0; i < 100; i++) for(j = 0; j < 500; j++); } void readkey(void) { unsigned char i, j; if(!key) { for(i = 0; i < 10; i++) for(j = 0; j < 120; j++); //延时消抖 if(!key) { while(!key); //等待按键释放 n++; n %= 4; //n = 0~3 } } } main() { while(1) { switch(n) { case 0: led = 1; readkey(); break; //熄灭 case 1: delay(); readkey(); //慢速闪烁 case 2: delay(); readkey(); //中速闪烁 case 3: delay(); readkey(); led = ~led; //快速闪烁 } } }
采用ULN2803驱动吧,2803正好是 8 入 8 出,满足你八路的要求,图如下: 接法:9脚接地,10脚COM端,接+5V 1 到 8,2803的输入控制端,接单片机的8个IO管脚 11到18,2803的输出控制端,接你灯的负极,灯的正极接电源 注意这样的接法是,单片机IO管脚单片机驱动
这种LED灯的功率有点高,他们的电压要求也有点大,通过继电器座耦合即可。通过继电器可实现LED灯的亮灭
这个指示灯是想用单片机控制的吗?是用LED吗?是什么单片机呢?如果是STC的单片机,每个I/O脚的低电平就能驱动LED指示灯,LED和一个限流电阻(510~1K)串联后接在电源和I/O引脚之间,LED的负极接到I/O脚上,当I/O脚输出低电平时,LED亮。如果不是STC单片机,需要用一个三极管(9013-NPN型的),基极接到I/O脚上,发射极接一个限流电阻,再接到LED正极上,LED负极接地,三极管集电极接到电源正极上。