标题: 一个单片机PWM流水呼吸灯程序设计 [打印本页]

作者: agereharth    时间: 2019-1-4 15:18
标题: 一个单片机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, 下载次数: 32)



作者: kissme    时间: 2019-1-4 17:38
谢谢。。正在烦恼这个。。。。拜读了
作者: 1819452867    时间: 2019-1-4 20:04
不错不错,真的喜欢你
作者: 紫色的云    时间: 2019-1-4 20:19
谢谢分享, 能注释一下就好了,
作者: tigerzq    时间: 2019-4-2 13:52
写一个注释很难吗?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1