導航:首頁 > 操作系統 > 單片機開關控制流水燈

單片機開關控制流水燈

發布時間:2022-10-03 04:37:12

單片機中流水燈如何控制

單片機中流水燈控制:
硬體連接很簡單,只要將8個LED指示燈接在P1口上 另一端通過220歐姆的電阻接+5V電源上,就可以了。
主要靠軟體控制,簡單的可以使用左移或右移指令,將低電平0 逐漸移入寄存器中,即控制LED指示燈逐漸一個一個地點亮或一個一個地熄滅。
復雜點: 可以進行花式流水控制。
例如: 可以由兩邊逐漸向內點亮 然後再由內逐漸向外一個一個熄滅。
還可以由由內逐漸向兩邊內點亮 然後再由兩邊漸向內逐一個一個熄滅。
在程序的實現上 可以把各種花式流水的P1口亮滅狀態字 事先定義成數組 然後每隔一定的時間
取出送P1口顯示。

呵呵 俺只提供給你一個號的演算法 程序就自己動手自立更生。

㈡ 單片機C語言編程:控制流水燈

#include<reg52.h>
#include<intrins.h>
#define uintunsignedint
#define ucharunsignedchar
sbitk1=P1^0;//左循環按鈕
sbitk2=P1^1;//右循環按鈕
sbitk4=P1^2;//恢復暫停
sbitk3=P3^2;//暫停
voidinit();
voidshowLED();
voiddelay(uintxms);
uintdelayTime;
uintgoLeft=1;
uintgoRight=0;
uintsFlag=0;
voidmain()
{
init();
while(1)
{
if(k1==0)
{
delay(10);
if(k1==0)
{
while(k1==0);
goLeft=1;
goRight=0;
}
}
if(k2==0)
{
delay(10);
if(k2==0)
{
while(k2==0);
goLeft=0;
goRight=1;
}
}
}
}
voiddelay(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
voidinit()
{
P0=0xfe;
TMOD=0x02;//T0工作模式2自動裝填8位 200us
TH0=0x38;
TL0=0x38;
EA=1;
ET0=1;
TR0=1;
EX0=1;
IT0=1;
}
voidshowLED()
{
if(goLeft==1)
P0=_crol_(P0,1);
if(goRight==1)
P0=_cror_(P0,1);
}
voidmoveDelay()interrupt1 //一次中斷200us
{
if(delayTime==5000)
{
showLED();
delayTime=0;
}
else
delayTime++;

}
voidstopLED()interrupt0
{
while(1)
{
if(k4==0)
{
delay(10);
if(k4==0)
{
while(k4==0);
break;
}
}
}
}

㈢ 單片機中流水燈如何控制

單片機中流水燈控制:
硬體連接很簡單,只要將8個LED指示燈接在P1口上
另一端通過220歐姆的電阻接+5V電源上,就可以了。
主要靠軟體控制,簡單的可以使用左移或右移指令,將低電平0
逐漸移入寄存器中,即控制LED指示燈逐漸一個一個地點亮或一個一個地熄滅。
復雜點:
可以進行花式流水控制。
例如:
可以由兩邊逐漸向內點亮
然後再由內逐漸向外一個一個熄滅。
還可以由由內逐漸向兩邊內點亮
然後再由兩邊漸向內逐一個一個熄滅。
在程序的實現上
可以把各種花式流水的P1口亮滅狀態字
事先定義成數組
然後每隔一定的時間
取出送P1口顯示。
呵呵
俺只提供給你一個號的演算法
程序就自己動手自立更生吧
滿意
就選滿意回答

㈣ 51單片機,開關控制LED,開始流水燈,按一下停止,再按一下繼續流水燈

#include<reg51.h>
#include<intrins.h>
#define
uchar
unsigned
char
sbit
button=P1^0;
uchar
press=0;
void
Delay(uchar
z)
{
uchar
x,y;
for(x=z;x>0;x--)
for(y=255;y>0;y--);
}
void
Led_Continue()
{
P2=0xfe;
while(press==0|press==2)
{
P2=_crol_(P2,1);
Delay(255);
}
}
void
Led_Stop()
{
P2=0xff;
}
void
Keyscan()
{
if(button==0)
{
Delay(20);
if(button==0)
{
press+=1;
if(press==1)
{
Led_Stop();
}
if(press==2)
{
press=0;
}
}
}
}
void
main()
{
while(1)
{
Keyscan();
Led_Continue();
}
}
試試這個,在mian中要一直去掃描,否則就掃描一次不能達到目的。
然後你問用中斷怎麼完成,告訴你中斷更簡單,定時器用作延時用,鍵盤只需要寫當這個按鍵按下時
TRx=~TRx
就是每一次按下,定時器開關都和上一次狀態不一樣,這樣每按一次都會停止、開始、停止、開始......
希望我的回答能幫助到你。

㈤ 單片機匯編語言按鍵控制流水燈,兩個開關k1,k2。實現功能按下k1,流水燈左移動,按下k2,流水燈右移動。

K1EQUP1.0
K2EQUP1.1
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVA,#0FEH
CLR00H
CLR01H
LOOP:
JBK1,LOOP1
SETB00H
CLR01H
SJMPLOOP
LOOP1:
JBK2,LOOP2
SETB01H
CLR00H
LOOP2:
JB01H,LOOP3
JB00H,LOOP4
SJMPMAIN
LOOP3:
MOVP0,A
RRA
LCALLDELAY
SJMPLOOP
LOOP4:
MOVP0,A
RLA
LCALLDELAY
SJMPLOOP
DELAY:
MOVR2,#200
DLY:
MOVR3,#250
DJNZR3,$
DJNZR2,DLY
RET
END

㈥ 51單片機流水燈原理

單片機流水燈控制原理就是將多個LED燈珠連接到不同的單片機輸出端上,編程使單片機的這些輸出端逐個的輸出信號點亮LED,在設置好各個LED的通電時間和通電間隔時間後,就可以看到這些LED燈珠此起彼伏的亮起,如同流水一樣.

㈦ 單片機如何控制流水燈每三秒循環一次

for循環三次後,執行while(1); ,這是一條死循環語句,相當於暫停指令,停止在此處。因單片機沒有暫停指令,只好用這行語句代替了。
如果3次後,需要保持亮或滅,可以換一下:
led=1;
led=0;這兩行就行了。
在實現流水燈之前,我們有必要提一點,C51代碼在寫之前,要參考電路圖來寫。拿流水燈來說,我們來看圖二,LED燈,也就是二極體,八隻LED的正極通過一根匯流排接在+5V的電壓上,再看圖一,可知八隻LED燈的負極接在LED、P2的8個I/O口上。根據二極體的導通條件可知,在單片機的IO口輸出低電平時,才能點亮LED燈。

㈧ 單片機c語言編了個流水燈,用按鍵怎麼實現它暫停。

實現流水燈的方式有很多種(中斷,定時器,延時等等),看用哪種方式,最簡單的是延時做流水燈,那麼在死循環裡面增加按鍵檢測,判斷出有按鍵按下來時,再進入死循環,程序不往下走就可以暫停,再按跌出死循環。

#include //51系列單片機定義文件

#define uchar unsigned char //定義無符號字元

#define uint unsigned int //定義無符號整數

void delay(uint); //聲明延時函數

void main(void)

{

uint i;

uchar temp;

uint Flag1=0; 按鍵標志位

uint Flag2=0;

while(1)

{

Flag1 = keyscan();

if(Flag1==1)(Flag2=~Flag2); //如果一旦檢測到一次按鍵掃描就把標志位2 打開;再次就關閉;

if(Flag2==1)// 如果標志位打開就開始流水燈

{

temp=0x01;

for(i=0;i<8;i++) //8個流水燈逐個閃動

{

P1=~temp;

delay(100); //調用延時函數

temp<<=1;

}

}

(8)單片機開關控制流水燈擴展閱讀:

單片機編程就是硬體是單片機,基於單片機進行的程序開發,在有周圍外設支持的情況下,用軟體來控制的部分通過單片機編程來實現。單片機能識別的語言是硬體語言即匯編,因此編程就是圍繞匯編來實現,有直接用匯編程序來編寫的,但是較難調試的編寫,特別是一上規模就更不易實現,因此常用高級語言來寫然後通過編譯器轉化成匯編。

㈨ 單片機中如何利用開關SW控制流水燈的啟動和停止

在單片機的某個IO腳上接一個開關SW,主程序檢測開關的狀態,當開閉合,引腳為低電平,流水燈就停止。當開關開啟,引腳為高電平,則啟動流水燈流動。

閱讀全文

與單片機開關控制流水燈相關的資料

熱點內容
linuxtee命令 瀏覽:53
pdf程序員找不到了 瀏覽:63
全球票房實時查詢 瀏覽:223
伺服器如何添加域用戶 瀏覽:271
java靜態static 瀏覽:227
程序員容易掉頭發嗎 瀏覽:333
python通用管理系統 瀏覽:204
apachephphtml 瀏覽:141
安慶智能雲伺服器找哪家 瀏覽:763
linuxtab輸入 瀏覽:932
小說網盤資源 瀏覽:504
全免費影視投屏網站 瀏覽:254
娘娘懷孕快生了忍著不生 瀏覽:804
git拉取代碼的命令 瀏覽:995
程序員節西安市 瀏覽:687
單片機的閃燈 瀏覽:969
phpmime映射 瀏覽:583
關鍵特徵分析python 瀏覽:994
linux粘滯位 瀏覽:137
安卓如何把備忘錄調成黑色 瀏覽:864