23179|12

1583

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

C8051FXXX Keil C环境使用问题。 [复制链接]

折腾了两天,还没弄明白这个C8051F的开发环境是如何使用。

现在的情况是这样子:

刚开始时我安装了KEIL C+C8051F的Keil µVision 调试驱动 v3.40 。
然后可以在KEIL C里找到C8051F320这个芯片了,可是去看了一下它的头文件,发现定义的东西很少。

然后又装了个Silicon Labs IDE V4.01的,发现这个里面的头文件定义的东西比KEIL C里的多。
可是在这两者的头文件里都没有找到像P0,P1,P2,P3等IO口的位定义。
现在问题出来了:
1、这是不是说明C8051F系列的单片机无法使用位寻址方法对IO口进行操作呢??如果能用位寻址方式,那么我们应该如何做才能实现呢??

2、在Silicon Labs IDE V4.01里面有两种头文件,一种是XXXX.H,另和种是XXXX_defs.h,这两种头文件在使用上有什么区别呢??我看了一下,它们所定义的内容是一样的,只是定义的格式不太一样。
在XXXX.H中是sfr P0            = 0x80; /* PORT 0 LATCH */这么定义P0的,
而在XXXX_defs.h中是SFR (P0, 0x80);                        // Port 0 Latch这样子定义。

3、我是不是可以直接把Silicon Labs IDE V4.01中的头文件库COPY到KEIL C中来用,然后直接用KEIL C来编写程序并编译出HEX文件就可以了,还是说必须使用Silicon Labs IDE 来编译生成HEX文件(这个需要调用KEIL C的编译工具)。

4、如果说可以直接用KEIL C来直接编译,那么是否要对KEIL C进行一些特殊的设置呢??

期待高手解答!!

[ 本帖最后由 huchuan987 于 2010-8-18 12:28 编辑 ]

最新回复

谢谢大虾!  详情 回复 发表于 2018-12-27 10:42
点赞 关注
个人签名
 

回复
举报

978

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
KEIL装好以后,装一个Silicon的库文件。。。。里面的所有的Silicon公司的芯片的配置文件就都会安装到Keil里了。。。。用Keil的时候,会选择单片机类型,生成工程的时候可以选择加载默认的.h文件,很方便的。。。。还有一个自己手动配置文件的小软件,十分方便。XXXX.H和XXXX_defs.h的区别我记不太清了。。。你看看里面是怎样写的就明白了呀。。。重复的话选其一就可以了,不重复的话应该是各有作用的
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

板凳
 

原帖由 huchuan987 于 2010-8-18 12:25 发表 折腾了两天,还没弄明白这个C8051F的开发环境是如何使用。 现在的情况是这样子: 刚开始时我安装了KEIL C+C8051F的Keil µVision 调试驱动 v3.40 。然后可以在KEIL C里找到C8051F320这个芯片了,可是去 ...

 

摸爬滚打了一个星期了,说说我的理解吧:

 

1、C8051F是基于51核的,可以实现位寻址,例如:

sbit LED = P2^2;

sbit SDA = P0^4;

 

也可以直接用位地址形式:

sbit ACK = 0xC1;                 // Acknowledge flag

sbit EA = 0xAF;                   // Global interrupt enable

 

2.、Silicon Laboratories IDE提供了C语言环境下两种头文件定义,我的安装路径下所在目录:D:\Programs\SiLabs\MCU\IDEfiles\C51\INC

c8051F320.h是Keil编译环境下用的,C8051F320_defs.h是Generic编译环境下用的,根据使用的编译环境来用,包含错误会出错,两种编译环境的语言规范是不一样的,所以会出现楼主说的sfr P0 = 0x80和SFR (P0, 0x80); 。不过,定义的寄存器名那些是一样的,可以通用。

 

 

Silicon Laboratories IDE该调试环境不包含编译环境,需由第三方提供。比如Keil。在Project -> Tool Chain Integration可以看到它支持的编译环境。建立新工程的时候,出现编译错误,或者拷贝别人的工程,编译出错了,应当先查看那些设置是否正确。根据自己的安装目录来设置,下面是我的设置:

Assembler:D:\Programs\Keil\C51\BIN\A51.EXE

Compiler:D:\Programs\Keil\C51\BIN\C51.exe

Linker:D:\Programs\Keil\C51\BIN\BL51.EXE

 

如果要输出Hex文件,在Project -> Target Build Configuration -> Hex file generation里设置,我的设置:

D:\Programs\Keil\C51\BIN\oh51.EXE

 

 

用Silicon Laboratories IDE编译,可以把D:\Programs\SiLabs\MCU\IDEfiles\C51\INC目录下的相应头文件拷出来用,放到工程文件夹里,用#include "c8051F320.h"包含该头文件。

 

3、用Keil可以开发C8051F,Keil是支持C8051F的,在Silicon Laboratoies.Inc.里可以找到相应的器件,头文件是#include <C8051F320.h>。

 

 

但是要仿真的,需要插件支持,附件有SiC8051F_uVision 3.31.rar,它支持最新版的uV4,安装之后,就可以仿真了,具体设置,可以参考以下信息:

[资料下载]做了个C8051F单片机USB接口的仿真编程器,秀一秀,22楼

上传仿真编程器的使用说明书

https://bbs.eeworld.com.cn/thread-153560-3-1.html

 

 

如果仅仅是要编程hex文件,可以不必要用Keil,FLASH Programming Utility了直接烧录C8051F。

 

4、像使用其它51系列一样,直接建工程编译生成hex。要仿真就装插件,只要烧录,可以用其它软件如FLASH Programming Utility。

 

 

 

SiC8051F_uVision 3.31.rar (3.12 MB, 下载次数: 406)

 

 

 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

4
 
笔误:FLASH Programming Utility是安装Silicon Laboratories IDE勾选安装,不是另外下载的。
 
 
 

回复

338

帖子

2

TA的资源

五彩晶圆(初级)

5
 

建议用Keil开发和仿真,用新华龙的软件编程

C8051F芯片除了那个优先级交叉开关,其它的用法与传统51是一模一样的,注意指令周期是长短不一的哟,有的是单时钟,有的是几时钟,反正速度比AT89S52快多了。
个人签名以VS1003B和山景方案为基础,倾心研制数字化语音录放产品
排忧邮箱xg_2004_sy@126.com
 
 
 

回复

1583

帖子

0

TA的资源

五彩晶圆(高级)

6
 
明白了:

1、
1、C8051F是基于51核的,可以实现位寻址,例如:



sbit LED = P2^2;



sbit SDA = P0^4;







也可以直接用位地址形式:



sbit ACK = 0xC1;                 // Acknowledge flag



sbit EA = 0xAF;                   // Global interrupt enable



那个位寻址得自己加去。就像其它51的头文件一样做:
/*------------------------------------------------
P0 Bit Registers
------------------------------------------------*/
sbit P0_0 = 0x80;
sbit P0_1 = 0x81;
sbit P0_2 = 0x82;
sbit P0_3 = 0x83;
sbit P0_4 = 0x84;
sbit P0_5 = 0x85;
sbit P0_6 = 0x86;
sbit P0_7 = 0x87;

2、可以直接用KEIL C软件来编译文件直接生成HEX。只需要把Silicon Labs IDE 中的头文件库拷过来用就行了(当然也可以不拷,把路径写对上也一样),其它的跟普通51一样做。

3、关于头文件,就用那种Tool Chain :    Keil C的就可以了。

4、如果要仿真就按上面3楼的方法设置就可以了,如果不仿真基本就不用做什么设置。

我的理解对了吗??
个人签名
 
 
 

回复

978

帖子

0

TA的资源

一粒金砂(高级)

7
 

原帖由 David_Lee 于 2010-8-18 13:22 发表 笔误:FLASH Programming Utility是安装Silicon Laboratories IDE勾选安装,不是另外下载的。

呀,跟我讲到一块儿去了,呵呵

 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

8
 

原帖由 huchuan987 于 2010-8-18 14:07 发表 明白了: 1、 那个位寻址得自己加去。就像其它51的头文件一样做: /*------------------------------------------------ P0 Bit Registers ------------------------------------------------*/ sbit P0_0 ...

 

1、bingo,我习惯用下面这种形式,呵呵:
sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;

 

2、Keil是支持C8051F的,Keil开发C8051F啥都不用拷,D:\Programs\Keil\C51\INC\Cygnal里面已经有头文件定义的了,只生成hex来烧录的话,插件都不用装。Cygnal后来被Silicon收购了。

 

3、Tool Chain : Keil C和Target Build Configuration是用Silicon Laboratories IDE开发C8051F时,自己设置要用到的第三方编译环境目录,用于编译连接生成hex。如果设置第三方编译环境用Keil的话,拷贝C8051F320.h到工程目录,#include "c8051F320.h"。c8051F320.h可以拷贝Keil里的,可以拷贝Silicon Laboratories IDE里的。

 

4、bingo。

 
 
 

回复

2751

帖子

0

TA的资源

裸片初长成(初级)

9
 

原帖由 David_Lee 于 2010-8-18 13:22 发表 笔误:FLASH Programming Utility是安装Silicon Laboratories IDE勾选安装,不是另外下载的。

 

Flash Programming V3.70.zip是下载安装的

勾选安装的是Production Programmer

 
 
 

回复

1583

帖子

0

TA的资源

五彩晶圆(高级)

10
 
问题已经解决,学习C8051FXXX中。

配合此贴一起看~~~~

https://bbs.eeworld.com.cn/viewth ... 47&page=1#pid689183
个人签名
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

11
 
学习了,谢谢
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

12
 
不能软件仿真吗?keill4点击Peripherals什么都没有啊
个人签名单片机没有不可能
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

13
 
David_Lee 发表于 2010-8-18 13:19
 
摸爬滚打了一个星期了,说说我的理解吧:
 
1、C8051F是基于51核的,可以实现位寻址,例 ...

谢谢大虾!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表