📄 基于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 + -