前言

这是最近在完成课程设计时遇到的问题,希望对同学们能有所帮助

我们先看看一段代码

我们首先来看我做了标记的那一句话

p0=0x7c;

这句代码所标识的是在数码管显示字母b,那为什么是b呢?

这就不得不说起共阴极与共阳极的概念

这里为了方便我先放上共阴极与共阳极的两个数码管显示十六进制编码的对照表

共阳极对照表
数字 十六进制编码 数字 十六进制编码
0 0x03 8 0x01
1 0x9f 9 0x09
2 0x25 A 0x11
3 0x0d b

0x83

4 0x99 c 0xC6
5 0x49 d 0xA1
6 0x41 E 0x61
7 0x1f F 0x71
共阴极对照表
数字 十六进制编码 数字 十六进制编码
0 0x3f 8 0x7f
1 0x06 9 0x6f
2 0x5b A 0x77
3 0x4f b 0x7c
4 0x66 c 0x39
5 0x6d d 0x5e
6 0x7d E 0x79
7 0x07 F 0x71

数码管的对照我们可以用过这个图片来确定

一个数码管上一共可以理解为有八个部分

技术细节纠正:

  • 共阴极:所有 LED 的阴极连在一起接地(GND)。单片机引脚输出高电平 (1) 时,段点亮。

  • 共阳极:所有 LED 的阳极连在一起接电源(VCC)。单片机引脚输出低电平 (0) 时,段点亮。

举个例子:在共阴极数码管中输出小写字母 b

  1. 我们需要点亮 c, d, e, f, g 这五段。

  2. 因为是共阴极,所以对应引脚给高电平 (1)

  3. 按照 dp g f e d c b a 顺序排列:

    • 二进制:0 1 1 1 1 1 0 0

    • 十六进制:0x7C

同理,如果是共阳极,对应引脚给低电平 (0),其余给 1:

  • 二进制:1 0 0 0 0 0 1 1

  • 十六进制:0x83

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐