这是前年碰了很多墙才折腾出来的方法 
我的博客的原文在这里 
http://hi.baidu.com/%B5%FB%CF%FE ... 898c2e6a60fbd0.html 
 
这里以Ubuntu为例子,先安装avrdude. 
用下面的命令一次装全吧: 
 
sudo apt-get install gcc-avr binutils-avr avrdude avr-libc 
 
然后编辑avrdude.conf: 
 
sudo gedit /etc/avrdude.conf 
 
在最后面加入AT89s52的相关信息(这是Joy Shukla写的) 
 
#------------------------------------------------------------  
# Below chips by added by me .. Joy Shukla(joy_shukla@yahoo.in)  
# these chips can be programmed with my usbasp programmer(changed atmega8 program)  
# after adding avrdude support in this file ..  
#------------------------------------------------------------  
 
#------------------------------------------------------------  
# AT89S52  
#------------------------------------------------------------  
part  
id               = "8052";  
desc             = "AT89S52";  
signature        = 0x1E 0x52 0x06;  
chip_erase_delay = 20000;  
pgm_enable       = "1 0 1 0  1 1 0 0    0 1 0 1  0 0 1 1",  
"x x x x  x x x x    x x x x  x x x x";  
 
chip_erase       = "1 0 1 0  1 1 0 0    1 0 0 x  x x x x",  
"x x x x  x x x x    x x x x  x x x x";  
 
timeout      = 200;  
stabdelay      = 100;  
cmdexedelay      = 25;  
synchloops      = 32;  
bytedelay      = 0;  
pollindex      = 3;  
pollvalue      = 0x53;  
predelay      = 1;  
postdelay      = 1;  
pollmethod      = 0;  
 
memory "flash"  
size            = 8192;  
paged           = no;  
min_write_delay = 4000;  
max_write_delay = 9000;  
readback_p1     = 0xff;  
readback_p2     = 0xff;  
read            = "  0   0   1   0    0   0   0   0",  
"  x   x   x a12  a11 a10  a9  a8",  
" a7  a6  a5  a4   a3  a2  a1  a0",  
"  o   o   o   o    o   o   o   o";  
 
write           = "  0   1   0   0    0   0   0   0",  
"  x   x   x a12  a11 a10  a9  a8",  
" a7  a6  a5  a4   a3  a2  a1  a0",  
"  i   i   i   i    i   i   i   i";  
mode      = 0x21;  
delay      = 12;  
;  
 
memory "signature"  
size            = 3;  
read            = "0  0  1  0   1  0  0  0   x  x  x  0   0  0 a1 a0",  
"0  0  0  0   0  0  0  0   o  o  o  o   o  o  o  o";  
;  
;   
#------------------------------------------------------------  
然后保存 
现在就可以烧录AT89S52的单片机了, 
例如我想烧录放在桌面上的编译好的跑马灯程序, 
用命令 
 
sudo avrdude -p 8052 -c usbasp -e -U flash:w:'/home/vowstar/桌面/跑马灯.hex' 
 
即可 
 
 
  
效果如图 (原文件名:4ea013d3ef19491a970a1697.jpg) |  
  
 
 
 
 
 |   
 |  
  
 |