1. 單片機控制發光二極體閃爍
#include<reg51.h> // 頭文件 ;
sbit LED =P0^7; // 定義LED接至P0.7 ;
#define uint unsigned int
void delay(uint x); // 聲明延時函數;
/*主函數*/
void main()
{
while(1)
{
LED = 0; // 輸出低電平,點亮LED;
delay(50); // 延時;
LED = 1; // 輸出高電平,熄滅LED;
delay(50); // 延時;
}
}
/*延時函數*/
void delay(uint x)
{
uint i,j;
for(i=0;i<x;i++)
for(j=0;j<1200;j++);//大約10 ms;
}
2. 單片機是怎樣控制發光二極體的亮與不亮
1.LED的陽極接地,陰極接單片機IO口,那麼IO口高電平,LED滅,低電平,LED亮
2.LED的陰極接地,陽極接單片機IO口,那麼IO口高電平,LED亮,低電平,LED滅
3. 怎麼用單片機驅動MOS管控制發光二極體的亮滅
用單片機的輸出口連接MOS管的控制極,MOS管與發光二極體串聯後接到電源。用程序使單片機輸出口的相應位置0或置1,即可控制發光二極體的亮滅。
4. 單片機一個按鍵控制一個發光二極體
以下是用C語言實現的:
#include<reg51.h>
sbit KEY=P1^0;
sbit LED=P1^1;
void delay();
void main()
{
while(1) //不斷循環
{
if(KEY==0) //判斷鍵盤是否被按下
{
delay(); //調用延時函數,作用消抖
if(KEY==0) //再次讀鍵盤,以判斷剛才判斷到的是否為抖動
LED=~LED; //取反P1.1電平狀態,也就是改變發光管的狀態
}
}
}
void delay()
{
unsigned int i=50000;
while(i--); //不斷循環的自減,直到i變為0
}
以下是用匯編實現的:
ORG 0000H
AJMP MAIN ;跳轉到主程序
ORG 0100H
MAIN:JB P1.0,MAIN ;判斷P1.0是否被按下,若不是則再判斷,是則向下執行
CALL DELAY ;調用延時子程序,延時一段時間,用於鍵盤消抖
JB P1.0,MAIN ;再次判斷按鍵狀態,用於判斷是否為抖動,不是則向下執行
CPL P1.1 ;取反P1.1,也就是改變一次發光二極體的狀態
JNB P0.0,$ ;等待按鍵釋放(等待P1.0電平變高)
AJMP MAIN
DELAY:
MOV R0,#200
LOOP: MOV R1,#200
DJNZ R1,$
DJNZ R0,LOOP
RET
END
這些都是剛剛寫好的,希望能令你滿意,有問題可以hi我!
5. c51單片機按鍵控制二極體亮滅
做按鍵用的腳通過一個常開按鈕開關接地,按下開關就使這個腳接地,即電壓為0,在程序中要先將此腳寫1再判斷此腳是否為0,為0時說明已經按下了此開關,再用程序延時10-20mS消抖,再判一次,如果還是0說明不是干擾,就執行控制二極體的程序,點亮二極體的腳最好用低電平驅動,就是不亮時寫1,需要亮時寫0,原理是這樣,用C還是用匯編都一樣,很簡單