数据输出方法、装置及计算机可读介质与流程

文档序号:23350235发布日期:2020-12-18 16:55阅读:86来源:国知局
数据输出方法、装置及计算机可读介质与流程

本发明涉及通信技术领域,特别涉及数据输出方法、装置及计算机可读介质。



背景技术:

针对于一些负载较大的家电设备,需要io口较多的mcu芯片作为主控制器,家电领域中使用的mcu引脚数量通常为64个,为了满足控制负载较大的情况,就需要扩展引脚数量。

目前,扩展引脚数量的方法是使用外接的芯片,将串行的数据转换为并行的数据输出,从而达到扩展引脚的目的。然而,通过这种方式来进行数据输出,串行数据有可能被静电干扰,导致转换出的并行数据输出的是乱码,从而影响家电设备的使用,因此,需要一种能够克服静电干扰的数据输出方式。

申请号cn209823397u的方案提供了一种输入电压保护电路,包括保护器主体,所述保护器主体的外部固定安装有保护壳,所述保护器主体的前端外表面上端位置设置有电源输入端子,所述保护器主体的前端外表面下端位置设置有电源输出端子,所述保护器主体的前端外表面中间位置设置有显示屏与指示灯,所述显示屏位于指示灯的下方,所述电源输入端子与电源输出端子的数量均为两组。通过设置有一系列的结构使本装置在使用过程中能够对电路运行时产生的热量进行快速散热工作,比传统仅靠散热口来散热的效果要好得多,保证了保护器的使用寿命,并能够保证保护电路的工作湿度处于正常状态,可以避免因湿度过高而引起的短路现象。该发明仅可以避免因湿度过高而引起的短路现象,不能克服静电干扰。



技术实现要素:

本发明实施例提供了数据输出方法、装置及计算机可读介质,能够在克服静电干扰的情况下输出数据。

第一方面,本发明实施例提供了数据输出方法,应用于单片机,所述单片机上连接有扩展芯片;

接收外部发来的第一串行输据;

周期性地将所述第一串行输据发送给所述扩展芯片;

在所述扩展芯片将所述第一串行输据转换为第一并行数据之后,控制所述扩展芯片将所述第一并行数据输出。

优选地,

所述周期性地将所述第一串行输据发送给所述扩展芯片,包括:

在接收到外部发来的所述第一串行输据时,保存所述第一串行输据并开始累加时间,每当累加到预设的时间阈值时,将已保存的所述第一串行输据发送给所述扩展芯片,清空已累加的所述时间阈值重新开始累加时间。

优选地,

所述将所述第一串行输据发送给所述扩展芯片,包括:

确认所述第一串行输据的位数,根据所述位数给所述扩展芯片对应数量的移动脉冲,以使所述第一串行数据中的每一位串行数据依次进入所述扩展芯片。

优选地,

当接收到外部发来的第二串行输据时,删除已保存的所述第一串行输据;

优选地,

所述控制所述扩展芯片将所述第一并行数据输出,包括:

向所述扩展芯片的输出寄存器发送一个输出脉冲,以使所述扩展芯片的输出寄存器在接收到所述输出脉冲时将所述第一并行数据输出。

第二方面,本发明实施例提供了数据输出装置,包括:接收模块、发送模块和控制模块;

所述接收模块,用于接收外部发来的第一串行输据;

所述发送模块,用于周期性地将所述第一串行输据发送给所述扩展芯片;

所述控制模块,用于在所述扩展芯片将所述第一串行输据转换为第一并行数据之后,控制所述扩展芯片将所述第一并行数据输出。

优选地,

所述接收模块,在接收到所述第一串行输据时,保存所述第一串行输据;

所述发送模块,在执行所述周期性地将所述第一串行输据发送给所述扩展芯片时,具体执行:

在所述接收模块接收到外部发来的所述第一串行输据时,开始累加时间,每当累加到预设的时间阈值时,将所述接收模块已保存的所述第一串行输据发送给所述扩展芯片,清空已累加的所述时间阈值重新开始累加时间。

优选地,

所述发送模块,在执行所述将所述第一串行输据发送给所述扩展芯片时,具体执行:

确认所述第一串行输据的位数,根据所述位数给所述扩展芯片对应数量的移动脉冲,以使所述第一串行数据中的每一位串行数据依次进入所述扩展芯片。

优选地,

所述接收模块,用于当接收到外部发来的第二串行输据时,删除已保存的所述第一串行输据;

优选地,

所述控制模块,在执行所述控制所述扩展芯片将所述第一并行数据输出时,具体执行:

向所述扩展芯片的输出寄存器发送一个输出脉冲,以使所述扩展芯片的输出寄存器在接收到所述输出脉冲时将所述第一并行数据输出。

第三方面,本发明实施例提供了数据输出的装置,包括:至少一个存储器和至少一个处理器;

所述至少一个存储器,用于存储机器可读程序;

所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至4中任一所述的方法。

第四方面,本发明实施例提供了计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至4中任一所述的方法。

由上述技术方案可知,为了扩展引脚,而在单片机上连接了扩展芯片,扩展芯片包含多个引脚,从而能够扩展与单片机上连接的引脚。当单片机接收到了外部发来的需要输出的第一串行输据时,周期性的每隔到达预设的发送周期时,将第一串行数据发送给扩展芯片,扩展芯片能够将第一串行数据转换成第一并行数据,单片机在扩展芯片将第一串行数据转换为第一并行数据后,控制扩展芯片将第一并行数据输出。由此可见,单片机通过周期性的向扩展芯片发送第一串行数据,即使该第一串行数据被静电干扰,使得并行输出呈现乱码,但是到了下了发送周期时,单片机发送的串行数据就被正确的转换为并行数据,并行数据就会替代上个周期输出的乱码,从而起到了恢复乱码的作用,从而克服了静电干扰。因此,本发明提供的方案能够在克服静电干扰的情况下输出数据。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的数据输出方法的流程图;

图2是本发明一实施例提供的74hc595芯片的示意图;

图3是本发明一实施例提供的并行数据的输出方法的流程图;

图4是本发明一实施例提供的数据输出装置的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如前所述,针对于一些负载较大的家电设备,需要io口较多的mcu芯片作为主控制器,家电领域中使用的mcu引脚数量通常为64个,为了满足控制负载较大的情况,就需要扩展引脚数量。

目前,扩展引脚数量的方法是使用外接的芯片,将串行的数据转换为并行的数据输出,从而达到扩展引脚的目的。然而,通过这种方式来进行数据输出,串行数据有可能被静电干扰,导致转换出的并行数据输出的是乱码,从而影响家电设备的使用,因此,需要一种能够克服静电干扰的数据输出方式。

下面结合附图对本发明实施例提供的智能设备控制面板和智能设备控制系统进行详细说明。

如图1所示,本发明实施例提供了数据输出方法,应用于单片机,所述单片机上连接有扩展芯片,该方法可以包括以下步骤:

步骤101:接收外部发来的第一串行输据。

步骤102:周期性地将所述第一串行输据发送给所述扩展芯片。

步骤103:在所述扩展芯片将所述第一串行输据转换为第一并行数据之后,控制所述扩展芯片将所述第一并行数据输出。

具体来说,为了扩展引脚,而在单片机上连接了扩展芯片,扩展芯片包含多个引脚,从而能够扩展与单片机上连接的引脚。当单片机接收到了外部发来的需要输出的第一串行输据时,周期性的每隔到达预设的发送周期时,将第一串行数据发送给扩展芯片,扩展芯片能够将第一串行数据转换成第一并行数据,单片机在扩展芯片将第一串行数据转换为第一并行数据后,控制扩展芯片将第一并行数据输出。由此可见,单片机通过周期性的向扩展芯片发送第一串行数据,即使该第一串行数据被静电干扰,使得并行输出呈现乱码,但是到了下了发送周期时,单片机发送的串行数据就被正确的转换为并行数据,并行数据就会替代上个周期输出的乱码,从而起到了恢复乱码的作用,从而克服了静电干扰。因此,本发明提供的方案能够在克服静电干扰的情况下输出数据。

在本发明一实施例中,所述周期性地将所述第一串行输据发送给所述扩展芯片,包括:

在接收到外部发来的所述第一串行输据时,保存所述第一串行输据并开始累加时间,每当累加到预设的时间阈值时,将已保存的所述第一串行输据发送给所述扩展芯片,清空已累加的所述时间阈值重新开始累加时间。

具体来说,比如说时间阈值设置为200ms,当接收到第一串行数据时,将第一串行数据进行保存,开始以1ms为变量累加时间,当累加到200ms时,就将第一串行数据发送给扩展芯片。发送完毕后,将计数器清零并重新开始计时,到达200ms时再次将第一串行数据发送给扩展芯片,如此反复。这样一来,即使某次发送的第一串行数据被静电干扰而形成了乱码,200ms之后又有了同样的第一串行数据,从而间接达到了恢复被静电干扰的数据的作用。

在本发明一实施例中,所述将所述第一串行输据发送给所述扩展芯片,包括:

确认所述第一串行输据的位数,根据所述位数给所述扩展芯片对应数量的移动脉冲,以使所述第一串行数据中的每一位串行数据依次进入所述扩展芯片。

具体来说,串行数据的位数决定了将串行数据输入扩展芯片所需要的移动脉冲次数,单片机每产生一个上升沿的移动脉冲,将串行数据中的一位输入到扩展芯片中,单片机的串行数据在移位时钟下,将数据从左到右依次按位输入扩展芯片。比如说串行数据有8位,那么就需要产生8次移动脉冲才能将串行数据输入扩展芯片,最先从单片机输出的值就会走得越远,类似于8位数据排队输出,所以如果我们先输出数据高位的话,最高位的值在8个脉冲后就会移动到扩展芯片的最远处,通常为输出引脚。

在本发明一实施例中,当接收到外部发来的第二串行输据时,删除已保存的所述第一串行输据。

具体来说,单片机一直在周期性的将第一串行数据发送给扩展芯片,处于一个计时-发送的循环中,当接收到新的第二串行数据,第一串行数据就不再需要进行输出了,因此,删除已保存的第一串行数据,此时,由于没有以保存的串行数据了,因此计时也会停止累加时间。之后,将第二串行数据进行保存,并且开始计数,开始周期性的向扩展芯片发送第二串行数据。

在本发明一实施例中,所述控制所述扩展芯片将所述第一并行数据输出,包括:

向所述扩展芯片的输出寄存器发送一个输出脉冲,以使所述扩展芯片的输出寄存器在接收到所述输出脉冲时将所述第一并行数据输出。

具体来说,扩展芯片接收到第一串行数据后,将第一串行数据转换成第一并行数据并锁存在扩展芯片的输出寄存器中,并行数据被保存在输出寄存器的各个输出引脚中。对于第一并行数据的输出,只需要单片机发送一个输出脉冲,输出寄存器的各个输出引脚就可以将锁存的第一并行数据输出。

下面结合本发明的一些实施例来对本发明提供的方案做详细的解释。

大容积冰箱的负载数量比较多,需要io口较多的mcu芯片做主控制器,比如说电控板与旋钮灯板之间的数据传递,旋钮灯板会根据接收到的数据进行灯光的闪烁。扩展芯片通常采用74hc595芯片,它可以把单片机的3个引脚拓展成8个,满足大容积冰箱负载数量的要求。该芯片的作用是将8为串行数据转换为8位并行数据,实现对单片机输出引脚数量的扩展。

如图2所示,74hc595芯片由三个寄存器组成,分别是8bit移位寄存器201,8bit锁存寄存器202和输出寄存器203组成,74hc595芯片与单片机有三个引脚,分别是数据信号ds,移位号shcp,锁存时钟信号stcp。单片机的串行数据在移位时钟下,将数据从左到右依次按bit存入移位寄存器。

数据从移位寄存器201的ds引脚输入,从下方的引脚输出锁存寄存器202,每次单片机通过移位脉冲引脚提供一个脉冲,d引脚的数据就会输出并保持到输出引脚,因为这里的移位脉冲引脚shcp是连到每一个输出引脚上的,所以自然每次给一个移位脉冲的时候,所有的数据都向后移动了一位。这里我们注意到,ds引脚连接的是串行数据输入,也就是单片机的数据引脚。所以每次给脉冲移位之前,我们需要准备好该引脚的值,因为每次给一个脉冲,它的数据就会移入后方。

我们给几个脉冲,数据引脚就会有几次被移入移位寄存器,并且这些值会保持在各个移位寄存器201的输出引脚。所以假设我们要将一个字节移入移位寄存器,因为1个字节是8位的,所以我们需要给出8个脉冲,那么移位寄存器201的输出引脚就保持了这8位值,再看看这8位值,它是先在数据引脚输出的值就会走得越远,所以如果我们先输出数据高位的话,最高位在8个脉冲后就会跑到移位寄存器的输出引脚。这就像我们排队一样,一个寄存器里面有8个位置,每次给一个脉冲就好比给每位数据发送一次呼叫:“向前移动一位。”就这样,队伍不断的往前移,直至占满8个输出引脚,形成并行数据。若超过8位数据,就会从q7s引脚溢出。

锁存寄存器202用于锁存一位寄存器201的输出引脚发来的并行数据,然后将并行数据锁存到输出引脚中。单片机通过stcp产生输出脉冲,让stcp产生上升沿,并将oe非引脚置为低电平,并行数据就可以从q0-q7引脚输出了。即使输出的并行数据收到了静电干扰,导致旋钮灯板发出非用户期望的亮光,然而200ms后,并行数据会再次被输入到旋钮灯板上,使旋钮灯板正常发光。

并行数据的输出方法的流程图如图3所示,在1ms中断里,累加记录时间,当200ms到了时就mcu就发送一个字节到74hc595片,到一个字节发送完毕时,将计时器清零,重新开始计时,用这种方式实现周期性的给74hc595芯片发送字节,从而达到恢复被静电干扰的数据。

如图4所示,本发明一实施例提供了数据输出装置,包括:接收模块401、发送模块402和控制模块403;

所述接收模块401,用于接收外部发来的第一串行输据;

所述发送模块402,用于周期性地将所述第一串行输据发送给所述扩展芯片;

所述控制模块403,用于在所述扩展芯片将所述第一串行输据转换为第一并行数据之后,控制所述扩展芯片将所述第一并行数据输出。

在本发明一实施例中,所述接收模块401,在接收到所述第一串行输据时,保存所述第一串行输据;

所述发送模块402,在执行所述周期性地将所述第一串行输据发送给所述扩展芯片时,具体执行:

在所述接收模块401接收到外部发来的所述第一串行输据时,开始累加时间,每当累加到预设的时间阈值时,将所述接收模块已保存的所述第一串行输据发送给所述扩展芯片,清空已累加的所述时间阈值重新开始累加时间。

在本发明一实施例中,所述发送模块402,在执行所述将所述第一串行输据发送给所述扩展芯片时,具体执行:

确认所述第一串行输据的位数,根据所述位数给所述扩展芯片对应数量的移动脉冲,以使所述第一串行数据中的每一位串行数据依次进入所述扩展芯片。

在本发明一实施例中,所述接收模块401,用于当接收到外部发来的第二串行输据时,删除已保存的所述第一串行输据;

在本发明一实施例中,所述控制模块403,在执行所述控制所述扩展芯片将所述第一并行数据输出时,具体执行:

向所述扩展芯片的输出寄存器发送一个输出脉冲,以使所述扩展芯片的输出寄存器在接收到所述输出脉冲时将所述第一并行数据输出。

可以理解的是,本发明实施例示意的结构并不构成对数据输出装置的具体限定。在本发明的另一些实施例中,数据输出装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

本发明还提供了一种计算机可读介质,存储用于使一计算机执行如本文所述的数据传输方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或cpu或mpu)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如cd-rom、cd-r、cd-rw、dvd-rom、dvd-ram、dvd-rw、dvd+rw)、磁带、非易失性存储卡和rom。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的cpu等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

本发明各个实施例至少具有以下优点:

1、在本发明实施例中,单片机通过周期性的向扩展芯片发送第一串行数据,即使该第一串行数据被静电干扰,使得并行输出呈现乱码,但是到了下了发送周期时,单片机发送的串行数据就被正确的转换为并行数据,并行数据就会替代上个周期输出的乱码,从而起到了恢复乱码的作用,从而克服了静电干扰。因此,本发明提供的方案能够在克服静电干扰的情况下输出数据。

2、在本发明实施例中,使用74hc595芯片可以把单片机的3个引脚拓展成8个,以满足大容积冰箱负载数量的要求。

需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1