找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机弄一个闪烁LED灯

  [复制链接]
跳转到指定楼层
楼主
ID:409055 发表于 2018-10-13 15:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在的灯都能亮起来,自己做的也能闪,但是闪一下就灭了,想要的是能一直闪,希望各位大神能帮忙敲个小小的代码,就一段关于LED灯一直闪的代码就行,麻烦各位了!!!另本人是个菜鸟,希望大神能敲的简单点,麻烦能不能在代码后加上注释,非常感谢!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2018-10-13 17:22 | 只看该作者
我给你来个程序试试

  1. /**************************************************************************************
  2. *                              LED闪烁实验                                                                                                  *
  3. 实现现象:下载程序后D1指示灯闪烁
  4. 注意事项:无                                                                                                                                                                  
  5. ***************************************************************************************/

  6. #include "reg52.h"                         //此文件中定义了单片机的一些特殊功能寄存器
  7. typedef unsigned int u16;          //对数据类型进行声明定义
  8. typedef unsigned char u8;


  9. sbit led=P2^0;                 //将单片机的P2.0端口定义为led

  10. /*******************************************************************************
  11. * 函 数 名         : delay
  12. * 函数功能                   : 延时函数,i=1时,大约延时10us
  13. *******************************************************************************/
  14. void delay(u16 i)
  15. {
  16.         while(i--);       
  17. }

  18. /*******************************************************************************
  19. * 函 数 名       : main
  20. * 函数功能                 : 主函数
  21. * 输    入       : 无
  22. * 输    出             : 无
  23. *******************************************************************************/
  24. void main()
  25. {
  26.         while(1)
  27.         {
  28.                 led=0;
  29.                 delay(50000); //大约延时450ms
  30.                 led=1;
  31.                 delay(50000); //大约延时450ms       
  32.         }               
  33. }
复制代码
回复

使用道具 举报

板凳
ID:305299 发表于 2018-10-13 18:02 | 只看该作者
初次到来,请大家关照
回复

使用道具 举报

地板
ID:409217 发表于 2018-10-13 21:40 | 只看该作者
加到while循环里面就会一直闪烁
回复

使用道具 举报

5#
ID:409222 发表于 2018-10-13 21:52 | 只看该作者
while(1)
{P0=1;
延时100mm;
P0=0;
延时100mm
}
回复

使用道具 举报

6#
ID:409267 发表于 2018-10-13 23:59 | 只看该作者
新手刚入门,多多关照

回复

使用道具 举报

7#
ID:259206 发表于 2018-10-14 02:18 | 只看该作者
一个高电平一个低电平中间家延时
回复

使用道具 举报

8#
ID:409279 发表于 2018-10-14 02:48 | 只看该作者
循环啊,否则程序只走一次
回复

使用道具 举报

9#
ID:137736 发表于 2018-10-14 07:46 来自手机 | 只看该作者
用for或while
回复

使用道具 举报

10#
ID:409293 发表于 2018-10-14 08:03 | 只看该作者
把你闪烁的程序用循环抱起来
回复

使用道具 举报

11#
ID:408789 发表于 2018-10-14 10:02 | 只看该作者
  1. void main()
  2. {
  3.     while(1);
  4. {
  5. led=1;
  6. delay(50000)
  7. led=0;
  8. delay(50000)
  9. }
  10. }
复制代码
回复

使用道具 举报

12#
ID:409333 发表于 2018-10-14 10:11 | 只看该作者
加循环和延时,让程序一直走
回复

使用道具 举报

13#
ID:409388 发表于 2018-10-14 12:20 | 只看该作者
循环和延时
回复

使用道具 举报

14#
ID:409415 发表于 2018-10-14 13:46 | 只看该作者
五楼正解
回复

使用道具 举报

15#
ID:396671 发表于 2018-10-14 14:47 | 只看该作者
加个while(1)一直循环
回复

使用道具 举报

16#
ID:409055 发表于 2018-10-14 15:39 | 只看该作者
angmall 发表于 2018-10-13 17:22
我给你来个程序试试

非常感谢,对我很有帮助,能学到东西,再次感谢
回复

使用道具 举报

17#
ID:123289 发表于 2018-10-14 21:51 | 只看该作者
不管是哪个灯,它总是对应在一个CPU的端口上的!
只要让这个端口闪是完成闪烁了!
方案:
1、用定时器做一个定时中断,每次中断将一个闪烁标记F求反。例0.5秒中断一次,中断时让F=!F.
2、输出驱动LED的段时,如:驱动A段,让A=A*F再输出,A就闪烁了。
是不是很简单。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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