『壹』 利用單片機控制8個發光二極體,設計8個燈同時閃爍的控製程序
方法:
1:設定一個變數i,可以從0到3循環的變化
2:檢測一個經過消抖處理的按鍵,按一下,i+1
3:當i值為各個值時,執行相應的花樣。
流水燈參考程序
#include
#include
#define uchar unsigned char
uchar j,temp;
void delay(unsigned int ms)
{
uchar t;
while(ms--)
for(t=0;t<123;t++);
}
void main()
{
P1=0xff;
delay(500);
temp=0xfe; //有點怪,led接在P2.3~P2.6
for(j=0;j<4;j++)
{
P1=temp;
delay(500);
temp=_crol_(temp,1);
}
P1=0xff;
while(1);
}
『貳』 求單片機設計8個led燈同時閃爍的程序,
請設計一個8個led同時全部閃爍的程序
#include <reg51.h>
main ()
{int i;
while (1)
{for (i=0;i<=30000;i++);
P1=~P1;
}
}
『叄』 用單片機c52做閃光燈設計製作原因
製作簡單。單片機c52是用c語言來進行編程控制的,在編寫代碼的過程中只需要編寫控制閃光燈的開關和頻閃率即可,而且單片機C52的傳輸效率極高,可以有效的降低傳輸延遲,使其指令接收的更快。
『肆』 單片機閃爍小燈程序怎麼寫
#include<reg52.h>
#defineuintunsignedint
sbitD0=P0^0;
main()
{
while(1)
{
inti,j;
D0=0;
for(i=0;i<100;i++)
for(j=0;j<670;j++);
D0=1;
for(i=0;i<100;i++)
for(j=0;j<670;j++);
}
}
上面是基於51系列單片機寫的,D0是小燈的IO 口,在While循環中控制高低電平(寫0或1)就能實現小燈閃爍。
『伍』 51單片機定時器控制led閃爍
再就是說明出現了供電壓力比較大的情況下,所以才會出現這個閃光燈的這個閃爍情況,我是不是你自己開的壓力太。
『陸』 閃爍LED燈設計(單片機8051
p3.0~p3.2中,取P3.0、P3.1作為外部中斷接K1、K2接地,用P3.1接K3接地利用定時器中斷,三個中斷分別執行3種閃爍方式
逐個點亮:先SETB
P1.1
延時0.5,再SETB
P1.2,再延時……
遞進點亮:先SETB
P1.1
延時0.5,再SETB
P1.2且CLR
P1.1……
反正要哪個亮就讓那位置1或清0,上面用置1I/O口,把燈接地了,不實用,用I/O驅動燈電流不夠
讓要亮的燈通過足夠電流就行了
『柒』 單片機 8個LED燈隨機閃爍怎麼做
1、首先在電腦中新建項目:Keil uVision4 51單片機LED閃爍編程,如下圖所示。
『捌』 實現單片機控制LED燈不停閃爍,閃爍一次,要求亮500ms,滅500ms
摘要 很通俗易懂。要設計一個閃爍電路, 閃爍頻率為2Hz,即500ms亮滅交替。這個電路實現起來比較簡單,如果是在單片機電路上增加該功能的話,需要設計一個LED驅動電路以及使用定時器來實現GPIO的500ms定時翻轉;如果只是單純的設計一個閃光電路的話,可以使用555晶元來實現。1閃爍電路原理如果用高電平代表燈被點亮;用低電平代表燈熄滅的話。那麼燈的閃爍就可以使用方波來實現。那麼閃爍的快慢就是由方波的頻率來決定的。假設燈按照500ms來交替,即亮500ms再 滅500ms,那麼亮滅的一一個周期就是1s,頻率為1Hz。說明原理如下圖所示。
『玖』 51單片機燈閃爍怎麼編程
51單片機閃爍燈的編程程序要與相對應的機器連接之後,固定編碼操作。
『拾』 單片機_閃爍流水燈設計
我用C寫的可以嗎,效果應該是和你說的一樣了,K按下,8個燈順序亮一遍,亮的時候閃3次,然後一直循環;知道第二次按下,我用外中斷做的,你自己弄的時候看一下你自己的外中斷是哪個,吧P3^2改成你自己的,還有我的燈是P2口控制,你也把它改成你自己的就可以了
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit k=P3^2;
uchar temp,i; //賦值變數
void delay(uint z);
void main() //主程序
{
IT0=1;
EA=1;
EX0=1;
P2=0xff;
k=1;
while(k==0)
{
temp=0x01;
for(i=0;i<8;i++)
{
P2=~temp;
delay(100);
P2=0xff;
delay(100);
P2=~temp;
delay(100);
P2=0xff;
delay(100);
P2=~temp;
delay(100);
P2=0xff;
delay(100);
temp<<=1;
delay(200);
}
}
}
void Key() interrupt 0
{
k=~k;
}
void delay(uint z) //1ms延時子函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}