導航:首頁 > 編程語言 > 簡單的流水燈編程python

簡單的流水燈編程python

發布時間:2023-04-03 09:43:01

❶ 設計一個流水燈的實驗,是6個led燈依次亮起來,請問可以幫我編寫一下程序嗎,謝謝各位了

;實驗目的:本程序主要實現一個簡單的流水燈程序
;即輪流點亮C口的8個燈(先點亮RC0,再熄滅RCO點亮RC1。。。。)
;硬體要求:撥碼開關S2全部置ON。
#include<p16f877A.inc> ;調用頭文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
;晶元配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振盪
;**********************用戶寄存器定義********************
count equ 20h ;移位次數寄存器
del_va1 equ 0ffh ;外層延時參數
del_va2 equ 0ffh ;內層延時參數

org 00h ;程序人口地址
; addlw 0ffh
;**********************主程序開始***********************
main
nop ;ICD所需要的一條空指令
clrf PORTC ;先清楚C口所有顯示
banksel TRISC ;選擇I/O口方向寄存器所在的體
clrf TRISC ;設置C口全為輸出
clrf STATUS ;返回體0
movlw .8
movwf count ;裝載循環次數8(C口共8位)

bsf STATUS,C ;置進位標志位為1,因循環移位是帶進位循環的
loop
rlf PORTC,1 ;C口左移1位
call delay
call delay
CALL delay ;調用三次延時程序(保證亮度,以及流水燈閃爍速度)
bcf STATUS,C ;清0進位標志位(永遠只有一隻LED亮)
DECFSZ count,1 ;判斷是否一輪循環結束
goto loop ;否,繼續循環移位
GOTO main ;是,程序重頭開始

;***********************延時程序*************************
delay
movlw del_va1 ;延時程序外層參數
movwf 30h
movlw del_va2 ;延時程序內層參數
movwf 31h
decfsz 31h,1
goto $-1
decfsz 30h,1
goto $-4
return

;********************程序結束****************************
end

❷ 有幾種編程方法可以實現流水燈自上而下依次點亮

聽輪運起來是不是很簡單啊!那麼下面我們來看下實現流水燈功能的三種常用方法!
第一種,匯流排方法實現流燃消水燈。臘段梁
這是一種比較笨但又最易理解的方法,採用順序程序結構,用位指令控制P1口的每一個位輸出高低電平,加上延時函數,即可控制每個LED燈的亮滅。C程序如下:

[cpp] view plain
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
code unsigned char tmpled

❸ 做一個雙向流水燈,怎樣用if else語句編程萬分感謝!!!

假設辯拿皮有10個燈:d(10),d(n)=true表攜差示亮:敏乎

i=3 『表示想3號燈亮
for n=0 to 9
if n=i then
d(n)=true
else
d(n)=false
end if
next

❹ 流水燈編程,急~~~~

#include <avr/io.h>
#include <avr/delay.h>
void ledpy()
{

unsigned char i;
DDRA=0xFF;
PORTA=0x01;
for(i=1;i<8;i++)
{
_delay_ms(200);
PORTA<<= 1;

}
for (i=0;i<8;i++)
{
_delay_ms(200);
PORTA>>=1;
}
PORTA=0xAA;
for(i=0;i<瞎悔閉8;i++)
{
_delay_ms(200);
PORTA=~PORTA;
}
PORTA=0x00;
for(i=0;i<8;i++)
{
_delay_ms(200);
PORTA=~PORTA;
}
PORTA=0x00;
for(i=0;i<8;i++)
{
_delay_ms(200);
PORTA=PORTA<<1|0x01;
}
for(i=0;i<8;i++)
{
_delay_ms(200);
PORTA=PORTA>>1&0x7f;
}
}
int main(void)
{
while(1)
{
//TODO:: Please write your application code
ledpy();
}
} 可能 有的地方 有問題 不過 這樣磨裂 大前州概是實現 效果了

❺ 求52單片機流水燈程序

//單片機流水燈程序,是學習單片機的最簡單的程序。

//流水燈

#include <REG51.h> //51頭文件

#define DY_PORT P1 //設置LED連接的I/O組

#define DY_SPEED 100 //設置每一個明亮級的停留時間(值域:0~65535)

void delay (unsigned int a){ // 1ms延時程序

unsigned int i;

while( --a != 0){

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

}

}

void main(void){

unsigned int i;

unsigned int temp;

while(1){

temp=0x01;

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

DY_PORT=~temp;

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

temp<<=1;

}

temp=0x80;

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

DY_PORT=~temp;

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

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++){ //8個流水燈依次全部點亮

DY_PORT=temp;

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

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++){ //8個流水燈依次反向全部點亮

DY_PORT=temp;

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

temp>>=1;

}

}

}

❻ 急求單片機流水燈程序及詳解

你好! 給你兩個份實例 基本可以搞定啦 !

一。。。。流水燈實例
1. 基礎知識:定址方式是尋找、確定參與操作的數據的地址的方式。8051單片機的定址方式包括寄存器定址、直接定址、寄存器間接定址、立即定址、變址定址和位定址7種定址方式。
2. 硬體電路(等級不夠還不能傳圖片哈)

3. 軟體程序設計:
ORG 0000H ;偽指令,指定程序從0000H開始存放
LJMP MAIN; 跳轉指令,程序跳轉到MAIN處

ORG 0100H ;偽指令,指定以下程序從0100H開始存放
MAIN:
MOV SP,#60H ;給堆棧指針賦初值
MOV P1,#0FFH ;給P1賦初值,LED全滅
;以下為查表程序
MOV DPTR,#LED_TABLE
LIGHT:
MOV R7,#42
LOOP:
MOV A,#42
SUBB A,R7
MOVC A,@A+DPTR
MOV P1,A ;輸出顯示
LCALL DELAY ;調延時子程序
DJNZ R7,LOOP
SJMP LIGHT ;跳轉,程序繼續
DELAY:
MOV R7,#10H
DELAY0:
MOV R6,#7FH
DELAY1:
MOV R5,#7FH
DJNZ R5,$
DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
;表格數據
LED_TABLE:
DB 0FFH ;全部熄滅
DB 0FEH. , 0FDH , 0FBH , 0F7H , 0EFH , 0DFH , 0BFH, 07FH ;依次逐個點亮
DB 0FEH. , 0FCH , 0F8H , 0F0H , 0E0H , 0C0H , 080H, 000H ; 依次逐個疊加
DB 080H. , 0C0H , 0E0H , 0F0H , 0F8H , 0FCH , 0FEH, 0FFH ;依次逐個遞減
DB 07EH. , 0BDH , 0DBH , 0E7H , 0E7H , 0DBH , 0BDH, 07EH ;兩邊靠攏後分開
DB 07EH. , 03CH , 01BH , 000H , 000H , 018H , 03CH, 07EH ;從兩邊疊加後遞減
DB 000H ;全部點亮
END
4. 運行結果
程序運行後,將依次循環出現8隻LED依次逐個點亮 、依次逐個疊加、依次逐個遞減、從兩邊靠攏後分開、從兩邊疊加後遞減的流水燈效果。
5. 技巧總結
查表指令可用於復雜代碼轉換顯示,通過查表指令可以實現復雜的顯示效果,並可以減少程序代碼。
二 。。。。用單片機控制的LED流水燈設計(電路、程序全部給出)

1.引言
當今時代是一個新技術層出不窮的時代,在電子領域尤其是自動化智能控制領域,傳統的分立元件或數字邏輯電路構成的控制系統,正以前所未見的速度被單片機智能控制系統所取代。單片機具有體積小、功能強、成本低、應用面廣等優點,可以說,智能控制與自動控制的核心就是單片機。目前,一個學習與應用單片機的高潮正在工廠、學校及企事業單位大規模地興起。學習單片機的最有效方法就是理論與實踐並重,本文筆者用AT89C51單片機自製了一款簡易的流水燈,重點介紹了其軟體編程方法,以期給單片機初學者以啟發,更快地成為單片機領域的優秀人才。
2.硬體組成
按照單片機系統擴展與系統配置狀況,單片機應用系統可分為最小系統、最小功耗系統及典型系統等。AT89C51單片機是美國ATMEL公司生產的低電壓、高性能CMOS
8位單片機,具有豐富的內部資源:4kB快閃記憶體、128BRAM、32根I/O口線、2個16位定時/計數器、5個向量兩級中斷結構、2個全雙工的串列口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此,本流水燈實際上就是一個帶有八個發光二極體的單片機最小應用系統,即為由發光二極體、晶振、復位、電源等電路和必要的軟體組成的單個單片機。其具體硬體組成如圖1所示。

圖1 流水燈硬體原理圖
從原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來,那麼只要把P1.0口的電平變為低電平就可以了;相反,
如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變為高電平;同理,接在P1.1~P1.7口的其他7個LED的點亮和熄滅的方法同LED1。因此,要實現流水燈功能,我們只要將發光二極體LED1~LED8依次點亮、熄滅,8隻LED燈便會一亮一暗的做流水燈了。在此我們還應注意一點,由於人眼的視覺暫留效應以及單片機執行每條指令的時間很短,我們在控制二極體亮滅的時候應該延時一段時間,否則我們就看不到「流水」效果了。
3.軟體編程
單片機的應用系統由硬體和軟體組成,上述硬體原理圖搭建完成上電之後,我們還不能看到流水燈循環點亮的現象,我們還需要告訴單片機怎麼來進行工作,即編寫程序控制單片機管腳電平的高低變化,來實現發光二極體的一亮一滅。軟體編程是單片機應用系統中的一個重要的組成部分,是單片機學習的重點和難點。下面我們以最簡單的流水燈控制功能即實現8個LED燈的循環點亮,來介紹實現流水燈控制的幾種軟體編程方法。
3.1位控法
這是一種比較笨但又最易理解的方法,採用順序程序結構,用位指令控制P1口的每一個位輸出高低電平,從而來控制相應LED燈的亮滅。程序如下:
ORG 0000H ;單片機上電後從0000H地址執行
AJMP START ;跳轉到主程序存放地址處
ORG 0030H ;設置主程序開始地址
START:MOV SP,#60H ;設置堆棧起始地址為60H
CLR P1.0 ;P1.0輸出低電平,使LED1點亮
ACALL DELAY ;調用延時子程序
SETB P1.0 ;P1.0輸出高電平,使LED1熄滅
CLR P1.1 ;P1.1輸出低電平,使LED2點亮
ACALL DELAY ;調用延時子程序
SETB P1.1 ;P1.1輸出高電平,使LED2熄滅
CLR P1.2 ;P1.2輸出低電平,使LED3點亮
ACALL DELAY ;調用延時子程序
SETB P1.2 ;P1.2輸出高電平,使LED3熄滅
CLR P1.3 ;P1.3輸出低電平,使LED4點亮
ACALL DELAY ;調用延時子程序
SETB P1.3 ;P1.3輸出高電平,使LED4熄滅
CLR P1.4 ;P1.4輸出低電平,使LED5點亮
ACALL DELAY ;調用延時子程序
SETB P1.4 ;P1.4輸出高電平,使LED5熄滅
CLR P1.5 ;P1.5輸出低電平,使LED6點亮
ACALL DELAY ;調用延時子程序
SETB P1.5 ;P1.5輸出高電平,使LED6熄滅
CLR P1.6 ;P1.6輸出低電平,使LED7點亮
ACALL DELAY ;調用延時子程序
SETB P1.6 ;P1.6輸出高電平,使LED7熄滅
CLR P1.7 ;P1.7輸出低電平,使LED8點亮
ACALL DELAY ;調用延時子程序
SETB P1.7 ;P1.7輸出高電平,使LED8熄滅
ACALL DELAY ;調用延時子程序
AJMP START ;8個LED流了一遍後返回到標號START處再循環
DELAY: ;延時子程序
MOV R0,#255 ;延時一段時間
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序結束
3.2循環移位法
在上個程序中我們是逐個控制P1埠的每個位來實現的,因此程序顯得有點復雜,下面我們利用循環移位指令,採用循環程序結構進行編程。我們在程序一開始就給P1口送一個數,這個數本身就讓P1.0先低,其他位為高,然後延時一段時間,再讓這個數據向高位移動,然後再輸出至P1口,這樣就實現「流水」效果啦。由於8051系列單片機的指令中只有對累加器ACC中數據左移或右移的指令,因此實際編程中我們應把需移動的數據先放到ACC中,讓其移動,然後將ACC移動後的數據再轉送到P1口,這樣同樣可以實現「流水」效果。具體編程如下所示,程序結構確實簡單了很多。
ORG 0000H ;單片機上電後從0000H地址執行
AJMP START ;跳轉到主程序存放地址處
ORG 0030H ;設置主程序開始地址
START:MOV SP,#60H ;設置堆棧起始地址為60H
MOV A,#0FEH ;ACC中先裝入LED1亮的數據(二進制的11111110)
MOV P1,A ;將ACC的數據送P1口
MOV R0,#7 ;將數據再移動7次就完成一個8位流水過程
LOOP: RL A ;將ACC中的數據左移一位
MOV P1,A ;把ACC移動過的數據送p1口顯示
ACALL DELAY ;調用延時子程序
DJNZ R0,LOOP ;沒有移動夠7次繼續移動
AJMP START ;移動完7次後跳到開始重來,以達到循環流動效果
DELAY: ;延時子程序
MOV R0,#255 ;延時一段時間
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
END ;程序結束
3.3查表法

上面的兩個程序都是比較簡單的流水燈程序,「流水」花樣只能實現單一的「從左到右」流方式。運用查表法所編寫的流水燈程序,能夠實現任意方式流水,而且流水花樣無限,只要更改流水花樣數據表的流水數據就可以隨意添加或改變流水花樣,真正實現隨心所欲的流水燈效果。我們首先把要顯示流水花樣的數據建在一個以TAB為標號的數據表中,然後通過查表指令「MOVC A,@A+DPTR」把數據取到累加器A中,然後再送到P1口進行顯示。具體源程序如下,TAB標號處的數據表可以根據實現效果的要求任意修改。
ORG 0000H ;單片機上電後從0000H地址執行
AJMP START ;跳轉到主程序存放地址處
ORG 0030H ;設置主程序開始地址
START:MOV SP,#60H ;設置堆棧起始地址為60H
MOV DPTR,# TAB ;流水花樣表首地址送DPTR
LOOP: CLR A ;累加器清零
MOVC A,@A+DPTR ;取數據表中的值
CJNE A,#0FFH,SHOW;檢查流水結束標志
AJMP START ;所有花樣流完,則從頭開始重復流
SHOW: MOV P1,A ;將數據送到P1口
ACALL DELAY ;調用延時子程序
INC DPTR ;取數據表指針指向下一數據
AJMP LOOP ;繼續查表取數據
DELAY: ;延時子程序
MOV R0,#255 ;延時一段時間
D1: MOV R1,#255
DJNZ R1,$
DJNZ R0,D1
RET ;子程序返回
TAB: ;下面是流水花樣數據表,用戶可據要求任意編寫
DB 11111110B ;二進製表示的流水花樣數據,從低到高左移
DB 11111101B
DB 11111011B
DB 11110111B
DB 11101111B
DB 11011111B
DB 10111111B
DB 01111111B
DB 01111111B ;二進製表示的流水花樣數據,從高到低右移
DB 10111111B
DB 11011111B
DB 11101111B
DB 11110111B
DB 11111011B
DB 11111101B
DB 11111110B
DB 0FEH,0FDH,0FBH,0F7H ;十六進製表示的流水花樣數據
DB 0EFH,0DFH,0BFH,7FH
DB 7FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
……
DB 0FFH ;流水花樣結束標志0FFH
END ;程序結束
4.結語
當上述程序之一編寫好以後,我們需要使用編譯軟體對其編譯,得到單片機所能識別的二進制代碼,然後再用編程器將二進制代碼燒寫到AT89C51單片機中,最後連接好電路通電,我們就看到LED1~LED8的「流水」效果了。本文所給程序實現的功能比較簡單,旨在拋磚引玉,用戶可以自己在此基礎上擴展更復雜的流水燈控制,比如鍵盤控制流水花樣、控制流水燈顯示數字或圖案等等。

希望能幫上你

❼ 流水燈每次亮六盞的編程

我這是總共6個燈彎衡點亮一個作為流水的,你照著葫蘆畫瓢就差不多了
//flow light and beep
#include <reg51.h>歲激
#include <intrins.h>
unsigned char a,b,k,j;
sbit beep=P2^3;
void delay10ms()
{
for(a=100;a>埋雀做0;a--)
for(b=225;b>0;b--);
}
void main()
{
k=0xfe;
while(1)
{
delay10ms();

beep=0;
delay10ms();
beep=1;
j=_crol_(k,1);
k=j;
P1=j;
}
}

❽ 流水燈匯編解釋

ORG是偽指令,代表這行在存儲介質上的地址。
ORG0000H就是存儲介質上的第一行。
MOV R2,#08H 沒有具體意義,只是讓流水燈一直運行的一個數量位而已。一次會運行8組,但是會纖森亮重新賦值,所以會一直不停的流動。
JB 只是一個檢測位址是否為1,如果為1則跳轉,否則不跳轉程序。
JB P0.0,LOOP1 這條指令的意思是,如果P0.0為1,則程序跳轉到LOOP1的程序位置上。
其他指令和上面的指令是一樣的,如果都不為1,則執行
AJMP MAIN 也就是說程序一直在判斷,外部的三個按鈕是否按下,如果按下,就跳轉到對應的子程序執行,如果都沒有按下,則程序跳轉到MAIN的地方,重新開始那三個JB,如果按鈕沒按下,一直查詢按鈕,無限循環。
現在假設P0.0的按鈕被按下,則程序跳轉到LOOP1的位置上。
所以開始跳轉到第7行開始執行MOV,R2,#08H。這條指令和第一條指令是一樣的,意義不大,就不重復了。
然後繼續往下執行,MOV A,#0FEH,把累加器ACC的內存設置為16進制的FE,也就是最低位為0,其他位為1.
然後AJMP BUTTTON1。跳轉到BUTTON1的位置,也就是下一行了。
然後是MOV P1,A。把累加器ACC里的FE給P1埠,這時候流水燈才開始亮起來了。按你圖上的畫法,是P1.0的燈亮,其他的燈不亮。
然後執行ACALL DELAY。這是子程序調用。調用名字為DELAY的子程序。這個時候程序跳轉到最左邊的那張圖的DELAY的位置上。開始執行延時程序。
MOV R3,#14H 是設置延遲的次數。一次延遲,執行14次定時器。
下面的幾條指令,我就不一一講了,自己去春皮看定時器的調用吧,符號和C語言的是一模一樣的,設置定時器的類型,設置定時器的初始值。

SETB TR1 定時器1的運行標志位,設置為1,定時器開始工作。
JBC TF1,LP2。檢查TF1標志位,定時器定時時間到了,TF1位為1,則跳轉到LP2的位置。
然後重新給定時器賦值。然後R3減一,如果R3減到0,子程序調用結束,執行RET,完成子程序調用,否則,跳轉到LP1的位置,繼續執行定時器延遲程序。

現在假設延遲程序執行完畢,執行RET,完成子程序調用,返回主程序。
也就是程序第11行的位置上。因為這里是我們調用DELAY延遲函數開始的地方。程序會自動返回的,但是第一次寫匯編的人,程序一大了,可能搞不清楚,你調用的位置在哪了,這很正常。
然後執行下一條指令,RL A 這條指令很簡單,把累加器ACC里的值往左邊移動一位,在51單片機里,就是向高位移動一位。

然後判斷,其他的兩個按鈕是否被按下,兩條JB指令,在前面已經講過了,這里不贅述了。

如果按下了,就跳轉到相應的位置上。否則執行DJNZ R2,BUTTON1,因為其他按鈕沒有按下來,所以繼續執行BUTTON1的流水燈程序,R2的值不為0,則跳轉到BUTTON1的位置上,重新開始執行,如果R2為0,則執行MOV R2,#08H,就重新給R2賦初值。然後執行AJMP BUTTON1,也就是沒變。

現在我們假設P0.1的按鈕被按下,則跳轉到LOOP2。也就是第18行。
之後的指令是一樣的,R2的作用是一樣的就不解釋了,然後直接解釋下一條指毀寬令
MOV A,#7FH。這是給累加器ACC賦值,這次賦7H,跟BUTTON1正好相反,是最高位0,其他位為1,BUTTON1是最低位為0,其他位為1。

然後跳轉到BUTTON2,執行MOV P1,A。把累加器的值給P1埠。
RR A,把累加器的值向右移動一位。
然後是兩條JB指令,不解釋了啊,忘了的,上邊有寫。然後調用DELAY延遲函數,執行過程,跟上面的是一樣的。
後面的指令都是一樣的,包括LOOP3的,自己看吧。已經寫的很詳細了,望採納,還有不懂,再問吧。

❾ 定時器雙向流水燈閃爍

把定時器設置成50ms一次定時中斷,作為時間基準,在定時中斷里再每次對一個變數計數加加得到想要的0.5秒和2秒時間基準 define uint unsigned int //定義無符號整數 void delay(uint); //聲明延時函數 void main(void){ uint i;uchar temp;while(1){ temp=0xFE;for(i=0;i<8;i++) //8個流水燈依次全部點亮 { P1=temp;delay(500...
用定時器實現流水燈從左到右雙位循環,跳動頻率為1秒。程序怎麼編啊... —— 用定時器實現流水燈,跳動頻率為1秒。用定時器定時50ms,採用中斷方式,對定時中斷計數,計數20次就是1秒。如下模擬圖,P1口接8個LED燈。

有關於單片機的一段程序,是用定時器做流水燈的 —— 要用定時器 就得用定時器中斷。。至於全亮的原因 是因為 delay1s 沒有起到延時1s的作用 二十極其短的延時 導致流水燈太快 給人感覺是全亮的。。你可以改成 long a ;while(a<500000)(值大小自己調試)...

如何用定時器中斷實現流水燈1秒定時流水? —— 可以中斷50ms一次(不一定非要50ms),每次中斷計數一次,等計數時間到1s,就執行一次流水動作

求助,用定時器控制流水燈循環 —— 將定時器中斷時間設置為一秒一次。聲明一個全局的變數temp 在初始化的時候賦初值,在中斷服務函數中

用定時器控制16路流水燈循環單片機,且定時時間可調,謝謝! —— interrupt1{uchari;//循環變數//重裝定時器初值,50ms中斷一次p++;if(p>=20)//一秒鍾改變一次狀態{for(i=0;i<8;i++){P1=temp;temp<<=1;//左移一位,流水燈}p=0;}}呵呵,這就是簡單的後台任務處理思想 ...

51單片機定時器實現流水燈,並用按鍵外部中斷控制改變流水燈的流向,這個... —— EA=1;//開總中斷 EX0=1;//開外部中斷0 IT0=1;//下降沿觸發 while(1){ if(flag==0){ for(i=0;i<8;i++){ P0=0X01<<i;delayms(500); } } if(flag==1){ for(i=0;i<8;i++){ P0=0X80...

51單片機用定時器,怎麼編程流水燈一秒閃爍一次, —— 先寫一個延時子函數delay,延時時間1秒。然後寫LED=0;delay(1);LED=1;這樣就可以做到一亮一滅,再把這段程序加入到循環中就可以,循環函數很簡單不用再說了吧,如果還不懂回復我給你程序 ...

plc怎麼用計時器做3個流水燈程序 —— 計數器,定時器……用計數器,就數值1點亮一個,2點亮一個,3點亮一個,加完復位,加個循環;定時器,定時一秒,二秒,三秒,每個對應一個燈,加個循環

❿ 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);

}

(10)簡單的流水燈編程python擴展閱讀:

流水燈幾點說明:

void:因為該延時函數不需要返回值,所以寫為void

delay1s:該函數的函數名,命名需要符合C語言的標識符命名規則。

(): 不需要傳入參數,所以括弧中為空

至此我們可以把流水燈程序寫為以下形式:

閱讀全文

與簡單的流水燈編程python相關的資料

熱點內容
哪個app聽音樂最好 瀏覽:279
考研英語2真題pdf 瀏覽:697
煙台編程積木教育環境好不好 瀏覽:214
python優秀代碼 瀏覽:620
androidtop命令 瀏覽:455
你平時怎麼排解壓力 瀏覽:68
表格中的文件夾怎樣設置 瀏覽:476
em78單片機 瀏覽:960
splitjava空格 瀏覽:248
電腦怎麼谷歌伺服器地址 瀏覽:515
nx自定義工具啟動宏命令 瀏覽:101
程序員怎麼解決無法訪問互聯網 瀏覽:303
java訪問本地文件 瀏覽:747
瓦斯琪伺服器怎麼用 瀏覽:22
安卓主題用什麼app 瀏覽:747
修改伺服器pci地址空間 瀏覽:321
程序員將來去哪裡 瀏覽:966
虛幻5創建c無法編譯 瀏覽:189
javaweb項目設計 瀏覽:407
國家反詐app緊急聯系人怎麼填 瀏覽:191