㈠ 單片機點亮一盞led燈代碼
用MCS51單片機匯編語言編寫的點亮一隻LED燈源程序LED1.ASM,代碼如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV A,#FEH
MOV P1,A
AJMP $
END
㈡ 單片機的點亮一盞燈程序
MAIN: MOV P1,#11111110B;點亮P1.0所接的燈
ACALL YS ;調用延時子程序,讓P1.0所接的燈亮一小段時間
MOV P1,#11111101B;點亮P1.1所接的燈
ACALL YS ;調用延時子程序,讓P1.1所接的燈亮一小段時間
MOV P1,#11111011B;點亮P1.2所接的燈
ACALL YS ;調用延時子程序,讓P1.2所接的燈亮一小段時間
MOV P1,#11110111B;點亮P1.3所接的燈
ACALL YS ;調用延時子程序,讓P1.3所接的燈亮一小段時間
MOV P1,#11101111B;點亮P1.4所接的燈
ACALL YS ;調用延時子程序,讓P1.4所接的燈亮一小段時間
MOV P1,#11011111B;點亮P1.5所接的燈
ACALL YS ;調用延時子程序,讓P1.5所接的燈亮一小段時間
MOV P1,#10111111B;點亮P1.6所接的燈
ACALL YS ;調用延時子程序,讓P1.6所接的燈亮一小段時間
MOV P1,#01111111B;點亮P1.7所接的燈 ACALL YS ;調用延時子程序,讓P1.7所接的燈亮一小段時間
LJMP MAIN ;循環.這回用長調用指令LJMP,當程序比較長的時候就用
LJMP YS: ;延時子程序YS,功能是能讓LED亮起來或者滅掉一小段時間
MOV R1,#200 ;讓燈亮滅時間的長短也就是延時的長短跟#號後面的數據有關
D: MOV R2,#200 ;延時長點#號後面的數據就大點,延時短點#號後面的數據
T: MOV R3,#200 ;就小點,但#號後面最大的數據是255
DJNZ R3,$
DJNZ R2,T
DJNZ R1,D
RET ;子程序返回指令,子程序的設計一般都是因為主程序要調用它, ;調用完是要返回到主程序繼續運行下一個語句的
END
㈢ 用c語言編寫單片機流水燈程序,(8個發光二極體從左至右循環點亮)
#include<reg51.h>拿薯殲
voiddelay(void)
{
unsignedinti,j;
for(i=0;i<200;i++)
for(j=0;j<1000;j++)
;
}
voidmain(void)
{
while(1)
{
P3=0xfe;//第一個燈亮
delay();//延時
P3=0xfd;//第二個燈亮
delay();
P3=0xfb;//第三個燈亮
delay();
P3=0xf7;//第四個燈手爛亮
delay();
P3=0xef;//第五個燈亮
delay();
P3=0xdf;//第六個燈亮
delay();
P3=0xbf;//第七消沖個燈亮
delay();
P3=0x7f;//第八個燈亮
delay();
}
}
(3)單片機一個燈亮的程序擴展閱讀
單片機C語言16種方式流水燈
voidmain()
{
while(1)
{
P1=0xfe;//點亮第一個發光管
Delay(5000);
P1=0xfd;//點亮第二個發光管
Delay(5000);
P1=0xfb;
Delay(5000);
P1=0xf7;
Delay(5000);
P1=0xef;
Delay(5000);
P1=0xdf;
Delay(5000);
P1=0xbf;
Delay(5000);
P1=0x7f;//點亮第八個發光管
}
}
㈣ 用stm32單片機編寫一個程序,一個燈一直亮,另一個亮兩秒,滅兩秒
#include<reg52.h>
unsigned int num;
sbit led1=P3^1;
sbit led2=P3^2;
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256
EA=1;
ET0=1;
TR0=1;
while(1)
{
led1=0;
while(1);
}
void T0_time() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
if(num==40)
{
num=0;
led2=~led2;
}
}
㈤ 51單片機怎麼只控制一顆LED燈閃爍
1、新建項目,如圖所示。
注意事項:
很多公司都有51系列的兼容機型推出,今後很長的一段時間內將佔有大量市場。51單片機是基礎入門的一個單片機,還是應用最廣泛的一種。需要注意的是51系列的單片機一般不具備自編程能力。