CN105227187B - 电器led驱动与按键读取电路及控制方法 - Google Patents
电器led驱动与按键读取电路及控制方法 Download PDFInfo
- Publication number
- CN105227187B CN105227187B CN201510585775.4A CN201510585775A CN105227187B CN 105227187 B CN105227187 B CN 105227187B CN 201510585775 A CN201510585775 A CN 201510585775A CN 105227187 B CN105227187 B CN 105227187B
- Authority
- CN
- China
- Prior art keywords
- row
- led
- seg
- com
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Abstract
本发明涉及一种电器LED驱动与按键读取电路及控制方法,其中电器LED驱动与按键读取电路,其特征在于:包括M个开关按键,X*Y颗LED发光管,M、X、Y均为自然数,且M小于等于X;M+X个电阻,以及MCU控制芯片,第一开关按键的第一端均接地,第一开关按键的第二端连接第一电阻后引出第一个SEG连接端;第二开关按键的第一端均接地,第二开关按键的第二端连接第二电阻后引出第二个SEG连接端;……第M开关按键的第一端均接地,第M开关按键的第二端连接第M电阻后引出第M个SEG连接端;而X*Y颗LED发光管排列成X行Y列的阵列。单元器件使用较少,而且MCU主控芯片的资源也用得少,综合性价比较高。
Description
技术领域
本发明涉及一种电器LED驱动与按键读取电路及控制方法。
背景技术
电器产品中,会经常使用LED发光灯和开关按键,初期,人们使用直拉式来驱动LED,同时也是用直拉式来读取开关按键,参见图1所示;这种方式使用MCU主控芯片的IO口资源很多,而IO口越多的MCU主控芯片就越贵;在LED较多,按键也较多的情况下使用大量的MCU资源,明显不合适了,于是人们做了改进,用阵列式的扫描显示方式,并结合按键的读取,电路图参见附图2所示,这种方式大大节约了MCU资源,节约了成本。
发明内容
本发明所要解决的第一个技术问题是针对上述现有技术提供一种能结构更为合理、使用MCU主控芯片资源更少的电器LED驱动与按键读取电路。
本发明所要解决的第二个技术问题是提供一种具有上述结构的电器LED驱动与按键读取电路的控制方法。
本发明解决上述第一技术问题所采用的技术方案为:一种电器LED驱动与按键读取电路,其特征在于:包括M个开关按键,X*Y颗LED发光管,M、X、Y均为自然数,且M小于等于X;M+X个电阻,以及MCU控制芯片,其中:
第一开关按键的第一端均接地,第一开关按键的第二端连接第一电阻后引出第一个SEG连接端;第二开关按键的第一端均接地,第二开关按键的第二端连接第二电阻后引出第二个SEG连接端;……第M开关按键的第一端均接地,第M开关按键的第二端连接第M电阻后引出第M个SEG连接端;
而X*Y颗LED发光管排列成X行Y列的阵列;如果Y为偶数,将第一列LED发光管的负极和第二列LED发光管的正极连接在一起引出第一个COM连接端;将第三列LED发光管的负极和第四列LED发光管的正极连接在一起引出第二个COM连接端;……将第Y-1列LED发光管的负极和第Y列LED发光管的正极连接在一起引出第Y/2个COM连接端;如果Y为奇数,将第一列LED发光管的负极和第二列LED发光管的正极连接在一起引出第一个COM连接端;将第三列LED发光管的负极和第四列LED发光管的正极连接在一起引出第二个COM连接端;……将第Y-2列LED发光管的负极和第Y-1列LED发光管的正极连接在一起引出第(Y-1)/2个COM连接端,将第Y列LED发光管的负极连接在一起引出第(Y+1)/2个COM连接端;
Y为偶数时,第一行第一列LED发光管的正极、第一行第二列LED发光管的负极、第一行第三列LED发光管的正极、第一行第四列LED发光管的负极、……第一行第Y-1列LED发光管的正极、第一行第Y列LED发光管的负极连接在一起后连接第M+1电阻后与第一个SEG连接端连接;Y为奇数时,第一行第一列LED发光管的正极、第一行第二列LED发光管的负极、第一行第三列LED发光管的正极、第一行第四列LED发光管的负极、……第一行第Y-2列LED发光管的正极、第一行第Y-1列LED发光管的负极、第一行第Y列LED发光管的正极连接在一起后连接第M+1电阻后与第一个SEG连接端连接;
Y为偶数时,第二行第一列LED发光管的正极、第二行第二列LED发光管的负极、第二行第三列LED发光管的正极、第二行第四列LED发光管的负极、……第二行第Y-1列LED发光管的正极、第二行第Y列LED发光管的负极连接在一起后连接第M+2电阻后与第二个SEG连接端连接;Y为奇数时,第二行第一列LED发光管的正极、第二行第二列LED发光管的负极、第二行第三列LED发光管的正极、第二行第四列LED发光管的负极、……第二行第Y-2列LED发光管的正极、第二行第Y-1列LED发光管的负极、第二行第Y列LED发光管的正极连接在一起后连接第M+2电阻后与第二个SEG连接端连接;
……
Y为偶数时,第X行第一列LED发光管的正极、第X行第二列LED发光管的负极、第X行第三列LED发光管的正极、第X行第四列LED发光管的负极、……第X行第Y-1列LED发光管的正极、第X行第Y列LED发光管的负极连接在一起后连接第M+X电阻后与第X个SEG连接端连接;Y为奇数时,第X行第一列LED发光管的正极、第X行第二列LED发光管的负极、第X行第三列LED发光管的正极、第X行第四列LED发光管的负极、……第X行第Y-2列LED发光管的正极、第X行第Y-1列LED发光管的负极、第X行第Y列LED发光管的正极连接在一起后连接第M+X电阻后与第X个SEG连接端连接;
X个SEG连接端分别与MCU控制芯片的X个IO引脚连接;
[(Y+1)/2]个COM连接端分别与MCU控制芯片的[(Y+1)/2]个IO引脚连接,[]为向上取整符号。
作为其中的一种方案,当所述M=7,所述X=8,所述Y=4。
本发明解决上述第二个技术问题采用的技术方案为:上述电器LED驱动与按键读取电路的控制方法,其特征在于:MCU控制芯片采用的中断间隔时间为2ms,MCU控制芯片对7个开关按键的读取和对32颗LED发光管的驱动在上述中断时间内中完成,MCU控制芯片在上述中断时间内的操作流程包括:
步骤(1)、MCU控制芯片启动2ms中断后,立即将与8个SEG连接端连接的8个IO引脚连接及与2个COM连接端连接的2个IO引脚连接转成高阻态;
步骤(2)、设置事件参数led_com,令led_com++;
步骤(3)、判断led_com是否大于8,若是,令led_com=0,然后执行步骤(4),若否,直接转步骤(4);
步骤(4)、判断led_com的值,然后根据不同led_com值,执行不同操作:
名称解释:有效的SEG口输出——当COM口开启低电平的情况下,如果SEG口为高电平时,能点亮连接在相应SEG口与COM口之间的LED灯,而且需要点亮这颗LED时,称为有效的SEG口输出高电平,如果不需要点亮这颗LED灯时,该SEG口为无效状态,即维持高阻态;当COM口开启高电平的情况下,如果SEG口为低电平时,能点亮连接在相应SEG口与COM口之间的LED灯,而且需要点亮这颗LED时,称为有效的SEG口输出低电平,如果不需要点亮这颗LED灯时,SEG口为无效状态,即维持高阻态;
若led_com=0,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出低电平;将与第一个COM连接端IO引脚COM0输出高电平;
若led_com=1,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出低电平;将与第一个COM连接端IO引脚COM0输出高电平;
若led_com=2,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出高电平;将与第一个COM连接端IO引脚COM0输出低电平;
若led_com=3,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出高电平;将与第一个COM连接端IO引脚COM0输出低电平;
若led_com=4,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出低电平;将与第2个COM连接端IO引脚COM1输出高电平;
若led_com=5,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出低电平;将与第二个COM连接端IO引脚COM1输出高电平;
若led_com=6,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出高电平;将与第二个COM连接端IO引脚COM1输出低电平;
若led_com=7,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出高电平;将与第二个COM连接端IO引脚COM1输出低电平;
若led_com=8,转至按键读取子程序;
按键读取子程序包括:
步骤(a)、将与第一个SEG连接端连接的IO引脚SEG0输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG0,判断SEG0是否等于0,若是,则判断第一开关按键的状态为“按下”状态,否则判断第一开关按键的状态为“弹起”状态;随即将与第一个SEG连接端连接的IO引脚SEG0转成高阻态;
步骤(b)、将与第二个SEG连接端连接的IO引脚SEG1输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG1,判断SEG1是否等于0,若是,则判断第二开关按键的状态为“按下”状态,否则判断第二开关按键的状态为“弹起”状态;随即将与第二个SEG连接端连接的IO引脚SEG1转成高阻态;
步骤(c)、将与第三个SEG连接端连接的IO引脚SEG2输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG2,判断SEG2是否等于0,若是,则判断第三开关按键的状态为“按下”状态,否则判断第三开关按键的状态为“弹起”状态;随即将与第三个SEG连接端连接的IO引脚SEG2转成高阻态;
步骤(d)、将与第四个SEG连接端连接的IO引脚SEG3输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG3,判断SEG3是否等于0,若是,则判断第四开关按键的状态为“按下”状态,否则判断第四开关按键的状态为“弹起”状态;随即将与第四个SEG连接端连接的IO引脚SEG3转成高阻态;
步骤(e)、将与第五个SEG连接端连接的IO引脚SEG4输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG4,判断SEG4是否等于0,若是,则判断第五开关按键的状态为“按下”状态,否则判断第五开关按键的状态为“弹起”状态;随即将与第五个SEG连接端连接的IO引脚SEG4转成高阻态;
步骤(f)、将与第六个SEG连接端连接的IO引脚SEG5输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG5,判断SEG5是否等于0,若是,则判断第六开关按键的状态为“按下”状态,否则判断第六开关按键的状态为“弹起”状态;随即将与第六个SEG连接端连接的IO引脚SEG5转成高阻态;
步骤(g)、将与第七个SEG连接端连接的IO引脚SEG6输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG6,判断SEG6是否等于0,若是,则判断第七开关按键的状态为“按下”状态,否则判断第七开关按键的状态为“弹起”状态;随即将与第七个SEG连接端连接的IO引脚SEG6转成高阻态;操作结束。
与现有技术相比,本发明的优点在于:单元器件使用较少,而且MCU主控芯片的资源也用得少,综合性价比较高。
附图说明
图1为现有技术中直拉式LED驱动与按键读取电路原理图;
图2为现有技术中阵列式LED驱动与按键读取电路原理图;
图3为本发明实施例一中LED驱动与按键读取电路原理图;
图4为本发明实施例一中MCU控制芯片的控制方法流程图;
图5为本发明实施例一中按键读取流程图;
图6为本发明实施例二中LED驱动与按键读取电路原理图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
实施例一
如图3所示的电器LED驱动与按键读取电路,其包括7个开关按键,32颗LED发光管,15个电阻,以及MCU控制芯片,其中:
第一开关按键SW1的第一端均接地,第一开关按键SW1的第二端连接第一电阻R1后引出第一个SEG连接端SEG0;第二开关按键SW2的第一端均接地,第二开关按键SW2的第二端连接第二电阻R2后引出第二个SEG连接端SEG1;第三开关按键SW3的第一端均接地,第三开关按键SW3的第二端连接第三电阻R3后引出第三个SEG连接端SEG2;第四开关按键SW4的第一端均接地,第四开关按键SW4的第二端连接第四电阻R4后引出第四个SEG连接端SEG3;第五开关按键SW5的第一端均接地,第五开关按键SW5的第二端连接第五电阻R5后引出第五个SEG连接端SEG4;第六开关按键SW6的第一端均接地,第六开关按键SW6的第二端连接第六电阻R6后引出第六个SEG连接端SEG5;第七开关按键SW7的第一端均接地,第七开关按键SW7的第二端连接第七电阻R7后引出第七个SEG连接端SEG6;
而32颗LED发光管排列成8行4列的阵列;将第一列LED发光管的负极和第二列LED发光管的正极连接在一起引出第一个COM连接端COM0;将第三列LED发光管的负极和第四列LED发光管的正极连接在一起引出第二个COM连接端COM1;
第一行第一列LED发光管的正极、第一行第二列LED发光管的负极、第一行第三列LED发光管的正极、第一行第四列LED发光管的负极连接在一起后连接第八电阻R8后与第一个SEG连接端SEG0连接;
第二行第一列LED发光管的正极、第二行第二列LED发光管的负极、第二行第三列LED发光管的正极、第二行第四列LED发光管的负极连接在一起后连接第九电阻R9后与第二个SEG连接端SEG1连接;
第三行第一列LED发光管的正极、第三行第二列LED发光管的负极、第三行第三列LED发光管的正极、第三行第四列LED发光管的负极连接在一起后连接第十电阻R10后与第三个SEG连接端SEG2连接;
第四行第一列LED发光管的正极、第四行第二列LED发光管的负极、第四行第三列LED发光管的正极、第四行第四列LED发光管的负极连接在一起后连接第十一电阻R11后与第四个SEG连接端SEG3连接;
第五行第一列LED发光管的正极、第五行第二列LED发光管的负极、第五行第三列LED发光管的正极、第五行第四列LED发光管的负极连接在一起后连接第十二电阻R12后与第五个SEG连接端SEG4连接;
第六行第一列LED发光管的正极、第六行第二列LED发光管的负极、第六行第三列LED发光管的正极、第六行第四列LED发光管的负极连接在一起后连接第十三电阻R13后与第六个SEG连接端SEG5连接;
第七行第一列LED发光管的正极、第七行第二列LED发光管的负极、第七行第三列LED发光管的正极、第七行第四列LED发光管的负极连接在一起后连接第十四电阻R14后与第七个SEG连接端SEG6连接;
第八行第一列LED发光管的正极、第八行第二列LED发光管的负极、第八行第三列LED发光管的正极、第八行第四列LED发光管的负极连接在一起后连接第十五电阻R15后与第八个SEG连接端SEG7连接;
八个SEG连接端SEG0~SEG7分别与MCU控制芯片的X个IO引脚连接;
2个COM连接端COM0、COM1分别与MCU控制芯片的Y/2个IO引脚连接。
上述电器LED驱动与按键读取电路的控制方法为:MCU控制芯片采用的中断间隔时间为2ms,MCU控制芯片对7个开关按键的读取和对32颗LED发光管的驱动在上述中断程序中完成,MCU控制芯片在上述中断程序的操作流程包括:
步骤(1)、MCU控制芯片启动2ms中断后,立即将与8个SEG连接端连接的8个IO引脚连接及与2个COM连接端连接的2个IO引脚连接转成高阻态;
步骤(2)、设置事件参数led_com,令led_com++;
步骤(3)、判断led_com是否大于8,若是,令led_com=0,然后执行步骤(4),若否,直接转步骤(4);
步骤(4)、判断led_com的值,然后根据不同led_com值,执行不同操作:
若led_com=0,将与第1个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出低电平;将与第一个COM连接端IO引脚COM0输出高电平;
若led_com=1,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出低电平;将与第一个COM连接端IO引脚COM0输出高电平;
若led_com=2,将与第1个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出高电平;将与第一个COM连接端IO引脚COM0输出低电平;
若led_com=3,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出高电平;将与第一个COM连接端IO引脚COM0输出低电平;
若led_com=4,将与第1个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出低电平;将与第二个COM连接端IO引脚COM1输出高电平;
若led_com=5,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出低电平;将与第二个COM连接端IO引脚COM1输出高电平;
若led_com=6,将与第1个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出高电平;将与第二个COM连接端IO引脚COM1输出低电平;
若led_com=7,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出高电平;将与第二个COM连接端IO引脚COM1输出低电平;
若led_com=8,转至开关按键读取子程序;
按键读取子程序包括:
步骤(a)、将与第一个SEG连接端连接的IO引脚SEG0输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG0,判断SEG0是否等于0,若是,则判断第一开关按键的状态为“按下”状态,否则判断第一开关按键的状态为“弹起”状态;随即将与第一个SEG连接端连接的IO引脚SEG0转成高阻态;
步骤(b)、将与第二个SEG连接端连接的IO引脚SEG1输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG1,判断SEG1是否等于0,若是,则判断第二开关按键的状态为“按下”状态,否则判断第二开关按键的状态为“弹起”状态;随即将与第二个SEG连接端连接的IO引脚SEG1转成高阻态;
步骤(c)、将与第三个SEG连接端连接的IO引脚SEG2输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG2,判断SEG2是否等于0,若是,则判断第三开关按键的状态为“按下”状态,否则判断第三开关按键的状态为“弹起”状态;随即将与第三个SEG连接端连接的IO引脚SEG2转成高阻态;
步骤(d)、将与第四个SEG连接端连接的IO引脚SEG3输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG3,判断SEG3是否等于0,若是,则判断第四开关按键的状态为“按下”状态,否则判断第四开关按键的状态为“弹起”状态;随即将与第四个SEG连接端连接的IO引脚SEG3转成高阻态;
步骤(e)、将与第五个SEG连接端连接的IO引脚SEG4输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG4,判断SEG4是否等于0,若是,则判断第五开关按键的状态为“按下”状态,否则判断第五开关按键的状态为“弹起”状态;随即将与第五个SEG连接端连接的IO引脚SEG4转成高阻态;
步骤(f)、将与第六个SEG连接端连接的IO引脚SEG5输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG5,判断SEG5是否等于0,若是,则判断第六开关按键的状态为“按下”状态,否则判断第六开关按键的状态为“弹起”状态;随即将与第六个SEG连接端连接的IO引脚SEG5转成高阻态;
步骤(g)、将与第七个SEG连接端连接的IO引脚SEG6输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG6,判断SEG6是否等于0,若是,则判断第七开关按键的状态为“按下”状态,否则判断第七开关按键的状态为“弹起”状态;随即将与第七个SEG连接端连接的IO引脚SEG6转成高阻态;操作结束。
实施例二
与实施例一不同的是,包括4个开关按键,32颗LED发光管,8个电阻,32颗LED发光管排列成4行8列的阵列,
第一开关按键SW1的第一端均接地,第一开关按键SW1的第二端连接第一电阻R1后引出第一个SEG连接端SEG0;第二开关按键SW2的第一端均接地,第二开关按键SW2的第二端连接第二电阻R2后引出第二个SEG连接端SEG1;第三开关按键SW3的第一端均接地,第三开关按键SW3的第二端连接第三电阻R3后引出第三个SEG连接端SEG2;第四开关按键SW4的第一端均接地,第四开关按键SW4的第二端连接第四电阻R4后引出第四个SEG连接端SEG3;
第一列LED发光管的负极和第二列LED发光管的正极连接在一起引出第一个COM连接端COM0;第三列LED发光管的负极和第四列LED发光管的正极连接在一起引出第二个COM连接端COM1;第五列LED发光管的负极和第六列LED发光管的正极连接在一起引出第三个COM连接端COM2;第七列LED发光管的负极和第八列LED发光管的正极连接在一起引出第四个COM连接端COM3;
第一行第一列LED发光管的正极、第一行第二列LED发光管的负极、第一行第三列LED发光管的正极、第一行第四列LED发光管的负极、第一行第五列LED发光管的正极、第一行第六列LED发光管的负极、第一行第七列LED发光管的正极、第一行第八列LED发光管的负极连接在一起后连接第五电阻R5后与第一个SEG连接端SEG0连接;
第二行第一列LED发光管的正极、第二行第二列LED发光管的负极、第二行第三列LED发光管的正极、第二行第四列LED发光管的负极、第二行第五列LED发光管的正极、第二行第六列LED发光管的负极、第二行第七列LED发光管的正极、第二行第八列LED发光管的负极连接在一起后连接第六电阻R6后与第二个SEG连接端SEG1连接;
第三行第一列LED发光管的正极、第三行第二列LED发光管的负极、第三行第三列LED发光管的正极、第三行第四列LED发光管的负极、第三行第五列LED发光管的正极、第三行第六列LED发光管的负极、第三行第七列LED发光管的正极、第三行第八列LED发光管的负极连接在一起后连接第七电阻R7后与第三个SEG连接端SEG2连接;
第四行第一列LED发光管的正极、第四行第二列LED发光管的负极、第四行第三列LED发光管的正极、第四行第四列LED发光管的负极、第四行第五列LED发光管的正极、第四行第六列LED发光管的负极、第四行第七列LED发光管的正极、第四行第八列LED发光管的负极连接在一起后连接第八电阻R8后与第四个SEG连接端SEG3连接。
上述电器LED驱动与按键读取电路的控制方法为:MCU控制芯片采用的中断间隔时间为2ms,MCU控制芯片对4个开关按键的读取和对32颗LED发光管的驱动在上述中断程序中完成,MCU控制芯片在上述中断程序的操作流程与实施例一类似:
步骤(1)、MCU控制芯片启动2ms中断后,立即将与4个SEG连接端连接的4个IO引脚连接及与4个COM连接端连接的4个IO引脚连接转成高阻态;
步骤(2)、设置事件参数led_com,令led_com++;
步骤(3)、判断led_com是否大于8,若是,令led_com=0,然后执行步骤(4),若否,直接转步骤(4);
步骤(4)、判断led_com的值,然后根据不同led_com值,执行不同操作:
若led_com=0,将有效的SEG0、SEG1、SEG2、SEG3输出低电平;将COM0输出高电平;
若led_com=1,将有效的SEG0、SEG1、SEG2、SEG3输出高电平;将COM0输出低电平;
若led_com=2,将有效的SEG0、SEG1、SEG2、SEG3输出低电平;将COM1输出高电平;
若led_com=3,将有效的SEG0、SEG1、SEG2、SEG3输出高电平;将COM1输出低电平;
若led_com=4,将有效的SEG0、SEG1、SEG2、SEG3输出低电平;将COM2输出高电平;
若led_com=5,将有效的SEG0、SEG1、SEG2、SEG3输出高电平;将COM2输出低电平;
若led_com=6,将有效的SEG0、SEG1、SEG2、SEG3输出低电平;将COM3输出高电平;
若led_com=7,将有效的SEG0、SEG1、SEG2、SEG3输出高电平;将COM3输出低电平;
若led_com=8,转至开关按键读取子程序;
按键读取子程序包括:
步骤(a)、将与第一个SEG连接端连接的IO引脚SEG0输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG0,判断SEG0是否等于0,若是,则判断第一开关按键的状态为“按下”状态,否则判断第一开关按键的状态为“弹起”状态;随即将与第一个SEG连接端连接的IO引脚SEG0转成高阻态;
步骤(b)、将与第二个SEG连接端连接的IO引脚SEG1输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG1,判断SEG1是否等于0,若是,则判断第二开关按键的状态为“按下”状态,否则判断第二开关按键的状态为“弹起”状态;随即将与第二个SEG连接端连接的IO引脚SEG1转成高阻态;
步骤(c)、将与第三个SEG连接端连接的IO引脚SEG2输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG2,判断SEG2是否等于0,若是,则判断第三开关按键的状态为“按下”状态,否则判断第三开关按键的状态为“弹起”状态;随即将与第三个SEG连接端连接的IO引脚SEG2转成高阻态;
步骤(d)、将与第四个SEG连接端连接的IO引脚SEG3输出高电平后直接转转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG3,判断SEG3是否等于0,若是,则判断第四开关按键的状态为“按下”状态,否则判断第四开关按键的状态为“弹起”状态;随即将与第四个SEG连接端连接的IO引脚SEG3转成高阻态;操作结束。
Claims (3)
1.一种电器LED驱动与按键读取电路,其特征在于:包括M个开关按键,X*Y颗LED发光管,M、X、Y均为自然数,且M小于等于X;M+X个电阻,以及MCU控制芯片,其中:
第一开关按键的第一端均接地,第一开关按键的第二端连接第一电阻后引出第一个SEG连接端;第二开关按键的第一端均接地,第二开关按键的第二端连接第二电阻后引出第二个SEG连接端;……第M开关按键的第一端均接地,第M开关按键的第二端连接第M电阻后引出第M个SEG连接端;
而X*Y颗LED发光管排列成X行Y列的阵列;如果Y为偶数,将第一列LED发光管的负极和第二列LED发光管的正极连接在一起引出第一个COM连接端;将第三列LED发光管的负极和第四列LED发光管的正极连接在一起引出第二个COM连接端;……将第Y-1列LED发光管的负极和第Y列LED发光管的正极连接在一起引出第Y/2个COM连接端;如果Y为奇数,将第一列LED发光管的负极和第二列LED发光管的正极连接在一起引出第一个COM连接端;将第三列LED发光管的负极和第四列LED发光管的正极连接在一起引出第二个COM连接端;……将第Y-2列LED发光管的负极和第Y-1列LED发光管的正极连接在一起引出第(Y-1)/2个COM连接端,将第Y列LED发光管的负极连接在一起引出第(Y+1)/2个COM连接端;
Y为偶数时,第一行第一列LED发光管的正极、第一行第二列LED发光管的负极、第一行第三列LED发光管的正极、第一行第四列LED发光管的负极、……第一行第Y-1列LED发光管的正极、第一行第Y列LED发光管的负极连接在一起后连接第M+1电阻后与第一个SEG连接端连接;Y为奇数时,第一行第一列LED发光管的正极、第一行第二列LED发光管的负极、第一行第三列LED发光管的正极、第一行第四列LED发光管的负极、……第一行第Y-2列LED发光管的正极、第一行第Y-1列LED发光管的负极、第一行第Y列LED发光管的正极连接在一起后连接第M+1电阻后与第一个SEG连接端连接;
Y为偶数时,第二行第一列LED发光管的正极、第二行第二列LED发光管的负极、第二行第三列LED发光管的正极、第二行第四列LED发光管的负极、……第二行第Y-1列LED发光管的正极、第二行第Y列LED发光管的负极连接在一起后连接第M+2电阻后与第二个SEG连接端连接;Y为奇数时,第二行第一列LED发光管的正极、第二行第二列LED发光管的负极、第二行第三列LED发光管的正极、第二行第四列LED发光管的负极、……第二行第Y-2列LED发光管的正极、第二行第Y-1列LED发光管的负极、第二行第Y列LED发光管的正极连接在一起后连接第M+2电阻后与第二个SEG连接端连接;
……
Y为偶数时,第X行第一列LED发光管的正极、第X行第二列LED发光管的负极、第X行第三列LED发光管的正极、第X行第四列LED发光管的负极、……第X行第Y-1列LED发光管的正极、第X行第Y列LED发光管的负极连接在一起后连接第M+X电阻后与第X个SEG连接端连接;Y为奇数时,第X行第一列LED发光管的正极、第X行第二列LED发光管的负极、第X行第三列LED发光管的正极、第X行第四列LED发光管的负极、……第X行第Y-2列LED发光管的正极、第X行第Y-1列LED发光管的负极、第X行第Y列LED发光管的正极连接在一起后连接第M+X电阻后与第X个SEG连接端连接;
X个SEG连接端分别与MCU控制芯片的X个IO引脚连接;
[(Y+1)/2]个COM连接端分别与MCU控制芯片的](Y+1)/2]个IO引脚连接,[]为向上取整符号。
2.根据权利要求1所述的电器LED驱动与按键读取电路,其特征在于:所述M=7,所述X=8,所述Y=4。
3.一种如权利要求2所述的电器LED驱动与按键读取电路的控制方法,其特征在于:MCU控制芯片采用的中断间隔时间为2ms,MCU控制芯片对7个开关按键的读取和对32颗LED发光管的驱动在上述中断程序中完成,MCU控制芯片在上述中断程序的操作流程包括:
步骤(1)、MCU控制芯片启动2ms中断后,立即将与8个SEG连接端连接的8个IO引脚及与2个COM连接端连接的2个IO引脚转成高阻态;
步骤(2)、设置事件参数led_com,令led_com++;
步骤(3)、判断led_com是否大于8,若是,令led_com=0,然后执行步骤(4),若否,直接转步骤(4);
步骤(4)、判断led_com的值,然后根据不同led_com值,执行不同操作:
名称解释:有效SEG输出——当COM口开启低电平的情况下,如果SEG口为高电平时,能点亮相应的LED灯,而且需要点亮这个LED时,称为有效的SEG口输出高电平,如果不需要点亮这个LED灯时,SEG口为无效状态,即维持高阻态;当COM口开启高电平的情况下,如果SEG口为低电平时,能点亮相应的LED灯,而且需要点亮这个LED时,称为有效的SEG口输出低电平,如果不需要点亮这个LED灯时,SEG口为无效状态,即维持高阻态;
若led_com=0,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出低电平;将与第一个COM连接端IO引脚COM0输出高电平;
若led_com=1,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出低电平;将与第一个COM连接端IO引脚COM0输出高电平;
若led_com=2,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出高电平;将与第一个COM连接端IO引脚COM0输出低电平;
若led_com=3,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出高电平;将与第一个COM连接端IO引脚COM0输出低电平;
若led_com=4,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出低电平;将与第2个COM连接端IO引脚COM1输出高电平;
若led_com=5,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出低电平;将与第二个COM连接端IO引脚COM1输出高电平;
若led_com=6,将与第一个SEG连接端至第4个SEG连接端连接的4个IO引脚有效的SEG0~SEG3输出高电平;将与第二个COM连接端IO引脚COM1输出低电平;
若led_com=7,将与第5个SEG连接端至第8个SEG连接端连接的4个IO引脚有效的SEG4~SEG7输出高电平;将与第二个COM连接端IO引脚COM1输出低电平;
若led_com=8,转至开关按键读取子程序;
按键读取子程序包括:
步骤(a)、将与第一个SEG连接端连接的IO引脚SEG0输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG0,判断SEG0是否等于0,若是,则判断第一开关按键的状态为“按下”状态,否则判断第一开关按键的状态为“弹起”状态;随即将与第一个SEG连接端连接的IO引脚SEG0转成高阻态;
步骤(b)、将与第二个SEG连接端连接的IO引脚SEG1输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG1,判断SEG1是否等于0,若是,则判断第二开关按键的状态为“按下”状态,否则判断第二开关按键的状态为“弹起”状态;随即将与第二个SEG连接端连接的IO引脚SEG1转成高阻态;
步骤(c)、将与第三个SEG连接端连接的IO引脚SEG2输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG2,判断SEG2是否等于0,若是,则判断第三开关按键的状态为“按下”状态,否则判断第三开关按键的状态为“弹起”状态;随即将与第三个SEG连接端连接的IO引脚SEG2转成高阻态;
步骤(d)、将与第四个SEG连接端连接的IO引脚SEG3输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG3,判断SEG3是否等于0,若是,则判断第四开关按键的状态为“按下”状态,否则判断第四开关按键的状态为“弹起”状态;随即将与第四个SEG连接端连接的IO引脚SEG3转成高阻态;
步骤(e)、将与第五个SEG连接端连接的IO引脚SEG4输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG4,判断SEG4是否等于0,若是,则判断第五开关按键的状态为“按下”状态,否则判断第五开关按键的状态为“弹起”状态;随即将与第五个SEG连接端连接的IO引脚SEG4转成高阻态;
步骤(f)、将与第六个SEG连接端连接的IO引脚SEG5输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG5,判断SEG5是否等于0,若是,则判断第六开关按键的状态为“按下”状态,否则判断第六开关按键的状态为“弹起”状态;随即将与第六个SEG连接端连接的IO引脚SEG5转成高阻态;
步骤(g)、将与第七个SEG连接端连接的IO引脚SEG6输出高电平后直接转成输入模式;然后使用两个空指令——NOP指令;然后读取SEG6,判断SEG6是否等于0,若是,则判断第七开关按键的状态为“按下”状态,否则判断第七开关按键的状态为“弹起”状态;随即将与第七个SEG连接端连接的IO引脚SEG6转成高阻态;操作结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510585775.4A CN105227187B (zh) | 2015-09-15 | 2015-09-15 | 电器led驱动与按键读取电路及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510585775.4A CN105227187B (zh) | 2015-09-15 | 2015-09-15 | 电器led驱动与按键读取电路及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105227187A CN105227187A (zh) | 2016-01-06 |
CN105227187B true CN105227187B (zh) | 2018-03-16 |
Family
ID=54995929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510585775.4A Active CN105227187B (zh) | 2015-09-15 | 2015-09-15 | 电器led驱动与按键读取电路及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105227187B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347483B (zh) * | 2018-11-30 | 2024-03-22 | 珠海巨晟科技股份有限公司 | 一种触控按键与数码管共用io的控制电路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101943742A (zh) * | 2010-07-23 | 2011-01-12 | 美的集团有限公司 | 一种按键检测和显示驱动集成电路及其控制方法 |
CN102075194A (zh) * | 2009-11-23 | 2011-05-25 | 鸿富锦精密工业(深圳)有限公司 | 键盘扫描电路和方法及电子设备 |
CN204948053U (zh) * | 2015-09-15 | 2016-01-06 | 宁波卓奥电子科技有限公司 | 电器led驱动与按键读取电路 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011061340A (ja) * | 2009-09-08 | 2011-03-24 | Panasonic Corp | 折畳型携帯端末装置 |
-
2015
- 2015-09-15 CN CN201510585775.4A patent/CN105227187B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075194A (zh) * | 2009-11-23 | 2011-05-25 | 鸿富锦精密工业(深圳)有限公司 | 键盘扫描电路和方法及电子设备 |
CN101943742A (zh) * | 2010-07-23 | 2011-01-12 | 美的集团有限公司 | 一种按键检测和显示驱动集成电路及其控制方法 |
CN204948053U (zh) * | 2015-09-15 | 2016-01-06 | 宁波卓奥电子科技有限公司 | 电器led驱动与按键读取电路 |
Also Published As
Publication number | Publication date |
---|---|
CN105227187A (zh) | 2016-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105227187B (zh) | 电器led驱动与按键读取电路及控制方法 | |
CN104900121B (zh) | 一种基于智能评价的数字电子技术实验系统及方法 | |
CN201344454Y (zh) | 可变图案交通信号灯 | |
CN204948053U (zh) | 电器led驱动与按键读取电路 | |
CN104989987B (zh) | Led灯条、背光模组以及液晶显示器 | |
CN203288216U (zh) | 节能型led屏动态扫描装置以及节能型led屏 | |
CN103594012B (zh) | 单片机教学实训板 | |
CN103516552B (zh) | 一种电子设备的状态指示方法及状态指示装置 | |
CN217588941U (zh) | 一种led阵列的显示装置及电子显示屏 | |
CN205486931U (zh) | 便携式课堂点名答题系统 | |
CN105390089B (zh) | 背光系统的验证装置 | |
CN201788634U (zh) | 一种p16室外全彩led单元板模块 | |
CN206893163U (zh) | 汽车电工智能考核装置 | |
CN208722445U (zh) | 一种基于51单片机的插针式实践能力综合实验板 | |
CN210641110U (zh) | 基于桥单元的双色led驱动电路及led照明装置 | |
CN214377226U (zh) | 一种基于51单片机插针插孔结合的综合能力实训平台 | |
CN204257173U (zh) | 彩色段码式数码管显示装置 | |
CN206593017U (zh) | Led灯、数码显示模块及电子设备 | |
CN206594915U (zh) | 单片机开发板 | |
CN207663639U (zh) | 一种plc实训系统及电气实训平台 | |
CN102231253A (zh) | 8位米字数码管 | |
CN202189783U (zh) | 灯驱合一的柱状rgb全彩led混合封装结构 | |
CN206179355U (zh) | 教学用单片机开发电路板 | |
CN105428922B (zh) | 带led台灯的多功能电源插座电路 | |
CN2149663Y (zh) | 交通信号屏 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 315327 Ningbo Province, Hangzhou Bay New District, the town of the East Yuan Xiang Village Industrial Park, No. two weft Road, No. 758 Applicant after: Zhejiang zhuoao Polytron Technologies Inc Address before: Two road 315327 Zhejiang province Andong town of Cixi City Industrial Zone No. 758 weft Applicant before: Ningbo ZuoAo Electronics Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |