OK.把EasyPro 51 V2.0 的代码一直到 ubuntu的sdcc上~可以运行!

详情看:http://www.kmlinux.tk/html/single-chip-controller/761.html
因为我有点时间就去开发51单片机。发现在Linux(Debian和Ubuntu上)无法编译51单片机程序,只好在网上下了个Keil.然后就是wine仿真。但是老崩溃。代码也有问题。然后又改成了在虚拟机里跑。但是还是不爽!知道发现了SDCC后才知道了什么叫方便。一些Keil中的语法在SDCC中要更正。

比如说P0.1口的LED.点亮他在Keil中这么写

view sourceprint?
1 sbit LED=P0^1;  

2 void XXXX(void)  

3 {  

4 LED=1;  

5 LED=0;  

6 while (1){}  

7 }
但是在sdcc中却通不过。网上查了下,要用这种方法:

view sourceprint?
1 __sbit __at 0x80 LED;  

2 //或者#define LED P0_1  

3 void XXXX(void)  

4 {  

5 LED=1;  

6 LED=0;  

7 while (1){}  

8 }
这才是正确的。

还有在sdcc中的一些细节写法,比如说
unsigned char Data;

while (!ReadData()==Data){}

这就是有错的。因为在 sdcc中,你没有把Data定义成signed char .所以他会报错,说这个不是有符号位的。

在sdcc的写法是:(ReadData!=Data).

作者: rgwan   发布时间: 2011-06-03

支持

作者: yzs   发布时间: 2011-06-03