|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
小弟初学单片机(89SC52)不久,因为一直看资料都是一个.c的程序在那里编译仿真实验。今天突然想了解下多个.c是如何在一个主程序里面执行的,感觉上是像原理图的子程序一样的模式,也看到很多网上说的,都是差不多的回答,但是没看到具体的实例,有点云里雾里。自己就整了附件所示的小程序做实验,实验倒是成功了(仿真功能实现,最多叫可能成功{:soso_e127:} ),但不知道在规范程度和流程上面以及实际运用是否合理。! @& X5 _5 H9 s. T! F
4 O3 p8 p! x, Q9 V6 y" n* F8 o 先介绍下附件小程序吧~~主程序是multi c file.c, 另两个.c程序delay.c负责延时,left.c负责将P0口接的LED从左至右流水三圈(很弱智的整发,但是感觉能够证明此次的设想)。现在有以下5个问题,希望知道的朋友能够帮忙解释下,先谢过!) K6 i1 \2 h$ {! ~. |; s6 s, m2 b/ d
0 X3 R6 m9 L( u' f# J4 a' W 1.附件的这种C架构是否正确合理?即一个包含MAIN()的.c主文件,实现主体功能,通过调用其余模块.c文件实现最终效果?- [( x* W6 E5 u4 X
2.真正的项目是否也是这样?如果不是,那么它是如何处理的呢?最好谁能够有个小的项目文件帖出来让大家参考以下就棒了,哈哈~~(一直LAYOUT,对这块确实很无知,木有办法呀)& l4 J. r0 n& d' T2 d. X
3.其中的两个模块.c文件是如何添加的?先在一个工程文件(XX.uv2)中分别建multi c file.c、delay.c 、left3.c,然后分别添加到source.Group,再编译?我这样整好像不行报错,后来调整后稀里糊涂的就编译成功了{:soso_e144:} 谁能详细讲解一下步骤呀;
/ {3 C5 @' M) H% L 4.在主函数MAIN中#include<XX.c>调用其它的c文件是否正确?是否合规范?虽说仿真验证OK,但考虑到程序过于简单,担心程序一旦大起来不规范的问题就会凸显出来;
6 S M- }* `& F3 ]$ r! V. @ 5.其中每个单独的.c程序似乎相对都很独立,当然像返回值之类的除外。例如此例中主文件main.c中已宏定义LED为P0,但在left3.c中还必须重新宏定义才能正常使用,包括其它uint、uchar同理,实际也是这样?0 x+ w/ @8 S" I9 @" ], c0 s) i
% m9 \5 L- C0 Y7 v5 W8 a5 P8 u 可能说得有些啰嗦,不大清楚,欢迎跟帖~~~ |
|