RC1=0;

PORTB=tt3;

RC2=1;

NOP();

RC2=0;

j=(i-1)/8;//求需要选通的373

k=(i-1)%8;//求需要选通的列线

PORTD=col[k];

switch(j)

{

case 0: RC4=1; NOP(); RC4=0; break;

case 1: RC5=1; NOP(); RC5=0; break;

case 2: RC6=1; NOP(); RC6=0; break;

}

delay1ms();//视觉暂留

}

}

}

m=m+72;

}

}

//从下往上显示

void display3()

{

uch i,j,k,t,n,tt1,tt2,tt3,l;

int m=0;//字符定位变量

for(n=0;n《18;n++)

{

for(l=0;l《7;l++)//滚动8位

{

for(t=0;t《3;t++)//每个位置显示4次

{

for(i=0;i《24;i++)//取数,每行24列,故取24个数

{

tt1=(zxhn[i+m]》》l)|(zxhn[i+24+m]《《(8-l));

tt2=(zxhn[i+24+m]》》l)|(zxhn[i+48+m]《《(8-l));

tt3=(zxhn[i+48+m]》》l)|(zxhn[i+72+m]《《(8-l));

PORTD=0xff;//一开始先把列置高电平,关显示

PORTC=0x70;

NOP();

PORTC=0;

PORTB=tt1;//取行码

RC0=1;

NOP();

RC0=0;

PORTB=tt2;

RC1=1;

NOP();

RC1=0;

PORTB=tt3;

RC2=1;

NOP();

RC2=0;

j=i/8;//求需要选通的373

k=i%8;//求需要选通的列线

PORTD=col[k];

switch(j)

{

case 0: RC4=1; NOP(); RC4=0; break;

case 1: RC5=1; NOP(); RC5=0; break;

case 2: RC6=1; NOP(); RC6=0; break;

}

delay1ms();//视觉暂留

}

}

}

m=m+24;

}

}

//从上往下显示

void display4()

{

uch i,j,k,t,n,tt1,tt2,tt3,l,a,b;

int m=0;//字符定位变量

for(n=0;n《6;n++)

{

for(l=0;l《24;l++)

{

for(t=0;t《3;t++)//每个位置显示4次

{

for(i=0;i《24;i++)//取数,每行24列,故取24个数

{

a=l/8;

b=l%8;

if(a==0)

{

tt1=(zxhn[i+m]《》(8-b));

tt2=(zxhn[i+24+m]《》(8-b));

tt3=(zxhn[i+48+m]《》(8-b));

}

if(a==1)

{

tt1=(zxhn[i+m+120]《》(8-b));

tt2=(zxhn[i+m]《》(8-b));

tt3=(zxhn[i+24+m]《》(8-b));

}

if(a==2)

{

tt1=(zxhn[i+m+96]《》(8-b));

tt2=(zxhn[i+m+120]《》(8-b));

tt3=(zxhn[i+m]《》(8-b));

}

PORTD=0xff;//一开始先把列置高电平,关显示

PORTC=0x70;

NOP();

PORTC=0;

PORTB=tt1;//取行码

RC0=1;

NOP();

RC0=0;

PORTB=tt2;

RC1=1;

NOP();

RC1=0;

PORTB=tt3;

RC2=1;

NOP();

RC2=0;

j=i/8;//求需要选通的行线