了解模块化编程

1.首先了解一下传统方式编程和模块化编程

传统方式编程:所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路 模块化编程:把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其它.c文件想使用其中的代码时,只需要#include "XXX.h"文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等

2. 模块化编程注意事项

.c文件:函数、变量的定义

.h文件:可被外部调用的函数、变量的声明

任何自定义的变量、函数在调用前必须有定义或声明(同一个.c)

使用到的自定义函数的.c文件必须添加到工程参与编译

使用到的.h文件必须要放在编译器可寻找到的地方(工程文件夹根目录、安装目录、自定义)

3.了解C语言的预编译

 代码部分

接下来写代码

这里需要用到上一章节的代码,将其复制过来,在此之前要新建一份文件夹,将我们需要进行模块化的部分单独分离出来,之后在主函数中再引用预编译即可

1.实现亮灯模块化

养成习惯:在新建工程后写出以下代码,这是函数主体

#include <REGX52.H>void main()
{while(1){}
}

2.延时部分

Delay.c文件复制即可

Delay.h文件按照格式写,如下

#ifndef _DELAY_H_//注意ifndef和define后面要有空格才不会有警告
#define _DELAY_H_void Delay(unsigned int xms);   #endif

3.在main.c中调用延时函数

#include "Delay.h"

while循环中如下

     P2_0=1;            //熄灭Delay(500);P2_0=0;         //点亮Delay(500);

4.同理实现数码管显示

添加Nixie.c.h文件

while循环如下

     Nixie(1,1); Nixie(2,2); Nixie(3,3); Nixie(4,4); Nixie(5,5); Nixie(6,6);

注:在写.h文件的声明时后面要加分号

51单片机 模块化编程相关推荐

  1. 51单片机模块化编程初识

    在51单片机C语言编程中,为了提高程序的可移植性,有必要用可移植的变量类型的别名进行编程. 把以下内容保存到编程软件的Include目录,并保存为了mytype.h文件. 如果你用的是Keil,这个目 ...

  2. 【ChatGPT】使用ChatGPT进行51单片机程序编程体验

    背景 最近ChatGPT大火,笔者尝试使用它进行了51单片机编程尝试.ChatGPT是一种由OpenAI训练的大型语言模型,具有强大的自然语言处理能力和生成代码的能力. 使用ChatGPT进行51单片 ...

  3. C语言极速学习开发——51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学习的精神之灯-下)

    系列文章目录 提示:本文章为系列文章,系列文章的所有文章的目录后期会时刻更新,喜欢的朋友请收藏好 <第一章 C语言极速学习开发--51单片机入门编程之使用KeilC51进行代码编译(点亮你心中学 ...

  4. 51单片机怎么编程,有什么好的课程?

    虽然现在stm32单片机很火,很多招聘的公司都要求必须要会stm32,但是我依然建议新手从51开始学起. 这也是当初我自学的路径,51相对简单,新手可以在短时间内学习见到效果,比如说做个流水灯,让数码 ...

  5. c51矩形波输出汇编语言,51单片机汇编语言编程:用定时器控制输出矩形波

    80C51单片机的时钟频率为12MHz,利用定时器T1和P1.0输出矩形脉冲. 波形只画出了2段:一段为100us 另一段为50us. 要完全的.完整的.详细的编写此程序的过程!谢谢 -------- ...

  6. c语言编程单片机中的sbit,用sbit定义可位寻址的特殊功能寄存器时的地址转换-51单片机C编程...

    80C51单片机C编程时中,用sbit定义可位寻址的特殊功能寄存器的位变量(感觉说是常量更确切)时,编译器会进行处理,把sbit 后面给的地址值 转换成 相应的可进行位寻址的特殊功能寄存器 bit位 ...

  7. 大一电赛:51单片机(状态机编程)——控制外部开关(继电器)达到自定义输出波

    题目来源于某双流一大学第八届"电协杯"电子设计(校赛) 大一C组:自定义信号发生器 队伍名称:摆烂三人组 下文有对相应软件和硬件的实现进行介绍 复盘电赛(软件部分) 读题方面 定时 ...

  8. 如何用c语言对51单片机进行编程,C语言在51单片机编程中的应用技巧

    随着单片机硬件性能的提高,编写应用程序更着重于程序本身的效率. Franklin或KEII.C51交叉编译器是专为51系列单片机设计的一种高效的C语言编译器,用其开发的应用程序易于维护,可移植性好,是 ...

  9. c51单片机时钟c语言程序设计,51单片机C编程(六、定时器时钟显示时分秒)

    //编程:jumpmysoul #include #define ulong unsigned long char tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x8 ...

  10. c51按键控制灯亮汇编语言,51单片机汇编语言编程进行按键控制

    硬件电路: P1.0 ~ P1.5 外接 6 个 LED,分别称为 D1 ~ D6,低电平发光. P0.0 ~ P0.3 外接 4 个 按键,分别称为 K1 ~ K4. P3.2 ~ P3.3 外接  ...

最新文章

  1. android otp接口,Android-高通平台调试camera的OTP参数
  2. 人造神经元成功操纵植物,让捕蝇草强行闭合,脑机接口新思路打开丨Nature子刊...
  3. 给终端装上宝可梦主题!小姐姐路过都爱上了!
  4. node开启子线程_多进程 amp; Node.js web 实现
  5. PHP程序中时间戳,php 时间戳常用代码
  6. LwIP之netbuf
  7. zuul集成cloud_如何在具有持续集成的Google Cloud Run上运行Laravel-分步指南
  8. 同一路由带参刷新,以及params和query两种方式传参的异同
  9. Linux各个文件夹介绍
  10. StringBuilder使用方法
  11. 发布PHP项目_Jenkins发布PHP项目之一自动化部署
  12. 基于jAVAWeb停车场管理系统
  13. c语言中void delay0.5(),c语言 延时函数
  14. 搜狗拼音输入法居然输入不了半角的人民币符号¥¥¥¥¥¥¥¥!!!
  15. 深入理解 http 反向代理(nginx)
  16. oracle自动建立分区interval,使用Oracle 11g创建Interval分区表(转)
  17. js 判断对象数组是否存在某一个对象(全)
  18. 【射影几何01】 射影几何介绍
  19. C语言趣味问题系列【2】自守数
  20. 数据结构图,图存储结构详解

热门文章

  1. 结构建模设计——Solidworks 2021SP5稳定版软件安装详细教程(安装踩坑记录全流程总结)
  2. 手机型号大全_2000-2500元智能手机最全导购推荐(学生党手机必看)-2020年12月更新...
  3. wps 函数android,安卓版WPS教程:用ABS函数计算营收差额
  4. java jdk 文档下载_Java帮助文档 JDK全系列 官方中英下载地址
  5. L298电机驱动原理图+PCB
  6. 利用C++语法进行特殊类设计
  7. 【C++模块实现】| 【07】对于互斥、自旋锁、条件变量、信号量简介及封装
  8. StackPanel与Grid交叉使用
  9. CRM客户关系管理系统HR人事OA系统APP源码
  10. php采集虎牙,全网首发PHP虎牙直播解析接口源码