在8个LED闪烁电路中,增加一个开关,实现开关断开,8个LED全灭开关闭合,8个LED亮?

作者&投稿:少便 (若有异议请与网页底部的电邮联系)
单片机 在8个led灯中循环切换,一个开关控制8个灯 默认第1个亮 按一下下一个亮前一个灭 第8个亮完重复~

#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit key=P1^0;
void Delay_ms(uint xms) //延时程序,xms是形式参数
{

uint i, j;
for(i=xms;i>0;i--)
for(j=115;j>0;j--);
}
void main(){
uchar led_data=0xfe;
while(1)
{
P2=led_data;//默认第一位亮
if(key==0)
Delay_ms(10);
if(key==0)
{
while(!key);
Delay_ms(500); //延时0.5s
led_data=_crol_(led_data,1);//移位函数,使led_date向左循环移动1位
}
}

}

已通过仿真,符合你的要求!

单片机中只用一个开关控制8个LED轮流亮灭,这很容易实现,也是最简单的控制方法,只要识别了按键按下了,就可以控制。轮流点亮更容易,用移位函数_crol_或_cror_就行了。是要仿真吗,给你个仿真图。

单看你的描述,如果只是希望在开关闭合时所有灯全开,关断时所有灯全灭,那你只需要在这个闪烁电路的最前端增加一个开关,控制它的供电电源,就可以达到你的要求了。
电源接通,闪烁电路全部工作,灯亮。
电源断开,闪烁电路断电,灯全灭。

那就是加一个总开关。
总开关断开,整个电路的电都断了,灯灭。
总开关闭合,整个电路才有电,灯才会亮。


设计一个8灯闪烁的控制电路,系统晶振为12MHZ,编程实现8灯轮流闪烁...
这就是典型的8个LED的流水灯,并用定时器来控制点亮的时间。可用定时器定时50ms,采用中断方式,对中断计数40次就是2s,每到2s移动点亮下一个LED灯。可先画出仿真图再写程序,如下所示仿真图。

在8个LED闪烁电路中,增加一个开关,实现开关断开,8个LED全灭开关闭合,8...
单看你的描述,如果只是希望在开关闭合时所有灯全开,关断时所有灯全灭,那你只需要在这个闪烁电路的最前端增加一个开关,控制它的供电电源,就可以达到你的要求了。电源接通,闪烁电路全部工作,灯亮。电源断开,闪烁电路断电,灯全灭。

单片机:设计一个8灯闪烁控制电路,系统晶振为12HMz,编程实现8灯轮流闪 ...
LED负极接单片机IO口,本程序接P1,低电平点亮 include <reg52.h> \/\/52系列单片机头文件 include <intrins.h> define uint unsigned int \/\/宏定义 define uchar unsigned char void delayms(uint); \/\/声明子函数 uchar aa;void main() \/\/主函数 { aa=0xfe; \/\/赋初值11111110 ...

想设计一个电路,有八个LED灯,每次只能随机显亮一个,每次点亮的时间可调...
可用单片机或PLC很容易实现。用电路控制比较复杂些:用两个振荡器,一个高频振荡进行计数,一个低频振荡进行锁存,再加上输出就可以啦。

怎么利用单片机控制八个led灯?
1:首先设定一个变量i,可以是从0到3循环的变化,2:再检测一个经过消抖处理的按键,按一下,即i+1 3:当i值为各个值时,执行相应的变换花样。流水灯参考程序 include include define uchar unsigned char uchar j,tmp;void deay(unsigned int ms){ uchar t;while(ms--)for(t=0;t<12;t++...

设计并制作8路彩灯控制电路,用以控制8个LED按照不同的花色闪烁
在这个电路的LED处,可接小型继电器,扩大灯的只数和功率。

51单片机,电路图如下,要求8个LED同时亮,或者同时灭,每中断一次变反一次...
void timer0_ISR(void) interrupt 1 using 3 { P1 = ~P1;TL0 = 0XFF;TH0 = 0XFF;TF0 = 0;} void timer_init(void){ IE=0x82; \/\/寮€镐讳腑鏂璄A锛屽厑璁稿畾镞跺櫒0涓柇ET0 TCON=0x00; \/\/锅沧瀹氭椂鍣紝娓呴櫎镙囧织 TMOD=0x02;...

8个LED,三个按键k1、k2、k3,按k1键从左至右逐个亮,k2键从右至左逐个亮...
uchar ledstate(void)\/\/LED显示程序 { static uchar temp=0xff;uchar temp1=0;if(++temp==8)temp=0;if(keysign1){ switch(keysign2){ case 0: if(++temp>7)temp=0;temp=(1<<temp);break;case 1: if(--temp>7)temp=7;temp=(1<<temp);break;case 2:if(++temp>7)temp=1;...

单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

8路LED彩灯,要求效果(从左到右依次亮,从右到左依次亮,全灭全亮),最好...
电路狠简单。就不画了。说一下吧。 采用8个共阴二极管。 接单片机P1.0-P1.7 程序如下:从左到右 ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV SP,#50 MOV A,#80H MOV P1,A LCALL DELAY T1: RR A 从左到右依次亮 LCALL DELAY LJMP T1 延时一秒程序:DELAY:MOV R5,#200 D1: M...

重庆市19290439522: 利用单片机、1个开关、8个LED发光二极管(水平排列)和定时器,实现开关控制循环左移和右移流水灯效果. -
辉璧霏刻: 算法: 1 采用定时器定时25毫秒 启动定时器工作2 每当定时时间到中断 在中断服务程序中软件计数器减1(初始值为20)3 当软件计数器减到0时,表示0.5秒时间到这时可以判断开关状态开关合上 可以让8个LED左移一位开关断开 可以让8个LED右移一位 呵呵 按上诉算法 编写程序 就可以实现你的要求(指导可以见的消息 右上角) 满意 就选满意回答

重庆市19290439522: 因为客人的开关带有LED指示灯,关灯后,有电流流过LED驱动,. 所以引起LED光源闪烁现象 -
辉璧霏刻: 是的.这种现象不仅发生在开关上,凡是使用将LED使用在强电场合似乎都有这种现象(弱电电路中没有).我分析可能与感应电流有关.因为LED的驱动电流非常小,小到甚至几毫安都可以使它点亮.在强电场合,产生的感应电压分布在空间周围.这个感应电场很弱,人一般感觉不到.但这个电场却足可以使得LED灯发光,只不过比正常亮度小很多而已.只要亮度不影响人休息,不管它无妨.

重庆市19290439522: 单片机 8个按键分别控制对应的8个led的亮灭 程序设计 -
辉璧霏刻: 八个灯接在单片机的P1口(P0,P2,P3,P4都一样) while(1) { delay(你想要延时的时间); P1=0xff; delay(你想要延时的时间); P1=0; } 注意led最好加驱动,不然单片机会坏的.

重庆市19290439522: 汇编led灯显示八个灯每次多一个.依次点亮 -
辉璧霏刻: P1 外接 LED,低电平发光.1 2 3 4 5 6 7 8 9 10 11 12 13 14ORG 0MOV A, #255MOV R2, #9 LP:MOV P1, ADJNZ R7, $DJNZ R7, $DJNZ R6, $ - 4CLR CRLC ADJNZ R2, LPSJMP 0END

重庆市19290439522: 单片机的题目: 共点亮灯的个数有八个,从左向右依次增加,从亮一个一直增加到八个全亮,然后全灭,再 -
辉璧霏刻: void delay(uchar a) { uchar i,j; for(i=0;i<a;i++) for (j=0;j<120;j++); } main() { uchar i,led=0xfe; while(1) { while(i--) { P0=led; led<<=1; delay(100); } P0=0xff; delay(100); P0=0x00; delay(100); P0=0xff; delay(100); } }

重庆市19290439522: 单片机p1端口接8个LED灯,D0点亮后闪烁一次 ,D1点亮后闪烁两次,D2点亮后闪烁三次以此类推 -
辉璧霏刻: LED EQU 30H ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV LED,#0FEHMOV R2,#1 LOOP:MOV A,LEDMOV P1,ALCALL DELAYPUSH 02H SHAN:MOV P1,#0FFHLCALL DELAYMOV P1,ALCALL DELAYDJNZ R2,...

重庆市19290439522: keil软件用单片机控制8个LED流水灯来回点亮(C语言程序) -
辉璧霏刻: #include "reg51.h"main(){unsigned int i,j;while(1){P1=0xfe; //点亮第一个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LEDfor(i=200;i>0;i--)for(j=500;j>...

重庆市19290439522: 用c语言写一个由单片机PO口的一个引脚控制一个发光二极管闪烁? -
辉璧霏刻: 给你个参考; void delay(); main() { while(1){ //设P1.0引脚去驱动LED, P1=0xff;delay(500);//延时500mS P1=0xfe; //P1.0引脚反复输出高电平,低电平,LED即闪烁; delay(500);//延时500mS }

重庆市19290439522: 单片机中写出响应的代码,实现八盏LED灯的全亮 -
辉璧霏刻: 你把八个LED灯接在一个Px口中,一刷就可以了 Px = 0xff;(假设高电平点亮)

重庆市19290439522: 1,,利用单片机的某个端口实现8个led灯依次亮. 2,利用外部中断". 3.退出中断后,仍然按照1步骤闪烁. -
辉璧霏刻: #include sbit key=P1^0; main() { unsigned char led; led=0xfe; while(1) { if(key==0) { while(key==0); P0=led; if(led==0x00)led=0xff; led<<=1; } } }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网