㈠ 单片机Keil C51 C语言多文件如何使用全局位变量跪拜!!
extern就可以。在一个文件里定义:
bdata m;
sbit x=m^1;
然后在另一个文件里声明:
extern bdata m;(如果不使用m可以不声明。)
extern bit x;
这样就可以使用了。如果变量较多,建议楼上的方法,用全局头文件。
㈡ 怎么往单片机里面烧录多个不同模块的程序
都是一个工程里面的程序,几个模块是指里面的功能分区,烧录文件就是一个文件涵盖了所有的程序,不需要单独烧录,直接烧录就可以了。
㈢ 51单片机一个工程中包含多个C文件怎么使用
这是标准的C语言写法。
1. 不管有多少个函数,C总是从main()主函数开始执行。
2. 至于你说的一个工程里面包括多个.c的文件,其实每个.c的文件里就是一系列函数而已。如果你要使用这些函数的话你要在头文件里加入#include。比如我要用“init.c”这个文件,则头文件中除了#include"reg51.h"你还要加#include"init.c"然后如果在"init.c"中有一个函数"init()"我需要调用。我就要在main()函数之前作声明。(其实一般我们要调用一个函数,除非这个函数写在main()之前。否则我都要在main()之前做函数声明。比如在main()之前加上void init();)那么如果这个init();在其他文件中,改如何声明呢?我们一般可以做外部声明.extern init();就行了。
3. 其实说穿了,你的问题就是函数声明问题。如果前面加上正确的声明,你的编译应该能通过的。单片机也能按照你的要求工作了。顺便说一句,如果是外部文件的数据结构,如果要调用的话,也是做extern声明。如果还有不明白的地方你可以看看标准的c语言方面的书籍就能明白了。
㈣ 单片机 全局变量太多,且分布在多个文件中该怎么优化
合并相同类型的变量了,比如不同时用到的变量,可以合并握前嘛;还有就是将常量定义到代码区,也就是加code 这样就不占用RAM区神举域了。当然如果不合并游皮碧,系统也没有扩展RAM,你可以选择STC12系列的单片机,其内部有扩展的RAM,好像从1K到4K都有。这样就不用担心变量多了。