掌桥专利:专业的专利平台
掌桥专利
首页

一种单片机IO口的扩展电路及其扩展方法

文献发布时间:2023-06-19 18:30:43


一种单片机IO口的扩展电路及其扩展方法

技术领域

本发明涉及控制电路技术领域,尤其涉及一种单片机IO口的扩展电路及其扩展方法。

背景技术

目前,按键、拨码开关、BCD码开关等开关元器件作为电子产品人机交互中常用的控制元件。当某一产品上的开关数量较多时,对单片机I/O 口数量要求越高。单片机I/O口数量越多,芯片体积越大、成本越高。

现有技术中的单片机扩展I/O口的方法主要有以下三种:

第一种方法,通过电阻分压,然后利用单片机的ADC端口读取不同的电阻值,例如中国专利CN201698195U提供的一种单片机IO口的扩展电路,这种方法的缺点主要有三个:单片机应用中要有多余的ADC口;每个ADC口控制的按键数量越多分压电阻取值越难;当有多个按键同时按下时,区分起来更加困难。

第二种方法,通过扩展芯片扩展单片机I/O口,例如中国专利CN201820221U提供的一种单片机的I/O接口扩展电路,这种方法虽然可以满足要求,但是这种方法随着被控开关数量的增多扩展芯片占用PCB的空间就越多,给PCB板布局、布线增加了难度。

第三种方法,通过按键矩阵检测按键,这是一种较为经济的扩展单片机I/O口的方法,但是该方法不适用于一直保持在导通状态的开关,如拨码开关、BCD码开关。

发明内容

本发明的目的在于克服上述不足,提供一种单片机IO口的扩展电路及其扩展方法,在拨码开关、BCD码开关、按键等多开关混搭电路中,有效减少单片机I/O的数量,而且PCB板的布局、布线简单,一定程度上节约了PCB板空间、降低了产品成本。

本发明的目的是这样实现的:

一种单片机IO口的扩展电路,它包括MCU电路、BCD码开关SK1、拨码开关SW1、按键KEY1~KEY4、PNP型三极管Q1~Q8和滤波电容C1~C12,所述MCU电路包括微控制器芯片IC1,所述微控制器芯片与各个开关元件:BCD码开关SK1、拨码开关SW1以及按键KEY1~KEY4的一端连接,上述开关元件的另一端连接到各个三极管上,三极管连接至微控制器芯片的I/O口;所述BCD码开关SK1、拨码开关SW1、按键SW1的状态由外部人员操作状态不定,PNP型三极管用于扩展单片机I/O口,通过控制PNP三极管基电压来实现开关状态的判断。

进一步地,所述BCD码开关SK1的内部公共触点:KEYA口连接滤波电容C1,滤波电容C1接地,所述BCD码开关的4个管脚分别为Q11、Q12、Q13和Q14;所述拨码开关SW1的内部公共触点:KEYB口连接滤波电容C2,滤波电容C3接地,所述拨码开关SW1的8位开关分别为Q21、Q22、Q23、Q24、Q25、Q26、Q27和Q28;所述按键KEY1~KEY4连接MCU电路的一端为公共触点:KEYC口连接滤波电容C12,滤波电容C12接地,按键KEY1~KEY4的另一端分别为Q31~Q34。

进一步地,所述PNP型三极管Q1的发射极连接BCD码开关SK1的Q11端,集电极连接拨码开关SW1的Q21端,基极连接Port1口,通过Port1口连接滤波电容C3;所述PNP型三极管Q2的发射极连接BCD码开关SK1的Q12端,集电极连接拨码开关SW1的Q22端,基极连接Port2口,通过Port2口连接滤波电容C4;所述PNP型三极管Q3的发射极连接BCD码开关SK1的Q13端,集电极连接拨码开关SW1的Q23端,基极连接Port3口,通过Port3口连接滤波电容C5;所述PNP型三极管Q4的发射极连接BCD码开关SK1的Q14端,集电极连接拨码开关SW1的Q24端,基极连接Port4口,通过Port4口连接滤波电容C6;所述PNP型三极管Q5的发射极连接拨码开关SW1的Q25端,集电极连接按键KEY1的Q31端,基极连接Port5口,通过Port5口连接滤波电容C8;所述PNP型三极管Q6的发射极连接拨码开关SW1的Q26端,集电极连接按键KEY2的Q32端,基极连接Port6口,通过Port6口连接滤波电容C9;所述PNP型三极管Q7的发射极连接拨码开关SW1的Q27端,集电极连接按键KEY3的Q33端,基极连接Port7口,通过Port7口连接滤波电容C10;所述PNP型三极管Q8的发射极连接拨码开关SW1的Q28端,集电极连接按键KEY4的Q34端,基极连接Port8口,通过Port8口连接滤波电容C11。

进一步地,所述MCU电路包括微控制器芯片IC1、电容C16、电容C17和晶振AXTL1,电容C16和电容C17并联并分别与晶振AXTL1串联后接入微控制器芯片IC1,为微控制器芯片IC1提供了基本的时钟信号。

进一步地,所述MCU电路还包括电容C13、C14和C15,电容C13、C14和C15并联,为微控制器芯片IC1的供电电源及输入信号进行滤波。

进一步地,所述MCU电路还包括电容C20、电容C21、电阻R1和电阻R2,电容C20和电容C21并联后与电阻R2串联,并连接微控制器芯片IC1,微控制器芯片IC1还连接电阻R1,电阻R1和电阻2起到上拉的作用。

一种单片机IO口的扩展电路的扩展方法,包括以下内容:

步骤一、将单片机KEYA~KEYC的I/O口配置为上拉输入,即KEYA~KEYC口为高电平,将Port1~Port8口配置为推挽输出;

步骤二、对Port1口写入低电平,Port2~Port8口写高电平,读取KEYA~KEYC口的状态;Port1口控制PNP三极管Q1的基极电平,在对Port1口写低电平时,可以读到与Q1三极管集电极、发射极连接的开关引脚状态;

步骤三、对Port2口写入低电平,Port1、Port3~Port8口写高电平,读取KEYA~KEYC口的状态,Port2口控制PNP三极管Q2的基极电平,在对Port2口写低电平时,可以读到与Q2三极管集电极、发射极连接的开关引脚状态;

步骤四、对Port3口写入低电平,Port1、Port2、Port4~Port8口写高电平,读取KEYA~KEYC口的状态,Port3口控制PNP三极管Q3的基极电平,在对Port3口写低电平时,可以读到与Q3三极管集电极、发射极连接的开关引脚状态;

步骤五、对Port4口写入低电平,Port1~Port3、Port5~Port8口写高电平,读取KEYA~KEYC口的状态,Port4口控制PNP三极管Q4的基极电平,在对Port4口写低电平时,可以读到与Q4三极管集电极、发射极连接的开关引脚状态;

步骤六、对Port5口写入低电平,Port1~Port4、Port6~Port8口写高电平,读取KEYA~KEYC口的状态并保存,Port5口控制PNP三极管Q5的基极电平,在对Port5口写低电平时,可以读到与Q5三极管集电极、发射极连接的开关引脚状态;

步骤七、对Port6口写入低电平,Port1~Port5、Port7~Port8口写高电平,读取KEYA~KEYC口的状态,Port6口控制PNP三极管Q6的基极电平,在对Port6口写低电平时,可以读到与Q6三极管集电极、发射极连接的开关引脚状态;

步骤八、对Port7口写入低电平,Port1~Port6、Port8口写高电平,读取KEYA~KEYC口的状态,Port7口控制PNP三极管Q7的基极电平,在对Port7口写低电平时,可以读到与Q7三极管集电极、发射极连接的开关引脚状态;

步骤九、对Port8口写入低电平,Port1~Port7口写高电平,读取KEYA~KEYC口的状态,Port8口控制PNP三极管Q8的基极电平,在对Port8口写低电平时,可以读到与Q8三极管集电极、发射极连接的开关引脚状态。

进一步地,步骤二~步骤九的判断方法为,对Port“n”口写入低电平,其余Port口写高电平,读到Q“n”三极管集电极、发射极连接的开关引脚状态;若Q“n”三极管的发射极与对应开关元件的内部公共触点断开,则该公共触点口为高电平,反之接通为低电平;同样的,若Q“n”三极管的集电极与对应开关元件的内部公共触点断开,则该公共触点口为高电平,反之接通为低电平。

与现有技术相比,本发明的有益效果是:

本发明的MCU电路采用MCU微控制器芯片,MCU微控制器与开关元件(按键、拨码开关、BCD码开关)一端连接,开关器件另一端连接到三级管上,三极管再连接到MCU微控制器芯片的I/O口,本发明的扩展电路可灵活搭配各种开关控件使用,可减少单片机I/O口数量,在一定程度上降低了产品成本,本发明的方法占用PCB空间少,PCB布局、布线简单;本发明的方法控制程序简单,可根据开关数量灵活调整。

附图说明

图1为本发明的电路结构图。

图2为本发明的MCU的电路原理图。

图3为本发明的方法流程图。

具体实施方式

为更好地理解本发明的技术方案,以下将结合相关图示作详细说明。应理解,以下具体实施例并非用以限制本发明的技术方案的具体实施态样,其仅为本发明技术方案可采用的实施态样。需先说明,本文关于各组件位置关系的表述,如A部件位于B部件上方,其系基于图示中各组件相对位置的表述,并非用以限制各组件的实际位置关系。

实施例1:

参见图1-图2,图1绘制了本发明的电路结构示意图。如图所示,本发明涉及的一种单片机IO口的扩展电路,它包括MCU电路、BCD码开关SK1、8位拨码开关SW1、按键KEY1~KEY4、PNP型三极管Q1~Q8和滤波电容C1~C12,所述MCU电路包括微控制器芯片IC1,所述微控制器芯片与各个开关元件:BCD码开关SK1、拨码开关SW1以及按键的一端连接,上述开关元件的另一端连接到各个三极管上,三极管连接至微控制器芯片的I/O口;上述BCD码开关、拨码开关、按键状态由外部人员操作状态不定,PNP型三极管用于扩展单片机I/O口,通过控制PNP三极管基电压来实现开关状态的判断。

所述BCD码开关SK1的内部公共触点:KEYA口连接滤波电容C1,滤波电容C1接地,所述BCD码开关的4个管脚分别为Q11、Q12、Q13和Q14;所述拨码开关SW1的内部公共触点:KEYB口连接滤波电容C2,滤波电容C3接地,所述拨码开关SW1的8位开关分别为Q21、Q22、Q23、Q24、Q25、Q26、Q27和Q28;所述按键KEY1~KEY4连接MCU电路的一端为公共触点:KEYC口连接滤波电容C12,滤波电容C12接地,按键KEY1~KEY4的另一端分别为Q31~Q34。

所述PNP型三极管Q1的发射极连接BCD码开关SK1的Q11端,集电极连接拨码开关SW1的Q21端,基极连接Port1口,通过Port1口连接滤波电容C3;所述PNP型三极管Q2的发射极连接BCD码开关SK1的Q12端,集电极连接拨码开关SW1的Q22端,基极连接Port2口,通过Port2口连接滤波电容C4;所述PNP型三极管Q3的发射极连接BCD码开关SK1的Q13端,集电极连接拨码开关SW1的Q23端,基极连接Port3口,通过Port3口连接滤波电容C5;所述PNP型三极管Q4的发射极连接BCD码开关SK1的Q14端,集电极连接拨码开关SW1的Q24端,基极连接Port4口,通过Port4口连接滤波电容C6;所述PNP型三极管Q5的发射极连接拨码开关SW1的Q25端,集电极连接按键KEY1的Q31端,基极连接Port5口,通过Port5口连接滤波电容C8;所述PNP型三极管Q6的发射极连接拨码开关SW1的Q26端,集电极连接按键KEY2的Q32端,基极连接Port6口,通过Port6口连接滤波电容C9;所述PNP型三极管Q7的发射极连接拨码开关SW1的Q27端,集电极连接按键KEY3的Q33端,基极连接Port7口,通过Port7口连接滤波电容C10;所述PNP型三极管Q8的发射极连接拨码开关SW1的Q28端,集电极连接按键KEY4的Q34端,基极连接Port8口,通过Port8口连接滤波电容C11。

所述MCU电路包括微控制器芯片IC1、电容C13~C17、电容C20、电容C21、晶振AXTL1、电阻R1和电阻R2,电容C13、C14和C15并联,为微控制器芯片IC1的供电电源及输入信号进行滤波;电容C16和电容C17并联并分别与晶振AXTL1串联后接入微控制器芯片IC1,为微控制器芯片IC1提供了基本的时钟信号;电容C20和电容C21并联后与电阻R2串联,并连接微控制器芯片IC1,微控制器芯片IC1还连接电阻R1,电阻R1和电阻2起到上拉的作用。

参见图3,图3绘制了本发明的流程示意图。如图所示,上述一种单片机IO口的扩展电路的扩展方法,包括以下内容:

步骤一、将单片机KEYA~KEYC的I/O口配置为上拉输入,即KEYA~KEYC口为高电平,将Port1~Port8口配置为推挽输出。

步骤二、对Port1口写入低电平,Port2~Port8口写高电平,读取KEYA~KEYC口的状态;Port1口控制PNP三极管Q1的基极电平,在对Port1口写低电平时,可以读到与Q1三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若BCD码开关SK1内部公共触点KEYA口与Q11断开,拨码开关SW1公共触点KEYB口与Q21断开,则三极管Q1不工作,即KEYA、KEYB口都为高电平;

2、若BCD码开关SK1内部公共触点KEYA口与Q11断开,拨码开关SW1公共触点KEYB口与Q21接通,PNP三极管Q1发射极断开,集电极与基极间的PN结正向导通,即KEYA为高电平,KEYB口为低电平;

3、若BCD码开关SK1内部公共触点KEYA口与Q11接通,拨码开关SW1公共触点KEYB口与Q21断开,三极管Q1的发射极导通、集电极断开,即KEYA为低电平,KEYB口为高电平;

4、若BCD码开关SK1内部公共触点KEYA口与Q11接通,拨码开关SW1公共触点KEYB口与Q21接通,此时PNP三极管Q1的发射极正偏,集电极与基极间的PN结正向导通,即KEYA、KEYB口都为低电平。

步骤三、对Port2口写入低电平,Port1、Port3~Port8口写高电平,读取KEYA~KEYC口的状态,Port2口控制PNP三极管Q2的基极电平,在对Port2口写低电平时,可以读到与Q2三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若BCD码开关SK1内部公共触点KEYA口与Q12断开,拨码开关SW1公共触点KEYB口与Q22断开,则三极管Q2不工作,即KEYA、KEYB口都为高电平;

2、若BCD码开关SK1内部公共触点KEYA口与Q12断开,拨码开关SW1公共触点KEYB口与Q22接通,PNP三极管Q2发射极断开,集电极与基极间的PN结正向导通,即KEYA为高电平,KEYB口为低电平;

3、若BCD码开关SK1内部公共触点KEYA口与Q12接通,拨码开关SW1公共触点KEYB口与Q22断开,三极管Q2的发射极导通、集电极断开,即KEYA为低电平,KEYB口为高电平;

4、若BCD码开关SK1内部公共触点KEYA口与Q12接通,拨码开关SW1公共触点KEYB口与Q22接通,此时PNP三极管Q2的发射极正偏,集电极与基极间的PN结正向导通,即KEYA、KEYB口都为低电平。

步骤四、对Port3口写入低电平,Port1、Port2、Port4~Port8口写高电平,读取KEYA~KEYC口的状态,Port3口控制PNP三极管Q3的基极电平,在对Port3口写低电平时,可以读到与Q3三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若BCD码开关SK1内部公共触点KEYA口与Q13断开,拨码开关SW1公共触点KEYB口与Q23断开,则三极管Q3不工作,即KEYA、KEYB口都为高电平;

2、若BCD码开关SK1内部公共触点KEYA口与Q13断开,拨码开关SW1公共触点KEYB口与Q23接通,PNP三极管Q3发射极断开,集电极与基极间的PN结正向导通,即KEYA为高电平,KEYB口为低电平;

3、若BCD码开关SK1内部公共触点KEYA口与Q13接通,拨码开关SW1公共触点KEYB口与Q23断开,三极管Q3的发射极导通、集电极断开,即KEYA为低电平,KEYB口为高电平;

4、若BCD码开关SK1内部公共触点KEYA口与Q13接通,拨码开关SW1公共触点KEYB口与Q23接通,此时PNP三极管Q3的发射极正偏,集电极与基极间的PN结正向导通,即KEYA、KEYB口都为低电平。

步骤五、对Port4口写入低电平,Port1~Port3、Port5~Port8口写高电平,读取KEYA~KEYC口的状态,Port4口控制PNP三极管Q4的基极电平,在对Port4口写低电平时,可以读到与Q4三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若BCD码开关SK1内部公共触点KEYA口与Q14断开,拨码开关SW1公共触点KEYB口与Q24断开,则三极管Q4不工作,即KEYA、KEYB口都为高电平;

2、若BCD码开关SK1内部公共触点KEYA口与Q14断开,拨码开关SW1公共触点KEYB口与Q24接通,PNP三极管Q4发射极断开,集电极与基极间的PN结正向导通,即KEYA为高电平,KEYB口为低电平;

3、若BCD码开关SK1内部公共触点KEYA口与Q14接通,拨码开关SW1公共触点KEYB口与Q24断开,三极管Q4的发射极导通、集电极断开,即KEYA为低电平,KEYB口为高电平;

4、若BCD码开关SK1内部公共触点KEYA口与Q14接通,拨码开关SW1公共触点KEYB口与Q24接通,此时PNP三极管Q4的发射极正偏,集电极与基极间的PN结正向导通,即KEYA、KEYB口都为低电平。

步骤六、对Port5口写入低电平,Port1~Port4、Port6~Port8口写高电平,读取KEYA~KEYC口的状态并保存,Port5口控制PNP三极管Q5的基极电平,在对Port5口写低电平时,可以读到与Q5三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若拨码开关SW1的公共触点KEYB口与Q25断开,按键KEY1的公共触点KEYC口与Q31断开,则三极管Q5不工作,即KEYB、KEYC口都为高电平;

2、若拨码开关SW1的公共触点KEYB口与Q25断开,按键KEY1的公共触点KEYC口与Q31接通,PNP三极管Q5发射极断开,集电极与基极间的PN结正向导通,即KEYB为高电平,KEYC口为低电平;

3、若拨码开关SW1的公共触点KEYB口与Q25接通,按键KEY1的公共触点KEYC口与Q31断开,三极管Q5的发射极导通、集电极断开,即KEYB为低电平,KEYC口为高电平;

4、若拨码开关SW1的公共触点KEYB口与Q25接通,按键KEY1的公共触点KEYC口与Q31接通,此时PNP三极管Q5的发射极正偏,集电极与基极间的PN结正向导通,即KEYB、KEYC口都为低电平。

步骤七、对Port6口写入低电平,Port1~Port5、Port7~Port8口写高电平,读取KEYA~KEYC口的状态,Port6口控制PNP三极管Q6的基极电平,在对Port6口写低电平时,可以读到与Q6三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若拨码开关SW1的公共触点KEYB口与Q26断开,按键KEY2的公共触点KEYC口与Q32断开,则三极管Q6不工作,即KEYB、KEYC口都为高电平;

2、若拨码开关SW1的公共触点KEYB口与Q26断开,按键KEY2的公共触点KEYC口与Q32接通,PNP三极管Q6发射极断开,集电极与基极间的PN结正向导通,即KEYB为高电平,KEYC口为低电平;

3、若拨码开关SW1的公共触点KEYB口与Q26接通,按键KEY2的公共触点KEYC口与Q32断开,三极管Q6的发射极导通、集电极断开,即KEYB为低电平,KEYC口为高电平;

4、若拨码开关SW1的公共触点KEYB口与Q26接通,按键KEY2的公共触点KEYC口与Q32接通,此时PNP三极管Q6的发射极正偏,集电极与基极间的PN结正向导通,即KEYB、KEYC口都为低电平。

步骤八、对Port7口写入低电平,Port1~Port6、Port8口写高电平,读取KEYA~KEYC口的状态,Port7口控制PNP三极管Q7的基极电平,在对Port7口写低电平时,可以读到与Q7三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若拨码开关SW1的公共触点KEYB口与Q27断开,按键KEY3的公共触点KEYC口与Q33断开,则三极管Q7不工作,即KEYB、KEYC口都为高电平;

2、若拨码开关SW1的公共触点KEYB口与Q27断开,按键KEY3的公共触点KEYC口与Q33接通,PNP三极管Q7发射极断开,集电极与基极间的PN结正向导通,即KEYB为高电平,KEYC口为低电平;

3、若拨码开关SW1的公共触点KEYB口与Q27接通,按键KEY3的公共触点KEYC口与Q33断开,三极管Q7的发射极导通、集电极断开,即KEYB为低电平,KEYC口为高电平;

4、若拨码开关SW1的公共触点KEYB口与Q27接通,按键KEY3的公共触点KEYC口与Q33接通,此时PNP三极管Q7的发射极正偏,集电极与基极间的PN结正向导通,即KEYB、KEYC口都为低电平。

步骤九、对Port8口写入低电平,Port1~Port7口写高电平,读取KEYA~KEYC口的状态,Port8口控制PNP三极管Q8的基极电平,在对Port8口写低电平时,可以读到与Q8三极管集电极、发射极连接的开关引脚状态;

具体判断方法如下:

1、若拨码开关SW1的公共触点KEYB口与Q28断开,按键KEY4的公共触点KEYC口与Q34断开,则三极管Q8不工作,即KEYB、KEYC口都为高电平;

2、若拨码开关SW1的公共触点KEYB口与Q28断开,按键KEY4的公共触点KEYC口与Q34接通,PNP三极管Q8发射极断开,集电极与基极间的PN结正向导通,即KEYB为高电平,KEYC口为低电平;

3、若拨码开关SW1的公共触点KEYB口与Q28接通,按键KEY4的公共触点KEYC口与Q34断开,三极管Q8的发射极导通、集电极断开,即KEYB为低电平,KEYC口为高电平;

4、若拨码开关SW1的公共触点KEYB口与Q28接通,按键KEY4的公共触点KEYC口与Q34接通,此时PNP三极管Q8的发射极正偏,集电极与基极间的PN结正向导通,即KEYB、KEYC口都为低电平。

开关SW1公共触点(KEYB口)与图1中“Q28”通断状态和按键KEY4(KEYC口)与图1中“Q34”通断状态。第一轮所有开关的状态已判断读取结束。返回到步骤2)继续执行可进入下一轮开关状态的判断。

以上仅是本发明的具体应用范例,对本发明的保护范围不构成任何限制。凡采用等同变换或者等效替换而形成的技术方案,均落在本发明权利保护范围之内。

相关技术
  • 单片机IO口的扩展电路
  • 一种利用单片机IO口输出特性实现的互锁电路
技术分类

06120115592237