使用TMS320F28335控制四位共阳数码管

您所在的位置:网站首页 四位共阳数码管显示1到9 使用TMS320F28335控制四位共阳数码管

使用TMS320F28335控制四位共阳数码管

2024-07-07 14:48| 来源: 网络整理| 查看: 265

目录 1 要实现的功能 2 数码管的原理 2.1 数码管发光显示原理 2.2 数码管控制原理 3 功能实现过程 3.1 GPIO配置 3.2 数字显示 3.3 显示控制 3.4 其他代码 4 调试修改 5 最终效果 6 后语

最近买了一些电子元件,打算配合手头上的F28335开发板一起玩一玩。其中有一个四位共阳的数码管,虽然比较简单,但有些细节还是需要注意,所以写一篇东西来记录一下这个过程。

1 要实现的功能

直接利用F28335的GPIO口来驱动控制数码管,将输入的数字显示出来。

2 数码管的原理 2.1 数码管发光显示原理

所用数码管的结构尺寸及电路原理图 如图所示为本次所用的数码管的结构尺寸以及电路原理图。由右上角的示意图可以看到,一个数字有8个发光位置,分别是组成数字的A到G段以及组成小数点的DP段,令相应的段发光就可以组成各个数字。而段的发光是通过发光二极管实现的,由下方的这个电路原理图可以看到,每一个数位都有各自的8段发光二极管,而每个数位的8段发光二极管的阳极都是连在一块的,所以这种叫共阳极数码管,而如果二极管的方向调换,各段二极管的阴极连在一块的就叫共阴极数码管。因此,由这个电路图我们可以知道,举个例子,如果我们把12脚接上高电平,而将4/7脚接上低电平,那么最左边一位数字的B/C段就会被点亮,就可以在最左边一位上显示出“1”。

2.2 数码管控制原理

开始之前,首先可以看到,四位数码管一共有12个管脚,其中6/8/9/12脚分别控制着四位数字其中的一位,而剩余的8个管脚分别控制着8段发光二极管的其中一段,为了方便描述,将6/8/9/12脚称为位管脚,而将其余管脚称为段管脚。 在上一部分中,我们搞清楚了怎么让数码管显示数字,但是仔细观察电路原理图可以发现,虽然每个数位都有自己的8段发光二极管,但是各个数位相同的段对应的发光二极管,比如每个数字的A段,它们的阴极是连在一块的。这就意味着,我们不能同时控制2个或以上的数位,因为如果我们同时给2个或以上的位管脚接上高电平,那么这些数位将显示一样的数字。 为了解决这个问题,我们可以采用动态扫描的方式,也就是快速轮流点亮各个数位,当轮换速度超过一定程度时,人眼就无法分辨,就会认为各个数位是同时点亮的。

3 功能实现过程 3.1 GPIO配置

由于四位数码管共有12个管脚,而手头上又没有其他器件,所以这里打算直接用F28335的12个GPIO来驱动控制数码管。 开发板外扩总线接口示意图 根据数据手册,选取了JP1接口上的1-6脚以及9-14脚作为输出管脚(如果不是接口上针孔之间间隔太密,我也想选1-12脚)。管脚初始化代码如下:

void Init_DT_Gpio() { EALLOW; // configure the corresponding pins to be GPIO GpioCtrlRegs.GPBMUX1.bit.GPIO40 = 0x00; GpioCtrlRegs.GPBMUX1.bit.GPIO41 = 0x00; GpioCtrlRegs.GPBMUX1.bit.GPIO42 = 0x00; GpioCtrlRegs.GPBMUX1.bit.GPIO43 = 0x00; GpioCtrlRegs.GPBMUX1.bit.GPIO44 = 0x00; GpioCtrlRegs.GPBMUX1.bit.GPIO45 = 0x00; GpioCtrlRegs.GPCMUX2.bit.GPIO80 = 0x00; GpioCtrlRegs.GPCMUX2.bit.GPIO81 = 0x00; GpioCtrlRegs.GPCMUX2.bit.GPIO82 = 0x00; GpioCtrlRegs.GPCMUX2.bit.GPIO83 = 0x00; GpioCtrlRegs.GPCMUX2.bit.GPIO84 = 0x00; GpioCtrlRegs.GPCMUX2.bit.GPIO85 = 0x00; // configure the corresponding pins as output pins GpioCtrlRegs.GPBDIR.bit.GPIO40 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO41 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO42 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO43 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO44 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO45 = 1; GpioCtrlRegs.GPCDIR.bit.GPIO80


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3