單片機是自學的,因為還沒有教這個內(nèi)容,其他的內(nèi)容都是查找資料進行了解的。我用74HC154控制點陣的行,P0P2引腳控制列,但是我我把程序下載進芯片并進行仿真的時候連燈都沒有亮,別說顯示文字了。請問我哪一步錯了?快崩潰了,求指導。
單片機源程序如下:
#include<reg51.h>
sbit H0=P3^0;
sbit H1=P3^1;
sbit H2=P3^2;
sbit H3=P3^3;
unsigned int zimo[]={
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x02,0x05,0x08,0x10,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x08,0x84,0x42,0x0F,0x00,
0x08,0x06,0x40,0x31,0x00,0x22,0x26,0x2A,0xB2,0x62,0x22,0x2A,0x26,0x23,0x20,0x00,
0x20,0x20,0x7E,0x80,0x01,0x02,0x7C,0x00,0x00,0x7F,0x00,0x00,0x7E,0x01,0x07,0x00,
0x00,0x20,0x20,0x2F,0x29,0x29,0x29,0xF9,0x29,0x29,0x29,0x2F,0x20,0x20,0x00,0x00,
0x02,0x02,0x02,0xFE,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0xFE,0x02,0x02,0x02,0x00,
0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x42,0x41,0x40,0x40,0x40,0x40,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,
0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x20,0x00,0x00,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,
0x01,0x01,0x21,0x21,0x21,0x21,0x21,0x3F,0x41,0x41,0x41,0xC1,0x41,0x01,0x01,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x7F,0x42,0x42,0x42,0x42,0x43,0x42,0x42,0x42,0x7E,0x00,0x00,0x00,
0x01,0x02,0x0C,0xF0,0x00,0x00,0x00,0x00,0xC0,0x30,0x08,0x04,0x02,0x01,0x01,0x00
};
void main()
{
EA=1;
TMOD=0X01;
TH0=0XFC;
TL0=0X67;
ET0=1;
TR0=1;
while(1);
}
void zd() interrupt 1
{
static unsigned char i=0;
static unsigned char index =0;
static unsigned char tmr=0;
TH0=0XFC;
TL0=0X67;
P0=0xff;
P2=0XFF;
switch(i)
{
case 0:H3=0; H2=0;H1=0;H0=0;i++;P0=zimo[index+0];break;
case 1:H3=0; H2=0;H1=0;H0=1;i++;P0=zimo[index+1];break;
case 2:H3=0; H2=0;H1=1;H0=0;i++;P0=zimo[index+2];break;
case 3:H3=0; H2=0;H1=1;H0=1;i++;P0=zimo[index+3];break;
case 4:H3=0; H2=1;H1=0;H0=0;i++;P0=zimo[index+4];break;
case 5:H3=0; H2=1;H1=0;H0=1;i++;P0=zimo[index+5];break;
case 6:H3=0; H2=1;H1=1;H0=0;i++;P0=zimo[index+6];break;
case 7:H3=0; H2=1;H1=1;H0=1;i++;P0=zimo[index+7];break;
case 8:H3=1; H2=0;H1=0;H0=0;i++;P2=zimo[index+8];break;
case 9:H3=1; H2=0;H1=0;H0=1;i++;P2=zimo[index+9];break;
case 10:H3=1;H2=0;H1=1;H0=0;i++;P2=zimo[index+10];break;
case 11:H3=1;H2=0;H1=1;H0=1;i++;P2=zimo[index+11];break;
case 12:H3=1;H2=1;H1=0;H0=0;i++;P2=zimo[index+12];break;
case 13:H3=1;H2=1;H1=0;H0=1;i++;P2=zimo[index+13];break;
case 14:H3=1;H2=1;H1=1;H0=0;i++;P2=zimo[index+14];break;
case 15:H3=1;H2=1;H1=1;H0=1;i++;P2=zimo[index+15];break;
default :break;
}
tmr++;
if(tmr>=50)
{
tmr=0;
index++;
if(index>=208)
{
index=0;
}
}
}
|