51单片机——数码管控制

1、数码管介绍

LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成"8"字型的器件。

2、数码管驱动方式

单片机直接扫描:硬件设备简单,但会耗费大量的单片机CPU时间

专用驱动芯片:内部自带显存、扫描电路,单片机只需告诉它显示什么即可

3、单个数码管引脚定义

每个数码管有10根引脚,每个数码管被分为A-G,共7段,和一个DP。剩余两个引脚作为公用的正极或负极接口。

共负极

共正极

4、多个数码管引脚定义

所下图所示,上面的图是共负极,下面的图是共正极。

例如共负极的图想要显示1,把12、9、8引脚赋值为1,把6引脚赋值为0,此时就可以实现最后一个数码管点亮效果,其他数码管保持熄灭。想要DIG4显示为1,代表BC段点亮,此时7、4需要输出高电平,其他段码为低电平。

5、数码管原理图

该数码管中的74HC245主要起到缓冲信号的作用,使信号准确传输

共负极端外接138译码器

该138译码器的主要功能是把LED的8个引脚用三个引脚代替。

Y0、Y1头上挂着上划线表示输出负极为有效

6、静态数码管显示

使LED6显示数字6

1.使LED6引脚输出为低电平,参照318译码器,LED6接在Y5引脚上,P2的三个引脚需要输出101才能使Y5有效,此时只有LED6会亮

2.显示数字6,分析6的组成,需要acdefg段码,这些段码经过缓冲器74hc245对应到P0寄存器,P0寄存器的0-7对应缓冲器的B0-B7,也就是说除了P01为0,P07(dp)为0,其他全部为1。二进制表示为0111 1101,对应16进制为0x7D

封装成函数的静态数码管显示

7、动态数码管显示

数组

数组:把相同类型的一系列数据统一编制到某一个组别中,可以通过数组名+索引号简单快捷的操作大量数据。

int x3; //定义一组变量(3个)

int x\[\]={1,2,3}; //定义一组变量并初始化

x0 //引用数组的第0个变量

x1 //引用数组的第1个变量

x2 //引用数组的第2个变量 引用

x3时,数组越界,读出的数值不确定,应避免这种操作

子函数

子函数:将完成某一种功能的程序代码单独抽取出来形成一个模块,在其它函数中可随时调用此模块,以达到代码的复用和优化程序结构的目的。

void Function(unsigned char x, y)

{

}

返回值 函数名(形参)

{

函数体

}

数码管段码表

相关推荐
hongmai66688822 分钟前
ESP32-C61-WROOM-1-N8R2:Wi-Fi 6与RISC-V融合的中坚力量
人工智能·单片机·嵌入式硬件·物联网·智能家居·risc-v
炸膛坦客9 小时前
单片机/C/C++八股:(二十六)IIC 专题(I²C)---- 上集
c语言·c++·单片机
华清远见IT开放实验室14 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
AI的探索之旅16 小时前
AI辅助原理图评审:电源去耦、BOOT引脚、VCAP——19项逐一核查,遗漏?不存在的
人工智能·vscode·嵌入式硬件
茯苓gao16 小时前
嵌入式开发笔记:EtherCAT协议从硬件到软件完整配置指南——从零搭建一套EtherCAT通信系统
笔记·嵌入式硬件·学习
GeekArch17 小时前
第24讲:Vibe模式代码风格控制——适配Keil/STM32工程规范
人工智能·stm32·单片机·嵌入式硬件·mcu·决策树·ai编程
Freedom_my18 小时前
STM32项目3
stm32·单片机·嵌入式硬件
国科安芯18 小时前
星间光链路:AS32S601型抗辐射MCU在空间激光通信终端控制中的技术实现
服务器·网络·单片机·嵌入式硬件·物联网·安全·信息与通信
小李不困还能学20 小时前
基于 51 单片机的8 路抢答器设计教程
单片机·嵌入式硬件·mongodb·抢答器
CedarQR20 小时前
万字长文:从零在 RK3588 上部署 PaddleSpeech 中文 TTS 全流程(FastSpeech2 + HiFiGAN)
开发语言·c++·嵌入式硬件·ubuntu·json