a9 linux 程序烧录,AT89S52在Linux下的烧录方法

转载时请注明出处:

http://hi.baidu.com/%B5%FB%CF%FE%C3%CE/blog/item/1aa1050958898c2e6a60fbd0.html

蝶晓梦(vowstar(#)gmail.com)

今天终于琢磨出来怎么在linux下烧录AT89s52.

下面是我的方法...当然可能有更好的方法.

这里以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'

即可

效果如图:

 70b16bee57b04b82c92d32c9e3b2d404.png

开发板上的效果:

d67ca400ac6e8e8a012c82250b0bebbf.png

注意事项:

2. 提示:~/Desktop $ sudo avrdude -p 8052 -c usbasp -e

avrdude: Can't find programmer id "usbasp"

Valid programmers are:

上面这种情况接 usbasp编程器(并口的)到电脑上,然后在终端下执行命令lsusb,提示:

~/Desktop $ lsusb

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 002: ID 16c0:05dc VOTI USBasp AVR Programmer

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 002 Device 002: ID 04fc:05da Sunplus Technology Co., Ltd

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 003: ID 0ac8:0321 Z-Star Microelectronics Corp. Vimicro generic vc0321 Camera

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这样看来,编程器没问题可以被识别.

检查一下/etc/avrdude.conf中是不是上文所述配置,然后检查编程器的跳线设置,跳线帽错没,再检查一下单片机是不是AT89S52,

最后确认单片机外围不能接其他影响IO传输的器件,比如DS18B20,ULN2003等,断开它们然后尝试下载.

下载程序时要用root权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值