C51微控制器LED燈的控制
阿新 • • 發佈:2019-02-06
1、一盞一盞的操作:即先令第一盞燈亮,延時,再令它熄滅,延時,再讓下一盞燈重複操作即可;(略)
2、利用陣列方法點亮:先定義一個數組,其中存入相應8盞燈亮的數字(即0xfe,0xfd,0xfb,0xf7,0xef,oxdf,0xbf,0x7f:依次代表只有第一盞燈,第二盞燈....亮),再利匯流排,按順序點亮八盞燈;(後面對數碼管的控制將用類似的方法)
3、利用移位方法點亮(這種方法,程式看起來簡單些,但實質上還是一個一個的控制)。下面是位移方法的程式
共陽,P2端控制。
下面的程式碼是兩種燈得控制:
#include<reg52.h> typedef unsigned char uchar; typedef unsigned int uint; void delay(uint num) { uint x=110; for(num;num>0;num--) for(x;x>0;x--); } void LED1()//LED共陽接法,接在P2端,流水燈 { uint i; uchar led; led=0xfe; for(i=1;i<=8;i++) { P2=led; delay(10000); led<<=1; } } void LED2()//LED共陽接法,接在P2端,燈間隔亮 { uint i; uchar led; led=0xff; led=0x01; for(i=1;i<=8;i++) { P2=~led; delay(5000); led<<=1; } } void main() { //LED1(); LED2(); }