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);
}