A. 51单片机控制LED闪烁频率
暂时想到两种解决方案:
1.最简方案——利用延时函数:进入主函数后,初始化LED,设置一个延时初始值,然后进入while循环,里边只做四件事,打开LED,利用键盘返回值作延时函数参数,关闭LED,利用键盘返回值作延时函数参数。
2.精确解决方案——定时器:初始化定时器,打开中断等,然后进入while等待中断,在中断函数里先定义一个变量,然后将键盘返回值赋值给此变量,再将此变量去重装定时器初值,接下来就是为LED取反。
有不懂的随时回复我。
希望我的回答能帮助到你。
B. 单片机控制led灯亮度原理
让单片机控制LED的引脚以较高频率(50HZ以上)输出方波,改变方波的占空比即可改变LED的平均电压,从而改变LED的亮度,也就是我们常说的PWM调节。
C. 单片机使用定时计数器实现上电后,8盏LED以50Hz频率闪烁。怎么编程
50Hz频率根本就看不出来闪烁(因人眼视觉暂留特性无法分辨),应把频率降到24Hz以下。
D. 单片机 led灯以1赫兹,2赫兹,3赫兹。4赫兹闪烁的程序
#include<reg51.h>
#define uchar unsigned char
uchar times;
uchar val;
sbit led=P1^0;
sbit key=P1^4;
void t0isr() interrupt 1
{
TH0=(65536-25000)/256;
TL0=(65536-25000)%256;
times++;
if(times>=val*5)
{
times=0;
led=~led;
}
}
main()
{
TMOD=0x01;
TH0=(65536-25000)/256;
TL0=(65536-25000)%256;
TR0=1;
ET0=1;
EA=1;
val=4;
while(1)
{
if(key==0)
{
while(key==0);
val%=4;
val++;
}
}
}
E. 单片机中,通过任意io口控制一个led灯以1hz的频率闪烁,要求能在keil4中
#include<reg51.h>
unsigned char cnt=0;
sbit led=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=10)led=~led;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
F. 单片机如何控制一个LED灯闪烁频率不断加快
首先定时器中断时间比如5ms,用来定时刷新数码管,他就不闪了。
其次,你另外申明一个全局变量,flash_count,每次定时中断,就是每次5ms,flash_count++,
同时你每次中断再判断flash_count==xxx时,你的led取反,同时设flash_count=0
你可以控制xxx,从1-255
改变,就可以控制闪烁的频率不断变化。
G. 单片机下面程序是怎么实行LED灯闪烁的
原理:LED闪烁其实就是LED亮灭,要看电路,有的直接是单片机驱动的小LED,给高平亮,给低电平灭,一直给高低电平循环就表现出亮灭了。
延时:就是亮多久后灭,灭多久后亮。
实现:先给高电平,LED亮,经过延时后,再给一个低电平,LED灭,再给一个延时,如此无限循环。
H. 实现单片机控制LED灯不停闪烁,闪烁一次,要求亮500ms,灭500ms
摘要 很通俗易懂。要设计一个闪烁电路, 闪烁频率为2Hz,即500ms亮灭交替。这个电路实现起来比较简单,如果是在单片机电路上增加该功能的话,需要设计一个LED驱动电路以及使用定时器来实现GPIO的500ms定时翻转;如果只是单纯的设计一个闪光电路的话,可以使用555芯片来实现。1闪烁电路原理如果用高电平代表灯被点亮;用低电平代表灯熄灭的话。那么灯的闪烁就可以使用方波来实现。那么闪烁的快慢就是由方波的频率来决定的。假设灯按照500ms来交替,即亮500ms再 灭500ms,那么亮灭的一一个周期就是1s,频率为1Hz。说明原理如下图所示。
I. 8051单片机编程题
#include<reg51.h>
#defineucharunsignedchra
ucharnum=0;
sbitled=P1^1;
voidt1isr()interrupt3
{
cnt++;
if(cnt>=4)
{
cnt=0;
led=~led;
}
}
main()
{
TMOD=0x20;
TH1=6;
TL1=6;
TR1=1;
ET1=1;
EA=1;
while(1);
}