您的位置 首页 设计

AT89S52在Linux下的烧录办法

转载时请注明出处:http:hibaiducom%B5%FB%CF%FE%C3%CEblogitem1aa1050958898c2e6a60fbd0html蝶晓梦(vowstar()gmailcom)

转载时请注明出处:

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

即可
作用如图:

开发板上的作用:

注意事项:

假如提示器材没有响应,signature = 0x000000原因是:usbasp的固件不能用原装的 (http://www.fischl.de/usbasp/)
要用来自这儿的http://www.8051projects.info/blogs/usb-8051-avr-programmer.html

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

avrdude: Cant 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权限

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/255275.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部