新手求助C语言中断问题,

来源:百度知道 编辑:UC知道 时间:2024/06/14 06:59:28
#include <AT89X52.H>
unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}
unsigned char code graph[3][8]=
{0x12,0x14,0x3c,0x48,0x3c,0x14,0x12,0x00}
{0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00}
{0x30,0x48,0x44,0x22,0x44,0x48,0x30,0x00}

unsigned char count;
unsigned char cnta;

void main(void)
{
unsigned char i;j;
TMOD=0X01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1 ;
while(1)
{
if(P2_0==0)
{
for(i=5;i>0;i--)
for(j=248;j>0;j--)
if(P2_0==0)
{
count++;
if(count==3)
{
count=0;
}
while(P2_0==0);
}
}
}
}

void t0(void) interrupt1 using0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
P3=tab[cnta];
P1=graph

void t0(void) interrupt1 using0
{
TH0=(65536-4000)/256;
TL0=(65536-4000)%256; //装初值
P3=tab[cnta]; // 通过cnta++控制P3口使之与表tab对应
P1=graph[count][cnta]; //P1同样
cnta++;
if(cnta==8) //实现循环计满8次 重现显示
{
cnta=0;
}
}