⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jianpanjishu.c

📁 开发环境WAVE6000
💻 C
字号:
#include <reg52.h>
#define OSC_FREQ   (12000000UL)
#define OSC_PER_INST    (12)
typedef unsigned int tWord;   /*重定义INT*/
#define TIMER0_COUNT (65536-(tWord)(OSC_FREQ/(OSC_PER_INST*1000)))  /*这是最接近一秒的初值*/
#define TIMES 150
#define TIMER0_NO    1
code v[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
code scan[6]={0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
unsigned char a[6]={0,0,0,0,0,0};
sbit q3=P3^3;//键盘按键使能
unsigned char keya=0,keyb=0,keyc=0,keyd=0,keye=0,keyf=0,n,i=0,kg=0,n;
static void timer0_isr(void) interrupt TIMER0_NO
{
   TR0=0;
   TH0=(TIMER0_COUNT/256);
   TL0=(TIMER0_COUNT%256);
   TR0=1;
   q3=0;
   P1=0xFF;
   P2=0xFF;
   n = P2 & 0xFC;
   if(keya!=0)
   {
      keya--;
      if(keya==0 && n==0xF8)
      {
         a[0]++;
         if(a[0]==10)
         {
            a[0]=0;
            a[1]++;
            if(kg==0)
            {
               kg=1;
            }
            if(a[1]==10)
            {
               a[1]=0;
               a[2]++;
               if(kg==1)
               {
                  kg=2;
               }
               if(a[2]==10)
               {
                  a[2]=0;
                  a[3]++;
                  if(kg==2)
                  {
                     kg=3;
                  }
                  if(a[3]==10)
                  {
                     a[3]=0;
                     a[4]++;
                     if(kg==3)
                     {
                       kg=4;
                     }
                     if(a[4]==10)
                     {
                       a[4]=0;
                       a[5]++;
                       if(kg==4)
                       {
                         kg=5;
                       }
                       if(a[5]==10)
                       {
                          a[5]=0;
                          kg=0;
                       }
                     }
                  }
               }
            }
         }
      }
   }
   else if(n==0xF8)
   {
      keya=TIMES;
   }
   if(keyb!=0)
   {
      keyb--;
      if(keyb==0 && n==0xF4)
      {
         a[1]++;
         if(kg==0 && n==0xF4)
         {
            kg=1;
         }
         if(a[1]==10)
            {
               a[1]=0;
               a[2]++;
               if(kg==1)
               {
                  kg=2;
               }
               if(a[2]==10)
               {
                  a[2]=0;
                  a[3]++;
                  if(kg==2)
                  {
                     kg=3;
                  }
                  if(a[3]==10)
                  {
                     a[3]=0;
                     a[4]++;
                     if(kg==3)
                     {
                       kg=4;
                     }
                     if(a[4]==10)
                     {
                       a[4]=0;
                       a[5]++;
                       if(kg==4)
                       {
                         kg=5;
                       }
                       if(a[5]==10)
                       {
                          a[5]=0;
                          kg=0;
                       }
                     }
                  }
               }
            }
      }
   }
   else if(n==0xF4)
   {
       keyb=TIMES;
   }
   if(keyc!=0)
   {
      keyc--;
      if(keyc==0 && n==0xEC)
      {
         a[2]++;
         if(kg==0 && n==0xEC)
         {
             kg=2;
         }
         else if(kg==1 && n==0xEC)
         {
             kg=2;
         }
         if(a[2]==10)
               {
                  a[2]=0;
                  a[3]++;
                  if(kg==2)
                  {
                     kg=3;
                  }
                  if(a[3]==10)
                  {
                     a[3]=0;
                     a[4]++;
                     if(kg==3)
                     {
                       kg=4;
                     }
                     if(a[4]==10)
                     {
                       a[4]=0;
                       a[5]++;
                       if(kg==4)
                       {
                         kg=5;
                       }
                       if(a[5]==10)
                       {
                          a[5]=0;
                          kg=0;
                       }
                     }
                  }
               }
      }
   }
   else if(n==0xEC)
   {
         keyc=TIMES;
   }
   if(keyd!=0)
   {
      keyd--;
      if(keyd==0 && n==0xDC)
      {
          a[3]++;
          if(kg==0 && n==0xDC)
          {
              kg=3;
          }
          else if(kg==1  && n==0xDC)
          {
              kg=3;
          }
          else if(kg==2  && n==0xDC)
          {
              kg=3;
          }
          if(a[3]==10)
                  {
                     a[3]=0;
                     a[4]++;
                     if(kg==3)
                     {
                       kg=4;
                     }
                     if(a[4]==10)
                     {
                       a[4]=0;
                       a[5]++;
                       if(kg==4)
                       {
                         kg=5;
                       }
                       if(a[5]==10)
                       {
                          a[5]=0;
                          kg=0;
                       }
                     }
                  }
      }
   }
   else if(n==0xDC)
   {
       keyd=TIMES;
   }
   if(keye!=0)
   {
      keye--;
      if(keye==0 && n==0xBC)
      {
         a[4]++;
         if(kg==0  && n==0xBC)
         {
            kg=4;
         }
         else if(kg==1 && n==0xBC)
         {
              kg=4;
         }
         else if(kg==2 && n==0xBC)
         {
              kg=4;
         }
         else if(kg==3 && n==0xBC)
         {
            kg=4;
         }
         if(a[4]==10)
         {
            a[4]=0;
            a[5]++;
            if(kg==4)
            {
               kg=5;
            }
            if(a[5]==10)
            {
               a[5]=0;
               kg=0;
            }
         }
      }
   }
   else if(n==0xBC)
   {
       keye=0xBC;
   }
   if(keyf!=0)
   {
      keyf--;
      if(keyf==0 && n==0x7C)
      {
         a[5]++;
         if(kg==0 && n==0x7C)
         {
            kg=5;
         }
         else if(kg==1 && n==0x7C)
         {
            kg=5;
         }
         else if(kg==2 && n==0x7C)
         {
            kg=5;
         }
         else if(kg==3 && n==0x7C)
         {
             kg=5;
         }
         else if (kg==4 && n==0x7C)
         {
            kg=5;
         }
         if(a[5]==10)
         {
             a[5]=0;
             kg=0;
         }
      }
   }
   else if(n==0x7C)
   {
       keyf=TIMES;
   }
P2=0xFF;
P0=0xFF;
switch (kg)
  {
      case 0:
              P2=scan[i];
              P0=v[a[i]];
              i++;
              if(i==1)
              {
               i=0;
              }
              break;
      case 1:
              P2=scan[i];
              P0=v[a[i]];
              i++;
              if(i==2)
              {
               i=0;
              }
              break;
     case 2:
              P2=scan[i];
              P0=v[a[i]];
              i++;
              if(i==3)
              {
               i=0;
              }
              break;
     case 3:
              P2=scan[i];
              P0=v[a[i]];
              i++;
              if(i==4)
              {
               i=0;
              }
              break;
     case 4:
              P2=scan[i];
              P0=v[a[i]];
              i++;
              if(i==5)
              {
               i=0;
              }
              break;
     case 5:
              P2=scan[i];
              P0=v[a[i]];
              i++;
              if(i==6)
              {
               i=0;
              }
              break;
    default :
              break;                                                      
  }
}

static void timer0_initialize(void)
{
  EA=0;
  TR0=0;
  TMOD &=0xF0;
  TMOD |=0x01;
  TH0=(TIMER0_COUNT/256);
  TL0=(TIMER0_COUNT%256);
  TF0=0;
  ET0=1;
  PT0=1;
  TR0=1;
  EA=1;
}

void main (void)
{
   timer0_initialize();
   while(1)
   {
      
      PCON |=0x01;
   }
}















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -