-51系列的开发环境搭建
Galaxy2416
联系方式:sunxiao.gin@gmail.com
附件包内容: 程序源码,超级简易Makefile模板,usbasp可烧录51的固件程序,相关文档。
http://download.csdn.net/detail/galaxy_blue/4327653
系列说明:LINUX下程序开发具有一定的成熟性,包括大部分的MCU,FPGA,DSP甚至PCB制图等都是可行的。本系列将针对51系列的MCU.。
本文环境如下:
OS系统:ubuntu 12.04
编译器 :sdcc
烧录软件 :avrdude
烧录器件 :usbasp
开发板:
开发板的确是有个小的,不过这次特意搭接了一个个人的小面包板版本,为此表示~不要怕开发MCU没有硬件基础,只要去做,其实开发就是这么容易~
如下图
最好弄运行的时候只需要电池1.2V*4,用了3个3.6V就可行(我的电池座忘带了,直接连起来啦)~建议最好有个USB接出来的5V电源或者自己有个变压器做的稳压电源,面包板上有一个电源小板子就是如此功能,不过这里没有使用。
注:旁边的小板子是USBASP,也有供电功能~此处就放在那里做个合影~哈~
程序编写:Vim(升级版的记事本,很好用,很推荐)
准备:
软件安装,软件安装建议使用ubuntu的软件中心,比较方便。需要sdcc,avrdude即可了。文本编辑什么都行。可以集成在codeblocks和eclipse里面(51没干过),ubuntu下有个51MCU的IDE,可以下来用‘mcu8051ide’ 。
对于命令行可以如下安装
- sudo apt-get install vim
- sudo apt-get install avrdude
然后就都安装完毕了。下一步就可以开始了。
源程序:
开始之前需要先写一个main.c的程序
这是一个很简单让一个blink的程序。
- #include <8052.h>
- typedef unsigned int size_t;
- #define LED P0_0
- void delay(size_t t)
- {
- while(t--);
- }
- void main()
- {
- while(1)
- {
- LED = 0;
- delay(20000);
- LED = 1;
- delay(20000);
- }
- }
编译:
之后就要编译程序把程序变成单片机能使用的*.elf *.bin *.hex之类的
这里我们使用的是SDCC默认编译出现的*.ihx (intel hex)
在当前目录下执行
- sdcc -mmcs51 main.c
当面目录下就会生成好多好多文件~记住我们需要的main.ihx~
配置avrdude:
使用avrdude烧写
我们不能直接使用avrdude烧写,这是因为它默认只支持AVR芯片,但是通过一些配置,我们可以使用它来烧写。
对于8051芯片,我们有三种配置文件,分别适用于不同的型号。看看你要哪一种,然后复制到/etc/avrdude.conf并保存。
(sudo gedit /etc/avrdude.conf)
For AT89S51
- #------------------------------------------------------------
- # AT89S51
- #------------------------------------------------------------
- part
- id = "8052";