2019年11月4日 星期一

107 error

#include <reg51.h>
char code seg7_table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
char code left_move_table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
char code righ_move_table[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
char increase_RtoL_table[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
char increase2_LtoR_table[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
char k=0;//一開始七段顯示在0
bit x;
int num=20;
char bdata flag;
sbit blink_flag=flag^0;
sbit left_move_flag=flag^1;
sbit right_move_flag=flag^2;
sbit increase1_flag=flag^3;
sbit increase2_flag=flag^4;
sbit chang_word_flag=flag^5;



sbit left_btn=P3^6;//left
sbit right_btn=P3^7;//right
void delay_1ms(int x)
{
int i,j;
for(i=0;i<x;i++)
  for(j=0;j<114;j++)
       ;
}
void int_t0(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num--;
if(num==0)
{
  num=20;
  if(blink_flag==1)
          {
    P2= seg7_table[k];
    P1=0x00;delay_1ms(200);
            P1=0xFF;delay_1ms(200);
  }
  else if(left_move_flag==1)
  {
    int i;
    P2= seg7_table[k];
    for(i=0;i<8;i++)
    {
      P1=~left_move_table[i];delay_1ms(200);
    }
   }
  else if(right_move_flag==1)
  {
   int i;
   P2= seg7_table[k];
   for(i=0;i<8;i++)
   {
     P1=~righ_move_table[i];delay_1ms(200);
   }
          }
  else if(increase1_flag==1)
  {
    int i;
    P2= seg7_table[k];
    for(i=0;i<8;i++)
    {
      P1=~increase_RtoL_table[i];delay_1ms(200);
    }
          }
  else if(increase2_flag==1)
  {
   int i;
   P2= seg7_table[k];
   for(i=0;i<8;i++)
   {
     P1=~increase2_LtoR_table[i];delay_1ms(200);
   }
          }
  else if(chang_word_flag==1)
  {
    int i;
    x=0;
    P2= seg7_table[k];
    if(x==0)
    {
      for(i=0;i<100;i++)
      {
    P3=0xFE;P0=seg7_table[8];delay_1ms(4);
    P3=0xFd;P0=seg7_table[1];delay_1ms(4);
    P3=0xFb;P0=seg7_table[0];delay_1ms(4);
    P3=0xF7;P0=seg7_table[2];delay_1ms(4);
          }
      x=1;
      }
  if(x==1)
  {
    for(i=0;i<100;i++)
    {
P3=0xFE;P0=seg7_table[9];delay_1ms(4);
P3=0xFd;P0=seg7_table[0];delay_1ms(4);
P3=0xFb;P0=seg7_table[6];delay_1ms(4);
P3=0xF7;P0=seg7_table[0];delay_1ms(4);
            }
       x=0;
   }
    }
  }
}


void init()
{
  int i;
  IE=0x82;
  TMOD=0x01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  TR0=1;
  for(i=0;i<2;i++)
  {
    P1=0x00;delay_1ms(200);
P1=0xFF;delay_1ms(200);           
   }
  for(i=0;i<2;i++)
  {
    P3=0X00;P0=0x00;delay_1ms(200);
P3=0XFF;P0=0xFF;delay_1ms(200);
  }
  for(i=0;i<2;i++)
  {
    P2=0X00;delay_1ms(200);
P2=0XFF;delay_1ms(200);
  }
}
main()
{
   init();
   P2=seg7_table[k];
   while(1)
   {
      if (left_btn==0)
  {
delay_1ms(20); while(left_btn!=1);delay_1ms(20);
     k++;
     if (k>9) k=0;
  }
  if (right_btn==0)
   {
    delay_1ms(20); while(right_btn!=1);delay_1ms(20);
      k--;
   }
  if (k<0) k=9;
  if(k==7 || k==8 || k==9)
      {
P2=seg7_table[k];
flag=0;P0=0xFF;P2=0xFF;P1=0XFF;P2=0xFF;
  }
  if(k==1){ flag=0;blink_flag=1;}
  if(k==2){ flag=0;left_move_flag=1;}
  if(k==3){ flag=0;right_move_flag=1;}
  if(k==4){ flag=0;increase1_flag=1;}
  if(k==5){ flag=0;increase2_flag=1;}
      if(k==6){ flag=0;chang_word_flag=1;}
   }
}

沒有留言:

張貼留言

algorithm

 #include <iostream> #include <string.h> using namespace std; int main(int argc, char** argv)  { for(int j=2;j<=100;j++)//j...