微控制器C51 之(5)GPIO流水燈

2021-10-07 04:44:17 字數 2737 閱讀 2651

流水燈是若干個燈泡依次點亮,視覺上感覺到燈光在流動就叫做流水燈。

選用微控制器的p0埠8只引腳作為輸出腳,1只引腳控制1只led燈。設定p0_0腳為低電平,使得第1只led燈點亮,並延時一點時間,然後設定p0_0腳為高電平,熄滅第1只led,以此同理控制其餘7只引腳。比如:

p0_0腳為低電平,使得第1只led燈點亮

p0_1腳為低電平,使得第2只led燈點亮

p0_2腳為低電平,使得第3只led燈點亮

p0_3腳為低電平,使得第4只led燈點亮

p0_4腳為低電平,使得第5只led燈點亮

p0_5腳為低電平,使得第6只led燈點亮

p0_6腳為低電平,使得第7只led燈點亮

p0_7腳為低電平,使得第8只led燈點亮

程式控制

實現8個led流水燈程式用中文表示為:p0.0低、延時、p0.0高、p0.1低、延時、p0.1高、p0.2低、延時、p0.2高、p0.3低、延時、p0.3高、p0.4低、延時、p0.4高、p0.5低、延時、p0.5高、p0.6低、延時、p0.6高、p0.7低、延時、p0.7高、返回迴圈開始。

#include

//包含特殊功能暫存器定義的標頭檔案

sbit led0 = p0^0;

sbit led1 = p0^1;

sbit led2 = p0^2;

sbit led3 = p0^3;

sbit led4 = p0^4;

sbit led5 = p0^5;

sbit led6 = p0^6;

sbit led7 = p0^7;

void

delaytime10ms

(unsigned

int delayvalue)

;void

main()

//任何乙個 c 程式都必須有且僅有乙個 main 函式

}void

delaytime10ms

(unsigned

int delayvalue)

#include

//包含特殊功能暫存器定義的標頭檔案

void

delaytime10ms

(unsigned

int delayvalue)

;void

main()

}void

delaytime10ms

(unsigned

int delayvalue)

#include

//包含特殊功能暫存器定義的標頭檔案

void

delaytime10ms

(unsigned

int delayvalue)

;unsigned

char led=

;void

main()

}void

delaytime10ms

(unsigned

int delayvalue)

#include

//包含特殊功能暫存器定義的標頭檔案

void

delaytime10ms

(unsigned

int delayvalue)

;unsigned

char led=

;void

main()

}}void

delaytime10ms

(unsigned

int delayvalue)

#include

//包含特殊功能暫存器定義的標頭檔案

void

delaytime10ms

(unsigned

int delayvalue)

;void

main()

temp =

0x7f

;for

(i =

0;i <

8;i++)}

}void

delaytime10ms

(unsigned

int delayvalue)

#include

#include

void

delaytime10ms

(unsigned

int delayvalue)

;void

main()

for(i=

0;i<

7;i++)}

}void

delaytime10ms

(unsigned

int delayvalue)

#include

#include

void

delaytime10ms

(unsigned

int delayvalue)

;void main() }}

void

delaytime10ms

(unsigned

int delayvalue)

C51微控制器 創意流水燈四

include reg52.h 此檔案中定義了微控制器的一些特殊功能暫存器 include 因為要用到左右移函式,所以加入這個標頭檔案 define uchar unsigned char uchar led data1 4 uchar led data2 4 typedef unsigned in...

51微控制器之LED流水燈

在寫流水燈程式之前,我們了解一下資料型別。int在51中為2byte 型別位數 資料範圍 int16 32768 32767 short 16 32768 32767 long 32 2147483648 2147483647 unsigned int16 0 65535 unsigned shor...

51微控制器流水燈教程。

延時函式 delay 的用法是 在這裡無法用程式的格式寫出來,就給大家截圖吧 在這裡插入描述 for和while是迴圈函式,這個高中就會接觸到一點,不做過多的解釋了,第二行的unsigned int x,y 是給x和y定義的,兩個for中,第二個for是第乙個for的,意思就是,第乙個for中的條件...