跳到主要内容

TM1650 四位数码管显示

一、实现功能

采用TM1650芯片驱动的四位共阴数码管模块进行数字显示,或字符显示。

pic1

二、接线图

layout

三、材料清单

名称推荐购买链接(或者您可以自己制作)模块/芯片硬件资料下载
TM1650四位数码管淘宝搜“TM1650四位共阴数码管模块"http://www.titanmec.com/
请在titanmec官网找TM1650相关资料

您可以根据上面提供的硬件资料里的原理图,自己裁剪定制一款数码管,但需要注意的是:

  • 数码管的个数可以少于或等于4个,但不要超过4个
  • 您需要保证显示的数字最多有效位数不超过数码管的位数

四、显示数字

注意1:由于数码管只有四位,所以数字的显示范围需要在-999~9999,超出的部分将只显示固定的极限值

注意2:如果要显示小数点,可以在LIB_FourSegLedsNumWrite函数中第二个参数指明小数个数。

--配置TM1650四位数码管模块的引脚DIO,CLK占用Core的D7,D6引脚,并开始工作
LIB_FourSegLedsConfig("D7","D6")
--开始大循环
while(GC(1) == true)
do
--显示 1234,亮度为最亮
LIB_FourSegLedsNumWrite(1234,"0", "L8")
LIB_DelayMs(1000)
--显示 123.4,亮度为最亮
LIB_FourSegLedsNumWrite(1234,"1", "L8")
LIB_DelayMs(1000)
--显示 1.234,亮度为最暗
LIB_FourSegLedsNumWrite(1234,"3", "L1")
LIB_DelayMs(1000)
--显示 -100,亮度为最亮
LIB_FourSegLedsNumWrite(-100,"0", "L8")
LIB_DelayMs(1000)
--显示 -66.2,亮度为最亮
LIB_FourSegLedsNumWrite(-662,"1", "L8")
LIB_DelayMs(1000)
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

五、显示字符

如果开发者需要显示定制化的字符,可以通过LIB_FourSegLedsRawWrite函数来实现让数码管显示字符,字符的定制请参考下图的数码管码表(不在下表中的字符,开发者请自行动脑联想):

pic3

由于本教程中默认使用的是共阴数码管,所以:0x00 = 不显示 ; 0x3F = "0" ; 0x06 = "1",0x86 = "1.",等等,

具体操作范例请看下面的代码:

--配置TM1650四位数码管模块的引脚DIO,CLK占用Core的D7,D6引脚,并开始工作
LIB_FourSegLedsConfig("D7","D6")
--开始大循环
while(GC(1) == true)
do
--显示1234,亮度为最亮
LIB_FourSegLedsRawWrite(0x06,0x5B,0x4F,0x66,"L8")
LIB_DelayMs(1000)
--显示ABCD,亮度为最暗
LIB_FourSegLedsRawWrite(0x77,0x7C,0x39,0x5E,"L1")
LIB_DelayMs(1000)
end