51单片机一个工程中包含多个C文件怎么使用

作者&投稿:称达 (若有异议请与网页底部的电邮联系)
51单片机一个工程中包含多个C文件怎么使用,就像 main .c init.c display.c ?~

函数的声明可以不用加,不过如果是变量被多个.c文件使用,则必须加上extern,然后在某一个文件中进行定义、

把C文件都放到一个文件夹,再全部添加到工程,然后就可以在main函数里调用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语言方面的书籍就能明白了。

这是标准的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语言方面的书籍就能明白了。

关键是一个工程只能有一个main函数,你的别的C文件中不能再有main函数了哦,然后再主函数的开头用#include "init.c"等,将它们包含进来就可以了。;

把X.C的文件(主程序除外)名改为X.H
然后在主程序的最前面加上#include "X.c"即可

51单片机怎么把多个子程序做成头文件,然后调用
答:你可以写一个头文件,比如说<delay.h>之类的,开始写51程序的时候,#include <delay.h>就可以放进去了,这条语句相当于展开这个文件。你可以把它放在任意的路径,最好是和<reg51.h>一个文件夹,方便直接用,就不用每次使用都要查找它的路径了。希望能够帮到你 ...

51单片机中 怎么样才能把两个并列的程序放一起呢,比如:程序A和B,先...
答:在MAIN_A的最后加一条跳转指令,或者直接把MAIN_B的代码拷贝到MAIN_A后面

51单片机4个独立按键怎么写一个中断
答:要实现4个独立按键的中断,可以采用外部中断的方式。在51单片机中,可以通过P3口的外部中断请求(P3.2-P3.5)实现多个独立按键的中断响应。具体实现方法如下:1. 首先需要将P3.2-P3.5设置为输入模式,并使能中断请求。2. 在程序中,需要编写中断服务函数,用于处理按键中断事件。当某个按键按下时,...

51单片机一个引脚有多个功能会不会引起混乱?为什么?使用中怎么安排
答:嘿嘿 俺来回答你 1 单片机一个引脚有多个功能是不会引起混乱的 因为它们是分时使用的 或使用了这个功能 就不允许使用另一种功能了。2 例如:单片机的P0口的8 个引脚 即作为低8位地址总线 又作为8位数据总线 它们不会发生冲突 在ALE为低电平时,P0口的8 个引脚作为低8位地址总...

单片机中,比如51单片机有五个中断源,两个外部中断源,两个定时器中断源...
答:T1:定时器/计数器l中断,由T1计满回零引起。TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。整个中断系统的结构框图见下图一所示。<51单片机中断系统结构> 如图所示,由与中断有关的特殊功能寄存器、中断入口、次序查询逻辑电路等组成,包括5个中断请求源,4个用于中断控制的寄存器IE、...

使用51单片机如何实现多个按键输入,采用中断方式,若无按键按下时MCU做...
答:多个按键输入(2个以上,即使用普通IO口实现中断),程式如何采用中断方式实现,...--- 51单片机,有两个外部中断输入端,它们也算是普通IO口。外部中断,应该用于处理一些突发事件,需要单片机紧急处理的事件。按键,不能算是需要紧急处理的事件。对普通按键进行处理,还需要延时消抖,等待按键释放等环节...

51单片机中,是否有两个while(1)嵌套或并行的情况,如果有,程序怎样执 ...
答:是不能的,但你可以用内部中断的方法来实现,也就是主程序里有一个while,在这个while里每循环1次或几次,就跳入中断去执行中断服务程序,在中断服务程序中进行运算或判断。

keil5怎样添加一个51单片机工程
答:设置好工程名后,点击保存保存后,它会让我们选择单片机型号。若是KEIL5有没有安装51依赖的话,我们是不能创建51工程的。而安装了话,可以看到选择下拉框多个“LegacyDeviceDatabase[noRTE]”安装好依赖后,就要选择单片机型号,其实只要是51内核的都能选,这里习惯选Intel中的第一个,选好点击OK。点击OK...

一个51单片机C程序,里面有一个bin的文件,这个bin文件应该包含了几个重要...
答:(3)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要...

求助,请问一个51单片机能够和多个ADC0832连接吗
答:你好!可以接多个ADC0832,我最多用过 9 个,18路输入