找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5606|回复: 16
打印 上一主题 下一主题
收起左侧

点亮一个LED后在这LED灯有频闪,10微秒闪一下是怎样加入程序中求大神指指点点

[复制链接]
跳转到指定楼层
楼主
ID:139788 发表于 2016-10-18 01:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在以事下的程序中,我想做一个工程文件,点亮一个LED后在这LED灯有频闪,10微秒闪一下是怎样加入程序中????????????????

#include<reg51.h>   

sbit  LED0=P2^0;   

void  main()
{
//    P2=0x00;
  while(1);
  {
    P2=0xff;

//    LED0=0;
  }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:111634 发表于 2016-10-18 12:26 | 只看该作者
10微妙闪一下,什么意思?人眼对10微妙无感觉。
回复

使用道具 举报

板凳
ID:123289 发表于 2016-10-18 13:03 | 只看该作者
本帖最后由 yzwzfyz 于 2016-10-18 13:25 编辑

"10微秒闪一下"
时间太短,不宜用C写程序实现。
回复

使用道具 举报

地板
ID:123289 发表于 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个机器周期

回复

使用道具 举报

5#
ID:123289 发表于 2016-10-18 13:18 | 只看该作者
为了能退出以上的死循环,可以改为:

LOOP:      CPL  P1.1                      ;2个机器周期,LED闪动切换
               NOP                             ;1个机器周期
               JNB  B_STOP, LOOP       ;2个机器周期

B_STOP:是个标记位(位标记),可以在中断程序中,设置为1,以使程序退出LOOP循环。
回复

使用道具 举报

6#
ID:123289 发表于 2016-10-18 13:20 | 只看该作者
P1.1接LED灯,一亮一暗各占5个机器周期。
如果一亮一暗各10us,可以再增加5个NOP。
回复

使用道具 举报

7#
ID:123289 发表于 2016-10-18 13:24 | 只看该作者
如果用C语言写,由于你无法预料,C是如何编译你的程序的,所以不太好控制准时间。
当然你可以在C编译后,检查其编译的结果,再作修改。
回复

使用道具 举报

8#
ID:123289 发表于 2016-10-18 13:40 | 只看该作者
提示一下:
如果是改进型的51单片机,则其执行指令的时间,不一定需要12个振荡周期(流水取指架构,有预取指功能),则需要另作处理,稍复杂一点,不在此详述了。如STC的51芯片。
回复

使用道具 举报

9#
ID:7485 发表于 2016-10-18 15:10 | 只看该作者
10微秒能看得出来?老式的日光灯(带电感镇流器的)也是闪烁的,周期是20000微秒,也就是20毫秒。
回复

使用道具 举报

10#
ID:123289 发表于 2016-10-18 15:13 | 只看该作者
人看不出来,如果用仪器呢?用LED灯来传信息,是有这样的做法的。
回复

使用道具 举报

11#
ID:123289 发表于 2016-10-18 15:13 | 只看该作者
不过不是10微秒!
回复

使用道具 举报

12#
ID:143248 发表于 2016-10-18 16:04 | 只看该作者
10us你都能分辨出来??你程序每次执行循环都会亮一次灭一次,肉眼几乎无法识别
回复

使用道具 举报

13#
ID:139788 发表于 2016-10-18 22:56 | 只看该作者
回各位,
我的主程序是以5只红外LED取代,以流水灯方式点动周期性(C程)。从中加入在点亮LED红外上以10us--100us间隔频闪次数加载接收上。
回复

使用道具 举报

14#
ID:143344 发表于 2016-10-19 00:53 | 只看该作者
加入一个延时函数delay
回复

使用道具 举报

15#
ID:139788 发表于 2016-10-20 00:02 | 只看该作者
Davinc 发表于 2016-10-19 00:53
加入一个延时函数delay

例举一下,怎样加入延时函数delay在C程中运行?
回复

使用道具 举报

16#
ID:143544 发表于 2016-10-20 10:04 | 只看该作者
10微妙人眼看不出来的
回复

使用道具 举报

17#
ID:143571 发表于 2016-10-20 13:32 | 只看该作者
根据晶振,算周期
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表