数码管和矩阵键盘
一、实现功能
本篇章实现了Core外接一个包含8位数码管和16个按键的模块,每当按下不同的按键时,数码管上会有不同的显示。
该模块的主控芯片型号是TM1638,一款低成本的数码管和键盘专用驱动芯片,非常适用于IO口引脚数量偏少的芯片。
二、接线图
三、完整代码
--配置数码管矩阵键盘模块的引脚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
四、代码运行结果
下图是当按下按键S1时,数码管上显示的0.001效果
更多详情请参看 shineblink.com官网链接