当前位置: 首页 > news >正文

STC89C52单片机学习——第13节:[5-1]模块化编程

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做!

本文写于:2025.03.13

51单片机学习——第13节:[5-1]模块化编程

  • 前言
  • 开发板说明
  • 引用
  • 解答和科普
  • 一、模块化编程
  • 二、模块化编程上节课例子
  • 问题
  • 总结

前言

   本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始51单片机的学习之路。
   欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习51单片机了,就跟着B站上的江协科技开始学习了.
   在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!
   另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答!

开发板说明

   本人采用的是慧净的开发板,因为这个板子是我N年前就买的板子,索性就拿来用了。不再另外购买视频中的普中开发板了。
   原理图如下
在这里插入图片描述
视频中的都用这个开发板来实现,如果有资源就利用起来。
仔细看了看:开发板的晶振为:11.0592Mhz;12Mhz晶振是用来给CH340G芯片外置晶振;

下图是实物图
在这里插入图片描述

引用

51单片机入门教程-2020版 程序全程纯手打 从零开始入门
还参考了下图中的书籍:
手把手教你学51单片机(C语言版)
在这里插入图片描述

解答和科普

一、模块化编程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模块后的最后放在main一快,如果不是则需要把创建的文件的路径在上图包括中,这样才能找到自己编写的文件。
在这里插入图片描述
如果定义了AAA才参与运算;
在这里插入图片描述
在这里插入图片描述
防止重复定义

二、模块化编程上节课例子

1、添加C文件和对应的H文件
在这里插入图片描述
在这里插入图片描述
接下俩写h文件和c文件,C文件也要写用到的头文件,如果有用到其他的内容,也要加上头文件。H文件有固定的防止重复定义,且把需要外部调用的变量和函数进行声明。
在这里插入图片描述
C文件
在这里插入图片描述
这个部分是用来简化操作,因为一直写固定的模版,就可以使用这个功能,不需要每次都输写一遍了。

在这里插入图片描述
H文件
接下来是Nixie的文件
在这里插入图片描述
Nixie的C文件:中因为用到了P2、P0口,所以要加入52的头文件,用<>表示自带的,用到了Delay函数,所以要加入"main文件路径下的h文件"。
在这里插入图片描述
H文件
H文件函数和变量声明后,不要忘记加;,因为都是复制过来的容易忘记。
都模块化完成后,不要忘记在main.c中把声明一下h文件。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验现象:
在这里插入图片描述

问题

1、就是在对点阵关闭的情况下,我刚开始写了dianzhen=0;在Nixie文件中,发现不得行,我突然感觉好麻烦,当然我可以再写一个文件放入进去。
在这里插入图片描述
在这里插入图片描述
这样写是不是也是有点笨的,希望大家能告诉我更好的办法。

总结

本节课主要学习了模块换编程的思路,因为文件多,功能不同,可以把程序分成模块,每个模块完成各自的功能,最后通过H文件,进行替换和调用。
1、创建C和H文件,并编写C文件和H 文件的格式。
2、注意C文件是否用到其他文件中的内容,要在头文件加入对应的H文件,H文件需要注意对C文件的函数和变量进行声明,变成外部可调用。
3、最后要在main.c中添加用到的H文件,进行替换后进行主函数调用。注意变量的使用。我这还不是很理解。

相关文章:

  • SSL 原理及实验
  • Xxl-Job学习笔记
  • linux root丢失修改密
  • Python XML 解析
  • STC89C52单片机学习——第11节:[4-1]静态数码管显示
  • el-table 插槽踩过的坑 :slot-scope 和#default的区别
  • 【C#学习】协程等待
  • UI基础概念+Canvas相关知识
  • 24 浅谈模块
  • 用户数据报协议(User Datagram Protocol,UDP)
  • 学习MDA规范_9.CORBA(公共对象请求代理架构)‌
  • socket套接字
  • 【机密计算顶会解读】09:vSGX——在AMD SEV处理器上虚拟化SGX
  • 《MySQL数据库从零搭建到高效管理|表的增删改查(基础)》
  • Linux 安装 Oh My Zsh
  • 机器学习中的激活函数是什么起什么作用
  • 卷积神经网络(CNN)之 EfficientNet
  • C#-使用VisualStudio编译C#工程
  • Spring Boot与Apache Ignite集成:构建高性能分布式缓存和计算平台
  • 【eNSP基础使用教程-1】
  • 台行政机构网站删除“汉人”改为“其余人口”,国台办回应
  • 首个偏头痛急性治疗药物可缓解前期症状
  • 美国4月CPI同比上涨2.3%低于预期,为2021年2月来最小涨幅
  • 国务院关税税则委员会关于调整对原产于美国的进口商品加征关税措施的公告
  • 上海杨浦:鼓励龙头企业与高校共建创新联合体,最高支持200万元
  • 一海南救护车在西藏无任务拉警笛开道,墨脱警方:已处罚教育