Ⅰ 在單片機中發光二極體快閃十次慢閃五次如此循環
for(i=0; i<10; i++)
{
Led = 0;
delayms(100);
Led = 1;
delayms(100);
}
for(i=0; i<5; i++)
{
Led = 0;
delayms(500);
Led = 1;
delayms(500);
}
delayms (500) 是個含參延嘩銀喊時函數,
void delayms (unsigned int ms)
{
unsigned int x, y;
for(x=0; x<ms; x++)
{
for(y=0; y<115; y++);
}
}
基本就是亂野這樣。上面兩個for循環放在主循環里,搏隱,
Ⅱ 自閃發光二極體閃爍頻率不一樣
讓發光二極體以1Hz閃爍,就褲拆芹是讓發光二極體毎秒鍾閃一下胡畢。
Hz(赫茲)是頻率單位,指毎秒鍾完成n個重復動作。本例1Hz,是指LED亮滅一次。
51單片機常用的晶振頻率應該是11.0592MHz,是MHz,1MHz=1百萬Hz。
11.0592MHz 轉換成時間是 1千1百零5萬9千2百分之1秒,即 0.000000090422.... 秒。
要想讓發光二極體以1HZ閃爍,要求不高的情況下,編程時可以用500ms的延時函御握數,控制單片機連接LED的I/O口毎500毫秒進行高低電平切換。至於延時函數會根據不同類型的單片機會有所不同。
Ⅲ 編寫程序,用單片機控制8支發光二極體每支閃爍5次,再移向下支閃爍5次,右循環不止
這個程序很簡單,我覺得你自己在我的指導下也可以寫出來,這樣可以增加你的記憶,也可以多學一點東西。就是不明白為什麼要從4000H開始執行,這樣你的電路就要增EPROM(或EEPROM)了。
程序你可以這樣寫,
1、讓一位亮(MOV P1.0,#0H )
2、閃的次數神嘩(巧瞎扮MOV R1,#5H ) 命令後面不寫了
3、調用2秒延時程序。
4、取反 。
5、調用2秒延時程序。
6、減一判斷R1是否到0,沒到返回4,到了向下執孝灶行。
7、左移一位。
8、轉移到2。這樣就完成一個循環了。
至於模擬軟體proteus 那就簡單了,你自己畫,如果不會畫,找一個圖自己修改一下就可以了。
這樣寫好玩吧?我也好長時間沒有用匯編寫了,命令有一點小的瑕疵(取反的位數),你可以自琢磨一下再寫。
Ⅳ 使用51單片機,控制三個發光二極體,上電後二極體閃爍,閃爍2次後熄滅
#include<reg51.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2; //設為1亮 0滅
void delay();/森岩/租橋延時弊春猛函數自己寫
main()
{
unsigned char i;
for(i=0;i<2;i++)
{
led1=led2=led3=1;delay();
led1=led2=led3=0;delay();
}
while(1);
}