51单片机学习笔记——点亮数码管、模块化编程

  • 工作原理图

138译码器

G1、G2A、G2B为138译码器的使能端

P22、P23、P24为输入口控制Y0-Y7的动作,以二进制的算法

具体如下:

P22 P23 P24

0 0 0 Y0为1其余为0

0 0 1 Y1为1其余为0

0 1 0 Y2为1其余为0

0 1 1 Y3为1其余为0

那么138译码器有什么用呢?138译码器可以用来控制数码管显示的位数

如当Y0为1时第一个数码管亮,因此可以节省IO口.

数码管模块

74HC245为双向数据缓冲器,主要作用就是数据缓冲。

左边的P口就是用来给数码管传送段码控制亮的数码管内容的。

练习:让指定的位置输出指定的数字

P0=Numall[Num]的意思是时P0口等于Numall数组里第[Num]位的值

然后在主程序的直接调用xuan函数,函数的值(数码管的位置,要显示的数);

数码管要显示的值我们已经用数组全部列出了

动态数码管显示

如果想要多个数码管同时显示应该怎么做?

我们知道程序是在不断刷新的,当刷新的速度够快达到肉眼不可见的速度时,即可一同显示

关于消隐:由于上一位的数据提前来到下一位所以造成阴影,导致数码管显示不清晰,需要加一段延时即可。

模块化编程

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

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

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

任何自定义的变量、函数在调用前必须有定义或声明(同一个.c)使用到的自定义函数的.c文件必须添加到工程参与编译使用到的.h文件必须要放在编译器可寻找到的地方(工程文件夹根目录、安装目录、自定义)

利用模块化的思路来做上面的程序

Main

Nixie


相关推荐
齐生12 天前
iOS 知识点 - 渲染机制、动画、卡顿小集合
笔记
用户962377954482 天前
VulnHub DC-1 靶机渗透测试笔记
笔记·测试
齐生13 天前
iOS 知识点 - IAP 是怎样的?
笔记
tingshuo29173 天前
D006 【模板】并查集
笔记
tingshuo29174 天前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
西岸行者10 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
starlaky10 天前
Django入门笔记
笔记·django
勇气要爆发10 天前
吴恩达《LangChain LLM 应用开发精读笔记》1-Introduction_介绍
笔记·langchain·吴恩达
B站计算机毕业设计超人10 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长10 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计