本篇章实现了ubeeto开发板外接一个包含8位数码管和16个按键的模块,每当按下不同的按键时,数码管上会有不同的显示。
该模块的主控芯片型号是TM1638,一款低成本的数码管和键盘专用驱动芯片,非常适用于IO口引脚数量偏少的芯片。
名称 | 推荐购买链接(或者您可以自己制作) | 模块/芯片硬件资料下载 |
---|---|---|
8位数码管&16按键模块 | 8位数码管&16按键模块 | 下载地址(提取码:4mp3) |
声明:这里推荐的商家和优比兔开发板没有任何合作关系,您完全可以去其他商家或渠道购买,只要功能相似即可。
您可以根据上面提供的硬件资料里的原理图,自己裁剪定制一款数码管和按键模块,但需要注意的是:
您可以根据上面提供的硬件资料里的原理图,自己裁剪定制一款数码管和按键模块,但需要注意的是:
1、数码管的个数可以少于或等于8个,但不要超过8个;
2、您需要保证显示的数字最多有效位数不超过数码管的位数;
3、按键的个数可以少于或等于16个,但不要超过16个。
--配置数码管矩阵键盘模块的引脚DIO,CLK,STB分别占用Core的D7,D6,D5引脚,并开始工作 LIB_SegLedsAndMatrixKeysConfig("D7","D6","D5") --开始大循环 while(GC(1) == true) do --查询矩阵键盘是否有按键按下 keypress_flag,key_pos = LIB_MatrixKeysRead() if keypress_flag == 1 then --如果按键S1按下 if key_pos == 1 then --数码管显示0.001,"3"表示有3个小数 LIB_SegLedsWrite(1, "3", "LEVEL1") --如果按键S2按下 elseif key_pos == 2 then --数码管显示-0.002,"3"表示有3个小数 LIB_SegLedsWrite(-2, "3", "LEVEL3") else --剩下的14个按键,当每个按键按下时,数码管会显示每个按键的整数值(3-16), --并且显示的亮度也是最亮的LEVEL8等级 LIB_SegLedsWrite(key_pos, "0", "LEVEL8") end end end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在API文档中通过Ctrl+F查询。
下图是当按下按键S1时,数码管上显示的0.001效果
简单、快捷、高效、强大的物联网开发板
© 2022. All Rights Reserved. 粤ICP备2021058065号