注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

This is Ansifa

近期都不会更新绿色软件

 
 
 
 
 

日志

 
 

STC学习笔记1-简易呼吸灯的制作  

2012-02-19 22:37:33|  分类: 电子技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
STC学习笔记1-简易呼吸灯的制作

介绍:只需要三个元件做一个简易的呼吸灯,可以随意调整呼吸的时间和呼/吸时间比。
比模拟电路搭的呼吸灯简洁并且成本低很多,但是可控性绝对比模拟电路制作的好。

材料:
STC15F104E单片机一片
100Ω电阻一个
LED一个,颜色随意
u=1718870656,522725677&fm=15&gp=0.jpg 

还有必备的一个STC单片机程序下载器,这个可以参考官网的MAX232串口下载器
QBFQO5GNZLE%8WCOE$VMY$B.jpg 

或者购买的成品USB下载线。
需要引出四个引脚VCC,TX,RX,GND即可。

电路原理图:
捕获2.GIF 

其中P3.0和P3.1接下载线下载。虽然可以在工作状态下载,不过避免干扰,我们尽量少使用P3.0和P3.1引脚。

编写以下程序:
有两个版本,一个是单纯的渐亮渐灭;第二个是亮灭时间比不同的,更接近实际的呼吸曲线。

版本1,渐亮渐灭时间一样,但是肉眼看上去效果不好:


普通浏览复制代码
  1. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa#include <REG51.h>
  2. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifasbit Pin = P3 ^ 3;
  3. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifaint bright = 0;
  4. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifavoid Delay10us(unsigned int a)
  5. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa{
  6. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    unsigned int i;
  7. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    while( a-- != 0)
  8. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    {
  9. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        for(= 0; i < 6; i++) {};
  10. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    }
  11. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa}
  12. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifamain()
  13. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa{
  14. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    int i;
  15. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        bit mark=0;
  16. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    while(1)
  17. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    {
  18. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        if(bright == 255||bright==0) mark=!mark;
  19. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                (mark==1)?(bright++):(bright--);
  20. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        for(= 0; i < 255; i++)
  21. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        {
  22. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            if(i < bright)
  23. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            {
  24. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Pin = 0;
  25. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Delay10us(2);
  26. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            }
  27. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            else
  28. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            {
  29. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Pin = 1;
  30. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Delay10us(2);
  31. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            }
  32. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        }
  33. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    }
  34. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa}
  35. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa
  36. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa


版本2,渐亮渐灭时间不一致,但是视觉效果比较好(亮灭时间比9:4,灭到尽的时候等待500ms。):

普通浏览复制代码
  1. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa/*
  2. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is AnsifaSTC15F104E 呼吸灯
  3. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa时钟频率5.004MHz
  4. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa灯在P3.2引脚
  5. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is AnsifaBy:Ansifa 2012-1-25
  6. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa*/
  7. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa#include <REG51.h>
  8. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifasbit Pin = P3 ^ 3;
  9. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifavoid Delay(unsigned int a)
  10. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa{
  11. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    while( a-- != 0)
  12. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    {
  13. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    }
  14. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa}
  15. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifavoid Delay2(unsigned long a)
  16. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa{
  17. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    while( a-- != 0)
  18. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    {
  19. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    }
  20. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa}
  21. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifamain()
  22. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa{
  23. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    int i, delaytime;
  24. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    bit mark = 0;
  25. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    int bright = 0;
  26. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    while(1)
  27. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    {
  28. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        if(bright == 0) Delay2(50000);
  29. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        if(bright == 255 || bright == 0) mark = !mark;
  30. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        if(mark == 1)
  31. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        {
  32. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            bright++;
  33. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            delaytime = 9;
  34. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        }
  35. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        else
  36. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        {
  37. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            bright--;
  38. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            delaytime = 4;
  39. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        }
  40. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa
  41. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa
  42. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        for(= 0; i < 255; i++)
  43. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        {
  44. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            if(i < bright)
  45. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            {
  46. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Pin = 0;
  47. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Delay(delaytime);
  48. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            }
  49. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            else
  50. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            {
  51. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Pin = 1;
  52. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa                Delay(delaytime);
  53. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa            }
  54. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa        }
  55. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa    }
  56. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa}
  57. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa
  58. STC学习笔记1-简易呼吸灯的制作 - ansifa - This is Ansifa


上述程序Keil uVersion2工程文件:
(keil下载地址:http://www.doyoung.net/DOC/KeilC51uV2_PS.zip)
 呼吸灯工程文件.rar (1.55 KB, 下载次数: 0) 

用Keil uVersion2编辑编译。
捕获3.GIF 

用STC-ISP下载程序下载程序。
STCISP下载地址:
http://www.stcmcu.com/datasheet/ ... -isp-15xx-v6.07.exe

注意,是先按STC-ISP软件上的按钮,然后关闭单片机电源,再打开,才能进行开始下载:
如果使用USB下载线下载,但是软件一直卡死在等待连接单片机的话,先检查TX,RX有没接反。还有单片机有没电源。
然后降低下载软件波特率:“最低波特率”=1200和“最高波特率”=1200,一般就能下载,如果不行的话,要考虑换一个下载线。
上图的MAX232串口下载线是最稳定的。在任何速率都能使用。

CL)Y)M~P$(Y}~Z[UTE[I~$V.jpg 

效果视频:

  评论这张
 
阅读(3096)| 评论(3)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016