#include <reg51.h>
#include <intrins.h>
sbit led1 = P0^0;
sbit led2 = P0^1;
sbit jdk = P0^2;
sbit ledk = P0^3;
sbit led1b = P1^0;
sbit led1c = P1^1;
sbit led1d = P1^2;
sbit led1a = P1^3;
sbit led2b = P1^4;
sbit led2c = P1^5;
sbit led2d = P1^6;
sbit led2a = P1^7;
sbit led3b = P0^4;
sbit led3c = P0^5;
sbit led3d = P0^6;
sbit led3a = P0^7;
sbit pin1 = P3^0;
sbit pin2 = P3^1;
sbit pin3 = P3^2;
sbit pin4 = P3^3;
sbit pin5 = P3^4;
sbit pin6 = P3^5;
sbit pin7 = P3^6;
sbit pin8 = P3^7;
sbit pin9 = P2^7;
sbit pin10 = P2^6;
sbit pin11 = P2^5;
sbit pin12 = P2^4;
sbit pin13 = P2^3;
sbit pin14 = P2^2;
sbit pin15 = P2^1;
sbit pin16 = P2^0;
#define uchar unsigned char
#define uint unsigned int
void delayms(void);
uchar kbscan(void);
/*-------------------------------------------------
功能100uS延时子程序
-------------------------------------------------*/
void Delay_xuS(unsigned int x)
{
unsigned int i,j;
for( i =0;i < x;i++ )
{
for( j =0;j<50;j++ );
}
}
/*-------------------------------------------------
LED显示子程序1
-------------------------------------------------*/
void ledd1 (unsigned int m)
{
switch (m)
{
case 0:led1a=0;
led1b=0;
led1c=0;
led1d=0;
break;
case 1:led1a=1;
led1b=0;
led1c=0;
led1d=0;
break;
case 2:led1a=0;
led1b=1;
led1c=0;
led1d=0;
break;
case 3:led1a=1;
led1b=1;
led1c=0;
led1d=0;
break;
case 4:led1a=0;
led1b=0;
led1c=1;
led1d=0;
break;
case 5:led1a=1;
led1b=0;
led1c=1;
led1d=0;
break;
case 6:led1a=0;
led1b=1;
led1c=1;
led1d=0;
break;
case 7:led1a=1;
led1b=1;
led1c=1;
led1d=0;
break;
case 8:led1a=0;
led1b=0;
led1c=0;
led1d=1;
break;
case 9:led1a=1;
led1b=0;
led1c=0;
led1d=1;
break;
case 10:led1a=1;
led1b=1;
led1c=1;
led1d=1;
break;
default:led1a=1;
led1b=1;
led1c=1;
led1d=1;
}
}
/*-------------------------------------------------
LED显示子程序2
-------------------------------------------------*/
void ledd2 (unsigned int m)
{
switch (m)
{
case 0:led2a=0;
led2b=0;
led2c=0;
led2d=0;
break;
case 1:led2a=1;
led2b=0;
led2c=0;
led2d=0;
break;
case 2:led2a=0;
led2b=1;
led2c=0;
led2d=0;
break;
case 3:led2a=1;
led2b=1;
led2c=0;
led2d=0;
break;
case 4:led2a=0;
led2b=0;
led2c=1;
led2d=0;
break;
case 5:led2a=1;
led2b=0;
led2c=1;
led2d=0;
break;
case 6:led2a=0;
led2b=1;
led2c=1;
led2d=0;
break;
case 7:led2a=1;
led2b=1;
led2c=1;
led2d=0;
break;
case 8:led2a=0;
led2b=0;
led2c=0;
led2d=1;
break;
case 9:led2a=1;
led2b=0;
led2c=0;
led2d=1;
break;
case 10:led2a=1;
led2b=1;
led2c=1;
led2d=1;
break;
default:led2a=1;
led2b=1;
led2c=1;
led2d=1;
}
}
/*-------------------------------------------------
LED显示子程序3
-------------------------------------------------*/
void ledd3 (unsigned int m)
{
switch (m)
{
case 0:led3a=0;
led3b=0;
led3c=0;
led3d=0;
break;
case 1:led3a=1;
led3b=0;
led3c=0;
led3d=0;
break;
case 2:led3a=0;
led3b=1;
led3c=0;
led3d=0;
break;
case 3:led3a=1;
led3b=1;
led3c=0;
led3d=0;
break;
case 4:led3a=0;
led3b=0;
led3c=1;
led3d=0;
break;
case 5:led3a=1;
led3b=0;
led3c=1;
led3d=0;
break;
case 6:led3a=0;
led3b=1;
led3c=1;
led3d=0;
break;
case 7:led3a=1;
led3b=1;
led3c=1;
led3d=0;
break;
case 8:led3a=0;
led3b=0;
led3c=0;
led3d=1;
break;
case 9:led3a=1;
led3b=0;
led3c=0;
led3d=1;
break;
case 10:led3a=1;
led3b=1;
led3c=1;
led3d=1;
break;
default:led3a=1;
led3b=1;
led3c=1;
led3d=1;
}
}
/*-------------------------------------------------
部分损坏芯片显示子程序
-------------------------------------------------*/
void lsshow (unsigned int *a,n)
{
unsigned int i;
led2a=1;
Delay_xuS(500);
while(led2a==1)
{
ledk=1;
ledd1(0);
ledd2(0);
ledd3(0);
Delay_xuS(2000);
for (i=0;i<n;i++)
{
if (a[i]>0)
{
ledd1(10);
ledd2(10);
ledd3(a[i]);
Delay_xuS(1000);
}
}
led2a=1;
}
ledk=0;
}
/*-------------------------------------------------
好芯片显示子程序
-------------------------------------------------*/
void lsshow1 ()
{
Delay_xuS(500);
led2a=1;
while(led2a==1)
{
ledk=1;
ledd1(1);
ledd2(1);
ledd3(1);
Delay_xuS(100);
led2a=1;
}
ledk=0;
}
/*-------------------------------------------------
坏芯片显示子程序
-------------------------------------------------*/
void lsshow2 ()
{
Delay_xuS(500);
led2a=1;
while(led2a==1)
{
ledk=1;
ledd1(0);
ledd2(0);
ledd3(0);
Delay_xuS(100);
led2a=1;
}
ledk=0;
}
/*-------------------------------------------------
功能74ls00测试子程序 所有脚已测
-------------------------------------------------*/
unsigned int ls001 (unsigned int x,y)
{
unsigned int j;
j=0;
pin1=x;
pin2=y;
if (pin3==(x&&y)) j=1;
return j;
}
unsigned int ls002 (unsigned int x,y)
{
unsigned int j;
j=0;
pin4=x;
pin5=y;
if (pin6==(x&&y)) j=1;
return j;
}
unsigned int ls003 (unsigned int x,y)
{
unsigned int j;
j=0;
pin11=x;
pin12=y;
if (pin10==(x&&y)) j=1;
return j;
}
unsigned int ls004 (unsigned int x,y)
{
unsigned int j;
j=0;
pin14=x;
pin15=y;
if (pin13==(x&&y)) j=1;
return j;
}
void ls00(void)
{
unsigned int i,j,n;
unsigned int a[4]={0,0,0,0};
i=0;
n=4;
pin7=0;
pin16=1;
jdk=0;
Delay_xuS(100);
pin3=1;/*输入初始化*/
pin6=1;
pin8=1;
pin11=1;
j=ls001(1,1);/*第一组*/
if (j==1)
{
i=1;
a[0]=1;
}
j=ls001(1,0);
if (j==1)
{
i=1;
a[0]=1;
}
j=ls001(0,1);
if (j==1)
{
i=1;
a[0]=1;
}
j=ls001(0,0);
if (j==1)
{
i=1;
a[0]=1;
}
j=ls002(1,1);/*第二组*/
if (j==1)
{
i=1;
a[1]=2;
}
j=ls002(1,0);
if (j==1)
{
i=1;
a[1]=2;
}
j=ls002(0,1);
if (j==1)
{
i=1;
a[1]=2;
}
j=ls002(0,0);
if (j==1)
{
i=1;
a[1]=2;
}
j=ls003(1,1);/*第3组*/
if (j==1)
{
i=1;
a[2]=3;
}
j=ls003(1,0);
if (j==1)
{
i=1;
a[2]=3;
}
j=ls003(0,1);
if (j==1)
{
i=1;
a[2]=3;
}
j=ls003(0,0);
评论0