㈠ 单片机点亮一盏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系列的单片机一般不具备自编程能力。