数码之家

 找回密码
 立即注册
搜索
查看: 3861|回复: 32

有偿单片机请教学习模块化编程

[复制链接]
发表于 2019-9-5 16:36:43 | 显示全部楼层 |阅读模式
有偿 请教 单片机 模块化编程,本人正在学习单片机 c语言编程,需要请一位前辈老师 来指导 单片机 c语言 模块化编程方面。有偿付费,哪位前辈高手有空的,愿意教徒弟的,可以留言。谢谢。
 楼主| 发表于 2019-9-5 16:38:33 | 显示全部楼层
真诚的,前辈朋友,多多指点。
回复 支持 反对

使用道具 举报

发表于 2019-9-5 16:55:54 | 显示全部楼层
有这功夫 不如去百度  这世界上有百度解决不了的问题么 如果有 那就google一下
回复 支持 2 反对 0

使用道具 举报

发表于 2019-9-5 19:22:44 | 显示全部楼层
有学习的心,只欠一本薄薄的书来带入门
回复 支持 反对

使用道具 举报

发表于 2019-9-5 20:11:03 | 显示全部楼层
拜师不靠谱,百度搜索最实际,搜不到就在论坛发帖问:lol:
回复 支持 1 反对 0

使用道具 举报

发表于 2019-9-5 22:13:02 | 显示全部楼层
楼主可以考虑先学习一下:

《面向百度编程》
回复 支持 反对

使用道具 举报

发表于 2019-9-5 22:46:32 | 显示全部楼层
如果楼主找到了师徒缘分与意向的就祝你有偿成功,我可以简单说说就当闲聊了,关于模块化的问题,对于我等菜鸟而言本无发言权的,我不知道这些是否就是模块化编程,但我就是这么弄的而且我只会这些,如果你觉得有用就试一下吧。下面就通过拆分一段程序来描述吧,完整程序如下:
#include <STC15W.h>
#include <intrins.h>
sbit ky=P3^3;
sbit jk=P3^2;
//====20毫秒延时函数======
void delay_20ms()
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 1;
j = 234;
k = 113;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//=======================
void main(void)
{
jk=1;
while(1)
{
if(ky==0)
delay_20ms();
if(ky==0)
jk=~jk;
}
}
这段代码如果分成模块时,可以由一个延时模块程序和一个主函数组成,模块程序很简单就是固定模式的代码中添加函数就可以了,首先建立两个文本:

打开一个复制粘贴3条代码,我始终不会拼写那些特征字、单词啥的所以我经常是复制粘贴,正经编程还是要拼写的不要学我。


而后给模块命名,标准格式见图片中的标注,而后写入模块中所有的函数名。

保存后关闭记事本,根据模块名称重新命名文件并将.txt改成.h,到此模块的h文件就弄完了。
打开另一个文本文件,开头的第一条代码就声明引用方才弄的.h文件,接下来的就是根据代码涉及到的库来引用相关的头文件,如果代码中涉及其他的模块文件也要一并将相关的.h文件声明出来,而后就是写入完整的函数。

将这个文本文件重新命名为***.c文件就ok了,见下图:

最后我们将这两个文件剪切-复制到使用这个模块的工程的文件夹里就可以调用了,其实这两个文件原本就应该在工程文件夹里建立的,如果是移植别人的也要粘贴到这里,另外,一般都是先写.c文件而后再写.h文件,我为了讲诉简单我就这么弄了。

下面我们重新建立这个工程演示一下用法:
在新建工程中声明引用这个delay.h文件

而后是在工程中添加各个.c文件

添加--Add

再添加--再Add
如果文件夹中的所有c文件都要添加就一并选中Add一下就可以了

添加成功后就可以在这里看到了

接下来编译一下发现了错误


将这个声明移到delay.c里就可以了,


方法很简单,双击左边窗口中的delay.c打开后添加即可

再次编译没有问题了。

以上就是关于C语言程序模块的那点事,不知道是不是你想要的东西,所有内容都是我自己懂的一点点东西边演示边截图边写的,如果有用就不算白费劲如果无用直接无视也没关系,如有不对请高手及时指出以免误导新手,如还有不懂请移步百度自行学习。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 9 反对 0

使用道具 举报

 楼主| 发表于 2019-9-6 08:00:25 | 显示全部楼层
慕名而来 发表于 2019-9-5 22:46
如果楼主找到了师徒缘分与意向的就祝你有偿成功,我可以简单说说就当闲聊了,关于模块化的问题,对于我等菜 ...

非常,感谢,你提供的资料,
正在努力学习中
如果能有高手,带领一下,会少走很多弯路
编程的思维框架会更加规范。
回复 支持 反对

使用道具 举报

发表于 2019-9-6 08:58:37 | 显示全部楼层
慕名而来 发表于 2019-9-5 22:46
如果楼主找到了师徒缘分与意向的就祝你有偿成功,我可以简单说说就当闲聊了,关于模块化的问题,对于我等菜 ...

学习学习,谢谢分享
回复 支持 反对

使用道具 举报

发表于 2019-9-6 09:13:57 | 显示全部楼层
上面说的模块化编程只是其中一部分,是将不同功能函数写成对应.C.H文件,深层次的是单一函数具有独立性,函数的调用并不依赖太多直接调用,而是做好接口函数,是函数具有独立性。
回复 支持 1 反对 0

使用道具 举报

发表于 2019-9-6 11:16:27 | 显示全部楼层
tetgrt 发表于 2019-9-6 08:00
非常,感谢,你提供的资料,
正在努力学习中
如果能有高手,带领一下,会少走很多弯路

有用就好,这两年年岁渐长打字、截图太费劲所以描述点儿事情也磨叽,我玩单片机时间不短了,但因为只是玩玩没有用途所以一直都是改程序没有也不会完整的写程序,如果学语言还是建议找教材正规学习,通过网络学习对于初学者或许有用但深入就比较难了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-6 11:59:23 | 显示全部楼层
慕名而来 发表于 2019-9-6 11:16
有用就好,这两年年岁渐长打字、截图太费劲所以描述点儿事情也磨叽,我玩单片机时间不短了,但因为只是玩 ...

通过网络学习对于初学者或许有用但深入就比较难了,
你说得非常对!
所以我一直想有一位 好老师的,指导。
回复 支持 反对

使用道具 举报

发表于 2019-9-12 16:22:10 | 显示全部楼层
ID是QQ,可以联系我
回复 支持 反对

使用道具 举报

发表于 2019-9-14 22:44:26 | 显示全部楼层
多看厂家例程,例程就是模块化的。
回复 支持 反对

使用道具 举报

发表于 2019-10-14 16:58:47 | 显示全部楼层
模块化编程比较简单,就是把每个功能写成一个单独的函数(模块),楼主应该是需要学习程序架构。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-10-14 21:24:47 | 显示全部楼层
yaosongjin 发表于 2019-10-14 16:58
模块化编程比较简单,就是把每个功能写成一个单独的函数(模块),楼主应该是需要学习程序架构。 ...

要学习程序架构
,楼上的朋友,能详细说一下吗
回复 支持 反对

使用道具 举报

发表于 2019-10-20 10:03:18 来自手机浏览器 | 显示全部楼层
百度可搜到很祥细的教程,依样画葫芦就行。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-17 14:34:03 | 显示全部楼层
现在学了 1年,stm32,感觉,还是有些进步的
回复 支持 反对

使用道具 举报

发表于 2020-9-17 16:44:48 | 显示全部楼层
慕名而来 发表于 2019-9-5 22:46
如果楼主找到了师徒缘分与意向的就祝你有偿成功,我可以简单说说就当闲聊了,关于模块化的问题,对于我等菜 ...

讲的很好,每个人都可以用路走,你的路走起来比较轻松。:praise:
回复 支持 反对

使用道具 举报

发表于 2020-9-17 21:10:08 | 显示全部楼层
十天学会51单片机
十天学会AVR单片机

强烈推荐
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-26 06:52 , Processed in 0.140400 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

快速回复 返回顶部 返回列表