安装
-
安装可以直接下载安装包进行安装,他会将用到的所有东西都安装上去(不包括gSTCISP)
-
sudo dpkg -i mcu8051ide-1.4.10-all.deb
-
sudo apt-get install -f
-
下载工具gSTCISP可以自己下载安装
-
开源软件mcu8051ide是一款功能强大的51单片机集成开发软件,这个IDE包含模拟器,源代码编辑器,汇编,HW程序员和大量其他工具。用c语言编程,界面友好,模拟器支持超过79单片机主要来自爱特梅尔公司,而且提供多种模拟器件如:led 数码管,矩阵数码管(8×8)按键,矩阵按键,甚至温度传感器。开源的没有任何限制,完全免费,自动生成多种烧录文件(我们一般就用.HEX的)。
MCU8051IDE使用的是SDCC编译器
-
SDCC编辑器中包含多个头文件供用户使用:
-
目录:/usr/share/sdcc/include
-
-
对于51单片机的头文件:
-
-
在SDCC编写代码与keil有些不同:
-
在KEIL中我们这样定义引脚:
-
sbit led1=P1^0;
-
-
而在SDCC中这样定义引脚:
-
-
sbit at 0x90 led1; 或者__sbit __at 0x90 led1;
-
因为我们知道在头文件中已经这样定义了引脚:
所以我们也可以这样写#define LED P0_0定义引脚
-
-
-
-
-
对于一些非ANSI C的关键字,SDCC均采用双下滑线开头的方式定义,如__code,__idata,__sbit......对于单片机引脚的定义SDCC采用了 __at关键字和十六进制地址:
-
SDCC Keil
-
__sbit __at 0x94 blackLineLeft; sbit blackLineLeft=P1^4;
-
__sbit __at 0x95 blackLineRight; sbit blackLineRight=P1^5;
-
__sbit __at 0x80 pin1; sbit pin1=P1^0;
-
__sbit __at 0x81 pin2; sbit pin2=P1^1;
-
对于内嵌汇编代码,SDCC使用__asm和__endasm两个关键字,参考代码如下:
-
void delay0_1(uint n) { for(i=0;i<n;++i) { for(j=0;j<10000;++j) { __asm nop __endasm; } } }
-
-
-
当编写好程序后,我们可以直接点击MCU8051IDE->工具->编译进行编译:
-
编译之后输出文件:
-
-
-
编译之后可以将编译出来的.hex转换成可以下载的.bin
-
MCU8051IDE->使用工具集-> hex->bin
-
-
使用gSTCISP下载程序
-
-
选择自己的串口,因为我们使用的是USB转串口,所以选择ttyUSB*
-
选择波特率,我的波特率不能选太高(波特率在>=9600时),太高时会出现下载失败。
-
-
下载成功:
-
-
-
在MCU8051IDE的配置选项中可以配置很多东西:
-
在配置-》配置编辑器中可以选择自己习惯的编辑器。
-
可以将tab改为4个空格宽度,可以设置自动补全等功能功能,可以将自动括号取消(感觉不是很好用)。
-
-
-
通过 配置->编译自定义变量可以添加自己的命令:
-
如下添加指令1为启动gSTCISP软件,方便程序下载。
-
gksu gSTCISP
-
gksu 以root方式(对话框输入密码)打开某个软件,但在打开始时,会弹出对话框,让你输入密码,不过每次打开都要输入密码,很烦人,不过也比到终端中打开强(开启之后不用关闭,放着下次用)。
-
如果没有这个命令,可以运行apt-get install gksu安装
-
-
-
在SDCC中书写中断函数时应使用__interrupt
-
void InterruptTimer0() __interrupt 1
{
TH0 = 0xFC; //重新给定时器赋值
TL0 = 0x67;
count++;
}
-
-
参考文献:http://blog.chinaunix.net/uid-24203478-id-3062706.html