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

📄 基于led点阵显示屏9路抢答器的设计制作程序.txt

📁 基于LED点阵显示屏9路抢答器设计
💻 TXT
字号:
程序如下:
#include <REG51.H>
sbit P3_5=0XB5;
sbit P3_6=0XB6;
sbit P3_7=0XB7;
sbit P1_0=0X90;
sbit P1_1=0X91;
sbit P1_2=0X92;
sbit P1_3=0X93;
sbit P1_4=0X94;
sbit P1_5=0X95;
sbit P1_6=0X96;
sbit P1_7=0X97;
sbit P3_0=0XB0;
sbit P3_1=0XB1;
sbit P3_2=0XB2;
unsigned char DAT;
unsigned int Z,Q,M;
unsigned char *POO1,*POO2;
unsigned char XICH[16][4];
unsigned char  code KONG1[32];
unsigned char  code KONG2[32];
unsigned char  code LIE[2][16]={{0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF},
                                {0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X7F,0XBF,0XDF,0XEF,0XF7,0XFB,0XFD,0XFE}};

unsigned char  code _10[]={0X00,0x00,0X00,0x00,0X00,0x00,0X00,0x01,0X00,0x0F,0X00,0x01,0X00, 0x01,0X00, 0x01,
                           0X00, 0x01,0X00,0x01,0X00,0x01,0X00,0x01,0X00, 0x01,0X00,0x0F,0X00,0x00,0X00,0x00
                           };
                          
unsigned char  code _11[]={0x00,0X00,0x00,0X00,0x00,0X00,0xC0,0X00,0xC0,0X00,0xC0,0X00,0xC0, 0X00,0xC0, 0X00,
                            0xC0, 0X00,0xC0,0X00,0xC0,0X00,0xC0,0X00,0xC0, 0X00,0xFC, 0X00,0x00,0X00,0x00,0X00
                          };
                                                  
unsigned char  code _20[]={0X00, 0x00,0X00,0x00,0X00,0x00,0X00,0x0F,0X00, 0x18,0X00,0x38,0X00, 0x18,0X00,0x00,
                           0X00, 0x00,0X00,0x01,0X00,0x07,0X00, 0x0C,0X00, 0x3F,0X00,0x3F,0X00, 0x00,0X00, 0x00
                        };
                                               
unsigned char  code _21[]={0x00,0X00,0x00,0X00,0x00,0X00,0xF8,0X00,0x1C,0X00,0x1C,0X00,0x1C,0X00,0x38, 0X00,
                          0x70, 0X00,0xC0,0X00,0x00,0X00,0x06, 0X00,0xFC,0X00,0xFC, 0X00,0x00, 0X00,0x00,0X00
                         };
                                               
unsigned char  code _30[]={0X00,0x00,0X00,0x00,0X00, 0x00,0X00,0x0F,0X00, 0x38,0X00, 0x38,0X00, 0x00,0X00, 0x03,
                           0X00,0x03,0X00,0x00,0X00,0x00,0X00, 0x38,0X00, 0x38,0X00, 0x0F,0X00, 0x00,0X00,0x00
                           };
                       
unsigned char  code _31[]={0x00, 0X00,0x00,0X00,0x00,0X00,0xF0,0X00,0x38, 0X00,0x1C,0X00,0x38, 0X00,0xF0, 0X00,
                           0xF0,0X00,0x1C,0X00,0x0E,0X00,0x1C,0X00,0x1C,  0X00,0xF0, 0X00,0x00,0X00,0x00, 0X00
                           };
                       
unsigned char  code _40[]={0X00,0x00,0X00, 0x00,0X00, 0x00,0X00,0x00,0X00, 0x00,0X00,0x01,0X00, 0x03,0X00, 0x0C,
                           0X00,0x18, 0X00,0x30,0X00,0x3F,0X00, 0x00,0X00,0x00,0X00, 0x03,0X00,0x00,0X00,0x00
                           };
						
unsigned char  code _41[]={0x00,0X00,0x00,0X00,0x00, 0X00,0x30,0X00,0xF0,0X00,0xF0, 0X00,0x70,0X00,0x70, 0X00,
                          0x70,0X00,0x70,0X00,0xFE,0X00,0x70,0X00,0x70,0X00,0xFE,0X00,0x00,0X00,0x00, 0X00
                          };

unsigned char  code _50[]={0X00,0x00,0X00,0x00,0X00,0x00,0X00,0x1F,0X00,0x18,0X00,0x18,0X00, 0x18,0X00,0x1F,
                           0X00,0x18,0X00, 0x00,0X00,0x10,0X00,0x38,0X00,0x38,0X00,0x0F,0X00,0x00,0X00,0x00
                        };

unsigned char  code _51[]={0x00,0X00,0x00,0X00,0x00,0X00,0xFC, 0X00,0x00,0X00,0x00, 0X00,0xC0,0X00,0xF8, 0X00,
                           0x1C,0X00,0x1E,0X00,0x0E,0X00,0x1C, 0X00,0x18,0X00,0xF0,0X00,0x00,0X00,0x00,  0X00
                         };
                          
unsigned char  code _60[]={0X00,0x00,0X00,0x00,0X00,0x00,0X00, 0x07,0X00,0x0C,0X00,0x18,0X00, 0x38,0X00,0x3F,
                         0X00,0x7C,0X00, 0x78,0X00,0x38,0X00,0x38,0X00,0x1C,0X00,0x07,0X00,0x00,0X00,0x00
                       };

 unsigned char  code _61[]={0x00,0X00,0x00,0X00,0x00,0X00,0xF8,0X00,0x3C,0X00,0x08, 0X00,0x00,0X00,0xF8, 0X00,
                         0x1C,0X00,0x0E,0X00,0x0E,0X00,0x0E, 0X00,0x1C, 0X00,0xF0, 0X00,0x00, 0X00,0x00, 0X00
                       };

                           
unsigned char  code _70[]={0X00,0x00,0X00,0x00,0X00,0x00,0X00,0x1F,0X00,0x3C,0X00,0x30,0X00,0x00,0X00, 0x00,
                          0X00, 0x00,0X00, 0x01,0X00,0x03,0X00,0x03,0X00,0x03,0X00,0x03,0X00,0x00,0X00,0x00
                         };
						
unsigned char  code _71[]={0x00,0X00,0x00,0X00,0x00,0X00,0xFE, 0X00,0x0C,0X00,0x18,0X00,0x30,0X00,0x60,0X00,
                           0xC0,0X00,0xC0,0X00,0x80,0X00,0x80, 0X00,0x80,0X00,0x80, 0X00,0x00, 0X00,0x00,0X00
                          };
                           
 unsigned char  code _80[]={0X00, 0x00,0X00,0x00,0X00,0x00,0X00,0x0F,0X00,0x38,0X00, 0x30,0X00, 0x3C,0X00, 0x1F,
                           0X00,0x0F,0X00,0x38,0X00,0x30,0X00,0x70,0X00, 0x38,0X00, 0x0F,0X00, 0x00,0X00,0x00
                         };

 unsigned char  code _81[]={0x00,0X00,0x00,0X00,0x00,0X00,0xF8,0X00,0x0C, 0X00,0x0E,0X00,0x0C,0X00,0xF8,0X00,
                         0xF0,0X00,0x3C, 0X00,0x0E, 0X00,0x0E,0X00,0x0C,0X00,0xF0,0X00,0x00, 0X00,0x00,0X00
                        };

 unsigned char  code _90[]={0X00,0x00,0X00,0x00,0X00,0x00,0X00, 0x0F,0X00,0x38,0X00, 0x30,0X00,0x70,0X00,0x30,
                           0X00,0x38,0X00,0x1F,0X00,0x00,0X00,0x18,0X00,0x3C,0X00, 0x1F,0X00, 0x00,0X00, 0x00
                         };

unsigned char  code _91[]={0x00,0X00,0x00,0X00,0x00,0X00,0xF0,0X00,0x18,0X00,0x0C,0X00,0x0E,0X00,0x0E,0X00,
                           0x3E,0X00,0xEE, 0X00,0x1C,0X00,0x18,0X00,0x30,0X00,0xE0,0X00,0x00,0X00,0x00, 0X00
                           };

unsigned char  code _12[]={0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x0F,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
                            0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x0F,0xFC,0x00,0x00,0x00,0x00
                           };
                          
unsigned char  code _22[]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF8,0x18,0x1C,0x38,0x1C,0x18,0x1C,0x00,0x38,
                           0x00,0x70,0x01,0xC0,0x07,0x00,0x0C,0x06,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00
                          };
                                                  
unsigned char  code _32[]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x38,0x38,0x38,0x1C,0x00,0x38,0x03,0xF0,
                           0x03,0xF0,0x00,0x1C,0x00,0x0E,0x38,0x1C,0x38,0x1C,0x0F,0xF0,0x00,0x00,0x00,0x00
                        };
                                               
unsigned char  code _42[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0xF0,0x01,0xF0,0x03,0x70,0x0C,0x70,
                           0x18,0x70,0x30,0x70,0x3F,0xFE,0x00,0x70,0x00,0x70,0x03,0xFE,0x00,0x00,0x00,0x00
                         };

unsigned char  code  BAN[]={0x01,0x00,0x09,0x04,0xFD,0x7E,0x21,0x10,0x25,0x10,0x25,0x10,0x25,0x10,0xF5,0x7C,
                            0x25,0x10,0x29,0x10,0x21,0x10,0x22,0x10,0x3A,0x10,0xE2,0x14,0x44,0xFE,0x08,0x00};
                                               
unsigned char  code  PO[]={0x00,0x20,0x08,0x20,0xFC,0x20,0x13,0xFE,0x12,0x22,0x22,0x24,0x22,0x20,0x7B,0xFC,
                          0xAA,0x84,0x2A,0x88,0x2A,0x48,0x2A,0x50,0x3C,0x20,0x24,0x50,0x08,0x8E,0x13,0x04};
unsigned char  code  SUI[]={0x00,0x40,0x08,0x20,0xFD,0xFC,0x10,0x88,0x10,0x88,0x21,0x54,0x22,0x22,0x7C,0x20,
                           0xA4,0x24,0x27,0xFE,0x24,0x20,0x24,0x20,0x24,0x20,0x3C,0x20,0x20,0x20,0x00,0x20};
unsigned char  code  MO[]={0x01,0x04,0x7F,0xFE,0x44,0x20,0x44,0x24,0x7F,0xFE,0x4E,0x70,0x55,0xA8,0x64,0x24,
                          0x7F,0xFE,0x42,0x00,0x44,0x08,0x4F,0xFC,0x54,0x08,0x64,0x08,0x87,0xF8,0x04,0x08};
unsigned char  code  FU[]={0x40,0x08,0x30,0x3C,0x17,0xC0,0x00,0x08,0x82,0x48,0x62,0x50,0x20,0x00,0x0B,0xF8,
                           0x10,0x20,0x20,0x44,0xEF,0xFE,0x20,0x40,0x20,0x40,0x20,0x40,0x21,0x40,0x20,0x80};
unsigned char  code  TUO[]={0x08,0x00,0x7D,0x10,0x48,0xA0,0x48,0x08,0x4B,0xFC,0x7A,0x08,0x4A,0x08,0x4A,0x08,
                           0x4B,0xF8,0x7A,0xA8,0x48,0xA0,0x48,0xA0,0x49,0x20,0x49,0x22,0x8A,0x22,0x1C,0x1E};
unsigned char  code  SUE[]={0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x08,0x01,0x18,0x7D,0x20,0x05,0xC0,0x05,0x80,
                            0x09,0x40,0x09,0x20,0x11,0x10,0x21,0x0E,0x41,0x04,0x81,0x00,0x05,0x00,0x02,0x00};
unsigned char  code  ZHONG[]={0x10,0x40,0x10,0x20,0x23,0xFE,0x22,0x02,0x44,0x04,0xF9,0xFC,0x10,0x00,0x20,0x04,
                             0x43,0xFE,0xF8,0x20,0x00,0xA8,0x01,0x24,0x19,0x22,0xE2,0x22,0x40,0xA0,0x00,0x40};
unsigned char  code  HE[]={0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x10,0x10,0x2F,0xEE,0xC0,0x04,
                           0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10}; 
                   
void delay(unsigned int Delay)
{
unsigned char j;
for (;Delay>0;Delay--)
for (j=100;j>0;j--);
 }

void senddat(DAT)
{
unsigned char c;
 for(c=0;c<8;c++)
    {
     P3_6=0;
     P3_7=(~DAT)&0X01;
     DAT>>=1;
     P3_6=1;
     }
 }

void outdat(void)
{
 P3_5=0;
 ;
 ;
 P3_5=1;
 }

void run(void)
{
          TMOD=0X01;
          TH0=(65536-500)/256;
          TL0=(65536-500)%256;
          ET0=1;
          TR0=1;
          EA=1; 
          delay(900);
          TR0=0;
          P3_1=0;
          for(Q=0;Q<16;Q++)
               {
               XICH[Q][3]=*(POO2+2*Q+1);
               XICH[Q][2]=*(POO2+2*Q);
               XICH[Q][1]=*(POO1+2*Q+1);
               XICH[Q][0]=*(POO1+2*Q);
               }
          for(M=0;M<380;M++)
             {
              for(Z=0;Z<16;Z++)
                  {
                   DAT=(XICH[Z][3]);
                   senddat(DAT);
                   DAT=(XICH[Z][2]);
                   senddat(DAT);
                   DAT=(XICH[Z][1]);
                   senddat(DAT);
                   DAT=(XICH[Z][0]);
                   senddat(DAT);
                   outdat();
                   P0=LIE[0][Z];
                   P2=LIE[1][Z]; 
                   delay(1);
                  }
            }
          P0=0XFF;
          P2=0XFF;
}

void main (void)
{
 if(P3_2==0)
    {
    while(1)
    {
	P0=0XFF;
    P2=0XFF;
     if(P1_0==0)
       {
       delay(10);
       if(P1_0==0)
         {
          POO1=_10;
          POO2=_11;
          run();
         }
     }
if(P1_1==0)
       {
       delay(10);
       if(P1_1==0)
         {
          POO1=_20;
          POO2=_21;
          run();
         }
     }
if(P1_2==0)
       {
       delay(10);
       if(P1_2==0)
         {
          POO1=_30;
          POO2=_31;
          run();
         }
     }
if(P1_3==0)
       {
       delay(10);
       if(P1_3==0)
         {
          POO1=_40;
          POO2=_41;
          run(); 
         }
     }
if(P1_4==0)
       {
       delay(10);
       if(P1_4==0)
         {
          POO1=_50;
          POO2=_51;
          run();
         }
     }
if(P1_5==0)
       {
       delay(10);
       if(P1_5==0)
         {
          POO1=_60;
          POO2=_61;
          run(); 
         }
     }
if(P1_6==0)
       {
       delay(10);
       if(P1_6==0)
         {
          POO1=_70;
          POO2=_71;
          run();
         }
     }
if(P1_7==0)
       {
       delay(10);
       if(P1_7==0)
         {
          POO1=_80;
          POO2=_81;
           run();
         }
     }
if(P3_0==0)
       {
       delay(10);
       if(P3_0==0)
         {
          POO1=_90;
          POO2=_91;
          run();
         }
     }
   }
   }
 else
   {
    while(1)
	    {
	    P0=0XFF;
        P2=0XFF;
        if(P1_0==0)
           {
           delay(10);
             if(P1_0==0)
             {
               POO1=PO;
               POO2=SUI;
               run();
              }
          }
        if(P1_1==0)
           {
           delay(10);
           if(P1_1==0)
             {
              POO1=MO;
              POO2=FU;
              run();
               }
           }
if(P1_2==0)
       {
       delay(10);
       if(P1_2==0)
         {
          POO1=TUO;
          POO2=SUE;
          run();
         }
     }
if(P1_3==0)
       {
       delay(10);
       if(P1_3==0)
         {
          POO1=ZHONG;
          POO2=HE;
          run(); 
         }
     }
 if(P1_4==0)
           {
           delay(10);
             if(P1_4==0)
             {
               POO1=_12;
               POO2=BAN;
               run();
              }
          }
if(P1_5==0)
       {
       delay(10);
       if(P1_5==0)
         {
          POO1=_22;
          POO2=BAN;
          run();
         }
     }
if(P1_6==0)
       {
       delay(10);
       if(P1_6==0)
         {
          POO1=_32;
          POO2=BAN;
          run();
         }
     }
if(P1_7==0)
       {
       delay(10);
       if(P1_7==0)
         {
          POO1=_42;
          POO2=BAN;
          run();
         }
     }
    }
}
}

void time0(void)interrupt 1
{
 TH0=-(500/256);
 TL0=-(500%256);
 P3_1=~P3_1;
}

⌨️ 快捷键说明

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