51单片机控制系统有8个发光二极管

img

//题目1:
#include <REGF51RC.H>
#include "intrins.h"

void delay(unsigned char i)
{
unsigned char j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
void main()
{
char i=3;

while(1)
{
  for(i=0;i<8;i++)
        {
            P1=0xff-(1<<i);
            delay(200);
            P1=0xff;
        }
}

}
////题目2
#include <REGF51RC.H>
#include "intrins.h"
sbit K1=P3^2;
unsigned char num=0;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//0~F
void delay(unsigned char i)
{
unsigned char j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
void scan_key()
{

    if(K1==0)
          {
                delay(10);
                if(K1==0)
                {
                    while(!K1);
                         {
                                 if(num<15)
                                     num++;
                                 else
                                     num=0;
                                P2=table[num];
                                 
                             }
                }
            }
            
    
}

void main()
{

while(1)
{
  scan_key();
}

}

题目1


#include<reg51.h>

void delay(unsigned chat i)
{
    unsigned int j,k;
    for(k=0;k<i;k++)
        for(j=0;j<255;j++);
}

void main()
{
    unsigned char a;
    while(1)
    {
        for(a=0;a<8;a++)
        {
            P1=~(0x01<<a);
            delay(1000);
        }
    }
}


题目2


#include<reg51.h> 

unsigned char smgwei[]={0xC0,0x0F9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
unsigned cha cnt=0;
sbit key=P3^2;

void delay(unsigned chat i)
{
    unsigned int j,k;
    for(k=0;k<i;k++)
        for(j=0;j<255;j++);
}

        
void button()
{
    if(key==0)
    {
        delay(200);
      if(key==0)
      {
            cnt++;
          if(cnt>=16)
          {
              cnt=0;
            }
          while(!key);
         }
    }
}

void main()
{
    while(1)
    {
        button();
        P2=smgwei[cnt];
    }
}