用51单片机的并行I/O口输出控制8个LED从LED1到LED8、再到LED1......,每次点亮

用51单片机的并行I/O口输出控制8个LED从LED1到LED8、再到LED1......,每次点亮一个LED,间隔时间大约0.5s,并不断循环。用一个按键开关控制引起中断,下降沿触发,中断后8个LED一起闪3下,然后恢复前面的循环。画出硬件电路连接示意图,编写完整的程序。
大神们帮帮忙,悬赏有点少,但是是全部家当了

简单编了一下程序,,,

#include<reg52.h>

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图,少了个晶振和复位电路,你补一下自己

温馨提示:内容为网友见解,仅供参考
无其他回答

用51单片机控制八个发光二极管
t=0;P2=TAB[i];i++;if(i==18) { i=0;} } }

求51单片机led1到led8依次点亮等全亮后再从led8到led1依次熄灭...
CLR LED3 CALL DELAY ... ...SETB LED8 CALL DELAY SETB LED7 CALL DELAY SETB LED6 CALL DELAY ... ...END

使用单片机I\/O口控制8只LED灯。 1)点亮8个中的的第任意个LED灯。 使...
此时电流通过P1口经LED流向P2口,8个灯全部点亮,如果P1不变,P2 = 0XFF; 此时由于P1与P2的接口全部是高电平,没有电压差也就没有电流,LED全部熄灭,如果想让某一个灯点亮,可以根据8421法则,P2.7 P2.6 P2.5 P2.4是高8位,...

利用单片机控制8个发光二极管,实现8个灯同时闪烁的控制程序
以51位例,使用P1的八个IO口控制。先定义:sbit LED0=P1^0;sbit LED1=P1^1;...以此类推,定义八个。然后在主循环中:LED0=0;延时一段时间;LED0=1;就可以看到闪烁了。

用五一单片机c语言编程,p1口控制八个发光二极管,实现每隔一秒,两两点亮...
void main(){ P0 = 0x00; \/\/P0.0~P0.7分别接八个发光二极管,刚开始全灭 while(1){ delay(1000);P0 = 0xc0;\/\/点亮前两个发光二极管P0.0和P0.1;delay(1000);\/\/延时1秒 P0 = 0x30;\/\/点亮第三个和第四个LED delay(1000);P0 = 0x0c;delay(1000);P0 = 0x03;} } 二、inclu...

要求用51单片机控制8个LED亮灭的原理图+程序+解说?
i、j、k都是记录计时器溢出次数的变量,stat是记录当前显示状态的变量,由按键key控制 temp是状态2中保护P1口状态的变量*\/ unsigned char i=0,j=0,k=0,stat=0,temp;bit flag=1; \/\/状态1处于灭灯还是亮灯状态的变量,1为依次亮灯,0为依次亮灯 sbit key=P3^7; \/\/按键控制 void init(); ...

51单片机如何控制8个led程序
while(1) 主循环 { P2=LED; 点亮发光管,即先点亮右边的第一个 Delay10ms(50); 延时一段时间 LED=LED<<1; 点亮的发光管,向左移动一位 if (P2==0x00) 判断是否8个全部点亮了 { LED=0xff; 如果全部点亮,则将全部发光管熄灭 } } } void Delay10ms(unsigned int c...

利用C51单片机控制8个LED灯同时闪烁的程序
include<reg51.h>#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); }}

51单片机八个LED灯1357,2468交替点亮?
include <reg52.h> \/\/ 导入51单片机头文件 void main() { while (1) { \/\/ 死循环 P1 = 0x55; \/\/ 将二进制01010101写入P1,点亮LED1、3、5、7 Delay(500); \/\/ 延迟0.5秒 P1 = 0xAA; \/\/ 将二进制10101010写入P1,点亮LED2、4、6、8 Delay(500); \/\/ 延迟0.5秒 } } ...

在51单片机中用c语言keil写程序实现用一个按键控制8个灯的亮和灭(按...
\/\/程序很简单也有很多方法都可以实现 。include <reg52.h> include "INTRINS.H"sbit k = P1^0; \/\/P1.0作为按键输入 int led=0xff;void main(){ P2 = led; \/\/led初始赋给P2口 while(1){ if(k==0) \/\/如果按键按下 { while(k==0); \/\/判断按键松开 led=~led;P2 = ...

相似回答