#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code codevalue[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0x80,0x90};
uchar code chocode[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar disbuffer[8];
uint cnt,m,cnt1,cnt2,t,us,cnt3;
void xm5_INT()
{
TMOD=0x12;
TH0=256-200;
TL0=256-200;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
ET1=1;
TR1=1;
}
void jishuan()
{
if(m<0)m=25;
if(t==1)cnt3=2020;
if(t==0)cnt3=3742;
disbuffer[0]=cnt3/1000;
disbuffer[1]=cnt3/100%10;
disbuffer[2]=cnt3/10%10;
disbuffer[3]=cnt3%10;
disbuffer[6]=m/10%10;
disbuffer[7]=m%10;
}
void main()
{
xm5_INT();
while(1){
jishuan();
}
}
void INT_0() interrupt 1
{
cnt1++;
us++;
if(us>4999){
us=0;
t=~t;
}
if(cnt1>10){
cnt++;
cnt1=0;
}
if(cnt>7)cnt=0;
P2=0x00;
P1=codevalue[disbuffer[cnt]];
P2=chocode[cnt];
}
void INT_1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
cnt2++;
if(cnt2>19){
cnt2=0;
m++;
}
}

怎么修改才能让前4位进行8位学号的切换,例如我的学号是20201234,前4位就应该先显示2020,然后切换为1234,间隔为一秒;同时后两位显示一个秒表,显示00到60,60之后然后归00.第5,6位不显示
不知道你这个问题是否已经解决, 如果还没有解决的话:
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^