找回密码
 立即注册

QQ登录

只需一步,快速开始

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

自己写的心形灯程序

[复制链接]
跳转到指定楼层
楼主
这个心形灯自己写的,希望对你们有用

  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define        uint        unsigned int
  4. #define        uchar        unsigned char
  5. uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
  6. uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
  7. uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
  8. uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
  9. uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
  10. uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
  11. uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
  12. uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
  13. void delayms(int z);
  14. void main(void)
  15. {
  16.         int n,i;
  17.         P0=0XFF;
  18.         P1=0XFF;
  19.         P2=0XFF;
  20.         P3=0XFF;
  21. /*******************        单个灯循环亮,间隔0.4s**********************/
  22.         for(i=0;i<8;i++)
  23.         {
  24.          P0=table1[i];
  25.          delayms(100);
  26.         }
  27.         P0=0XFF;
  28.         for(i=0;i<8;i++)
  29.         {
  30.          P1=table0[i];
  31.          delayms(100);
  32.         }
  33.     P1=0XFF;
  34.         for(i=0;i<8;i++)
  35.         {
  36.          P3=table0[i];
  37.          delayms(100);
  38.         }
  39.          P3=0XFF;
  40.          for(i=0;i<8;i++)
  41.         {
  42.          P2=table0[i];
  43.          delayms(100);
  44.         }
  45.          P2=0XFF;
  46. /*****************四个分开转圈亮*************************/
  47.    for(n=3;n>0;n--)
  48.    {
  49.         for(i=0;i<8;i++)
  50.         {
  51.          P0=table0[i];
  52.          P1=table1[i];
  53.          P2=table1[i];
  54.          P3=table1[i];
  55.          delayms(200);
  56.         }
  57.    }
  58.         P0=0xff;P1=0xff;P2=0xff;P3=0xff;
  59. /*四个循环转圈////////////////////////////////////////////////////////四个循环转圈//////////////////////////////////////*/
  60.         for(i=0;i<3;i++)
  61.         {
  62.                 P0=0X0F; delayms(50);
  63.                 P0=0X87; delayms(50);
  64.                 P0=0XC3; delayms(50);
  65.                 P0=0XE1; delayms(50);
  66.                 P0=0XF0; delayms(50);
  67.                 P0=0xf8;P1=0xfe;delayms(50);
  68.                 P0=0xfc;P1=0xfc;delayms(50);
  69.                 P0=0xfe;P1=0xf8;delayms(50);
  70.                 P0=0xff;P1=0xf0;
  71.                 for(n=0;n<4;n++)
  72.                 {
  73.                 delayms(50);
  74.                 P1=_crol_(P1,1);
  75.                 }
  76.                 delayms(50);
  77.                 P1=0x1f;P3=0xfe;delayms(50);
  78.                 P1=0x3f;P3=0xfc;delayms(50);
  79.                 P1=0x7f;P3=0xf8;delayms(50);
  80.                 P1=0xff;P3=0xf0;delayms(50);
  81.                 for(n=0;n<4;n++)
  82.                 {
  83.                 delayms(50);
  84.                 P3=_crol_(P3,1);
  85.                 }
  86.                 delayms(50);
  87.                 P3=0x1f;P2=0xfe;delayms(50);
  88.                 P3=0x3f;P2=0xfc;delayms(50);
  89.                 P3=0x7f;P2=0xf8;delayms(50);
  90.                 P3=0xff;P2=0xf0;delayms(50);
  91.                 for(n=0;n<4;n++)
  92.                 {
  93.                 delayms(50);
  94.                 P2=_crol_(P2,1);
  95.                 }
  96.                 delayms(50);
  97.                 P2=0X1F;delayms(50);
  98.                 P2=0X3F;delayms(50);
  99.                 P2=0X7F;delayms(50);
  100.                 P2=0XFF;delayms(50);
  101.         }
  102. /****************左右两边的灯轮流亮//////////////////////////////////左右两边的灯轮流亮/////////////*************/
  103.         for(i=0;i<2;i++)
  104.         {
  105.                 P0=0x00;P1=0x00;delayms(500);
  106.                 P0=0xff;P1=0xff;delayms(500);
  107.                 P3=0X00;P2=0X00;delayms(500);
  108.                 P3=0XFF;P2=0XFF;delayms(500);
  109.         }
  110. /******************************间隔亮,相邻的灯轮流亮/////////////////////////////////        间隔亮,相邻的灯轮流亮/////*************/
  111.     for(i=0;i<3;i++)
  112.     {
  113.             P0=0X55;
  114.                 P1=0XAA;
  115.                 P2=0XAA;
  116.                 P3=0XAA;delayms(500);
  117.                 P0=0XAA;
  118.                 P1=0X55;
  119.             P2=0X55;
  120.             P3=0X55;delayms(500);
  121.         }
  122.         P0=0XFF;P3=0XFF;P2=0XFF;P1=0XFF;delayms(50);
  123. /***************************上下闪,左上右下闪,全闪***************************************/
  124.         P0=0X00;P3=0X00;delayms(500);
  125.         P0=0XFF;P3=0XFF;
  126.         P1=0X00;P2=0X00;delayms(500);
  127.         P1=0XFF;P2=0XFF;delayms(500);
  128.         P0=0X00;P2=0X00;delayms(500);
  129.         P0=0XFF;P2=0XFF;
  130.         P1=0X00;P3=0X00;delayms(500);
  131.         P1=0XFF;P3=0XFF;delayms(500);
  132.         P0=0X00;P1=0X00;P2=0X00;P3=0X00; delayms(5000);
  133. /****************************上下相碰撞,返回***************************************************/
  134.         for(i=0;i<8;i++)
  135.         {
  136.          P0=table1[i];
  137.          P1=table1[i];
  138.          P3=table0[i];
  139.          P2=table1[i];
  140.          delayms(100);
  141.         }
  142.         for(i=0;i<8;i++)
  143.         {
  144.          P0=table0[i];
  145.          P1=table0[i];
  146.          P3=table1[i];
  147.          P2=table0[i];
  148.          delayms(100);
  149.         }
  150. /**************************逐渐全亮,逐渐全灭**********************************/
  151.         for(i=0;i<8;i++)
  152.         {
  153.           P0=table3[i];P2=table3[i];delayms(100);
  154.         }
  155.         for(i=0;i<8;i++)
  156.         {
  157.          P1=table2[i];P3=table3[i];delayms(100);
  158.         }
  159.         for(i=0;i<8;i++)
  160.         {
  161.          P0=table5[i];P2=table5[i];delayms(100);
  162.         }
  163.         for(i=0;i<8;i++)
  164.         {
  165.          P1=table4[i];P3=table5[i];delayms(100);
  166.         }
  167. /*从两边开始逐渐全亮到逐渐全灭************************************************************************/
  168.         for(i=0;i<8;i++)
  169.         {
  170.          P0=table3[i];P2=table3[i];delayms(100);
  171.         }
  172.         for(i=0;i<8;i++)
  173.         {
  174.          P1=table2[i];P3=table3[i];delayms(100);
  175.         }
  176.         for(i=0;i<8;i++)
  177.         {
  178.          P0=table5[i];P2=table5[i];delayms(100);
  179.         }
  180.          for(i=0;i<8;i++)
  181.          {
  182.           P1=table4[i];P3=table5[i];delayms(100);
  183.          }


  184. }
  185. /******************************延时函数/////////////////////////////延时函数//////////////////////////////*/
  186. void delayms(int z)
  187. {
  188. int m,q;
  189. for(q=0;q<z;q++)
  190. for(m=110;m>0;m--);
  191. }



复制代码

下载:
心形灯程序.zip (1.26 KB, 下载次数: 18)

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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