‘壹’ 51单片机用汇编语言实现八个LED的全亮全灭
;以89c51单片机为例,假定用P1控制LED:IO_LED EQU P1;led_0 BIT P1.0;led_1 BIT P1.1;led_2 BIT P1.2;led_3 BIT P1.3;led_4 BIT P1.4;led_5 BIT P1.5;led_6 BIT P1.6;led_7 BIT P1.7; ;定义开关LED的数据,假定LED正极一端接电源,另一端通过限流电阻接I/O端口: DATA_CloseLED EQU 11111111B;DATA_OpenLED EQU 00000000B;ORG 0000HAJMP MAINORG 0030H;-----------------------;延时0.5秒程序(注:此延时函数摘自STC-ISP)DELAY500MS:;@12.000MHzPUSH 30HPUSH 31HPUSH 32HMOV 30H,#4MOV 31H,#205MOV 32H,#180NEXT:DJNZ 32H,NEXTDJNZ 31H,NEXTDJNZ 30H,NEXTPOP 32HPOP 31HPOP 30HRET;-----------------------;下面是主程序MAIN:MOV IO_LED,#DATA_CloseLED;同时关闭8个LEDLCALLDELAY500MS;延时0.5秒MOV IO_LED,#DATA_OpenLED;同时打开8个LEDLCALLDELAY500MS;延时0.5秒LJMP MAIN;循环END;上面程序演示了8个LED间隔0.5秒同时亮和灭的变化。51单片机用汇编语言实现八个LED的全亮全灭
‘贰’ 51单片机控制16个led灯,要求16个灯依次点亮后依次熄灭
假设16个灯接P0和P1,高电平点亮,每次亮一个灯
程序大致这样:
uint b;//16位变量对应16个灯
uchar i;
while(1)
{
for(i=0;i<16;i++)
{
b=0x01<<i;
P0=b;//自动取低8位
P1=b<<8;//取高8 位
delayms(200);
}
}
‘叁’ c51单片机:两个独立按键控制一个led,k1按下松开led闪烁,k2按下松开led灭
#include"reg52.h"
typedefunsignedintu16;
typedefunsignedcharu8;
sbitled=P2^0;//把所要控制的led灯定义为p2.0这个口
sbitk1=P2^1;
sbitk2=P2^2;
voiddelay(u16i)
{
while(i--);
}//一个延时程序
voidmain()
{
if(k1==1)
while(1)
{
led=1;
delay(50000);//大约延时450ms
led=0;
if(k2==1)
break;
}
led=0;
}
思路很简单,就是用检测的方法去扫描相应的按键是否被触发,然后执行相应的子程序。
‘肆’ 求实现51单片机按下按钮LED灯亮1秒后熄灭
要实现51单片机按下按钮LED灯亮1秒后熄灭,这很简单,检测到按下按钮后点亮LED灯并开始计时,1秒到就灭灯。用定时器定时并用中断方式,计中断次数,定时×次数=1秒即可。
‘伍’ 给单片机一个高电平信号点亮LED。无信号LED延时10秒灭。LED亮灭过程加上pwm渐亮渐灭
可以分10个段,也就是10秒,PWM值从100到0每次减10,这样就可以实现这个效果了。
‘陆’ 单片机是怎样控制发光二极管的亮与不亮
1.LED的阳极接地,阴极接单片机IO口,那么IO口高电平,LED灭,低电平,LED亮
2.LED的阴极接地,阳极接单片机IO口,那么IO口高电平,LED亮,低电平,LED灭