|
楼主 |
发表于 2008-3-2 17:51:07
|
显示全部楼层
2、对s51烧写.....烧写之后,芯片的P17“一直”为低电平——正好我的目标板上面,P1口有LED数码管,才发现!
谢谢wxfhw的提示,这确实存在这样的情况。造成这样的原因是下位机程序中void isp_disconnect(uchar type)错误产生的。
原来是这样的:
void isp_disconnect(uchar type)
{
PORTB=PORTB & (~((1<<PB3) | (1<<PB4) | (1<<PB5))); //禁止上拉
DDRB=DDRB & (~((1<<DDB3) | (DDB4) | (DDB5))); //输入
if(type==0) //AT89S51,AT89S52
PORTB=PORTB & (~(1<<PB2)); //RESET=0
else //ATmega
PORTB=PORTB | (1<<PB2); //RESET=1
SPCR=0; //禁止M8硬件ISP
isp_led(0);
}
现在修正了,修正如下:
void isp_disconnect(uchar type)
{
PORTB=PORTB & (~((1<<PB3) | (1<<PB4) | (1<<PB5))); //禁止上拉
DDRB=DDRB & (~((1<<DDB3) | (1<<DDB4) | (1<<DDB5))); //输入
if(type==0) //AT89S51,AT89S52
PORTB=PORTB & (~(1<<PB2)); //RESET=0
else //ATmega
PORTB=PORTB | (1<<PB2); //RESET=1
SPCR=0; //禁止M8硬件ISP
isp_led(0);
}
这是我太粗心大意了。
再次感谢wxfhw的提示。同时提供更正后的下位机程序:
点击此处下载ourdev_222875.rar(文件大小:163K)
to:zhb2000
你的软件做得很好,真羡慕! |
|