运用模块方式写单片机程序

一、环境描述

  • Keil4 软件
  • Proteus8 仿真软件

二、步骤描述

首先在Keil里创建一个工程,在工程里建立三个文件,文件名分别是:“头文件.c”,“delay.c”,“delay.h”

分别在 头文件.c、delay.c、delay.h 写入相应内容:(注意不要将 delay.h 文件插入工程文件中)

 1 #include<reg51.h>
 2 #include"delay.h"
 3 
 4 main()
 5 {
 6     while(1)
 7     {
 8         P1 = 0x00;
 9         delay();
10         P1 = 0xff;
11         delay();
12     }
13 }
1 #include"delay.h"
2 delay()
3 {
4     int x;
5     for(x = 0;x < 250;x++)
6     ;
7 }
1 #ifndef _DELAY_H_
2 #define _DELAY_H_
3 delay();
4 
5 #endif

设置生成Hex文件的目录:

点击Rebuild all target files,生成效果如下:

在Proteus仿真软件中插入一个80C51的单片机芯片,然后将刚生成的Hex文件烧录进该芯片中:

仿真效果如下:

用模块写一个LED灯程序的整个步骤就介绍完毕了。

三、温馨提示

1,delay在程序中起延时的作用。

2,#include<delay.h>与#include"delay.h"的区别

#include<delay.h>存入的是单片机自带的头文件目录中

#include"delay.h"是自定义的函数,存放在自己新建的工作目录中

3,写这篇文章的主要目的并不是介绍如何写一个LED亮灭的单片机程序,而是通过这个小程序,介绍用模块写程序的步骤。

感受

曾经我在写C语言的时候,只会用一个头文件,外加一个主函数,那时候我就在想,如果以后做工程项目,难道就要像这样写一个很长很长的C语言文件吗?

这个问题一直困扰着我,不过今天算是解决了。通过这种方式可以将一个很大的工程项目分为几个子模块,然后对模块一个个进行测试,哪里有问题,就会有针对性的进行调试,提高了整体效率。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Vamei实验室

Python标准库——走马观花

Python有一套很有用的标准库(standard library)。标准库会随着Python解释器,一起安装在你的电脑中的。它是Python的一个组成部分。这...

22360
来自专栏QQ会员技术团队的专栏

经验之道:最有效的 iOS 内存泄漏检测

通过过去参与过的复杂大型的iOS项目开发经验,开发新的模块的时候,总结出了一套完整的iOS内存自测的方法,通过Instruments来逐步跟踪检测我们创建和主动...

7.1K00
来自专栏博客园迁移

工作中的一些经验小结

控制层   返回值统一 AOP 也方便前台 AOP 统计执行时间记录日志   参数不要出现Request, Response   返回码定义 不...

8020
来自专栏Bug生活2048

利用Python好好的整理你的附件

可以整理出一份excel用于导航(类似目录),可以通过excel来快速定位到所要的附件,如下图效果:

11530
来自专栏程序员的知识天地

JavaScript设计模式与实践--适配器模式

适配器模式主要用来解决两个已有接口之间不匹配的问题,它不考虑这些接口是怎样实现的,也不考虑它们将来可能会如何演化。适配器模式不需要改变已有的接口,就能够使它们协...

22710
来自专栏编程

Python教学——第七天

如果你前面都跟着文章做了,相信你已经自己在私下也了解了很多知识 如果你之前全都没有跟着做,也没有关系,至少你可以了解一个概念,对将来动手的时候会有一定的帮助 如...

25950
来自专栏我的博客

学会编程更要学会找错误

一直想写点我在编程学习中遇到的问题以及我是如何解决的,我是一个PHPer,而且对计算机有着深厚的兴趣。今天闲着没事,就顺手整理一点,随后会相继会做更多总结,敬请...

41270
来自专栏xiaoheike

es suggest did you mean资料

term suggester 根据提供的文档提供搜索关键词的建议,也就是关键词自动纠错。该链接介绍如何使用 term suggester 语法。term sug...

28330
来自专栏有趣的Python和你

Flask学习笔记之模板(三)

我们都知道html模板中,很多内容都是有重复的,譬如前面的head和后面的footer部分,这里的部分都是重复的,我们可以通过今天的学习的技术,减少代码的使用量...

8520
来自专栏更流畅、简洁的软件开发方式

【自然框架】 页面里的父类—— (补充)

      没想到下午发的《【自然框架】 页面里的父类——把共用的东东都交给父类,让子类专注于其他。 》启发了热烈讨论,还以为又是一大堆的口水回复呢。看到大家的...

22950

扫码关注云+社区

领取腾讯云代金券