AT89S52在Linux下的烧录方法

发布者:Yudie最新更新时间:2015-07-23 来源: 51hei关键字: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'

即可
效果如图:
 
 

开发板上的效果:

 

注意事项:

如果提示器件没有响应,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: 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权限

关键字:AT89S52  Linux  烧录方法 引用地址:AT89S52在Linux下的烧录方法

上一篇:基于51单片机的TLC5615电压发生器
下一篇:详解基于51单片机的small rtos(1)

推荐阅读最新更新时间:2024-03-16 14:26

linux串口终端驱动——s3c6410平台(四)
接着上一篇的tty线路规程,这一篇主要说明tty最主要的数据结构tty_driver 1、tty_driver 我认为tty_driver结构体是tty终端设备的根本,他连接了设备和驱动,而且,特定tty设备驱动的主体工作就是填充tty_driver结构体中的成员,实现其中的成员函数,tty_driver结构体如下: struct tty_driver { int magic; /* magic number for this structure */ 表示给这个结构体的“幻数”,设为TTY_DRIVER_MAGIC,在alloc_tty_driver()函数中被初始化。 struct kref kref; /*
[单片机]
一种基于CAN总线的高校食堂刷卡系统的设计方案
引言 在如今的高校食堂,由于学生数量庞大,流动性频繁,传统的纸质餐票、现金或基于接触式IC卡技术的消费支付方式存在服务效率不高、便捷性差、管理成本高、卡片易损坏等诸多弊端。高校食堂消费作为学校后勤服务的重要组成部分,如果仍沿用以前传统的消费方式,将动用大量的人力物力,而且管理上会出现很多繁琐的事务,这样不利于高校更好地为广大师生服务以及学校的管理。为了解决这一问题,如今,越来越多的高校采用智能卡技术和网络技术相结合来构建学校的食堂刷卡系统。 非接触式智能卡技术和CAN总线技术都是当今世界科技迅猛发展的产物。智能卡技术广泛的应用于各行业,特别是公共交通、无线通信、身份识别、金融交易和安全防卫等行业;而CAN总线在可靠性、实时性和灵活性
[单片机]
一种基于CAN总线的高校食堂刷卡系统的设计方案
基于AT89S52单片机一种新型多费率单相电能表设计
  随着电力的需求越来越大,不同时间段用电量不均衡的现象日趋严重。为了合理地调控电力负荷和节约能源,电力公司已开始鼓励使用多费率电能表。传统的多费率电能表一般采用机械转盘式计量方式,计量精度随机械磨损而降低,时段设置单一,人工抄表劳动强度大,且偶有窃电情况发生等诸多弊端。本文给出基于 AT89S52单片机一种新型多费率单相电能表设计,采用 AD7755电能计量芯片,电能计量准确。该电能表具有分时段计量,液晶显示,自动回抄,时段设置灵活,时间校正及时,新颖的防窃电,功耗低的特点。并对该电能表实验测试数据进行性了误差分析,指出电能计量中减小与消除误差的方法。 1 硬件电路设计   1.1总体结构   基于AT89S52单片机完成
[单片机]
基于<font color='red'>AT89S52</font>单片机一种新型多费率单相电能表设计
基于S3C2440的嵌入式Linux驱动——SPI子系统解读(二)
本文属于第二部分。 4. 主控制器驱动程序 4.1 定义 platform device 下列数据结构位于arch/arm/plat-s3c24XX/devs.c /* SPI (0) */ static struct resource s3c_spi0_resource = { = { .start = S3C24XX_PA_SPI, .end = S3C24XX_PA_SPI + 0x1f, .flags = IORESOURCE_MEM, }, = { .start = IRQ_SPI0, .end = IRQ_S
[单片机]
基于S3C2440的嵌入式<font color='red'>Linux</font>驱动——SPI子系统解读(二)
NIOS软核处理器的Linux引导程序U-boot设计
摘要:针对将cClinux向Nios处理器移植过程中的启动加载程序U-boot bootloader进行研究。首先介绍移植的步骤,然后利用bootloader的设计思想,着重讨论U-boot在Nios中的设计与实现,最后对U-boot在基于Linux的嵌入式系统 中的运用作了探索和展望。 关键词:U-boot bootloader uClinux Nios软核 1 概述 1.1 Nios简介 Nios是Altera公司以RISC为基础的可配置、可裁减软核处理器。它具有16位指令集和16/32位数据通路,通过将包括16或32位高性能处理器在内的移种应用模块嵌入到通用FPGA/CPLD内,实现完全可配置的嵌入式系统。其开发套件
[半导体设计/制造]
Linux向目标系统AT91RM9200的移植方法与应用优势分析
1.引言 目前,在嵌入式系统里基于ARM微核的嵌入式处理器以其功耗低,功能强大的优点已经成为市场的主流。与此同时,在网络上发展起来的Linux操作系统,以其功能强大,开放源代码,支持硬件种类众多的特点,越来越受到人们的青睐。然而如何把Linux操作系统移植到ARM平台上却成了一个重点,也是一个难点问题。 嵌入式Linux系统包括引导程序(Bootloader),内核(kernel)和根文件系统三个部分,其开发流程如图1所示:嵌入式Linux 移植到特定的硬件平台上,一般需要以下五个步骤: (1)前期准备包括从网站上下载嵌入式Linux的源码包, 搭建交叉编译开发环境,配置主机的开发环境等 (2)配置Bootloader,并将
[单片机]
<font color='red'>Linux</font>向目标系统AT91RM9200的移植<font color='red'>方法</font>与应用优势分析
手把手教你学linux驱动开发 OK6410系列之01---模块编程
一、实验环境 开发机环境 操作系统:ubuntu 9.10 交叉编译环境:arm-linux-gcc 4.2.2 ,安装位置 /usr/local/arm/4.3.2/ 6410板子内核源码路径:/work/linux-2.6.36.2-v1.05/ 目标板环境:OK6410-A linux2.6.36 二、实验原理 模块时在内核空间运行的,模块中不能使用glibc库中的函数。 模块可以动态的装载到内核中。 三、实验步骤 注意:最好使用root用户进行以下实验,否则需要利用sudo 1、验证交叉编译
[单片机]
手把手教你学<font color='red'>linux</font>驱动开发 OK6410系列之01---模块编程
基于ARM处理器S3C2440和Linux系统的I2C触摸屏
0 引言 随着计算机相关技术的发展,ARM嵌入式系统受到越来越广泛的应用,与人们生活的结合也越来越紧密。触摸屏设备因其友善的人机交互性,操作方便灵活,输入速度快,被广泛的应用于这种嵌入式领域中。嵌入式Linux系统具有开发源代码、内核稳定、可裁减性等特点,吸引着众多商业公司和自由软件开发者的目光,成为嵌入式系统领域不可或缺的操作系统之一。触摸屏是一种输入设备,操作简单易学,可靠性高,不占额外的空间,是最常用的便携式系统的输入设备。特别是电阻式触摸屏,它结构简单,成本低,透光效果好,工作环境和外界完全隔离,不怕灰尘和水气,同时具有高解析度、高速传输反应、一次校正、稳定性高、不漂移等特点,因而被广泛用于工业控制领域。 1 电阻式触摸屏
[单片机]
基于ARM处理器S3C2440和<font color='red'>Linux</font>系统的I2C触摸屏
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved