Ⅰ 如何通過51單片機控制LED燈以1。5s的頻率的流水燈,求源代碼。
延時程序:讓xms=30
void delayms(uchar xms)
{
uchar a;
while(xms--)
for(a=110;a>0;a--);
}
Ⅱ 51單片機控制LED燈
首先要查看電路的連接,看看輸入連接到單片機的哪個引腳(比如P1.0),LED燈連接到哪個引腳(比如P2.0)。然後看是高電平有效還是低電平有效(也就是高電平時LED燈亮,還是低電平時LED燈亮)。
如果是高電平燈亮的話,程序如下:
P2.0=P1.0;
Ⅲ STC90C51單片機怎麼做50隻LED的流水燈
我給你提供一個思路吧,你可以網路一下光立方。光立方用10多個IO口,控制了512個LED。光立方大家都在做,網上有很多的資料。
Ⅳ 51單片機LED流水燈怎麼實現從兩邊同時逐個點亮到中間,又從中間逐個熄燈到兩邊
簡單點的,用表格,事先計算好,放到ROM中,用的時候逐行編譯輸出就可以。
復雜點的,開一個緩沖區,用循環程序,根據花樣的不同,每次填充一行,並輸出,然後再計算一下行。除非表格太大,不建議這樣用。
#define len 8
char tablelist[][len] =
{
"00000000",
"10000001",
"01000010",
"00100100",
"00011000",
}
outline( char * s )
{
int i;
for(i=0; i<len; ++i )
{
if ( s[i] == '0' )
{
// 對應的燈亮
}
else
{
// 對應的燈滅
}
}
}
main()
{
for(;;)
{
outline( &tablelist[i]);
delay(..);
}
}
Ⅳ 51單片機led流水燈兩個同時點亮,四次一循環
不知道你的板子,我就拿郭天祥經典的舉個栗子吧。
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
{
for(j=110;j>0;j--);
}
}
void main()
{
uchar a=0xfc;
while(1)
{
P1=a;
delay(500);
a=_crol_(a,2);
}
}
Ⅵ 51單片機流水燈程序
程序如下:
#include <reg52.h>
sbit led1 = P2^0;
sbit led2 = P2^1;
sbit led3 = P2^2;
sbit led4 = P2^3;
sbit led5 = P2^4;
sbit led6 = P2^5;
sbit led7 = P2^6;
sbit led8 = P2^7;
void main()
{
int i,j;
//點亮第一個燈
led1 = 1;
led2 = 0;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
//延時1秒
for(i = 0;i < 110; ++i)
{
for(j = 0; j < 1000; ++j)
{
;//什麼也不做
}
}
//點亮第二個燈
led1 = 0;
led2 = 1;
led3 = 0;
led4 = 0;
led5 = 0;
led6 = 0;
led7 = 0;
led8 = 0;
//點亮剩餘的燈
//省略……
while(1);
}
流水燈幾點說明:
void:因為該延時函數不需要返回值,所以寫為void
delay1s:該函數的函數名,命名需要符合C語言的標識符命名規則。
(): 不需要傳入參數,所以括弧中為空
至此我們可以把流水燈程序寫為以下形式: