第二步:8个发光二极管一个一个亮,间隔时间为0.5秒。第三步:开始时,8个发光二极管全部熄灭,0.3秒后一个被点亮,间隔0.3秒后两个量,再间隔0.3秒后3个亮,以此类推,直至8个全亮。第四步:开始时,8个发光二极管全不被点亮,1秒后一

CALL PRG2 ; 灭且静音 SJMP 0 ;--- PRG1:MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0, #255 ; 8个led灯灭

include include define uchar unsigned char define uint unsigned int //延时 void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } //主程序 void main(){ uint s;

MOVWF TRISB;将portb设为输出状态 MOVLW B'1000000'LOOP:MOVWF DATA1 MOVWF PORTB;点亮第一个灯 CALL DELAY;调延时,这样能看到灯亮的效果 BCF DATA1,C;使进位c为0 RRF DATA1,F;循环右移 GO

单片机用MOV,DJNZ,CLE,等写8个LED灯按顺序闪的程序怎样写呢?还有每步的解释~~谢谢~~

1、创建项目,如图所示。2、创建延迟函数。3、创建C语言主函数。设计unsigned char k=0;变量。4、添加循环效果。5、点亮灯,通过k++,改变效果。6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。

define uint unsigned int //延时 void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } //主程序 void main(){ uint s;while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=

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上的

P1=0xfe; //点亮第一个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LED for(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LED for(i=200;i>

while(1){recy=0xfe;for(k=1;k<=8;k++){ P1=recy;Delay(50000);recy=recy<<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位 } } } 已通过

此时电流通过P1口经LED流向P2口,8个灯全部点亮,如果P1不变,P2 = 0XFF; 此时由于P1与P2的接口全部是高电平,没有电压差也就没有电流,LED全部熄灭,

使用单片机I/O口控制8只LED灯。 1)点亮8个中的的第任意个LED灯。 使任意一个或多个LED灯闪烁

我给你提供一个思路:1:按键处理部分,定义一个按键变量x,在按键按下后松手变量x加1,判断按键变量 if(x >= 3){ x = 0;处理8个LED灯的函数}

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

LED = LED|0x80;} else { P2 = LED;LED = LED << 1; // 左移 LED = LED | 0x01;} } void delay(unsigned int b){ unsigned char j;for(b; b > 0; b--) //机器在这里执行需要一段时间

用74hc595芯片做输出,即可实现三个端口控制多输出的问题。对于超过八输出,再增加一个595芯片即可实现。

很简单,用rand函数和srand函数,这样将得到的值对8取余数,即rand%8,就可以点亮随机的灯了,至于其他如何点亮环节还有延时的你可以自己编写,想学单片机的人是必须学的,我也就不提示了,这只是个思路,要是全给你完整代

CALL PRG2 ; 灭且静音 SJMP 0 ;--- PRG1:MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0, #255 ; 8个led灯灭

1:首先设定一个变量i,可以是从0到3循环的变化,2:再检测一个经过消抖处理的按键,按一下,即i+1 3:当i值为各个值时,执行相应的变换花样。流水灯参考程序 include include define uchar unsigned char uchar j,tmp

单片机 8个LED灯随机闪烁怎么做?

1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。3、接着创建延迟函数,如下图所示,输入以下代码。4、然后创建C语言主函数,如下图

请设计一个8个led同时全部闪烁的程序 include main (){int i;while (1){for (i=0;i<=30000;i++);P1=~P1;} }

include#define uchar unsigned charvoid delay(uchar a){uchar i;while(a--)for(i=0;i<120;i++);}main(){while(1) { P0=0x00; delay(200); P0=0xff; delay(200); }}

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,//右移 0xff,0x55,//闪 0x3f,0xcf,0xf3,0xfc,0xff,0xfc,0xf3,0xcf,0x3f,//两位一起移动 0xff,0xaa};//闪 unsigned int a;main(){ unsigned char i

这个很简单,不过有现成的8分钱的芯片,电压低1.2到7V

1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。流水灯参考程序 include include define uchar unsigned char uchar j,temp;void delay(un

CALL PRG2 ; 灭且静音 SJMP 0 ;--- PRG1:MOV P0, #0 ; 8个led灯亮 MOV R2, #200 LP1:CPL P1.0 ; 蜂鸣器响 DJNZ R6,DJNZ R7, $ - 2 DJNZ R2, LP1 MOV P0, #255 ; 8个led灯灭

求单片机设计8个led灯同时闪烁,并且led灯亮的时候控制蜂鸣器发生,led灯灭的时候关闭蜂鸣器的程序

简单编了一下程序,,, #include sbit key=P3^4; //按键,按实际再改 void delay(unsigned int t) { while(--t); } void main() { unsigned char q; P1=0xfe;//1111 1110 P1口led灯,实际不是再改 while(1) { P1=0xfe;//1111 1110 for(q=0;q<8;q++) { delay(25000); //0.5S,得按照实际晶振再改 P1<<=1; if(q==7) {P1=0xfe;} } if(key == 0) { delay(200); //按键防抖 if(key == 0) { P1=0xff; P1=0x00; P1=0xff; P1=0x00; P1=0xff; P1=0x00; } } } } 拿了一个之前画的proteus图,少了个晶振和复位电路,你补一下自己
你用74HC595吧,只用3根线就可以控制了,一个74HC595输出为8位,这样可以控制8个LED,而且每个74HC595都可以级联的,像我这图示例,上面一共有5个74HC595,都是级联的,所以上图实际上3个IO口即可控制5*8=40个LED! 当然,级联的多少,就看你的需要了,呵呵!
delay: mov r0,#0 delay1: mov r1,#200 djnz r1,$ inc r0 mov a,r0 cjne a,#20,delay1 ret
1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1” 3:当I值为每个值时,执行相应的模式。 水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度; 无效延迟(无符号整型ms) { Uchart; (女士) 对于(t = 0;T < 123;T + +); } Voidmain() { P1=0XFF; 延迟(500); Temp=0xfe;//奇怪,led连接在P2.3~P2.6 对于(j = 0;J < 4;J + +) { P1=temp; 延迟(500); Temp=_crol_(Temp,1); } P1=0XFF; (1); } 扩展资料: 注意事项: #include“reg52。这个文件为单片机定义了一些特殊的功能寄存器 Typedef无符号int在16以下;//以声明的方式定义数据类型 无符号charu8; //LED灯 Sbitleda=P0; Sbitled1=P0^0; Sbitled2=P0^1; Sbitled3=P0^2; Sbitled4=P0^3; Sbitled5=P0^4; Sbitled6=P0^5; Sbitled7=P0^6; Sbitled8=P0^7; 无效延迟(16岁以下) { ,(我); } Voidmain() { 而(1) { 勒达=1;//所有的灯都亮着 //从左到右熄灭 Led1=0; 延迟(50000);//延迟时间约为450毫秒 Led2=0; 延迟(50000);//延迟时间约为450毫秒 Led3=0; 延迟(50000);//延迟时间约为450毫秒 Led4=0; 延迟(50000);//延迟时间约为450毫秒 Led5=0; 延迟(50000);//延迟时间约为450毫秒 Led6=0; 延迟(50000);//延迟时间约为450毫秒 Led7=0; 延迟(50000);//延迟时间约为450毫秒 Led8=0; 延迟(100000);//延迟大约900毫秒 //从右到左照明 Led8=1; 延迟(50000);//延迟时间约为450毫秒 Led7=1; 延迟(50000);//延迟时间约为450毫秒 Led6=1; 延迟(50000);//延迟时间约为450毫秒 Led5=1; 延迟(50000);//延迟时间约为450毫秒 Led4=1; 延迟(50000);//延迟时间约为450毫秒 Led3=1; 延迟(50000);//延迟时间约为450毫秒 Led2=1; 延迟(50000);//延迟时间约为450毫秒 Led1=1; 延迟(50000);//延迟时间约为450毫秒 勒达=1;//所有的灯都亮着 } }