導航:首頁 > 操作系統 > 單片機控制反復循環點亮的流水燈

單片機控制反復循環點亮的流水燈

發布時間:2022-12-29 13:12:01

1. 如何編寫單片機上流水燈來迴流的程序

/*-----------------------------------------------
名稱:流水燈
內容:循環點亮P1口對應的8個LED燈,造成循環流水點亮的效果
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
/*------------------------------------------------
延時子程序
------------------------------------------------*/
void delay(unsigned int cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函數
------------------------------------------------*/
main()
{
P1=0xfe; //給初始化值 換算成二進制是1111 1110
while(1)
{
delay(30000);//延時程序
P1<<=1; //左移一位 該語句等效於 P1=P1<<1
P1|=0x01; //最後一位補1,該語句等效於 P1=P1|0x01 符號"|"表示"或"
if(P1==0x7f) //檢測是否移到最左端?"=="表示檢測符號2端的值是否相等
{
delay(30000);
P1=0xfe; //重新賦值
}
}
}

2. 如何用單片機實現流水燈,從一依次亮到八,再從八依次亮回一,一直循環

有個想法, 放一個位元組LED做標志位,可位定址。 每一位代表一個燈。

對位元組LED附初值1,做一個200mS的時鍾,每200ms對位元組LED值做左移1位指令(匯編可循環)。

主程序中位定址判斷位元組LED的bit(0-7)點亮相應的燈。或者直接P0=LED

純想法、還沒試過,感覺好玩,呵呵。 好像上述燈流的方式不對,不過可以改。。。

3. 求!! 如何用C51單片機中斷系統實現循環五遍流水燈以後再循環10次閃爍

這個程序很簡單的,只要掌握了循環表達方式就可以實現。首先,編寫流水燈的循環函數,其次使用for語句進行循環。完成後可以修改畫質後同樣方法實現閃爍。

4. C語言控制單片機,控制八個流水燈從左到右依次亮,最後又從右到左依次亮回來,一直循環下去,求幫幫忙

假設P1接8 個LED,高電平時LED點亮,主程序如下:
void main(void)
{
uchar i;
while(1)

{
for(i=0;i<7;i++)
{
P1=1<<i;
delay_ms(500);
}
for(i=0;i<7;i++)
{
P1=0x80>>i;
delay_ms(500);
}
}
}

5. 如何用單片機實現流水燈,從一依次亮到八,再從八依次亮回一,一直循環

用GPIO寄存器比如PA、PB、PC這類的整段寄存器。配合循環、移位和延時(軟硬都可以)操作,就能很優雅地實現。

單片機(Single-Chip Microcomputer)是一種集成電路晶元,是採用超大規模集成電路技術把具有數據處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統、定時器/計數器等功能(可能還包括顯示驅動電路、脈寬調制電路、模擬多路轉換器、A/D轉換器等電路)集成到一塊矽片上構成的一個小而完善的微型計算機系統,在工業控制領域廣泛應用。從上世紀80年代,由當時的4位、8位單片機,發展到現在的300M的高速單片機。

單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。相當於一個微型的計算機,和計算機相比,單片機只缺少了I/O設備。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。

6. 單片機如下電路,讓顯示燈從上往下依次點亮,不斷循環。

/* 實驗目的:初步了解單片機I/O口的工作原理,進一步掌握51單片機的匯編指令。 * 實驗內容:用匯編指令對單片機I/O口進行編程,控制8個發光二極體的流水亮滅。 */ /* 程序詳細功能介紹: *做單一燈的左移右移,八個發光二極體L0-L7分別接在單片機的P0.0-P0.7介面上, *輸出「0」時,發光二極體亮,開始時P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重復循環。 */ ORG 0000H LJMP START ORG 0030H START: MOV R2,#8 ;左移次數 MOV A,#0FEH ;A的初始值,即 P0.0的L0 點亮 SETB C LOOP: MOV P0,A LCALL DELAY RLC A ;左移流水燈(帶進位的左移),即亮點向P0口的高位移動 DJNZ R2,LOOP MOV R2,#8 ;右移次數 LOOP1: RRC A ;右移流水燈 MOV P0,A LCALL DELAY DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#10 ;延時子程序,改變R5,R6,R7 的值,可以改變延時的時間,從而改變流水燈移動速度 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END

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

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

8. 單片機AT89C51單片機流水燈修改成先亮一個後亮兩個一直循環到亮八個怎麼改

根據你的格式那就這樣改吧:
主函數while(1)裡面改成

P2=(P2<<1)|0x01;
delay500ms();
if(P2==0xFF)
P2=0x00;

9. 51單片機流水燈依次點亮循環兩次怎麼實現只循環兩次!

#include<reg52.h> // 這是下圖的程序,可以模擬 試試

#define uchar unsigned char

#define uint unsigned int

uchar i,t;

uchar code table[]={0xf6,0xed,0xdb,0xf6,0xed,0xdb}; // 發光二極體循環點亮可以有很多方法

uchar code tabled[]={0xaa,0x55,0xaa,0x55,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void delay(uint z) // 延時程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void main()

{

t=30;

while(1)

{

t++;

if(t==100) t=10;

for(i=0;i<20;i++) // 發光二極體 循環亮

{

P1=tabled[i];

delay(250); // 調用延時程序

}

}

}

閱讀全文

與單片機控制反復循環點亮的流水燈相關的資料

熱點內容
蘋果平板如何開啟隱私單個app 瀏覽:704
空調壓縮機一開就停止 瀏覽:528
如何下載虎牙app 瀏覽:847
日語年號的演算法 瀏覽:955
dev裡面的編譯日誌咋調出來 瀏覽:298
php函數引用返回 瀏覽:816
文件夾和文件夾的創建 瀏覽:259
香港加密貨幣牌照 瀏覽:838
程序員鼓勵自己的代碼 瀏覽:393
計算機網路原理pdf 瀏覽:752
吃雞國際體驗服為什麼伺服器繁忙 瀏覽:94
php中sleep 瀏覽:490
vr怎麼看視頻演算法 瀏覽:86
手機app如何申報個人所得稅零申報 瀏覽:694
如何截獲手機app連接的ip 瀏覽:331
冰箱壓縮機是否需要電容 瀏覽:346
python列表每一行數據求和 瀏覽:275
自己有一台伺服器可以玩什麼 瀏覽:657
社會學波普諾pdf 瀏覽:584
解壓做食物的小視頻 瀏覽:760