微控制器實驗二 多個發光二極體分組迴圈交替亮滅

2021-10-11 06:02:33 字數 1290 閱讀 8203

設計微控制器與8個發光二極體和4個按鍵相連的proteus**電路,程式設計實現如下功能:

按下k1,8個燈按照一定頻率同時閃爍,頻率自定

按下k2,使某個燈閃爍10次後,轉到下個燈閃爍,從左往右(d1到d8)迴圈不停

按下k3,相鄰的4個led燈為一組,兩組led燈每隔約0.5秒交替發亮一次,周而復始

按下k4,從右往左依次點亮,然後全滅,不斷迴圈

k1按下,八個燈同時閃爍。即p1在0xff與0x00之間交替取值。

k2按下,某個燈閃爍十次,然後從左往右迴圈。p1初始時為0xfe,然後p1在0xfe與0xff之間交替取值十次,即最左邊的燈閃爍十次,然後右移,第二個做同樣的操作,直到第八個燈也閃爍了十次,最後再左移即可。

k3按下,相鄰的4個led為一組,交替發亮。即p1在0xf0與0x0f之間交替取值。

k4按下,從右往左依次點亮,然後全滅,不斷重複。從d8到d1,不斷從1變為0即可。

#include

#include

//led

sbit d1 = p1^0;

sbit d2 = p1^1;

sbit d3 = p1^2;

sbit d4 = p1^3;

sbit d5 = p1^4;

sbit d6 = p1^5;

sbit d7 = p1^6;

sbit d8 = p1^7;

//switch

sbit k1 = p0^0;

sbit k2 = p0^1;

sbit k3 = p0^2;

sbit k4 = p0^3;

//延時

void

delay

(int m,

int n)

}void

main()

} p1 =

0xff

;//按下k2,從d1到d8閃爍10次後轉到下個燈

if(k2 ==0)

led =

_crol_

(led,1)

;}//左移

for(i =

0; i <

7; i++

) led =

_cror_

(led,1)

;}} p1 =

0xff;}

if(k3 ==0)

}if(k4 ==0)}}}

發光二極體和光敏二極體

發光二極體和光敏二極體 sun 403 發光二極體是半導體二極體的一種,可以把電能轉化成光能 常簡寫為led。發光二極體與普通二極體一樣是由乙個pn結組成,也具有單向導電性。當給發光二極體加上正向電壓後,從p區注入到n區的空穴和由n區注入到p區的電子,在pn結附近數微公尺內分別與n區的電子和p區的空...

二極體 發光二極體引數詳解

普通發光二極體的正向飽和壓降為 正向工作電流為 led的特性 1 極限引數的意義 1 允許功耗pm 允許加於led兩端正向直流電壓與流過它的電流之積的最大值。超過此值,led發熱 損壞。2 最大正向直流電流ifm 允許加的最大的正向直流電流。超過此值可損壞二極體。3 最大反向電壓vrm 所允許加的最...

紅外發光二極體

紅外燈發光體是由紅外發光二極體 led 矩陣組合而成。紅外發光二極體是由紅外輻射效率高的材料製成的 pn結,再外加正向偏壓向 pn結注入電流,從而激發 出紅外光。光譜功率分布為中心波長 830nm 950nm 半峰頻寬約 40nm 左右,它是窄帶分布,是普通 ccd黑白攝像機可感受的光譜範圍。其最大...