#include<pic.h>
__CONFIG(0X03E4);
__CONFIG(0X0700);
#define uint unsigned int
#define uchar unsigned char
void interrupt myaj();
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};//七段数码管段码
uint d , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8;
init();
delay(uint x);
main()
{
init();
for(d=1;d>0;d--)
myaj;
while(1)
{
if(e1>9)
{
e2++;
e1=0;
}
if(e2>9)
{
e3++;
e2=0;
}
if(e3>9)
{
e4++;
e3=0;
}
if(e4>9)
{
e5++;
e4=0;
}
if(e5>9)
{
e6++;
e5=0;
}
if(e6>9)
{
e7++;
e6=0;
}
if(e7>9)
{
e8++;
e7=0;
}
if(e8>9)
{
e8=0;
}
PORTD=table[e1];
RC0=0;
delay(1);
RC0=1;
PORTD=table[e2];
RC1=0;
delay(1);
RC1=1;
PORTD=table[e3];
RC2=0;
delay(1);
RC2=1;
PORTD=table[e4]|0x80;
RC3=0;
delay(1);
RC3=1;
PORTD=table[e5];
RC4=0;
delay(1);
RC4=1;
PORTD=table[e6];
RC5=0;
delay(1);
RC5=1;
PORTD=table[e7]|0x80;
RC6=0;
delay(1);
RC6=1;
PORTD=table[e8];
RC7=0;
delay(1);
RC7=1;
}
}
void interrupt myaj()
{
INTF=0;//软件清零
e1++;
if(e1>10)
e1=1;
}
init()
{
OSCCON=0X66;
OPTION=0Xd8;
INTEDG=0;//INT 引脚的下降沿触发中断
ANSELH=0;//设置成数字信号属性
INTE=1;//
GIE=1;//允许所有的中断
TRISB0=1;//输入属性
TRISD=0;//设置RD端口全为输出类型
TRISC=0;
PORTC=0;
}
delay(uint x)//延时
{
uint a1=0,b=0;
for(a1=x;a1>0;a1--)
for(b=50;b>0;b--);
}
__CONFIG(0X03E4);
__CONFIG(0X0700);
#define uint unsigned int
#define uchar unsigned char
void interrupt myaj();
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};//七段数码管段码
uint d , e1 , e2 , e3 , e4 , e5 , e6 , e7 , e8;
init();
delay(uint x);
main()
{
init();
for(d=1;d>0;d--)
myaj;
while(1)
{
if(e1>9)
{
e2++;
e1=0;
}
if(e2>9)
{
e3++;
e2=0;
}
if(e3>9)
{
e4++;
e3=0;
}
if(e4>9)
{
e5++;
e4=0;
}
if(e5>9)
{
e6++;
e5=0;
}
if(e6>9)
{
e7++;
e6=0;
}
if(e7>9)
{
e8++;
e7=0;
}
if(e8>9)
{
e8=0;
}
PORTD=table[e1];
RC0=0;
delay(1);
RC0=1;
PORTD=table[e2];
RC1=0;
delay(1);
RC1=1;
PORTD=table[e3];
RC2=0;
delay(1);
RC2=1;
PORTD=table[e4]|0x80;
RC3=0;
delay(1);
RC3=1;
PORTD=table[e5];
RC4=0;
delay(1);
RC4=1;
PORTD=table[e6];
RC5=0;
delay(1);
RC5=1;
PORTD=table[e7]|0x80;
RC6=0;
delay(1);
RC6=1;
PORTD=table[e8];
RC7=0;
delay(1);
RC7=1;
}
}
void interrupt myaj()
{
INTF=0;//软件清零
e1++;
if(e1>10)
e1=1;
}
init()
{
OSCCON=0X66;
OPTION=0Xd8;
INTEDG=0;//INT 引脚的下降沿触发中断
ANSELH=0;//设置成数字信号属性
INTE=1;//
GIE=1;//允许所有的中断
TRISB0=1;//输入属性
TRISD=0;//设置RD端口全为输出类型
TRISC=0;
PORTC=0;
}
delay(uint x)//延时
{
uint a1=0,b=0;
for(a1=x;a1>0;a1--)
for(b=50;b>0;b--);
}