導航:首頁 > 操作系統 > 單片機控制系統有8個發光二極體

單片機控制系統有8個發光二極體

發布時間:2022-05-31 17:20:27

1. 利用單片機控制8個發光二極體,實現8個燈同時閃爍的控製程序

以51位例,使用P1的八個IO口控制。
先定義:
sbit LED0=P1^0;
sbit LED1=P1^1;
........
以此類推,定義八個。
然後在主循環中:
LED0=0;
延時一段時間;
LED0=1;
就可以看到閃爍了。

2. 某單片機控制系統有8個發光二極體.試畫8051與外設的連接圖並用匯編語言編程使它們從左到右輪流點亮

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#7FH
LOOP:
MOV P0,A
LCALL DELAY
RR A
SJMP LOOP
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET

3. 用單片機控制8個發光二極體依次發光,產生跑馬燈的效果,3種效果循環,要求通過按鈕切換效果!

這個程序的關鍵點是要在顯示子程序執行的過程中,多對按鍵進行檢測。檢測到有按鍵按下時,即退出子程序,返回到主函數的按鍵檢測,對num
加一。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^5;
uchar temp;
uchar num;

void delay(uint z)//延時程序
{
uint x ,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void display0()//顯示效果1
{
uchar i;
temp=0xfe;
for(i=0;i<8;i++)
{
if(key1==0) break;//對按鍵進行檢測
P1=temp;
temp=_crol_(temp,1);
delay(50);
}
P1=0xff;
temp=0x7f;
for(i=0;i<8;i++)
{
if(key1==0) break;//對按鍵進行檢測
P1=temp;
temp=_cror_(temp,1);
delay(50);
}

}
void display1()//顯示效果2
{
uchar i;
temp=0xf8;
for(i=0;i<8;i++)
{
if(key1==0) break;//對按鍵進行檢測
P1=temp;
temp=_crol_(temp,1);
delay(50);
}
P1=0xff;
temp=0x1f;
for(i=0;i<8;i++)
{
if(key1==0) break;//對按鍵進行檢測
P1=temp;
temp=_cror_(temp,1);
delay(50);
}
}
void display2()//顯示效果3
{
uchar i;
temp=0x99;
for(i=0;i<8;i++)
{
if(key1==0) break;//對按鍵進行檢測
P1=temp;
temp=_crol_(temp,1);
delay(50);
}
P1=0xff;
temp=0xcc;
for(i=0;i<8;i++)
{
if(key1==0) break;//對按鍵進行檢測
P1=temp;
temp=_cror_(temp,1);
delay(50);
}
}

void anjian()
{
if(key1==0)//按鍵檢測
{
delay(5);//按鍵消抖延時
if(key1==0)
{
num++;
if(num==3) num=0;
}
while(!key1);
}
}

void main()
{
while(1)
{
anjian();//按鍵檢測並賦num值
switch(num)
{
case 0:display0();break;
case 1:display1();break;
case 2:display2();break;
}
}

}

4. 利用單片機控制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);
}

5. 用單片機控制8個發光二極體如流水般先從右往左再從左往右依次亮滅,每個狀態持續0.5秒,循環3次後

#include <reg52.h>

#define uchar unsigned char
uchar sum;
uchar a;

/*void delay void()
{
uchar i,j;

for(i=0;i<119;i++)

{
for(j=0;j<50;j++){;}

}
}
*/
void mian(void)
{
a=0x01;
P1=a;

TMOD=0X01;

EA=1;
ET0=1;
TR0=1;

TH0=(65536-50000)/256; //0.05秒,後面增加十倍以達到0.5s
TL0=(65536-50000)%256;
while(1)
{
;
}
}

void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
sum++;
if(sum==10)
{
sum=0;
a=a>>1;
P1=a;
}
}

這是無限第一個循環,再在main里加些控制語句就能左右三次最後全亮

6. 哪位大神幫忙寫下程序 利用單片機控制8個發光二極體,設計8個燈同時亮的控製程序怎麼寫

八個燈接在單片機的P1口(P0,P2,P3,P4都一樣)
while(1)
{
delay(你想要延時的時間);
P1=0xff;
delay(你想要延時的時間);
P1=0;
}
注意led最好加驅動,不然單片機會壞的。

7. 用51單片機控制八個發光二極體

// 51單片機控制八個發光二極體 左右循環。

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

unsigned char TAB[]= {0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff}; // 改變這里 LED 各種花樣

uchar t,i;

void main()

{

TMOD=0x10;

TH1=(65535-50000)/256; // 50ms一次

TL1=(65535-50000)%256;

EA=1;

ET1=1;//開定時器1中斷

TR1=1;//啟動定時器1

t=0;

i=0;

while(1)

{

}

}

void timer1() interrupt 3

{

TH1=(65535-50000)/256; // 50ms一次

TL1=(65535-50000)%256;

t++;

if(t==20)

{

t=0;

P2=TAB[i];

i++;

if(i==18) { i=0;}

}

}

8. 某單片機控制系統有8個發光二極體。試畫出89c51與外設的連接圖並編程使它們由左向右輪流點亮。

void dly(void)

{unsigned long cnt=2e5;

while(cnt--);

}

void main(void)

{unsigned char flag,cnt=0;

while(1)

{cnt++;

if(cnt>=8)cnt=0;

flag=(0x1<<cnt);

P1=~flag;

dly();

}

}

9. 用單片機控制8個LED發光二極體,從右到左依次亮,時間間隔0.5秒,最後用BCD碼表示16

ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV R2,#8

LOOP:
MOV P1,A

CLR C

RLC A

LCALL DELAY

DJNZ R2,LOOP

MOV P1,#16

SJMP $

DELAY:
MOV R3,#10

DLY1:
MOV R4,#200

DLY2:
MOV R5,#248

DJNZ R5,$

DJNZ R4,DLY2

DJNZ R3,DLY1

RET

END

閱讀全文

與單片機控制系統有8個發光二極體相關的資料

熱點內容
不能修改的pdf 瀏覽:736
同城公眾源碼 瀏覽:474
一個伺服器2個埠怎麼映射 瀏覽:282
java字元串ascii碼 瀏覽:61
台灣雲伺服器怎麼租伺服器 瀏覽:461
旅遊手機網站源碼 瀏覽:315
android關聯表 瀏覽:929
安卓導航無聲音怎麼維修 瀏覽:322
app怎麼裝視頻 瀏覽:423
安卓系統下的軟體怎麼移到桌面 瀏覽:80
windows拷貝到linux 瀏覽:755
mdr軟體解壓和別人不一樣 瀏覽:888
單片機串列通信有什麼好處 瀏覽:324
游戲開發程序員書籍 瀏覽:848
pdf中圖片修改 瀏覽:275
匯編編譯後 瀏覽:480
php和java整合 瀏覽:835
js中執行php代碼 瀏覽:447
國產單片機廠商 瀏覽:62
蘋果手機怎麼設置不更新app軟體 瀏覽:289