标题:
点亮一个LED后在这LED灯有频闪,10微秒闪一下是怎样加入程序中求大神指指点点
[打印本页]
作者:
lan2821139
时间:
2016-10-18 01:13
标题:
点亮一个LED后在这LED灯有频闪,10微秒闪一下是怎样加入程序中求大神指指点点
在以事下的程序中,我想做一个工程文件,点亮一个LED后在这LED灯有频闪,10微秒闪一下是怎样加入程序中????????????????
#include<reg51.h>
sbit LED0=P2^0;
void main()
{
// P2=0x00;
while(1);
{
P2=0xff;
// LED0=0;
}
}
作者:
zl2168
时间:
2016-10-18 12:26
10微妙闪一下,什么意思?人眼对10微妙无感觉。
作者:
yzwzfyz
时间:
2016-10-18 13:03
本帖最后由 yzwzfyz 于 2016-10-18 13:25 编辑
"10微秒闪一下"
时间太短,不宜用C写程序实现。
作者:
yzwzfyz
时间:
2016-10-18 13:13
本帖最后由 yzwzfyz 于 2016-10-18 13:14 编辑
设晶振是12MHz,则一个机器周期是1us, 10个机器周期就是10us.
LOOP: CPL P1.1 ;2个机器周期,LED闪动切换
NOP ;1个机器周期
JMP LOOP ;2个机器周期
作者:
yzwzfyz
时间:
2016-10-18 13:18
为了能退出以上的死循环,可以改为:
LOOP: CPL P1.1 ;2个机器周期,LED闪动切换
NOP ;1个机器周期
JNB B_STOP, LOOP ;2个机器周期
B_STOP:是个标记位(位标记),可以在中断程序中,设置为1,以使程序退出LOOP循环。
作者:
yzwzfyz
时间:
2016-10-18 13:20
P1.1接LED灯,一亮一暗各占5个机器周期。
如果一亮一暗各10us,可以再增加5个NOP。
作者:
yzwzfyz
时间:
2016-10-18 13:24
如果用C语言写,由于你无法预料,C是如何编译你的程序的,所以不太好控制准时间。
当然你可以在C编译后,检查其编译的结果,再作修改。
作者:
yzwzfyz
时间:
2016-10-18 13:40
提示一下:
如果是改进型的51单片机,则其执行指令的时间,不一定需要12个振荡周期(流水取指架构,有预取指功能),则需要另作处理,稍复杂一点,不在此详述了。如STC的51芯片。
作者:
ahshmj
时间:
2016-10-18 15:10
10微秒能看得出来?老式的日光灯(带电感镇流器的)也是闪烁的,周期是20000微秒,也就是20毫秒。
作者:
yzwzfyz
时间:
2016-10-18 15:13
人看不出来,如果用仪器呢?用LED灯来传信息,是有这样的做法的。
作者:
yzwzfyz
时间:
2016-10-18 15:13
不过不是10微秒!
作者:
注册专用账号
时间:
2016-10-18 16:04
10us你都能分辨出来??你程序每次执行循环都会亮一次灭一次,肉眼几乎无法识别
作者:
lan2821139
时间:
2016-10-18 22:56
回各位,
我的主程序是以5只红外LED取代,以流水灯方式点动周期性(C程)。从中加入在点亮LED红外上以10us--100us间隔频闪次数加载接收上。
作者:
Davinc
时间:
2016-10-19 00:53
加入一个延时函数delay
作者:
lan2821139
时间:
2016-10-20 00:02
Davinc 发表于 2016-10-19 00:53
加入一个延时函数delay
例举一下,怎样加入延时函数delay在C程中运行?
作者:
wuxingling
时间:
2016-10-20 10:04
10微妙人眼看不出来的
作者:
xixi123
时间:
2016-10-20 13:32
根据晶振,算周期
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1