shineblink数码管显示

267 阅读1分钟

数码管和矩阵键盘

一、实现功能

本篇章实现了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官网链接