找回密码
 立即注册

QQ登录

只需一步,快速开始

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

哪位大神能给我改一下下面的程序,我是个小白,请大家帮帮忙,谢谢了!

[复制链接]
跳转到指定楼层
楼主
ID:163296 发表于 2017-2-9 21:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#define  ON=0;
#define  OFF=1;
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
uchar code table2[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//LED从1个亮到8个都点亮(从低位往高位)
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//LED从1个亮到8个都点亮(从高位往低位)
uchar code table4[]={0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//LED从8个全亮到一个都不亮(从低位往高位)
uchar code table5[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//LED从8个全亮到一个都不亮(从高位往低位)
uchar code table6[]={0xfe,0xfc,0xfa,0xf6,0xee,0xde,0xbe,0x7e};//LED从低位往高位移(最低位始终为0)
uchar code table7[]={0x7f,0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};//LED从高位往低位移(最高位始终为0)
sbit  LED0=P0^0;
sbit  LED1=P0^1;
sbit  LED2=P0^2;
sbit  LED3=P0^3;
sbit  LED4=P0^4;
sbit  LED5=P0^5;
sbit  LED6=P0^6;
sbit  LED7=P0^7;
sbit  LED8=P1^0;
sbit  LED9=P1^1;
unsigned   char x,y;
unsigned    int   tt=70;
void  delay (unsigned  int xms)
{
  unsigned   int  i,j;
        for(i=xms,i>0,i--)
         for(j=112,j>0,J--);
}
void   main()
{
void  disp0() //状态1 ,300ms间隔2次。
{
    for(x=0;x<3;x++)
         {
           P0=0X00; P1^0=0; P1^1=0;
           delay(300);
           P0=0Xff; P1^0=1; P1^1=1;
           delay(300);
         }
}
void  disp1()  //状态2,左
{
    for(x=0;x<1;x++)
         {
           P0^0=0; P0^1=0;
           delay(100);
           P0^0=1; P0^1=1;
           delay(100);
         }
}
void  disp2()         //状态3,右
{
    for(x=0;x<1;x++)
    {
             P0^2=0; P0^3=0;
          delay(100);
          P0^2=1; P0^3=1;
          delay(100);
    }
}
void  disp3() //状态4;嘴巴。
{
    for(x=0;x<1;x++)
        {
          P0^4=0;P0^5=0;P0^6=0;P0^7=0;
          delay(100)
          P0^4=1;P0^5=1;P0^6=1;P0^7=1;
          delay(100)
        }
}
void   disp4()        //状态5,顺时针一圈
{
    for(i=0;i<8;i++)
        {
         P0=table1[i];
         delay(100);
        }
         P0=0X00;
         delay(1000);;
        for(i=0;i<8;i++)
        {
         P1=table1[i];
         delay(100);
        }
        P1^0=0;
        P1^1=0;
        delay(1000);
}
void   disp5()        //状态6,逆时针一圈
{
    for(i=0;i<8;i++)
        {
         P0=table0[i];
         delay(100);
        }
        P0=0X00;
        delay(1000);
        for(i=0;i<8;i++)
        {
         P1=table0[i];
         delay(100);
        }
         P1^0=0;
         P1^1=0;
         delay(1000);
}
void  disp6()  //自下而上灯亮。
{
   while(1)
     {
     LED5=ON;
     LED6=ON;
         delay(300);
     LED4=ON;
     LED7=ON;
         delay(300);
     LED1=ON;
     LED3=ON;
         delay(300);
     LED0=ON;
     LED2=ON;
         delay(300);
     LED8=ON;
     LED9=ON;
         delay(300);
      }
}
void  disp7() //状态8,灯常亮。
{
    for(x=0;x<1;x++)
         {
           P0=0X00; P1^0=0; P1^1=0;
         }
}
}


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

使用道具 举报

沙发
ID:123289 发表于 2017-2-12 08:08 | 只看该作者
删除你的程序也是一种改动,那是你需要的吗?连需要改成什么样都不说,真是糊涂。
回复

使用道具 举报

板凳
ID:153041 发表于 2017-2-14 16:45 | 只看该作者
呵呵..呵呵..
回复

使用道具 举报

地板
ID:77398 发表于 2018-4-1 22:15 | 只看该作者
这个是心形灯?电路图有没有?改成什么样子?
回复

使用道具 举报

5#
ID:155507 发表于 2018-4-1 23:35 | 只看该作者

  1. #include <reg52.h>
  2. #define  uchar  unsigned  char

  3. #define  ON  0
  4. #define  OFF 1
  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. sbit  LED0=P0^0;
  14. sbit  LED1=P0^1;
  15. sbit  LED2=P0^2;
  16. sbit  LED3=P0^3;
  17. sbit  LED4=P0^4;
  18. sbit  LED5=P0^5;
  19. sbit  LED6=P0^6;
  20. sbit  LED7=P0^7;
  21. sbit  LED8=P1^0;
  22. sbit  LED9=P1^1;
  23. unsigned   char x,y;
  24. unsigned   int   tt=70;

  25. void  delay (unsigned  int xms)
  26. {
  27.         unsigned   int  i,j;
  28.         for(i=xms;i>0;i--)
  29.                 for(j=112;j>0;j--);
  30. }

  31. void  disp0() //状态1 ,300ms间隔2次。
  32. {
  33.         unsigned   int  x;
  34.         for(x=0;x<3;x++)
  35.         {
  36.                 P0=0X00; LED8=0; LED9=0;
  37.                 delay(300);
  38.                 P0=0Xff; LED8=1; LED9=1;
  39.                 delay(300);
  40.         }
  41. }
  42. void  disp1()  //状态2,左
  43. {
  44.         unsigned   int  x;
  45.         for(x=0;x<1;x++)
  46.         {
  47.                 LED0=0; LED1=0;
  48.                 delay(100);
  49.                 LED0=1; LED1=1;
  50.                 delay(100);
  51.         }
  52. }
  53. void  disp2()         //状态3,右
  54. {
  55.         unsigned   int  x;
  56.         for(x=0;x<1;x++)
  57.         {
  58.                 LED2=0; LED3=0;
  59.                 delay(100);
  60.                 LED2=1; LED3=1;
  61.                 delay(100);
  62.         }
  63. }
  64. void  disp3() //状态4;嘴巴。
  65. {
  66.         unsigned   int  x;
  67.         for(x=0;x<1;x++)
  68.         {
  69.                 LED4=0;LED5=0;LED6=0;LED7=0;
  70.                 delay(100);
  71.                 LED4=1;LED5=1;LED6=1;LED7=1;
  72.                 delay(100);
  73.         }
  74. }
  75. void   disp4()        //状态5,顺时针一圈
  76. {
  77.         unsigned   int  i;
  78.         for(i=0;i<8;i++)
  79.         {
  80.                 P0=table1[i];
  81.                 delay(100);
  82.         }
  83.         P0=0X00;
  84.         delay(1000);
  85.         for(i=0;i<8;i++)
  86.         {
  87.                 P1=table1[i];
  88.                 delay(100);
  89.         }
  90.         LED8=0;
  91.         LED9=0;
  92.         delay(1000);
  93. }
  94. void   disp5()        //状态6,逆时针一圈
  95. {
  96.         unsigned   int  i;
  97.         for(i=0;i<8;i++)
  98.         {
  99.                 P0=table0[i];
  100.                 delay(100);
  101.         }
  102.         P0=0X00;
  103.         delay(1000);
  104.         for(i=0;i<8;i++)
  105.         {
  106.                 P1=table0[i];
  107.                 delay(100);
  108.         }
  109.         LED8=0;
  110.         LED9=0;
  111.         delay(1000);
  112. }
  113. void  disp6()  //自下而上灯亮。
  114. {
  115.         unsigned   int  i;
  116.         // while(1)
  117.         for(i=0;i<8;i++)
  118.         {
  119.                 LED5=ON;
  120.                 LED6=ON;
  121.                 delay(300);
  122.                 LED4=ON;
  123.                 LED7=ON;
  124.                 delay(300);
  125.                 LED1=ON;
  126.                 LED3=ON;
  127.                 delay(300);
  128.                 LED0=ON;
  129.                 LED2=ON;
  130.                 delay(300);
  131.                 LED8=ON;
  132.                 LED9=ON;
  133.                 delay(300);
  134.         }
  135. }
  136. void  disp7() //状态8,灯常亮。
  137. {
  138.         unsigned   int  x;
  139.         for(x=0;x<1;x++)
  140.         {
  141.                 P0=0X00; LED8=0; LED9=0;
  142.         }
  143. }

  144. void   main()
  145. {
  146.         disp0();
  147.         disp1();
  148.         disp2();
  149.         disp3();
  150.         disp4();
  151.         disp5();
  152.         disp6();
  153.         disp7();
  154. }
复制代码
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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