找回密码
 立即注册

QQ登录

只需一步,快速开始

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

一个单片机PWM流水呼吸灯程序设计

[复制链接]
跳转到指定楼层
楼主
一直寻找别人写好得基于PWM流水呼吸灯,但是网上一直找不到简单易懂得,自己就写了一个,分享给大家


单片机源程序如下:
  1. #include <reg51.h>
  2. sbit led0=P0^0;
  3. sbit led1=P0^1;
  4. sbit led2=P0^2;
  5. void delay(unsigned char m);
  6. void huxideng(void);
  7. void delay(unsigned char m)
  8. {
  9.         unsigned char i;
  10.         for(i=0;i<m;i++)
  11.         ;
  12. }
  13. void huxideng(void)
  14. {
  15.         unsigned char pwm=0,cycle=500;
  16.         for(pwm=1;pwm<cycle;pwm++)
  17.         {
  18.                 P0=0x00;
  19.                 delay(cycle-pwm);
  20.                 P0=0x01;
  21.                 delay(pwm);
  22.         }
  23.         for(pwm=1;pwm<cycle;pwm++)
  24.         {
  25.                 P0=0x01;
  26.                 delay(cycle-pwm);
  27.                 P0=0x03;
  28.                 delay(pwm);
  29.         }
  30.         for(pwm=1;pwm<cycle;pwm++)
  31.         {
  32.                 P0=0x03;
  33.                 delay(cycle-pwm);
  34.                 P0=0x07;
  35.                 delay(pwm);
  36.         }
  37.         for(pwm=1;pwm<cycle;pwm++)
  38.         {
  39.                 P0=0x07;
  40.                 delay(cycle-pwm);
  41.                 P0=0x0f;
  42.                 delay(pwm);
  43.         }
  44.         for(pwm=1;pwm<cycle;pwm++)
  45.         {
  46.                 P0=0x0f;
  47.                 delay(cycle-pwm);
  48.                 P0=0x1f;
  49.                 delay(pwm);
  50.         }
  51.         for(pwm=1;pwm<cycle;pwm++)
  52.         {
  53.                 P0=0x1f;
  54.                 delay(cycle-pwm);
  55.                 P0=0x3f;
  56.                 delay(pwm);
  57.         }
  58.         for(pwm=1;pwm<cycle;pwm++)
  59.         {
  60.                 P0=0x3f;
  61.                 delay(cycle-pwm);
  62.                 P0=0x7f;
  63.                 delay(pwm);
  64.         }
  65.         for(pwm=1;pwm<cycle;pwm++)
  66.         {
  67.                 P0=0x7f;
  68.                 delay(cycle-pwm);
  69.                 P0=0xff;
  70.                 delay(pwm);
  71.         }
  72.         for(pwm=1;pwm<cycle;pwm++)
  73.         {
  74.                 P0=0xff;
  75.                 delay(cycle-pwm);
  76.                 P0=0x7f;
  77.                 delay(pwm);
  78.         }
  79.         for(pwm=1;pwm<cycle;pwm++)
  80.         {
  81.                 P0=0x7f;
  82.                 delay(cycle-pwm);
  83.                 P0=0x3f;
  84.                 delay(pwm);
  85.         }
  86.         for(pwm=1;pwm<cycle;pwm++)
  87.         {
  88.                 P0=0x3f;
  89.                 delay(cycle-pwm);
  90.                 P0=0x1f;
  91.                 delay(pwm);
  92.         }
  93.         for(pwm=1;pwm<cycle;pwm++)
  94.         {
  95.                 P0=0x1f;
  96.                 delay(cycle-pwm);
  97.                 P0=0x0f;
  98.                 delay(pwm);
  99.         }
  100.         for(pwm=1;pwm<cycle;pwm++)
  101.         {
  102.                 P0=0x0f;
  103.                 delay(cycle-pwm);
  104.                 P0=0x07;
  105.                 delay(pwm);
  106.         }
  107.         for(pwm=1;pwm<cycle;pwm++)
  108.         {
  109.                 P0=0x07;
  110.                 delay(cycle-pwm);
  111.                 P0=0x03;
  112.                 delay(pwm);
  113.         }
  114.         for(pwm=1;pwm<cycle;pwm++)
  115.         {
  116.                 P0=0x03;
  117.                 delay(cycle-pwm);
  118.                 P0=0x01;
  119.                 delay(pwm);
  120.         }
  121.         for(pwm=1;pwm<cycle;pwm++)
  122.         {
  123.                 P0=0x01;
  124.                 delay(cycle-pwm);
  125.                 P0=0x00;
  126.                 delay(pwm);
  127.         }
  128.         for(pwm=1;pwm<cycle;pwm++)
  129.         {
  130.                 P0=0x00;
  131.                 delay(cycle-pwm);
  132.                 P0=0xff;
  133.                 delay(pwm);
  134.         }
  135.         for(pwm=1;pwm<cycle;pwm++)
  136.         {
  137.                 P0=0x00;
  138.                 delay(cycle-pwm);
  139.                 P0=0xff;
  140.                 delay(pwm);
  141.         }
  142.         for(pwm=1;pwm<cycle;pwm++)
  143.         {
  144.                 P0=0x00;
  145.                 delay(cycle-pwm);
  146.                 P0=0xff;
  147.                 delay(pwm);
  148.         }
  149. }
  150. void main(void)
  151. {
  152.         while(1)
  153.                 huxideng();
  154. }
复制代码

所有资料51hei提供下载:
huxideng.zip (31.6 KB, 下载次数: 31)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:461428 发表于 2019-1-4 17:38 来自手机 | 只看该作者
谢谢。。正在烦恼这个。。。。拜读了
回复

使用道具 举报

板凳
ID:462061 发表于 2019-1-4 20:04 | 只看该作者
不错不错,真的喜欢你
回复

使用道具 举报

地板
ID:156220 发表于 2019-1-4 20:19 | 只看该作者
谢谢分享, 能注释一下就好了,
回复

使用道具 举报

5#
ID:471632 发表于 2019-4-2 13:52 | 只看该作者
写一个注释很难吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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