共阴数码管段码-共阳数码管段码

本文介绍了单片机系统中常用的LED显示器类型及其编码方法,包括共阴与共阳两种接法的区别,并提供了LED数码管段码查询工具及生成代码的方法。

单片机系统中常用的显示器有:发光二极管LED(Light Emitting Diode)显示器、液晶LCD(Liquid Crystal Display)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示(7段、米字型等)和点阵显示(5×8、8×8点阵等)。

使用LED显示器时,要注意区分共阳共阴两种不同的接法。

如图所示,共阴数码管是将 LED 的阴极公共连接在一起,共阳数码管是将 LED 的阳极公共连接在一起。

为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段,因此,为LED显示器提供的编码正好是一个字节。

共阴数码管段码值

利用“LED数码管段码查询工具”可以查询到共阴极数码管的段码值,如图所示。

在图中,LED接线一般采用“P0.0口接A引脚,P0.1口接B引脚……P0.6口接G引脚,P0.7口接DP引脚”的方式,并选择共阴极就可以查出共阴极数码管的段码值,与下面的对应。

 共阴数码管编码表: 0x3f   0x06   0x5b   0x4f  0x66  0x6d   0      1     2      3     4     5 0x7d  0x07   0x7f    0x6f  0x77  0x7c    6    7      8       9     A     B 0x39  0x5e   0x79    0x71    C    D       E      F      

接着,点击“生成汇编代码”和“生成C语言代码”就可以生成对应的代码,如图所示是共阴极数码管段码值生成C语言代码的结果,并可将生成的代码复制。

共阳数码管段码值

利用“LED数码管段码查询工具”可以查询到共阳极数码管的段码值,如图所示。

在图中,LED接线一般采用“P0.0口接A引脚,P0.1口接B引脚……P0.6口接G引脚,P0.7口接DP引脚”的方式,并选择共阳极就可以查出共阳极数码管的段码值,与下面的对应。

共阳数码管编码表: 0xc0  0xf9   0xa4    0xb0  0x99   0x92  0      1     2       3     4     5 0x82  0xf8   0x80    0x90  0x88   0x83   6    7      8       9     A     B 0xc6  0xa1   0x86    0x8e   C    D       E      F  

最后,点击“生成汇编代码”和“生成C语言代码”就可以生成对应的代码,如图所示是共阳极数码管段码值生成C语言代码的结果,并可将生成的代码复制。

“LED数码管段码查询工具”百度云下载链接:

链接:https://pan.baidu.com/s/176ksvdKKHX3wb-6xOZ8mBg

提取码:7w1w

### 数码管编码表及其小数点显示 对于数码管,其工作原理是当某个段选线被拉低时,相应的LED段会点亮。因此,在设计编码表时,每一位代表一个特定的段(a-g),而这些位的状态决定了哪些段会被激活以形成所需字符。 针对带有小数点的小型数码管,可以采用如下编方案: | 符号 | a | b | c | d | e | f | g | dp | |------|----|----|----|----|----|----|----|----| | 0 | L | L | L | L | L | H | L | X | | 1 | H | L | H | H | H | H | H | X | | ... | ...|... |... |... |... |... |... |... | | F | L | L | H | L | L | L | L | X | 其中,“dp”表示小数点位置。“X”意味着该位可高电平也可低电平,具体取决于是否要使能小数点[^1]。 为了在数码管上正确地显示出带小数点的数据,可以在原有基础上加上一个小数点控制信号。例如,如果原始数据为`{0xC0, 0xF9, ...,}`对应于无小数点情况下的‘0’至其他字符,则可以通过按位与操作符(`&`)将所有可能影响正常显示的最高有效位清除掉,并附加额外一位用于指示小数点状态。即对于需要开启小数点的情况,应使用如下的十六进制数值序列[^5]: ```cpp const uint8_t code_with_dp[] = { (0xC0 & 0x7F), // '0' (0xF9 & 0x7F), ... }; ``` 这里使用的掩`0x7F`确保了即使原值中含有高位设置为'1'也不会干扰实际显示效果,同时允许自由设定最低位作为小数点标志。 #### 实现细节 考虑到硬件层面的操作,通常会在程序中定义两个数组:一个是标准字符集对应的字模库;另一个则是相同字符但在最后加入了小数点版本。这样做的好处是可以简化逻辑判断过程并提高代可读性和维护性。 ```cpp // 不含小数点的标准字符映射 uint8_t seg_code_without_dp[] = { /* 数据省略 */ }; // 含有小数点的特殊字符映射 uint8_t seg_code_with_dp[] = { /* 对应上面每个元素做相应修改后的结果*/ }; ``` 通过这种方式,可以根据需求灵活切换不同模式下数码管的表现形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值