花样流水灯设计

2019-07-16 17:52发布

花样流水灯设计要  求:①编写一单片机程序实现8盏LED花样流水灯效果;②按下按键1实现LED1--->LED8依次点亮效果; ③按下按键2实现LED8--->LED1依次点亮效果;④按下按键3实现奇数的灯与偶数的灯交替闪烁的效果,并通过数码管显示闪烁的次数。⑤其他功能及创新。尽可能
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
2330608526
1楼-- · 2019-07-16 18:31
百度51单片机跑马灯程序,你就能解决了!
爱的意义
2楼-- · 2019-07-16 19:28
 精彩回答 2  元偷偷看……
langtuodianzi
3楼-- · 2019-07-16 23:00
盼经验丰富的工程师来献艺解答。
51mcuxuexi
4楼-- · 2019-07-17 01:40
单片机初学者。
51mcuxuexi
5楼-- · 2019-07-17 07:34
#include<reg52.h>
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;           //用于跳出循环语句

/******延时函数自定义*******/

const int value=1000;        //延时时间
int Sum=0;                                //奇偶闪烁计数
void LedShine(void)
{
        char i;
        if(!key1)
                {
                        while(1)
                        {
                                for(i=0;i<8;i++)
                                {
                                        P1=~(0x01<<i);                          //左移
                                        delay(value);
                                        if(!key4)
                                        {
                                                break;
                                        }
                                }
                                if(!key4)
                                {
                                        break;
                                }
                        }               
                }
                else
                {
                        if(!key2)
                        {
                                while(1)
                                {
                                        for(i=0;i<8;i++)
                                        {
                                                P1=~(0x80>>i);                  //右移
                                                delay(value);
                                                if(!key4)
                                                {
                                                        break;
                                                }
                                        }
                                        if(!key4)
                                        {
                                                break;
                                        }
                                }
                        }
                        else
                        {
                                if(!key3)
                                {
                                        P1=0xaa;                        //赋初值
                                        while(1)
                                        {
                                                P1=~P1;                        //奇偶交替闪烁
                                                delay(value);
                                                if(!key4)
                                                {
                                                        break;
                                                }
                                                Sum++;                        //奇偶校验的闪烁次数 ,将这个数字经过处理后就送往数码管显示。
                                        }
                                }
                        }
                }       
}

void main(void)
{
        while(1)
        {
                LedShine();
        }         
}
51mcuxuexi
6楼-- · 2019-07-17 08:38
#include<reg52.h>
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;           //用于跳出循环语句

/******延时函数自定义*******/

const int value=1000;        //延时时间
int Sum=0;                                //奇偶闪烁计数
void LedShine(void)
{
        char RedP3,i;
        RedP3=P3&0x0f;
        switch(RedP3)
        {
          case 0x0e:                                          //key1
                             while(1)
                           {
                                     P1=~(0x01<<i);
                                  delay(value);
                                  if(i++>8)
                                          i=0;
                                  if(!key4)
                                          break;
                           }
                           break;
          case 0x0d:
                           while(1)
                           {
                                     P1=~(0x80<<i);
                                  delay(value);
                                  if(i++>8)
                                          i=0;
                                  if(!key4)
                                          break;
                           }
                           break;
         case 0x0b:
                           P1=0XAA;
                           while(1)
                          {
                                          P1=~P1;
                                        delay(value);
                                        Sum++;
                                        if(!key4)
                                           break;
                          }
                          break;
         
        }
}

void main(void)
{
        P3|=0x0f;                          //将P3低四位拉高
        while(1)
        {
                LedShine();
        }         
}

一周热门 更多>