智能总线式开关系统装置的制作方法

文档序号:6321542阅读:373来源:国知局
专利名称:智能总线式开关系统装置的制作方法
技术领域
本实用新型涉及一种电灯开关装置,特别是一种智能总线式开关系统装置。
背景技术
在工作和学习中,常常碰到这样的难题当停电后来再来电时,不该亮灯的地方仍然亮着;晚上回到家时,因为找不到开关而倍感烦恼;晚上睡觉了,不知道调皮的小孩子房间是否仍然亮着灯,为了解决这些问题要求在一个地方可以控制多盏灯;在多处地方可以控制一盏灯;在每一个开关面板上可观察到不同地方灯的亮或灭;停电后,再来电时,灯应处于熄灭状态;另外可以查询各个房间灯的工作状态并配有语音提示,同时,可靠性要高。但是,采用复杂的布线来实现一个地方可以控制多盏灯是极不现实的。不仅因为需要大量导线,而且施工几乎不能完成,工作量极大。

发明内容
本实用新型的目的是提供一种智能总线式开关系统装置,通过设置分布式控制模块可以实现以下功能在一个地方可以控制多盏灯;在多处地方可以控制一盏灯;在每一个开关面板上可观察到不同地方灯的亮或灭;停电后,再来电时,灯应处于熄灭状态;可以查询各个房间灯的工作状态并配有语音提示。
本实用新型的上述目的是这样实现的,一种智能总线式开关系统装置,其特征在于包括多个开关模块,其每个开关模块包括一个开关组、一个处理器和一个编码器,其中所述处理器的键盘端口和控制端口分别连接所述开关组和编码器,并通过扫描开关组的按键状态控制编码器编码;多个接收模块,其每个接收模块包括一个译码器、一个处理器和控制灯泡通断的可控开关,其中所述处理器的分别连接所述译码器和所述继电器,所述译码器对所接收的编码信号进行译码,处理器根据译码器的译码结果控制可控开关进行通断操作;一条通信总线,将上述开关模块和接收模块互联,实现信号通信;一个降压整流装置,其输入端连接交流供电线路,经降压整流的直流电压通过输出端供应给上述开关模块和接收模块。
这样,开关模块通过扫描开关组的按键状态进行编码,该编码信号经某一接收模块的译码器正确译码后控制有该接收模块所属的灯泡通断,从而实现了总线式智能控制。
其中,所述开关模块还包括一个语音芯片和指示灯,以显示各个开关模块的编码状态。
其中,所述开关模块还包括一个编译码器,对经由通信总线接收的其它开关模块编码信号进行译码,译码结果送入处理器处理,之后通过指示灯或语音模块显示,从而显示不同地方的灯泡的通断状态。
其中,所述接收模块还包括一个控制灯泡通断的手动开关装置,以便用户手控开灯。
其中,所述开关模块的编码器是双音多频编码器。
其中,所述开关模块的编码器是MT8880芯片。
其中,所述接收模块的译码器是双音多频解码器。
其中,所述接收模块的译码器是MT8880芯片。
其中,所述接收模块的可控开关是继电器。
以下结合附图以具体实例对本实用新型进行详细说明。


图1是本实用新型的电路方框图;图2是开关模块的结构框图;图3是图2所述开关模块的电原理图;图4是开关模块主程序流程图;图5示出了微处理器与开关组的连接关系;图6示出了开关模块中所设置的语音芯片与微处理器的连接关系;图7示出开关模块的译码电路、编码电路与微处理器的连接关系;图8是接收模块的方框图;图9是接收模块的电路图;
图10是本实用新型另一实施例的电路图。
具体实施方式
图1是本实用新型的电路方框图。包括多个开关模块,其每个开关模块包括一个开关组、一个处理器和一个编码器,其中所述处理器的键盘端口和控制端口分别连接所述开关组和编码器,并通过扫描开关组的按键状态控制编码器编码;多个接收模块,其每个接收模块包括一个译码器、一个处理器和控制灯泡通断的可控开关,其中所述处理器的分别连接所述译码器和所述继电器,所述译码器对所接收的编码信号进行译码,处理器根据译码器的译码结果控制可控开关进行通断操作;一条通信总线,将上述开关模块和接收模块互联,实现信号通信;一个降压整流装置,其输入端连接交流供电线路,经降压整流的直流电压通过输出端供应给上述开关模块和接收模块。
这样,开关模块通过扫描开关组的按键状态进行编码,该编码信号经某一接收模块的译码器正确译码后控制有该接收模块所属的灯泡通断,从而实现了总线式智能控制。
图2是开关模块的结构框图。图3是图2所述开关模块的电原理图。如图2、图3所示,微处理器是一个CPU,将开关的状态信号进行收集处理,并通过与接口相接的双音频信号编码器MT8880将开关信号编码发送出至总线上。CPU微处理器采用AT89C52单片机芯片。微处理器周期性地查询八个开关的状态,在没键按下时,CPU处理器循环查询键的状态;在有键按下时,CPU判断是那一个键,并经过处理后,与MT88800接口相联,MT88800是一个双音频编译码芯片,它实现图2中的双音频信号编码和双音频信号发射器的功能。从MT88800的OUT线输出已经编码好的信息到总线上。其程序框图如图4所示。
图5示出了微处理器与开关组即键盘的连接关系。如图5所示,键盘接在AT89C52的P1口,采取行反转法扫描键盘,键盘的8个引脚都通过2.2K的上拉电阻接到+5V电源上。先从p1.0到p1.3送出低电平,将p1.4到p1.7的状态读进来(注意在读外部状态时要先在端口送高电平)。若无键按下,则采到的数据为1111;若有键按下,则相应的列会变为低电平。若有键按下,即采到的数据不是1111,则从p1.4到p1.7将这个数据送出(若只有一个键按下,则只有一个引脚送出低电平),将p1.0到p1.3的状态读进来,若这个键还在按下的状态,则采进来的数据就不是1111。将两次采到的数据组合为一个字节,就是该键所对应的编号。
去抖动是键盘扫描的一个重要步骤,这里采用软件去抖动。第一次从p1.4到p1.7采进来的数据不是1111后,做一个延时,然后再采数据,若还不是1111,则认为不是抖动;若第二次采到的数据是1111,则认为第一次采到的数据是抖动,不做处理。
若出现重键,有许多处理方法。可以通过软件设置每一个键的优先级,当重键出现时,先处理优先级高的键。此处采用的方法是,若扫描到重键,则不做任何处理,直到有一个键放开。此方法是通过查询键编号表实现的,若出现重键,则它的编号一定不在单个键的编号表里,若在单个键的编号表里没有查到它的编号,则不做任何处理。
此程序是在扫描到有键按下时通过P2口显示不同的数据。
源程序<pre listing-type="program-listing">  ORG 0000H  SJMP BG  ORG 0030HBGMOV P1,#0F0H  MOVA,P1  ANL A,#0F0H  CJNE A,#0F0H,AAA;若采到的数据不为1111,则转  SJMP BG;若数据为1111,即无键按下,则继续扫描AAAMOV R7,#12;延时,以去抖动THMOV R6,#0FFHHEREDJNZ R6,HERE  DJNZ R7,TH  MOV B,A  MOV P1,#0FH  MOV A,P1  ANL A,#0FH  CJNE A,#0FH,BBB;采集编号的第二部分,若不为1111,则转  SJMP BG;若数据为1111,则认为是抖动,不做处理&lt;dp n="d4"/&gt;BBBORL A,B;得到编号  MOV B,A;放在B保存  MOV R0,#00H;R0用来计数&lt;br/&gt;EEEMOV A,R0  MOV DPTR,#TAB1;TAB1为键编号表,此句取表头  MOVC A,@A+DPTR;取编号  INC R0  CJNE A,B,CCC;若数据与编号不相同,则转CCC继续比较  SJMP DDD;若数据与编号相同,则转DDDCCCCJNE R0,#10H,EEE  AJMP BG;若查完键编号表都不符合(可能是出现重键),不做处理DDDDEC R0  MOV A,R0  RL A  MOV DPTR,#TAB2  JMP@A+DPTR;跳转到响应的处理子程序TAB2AJMP NO0  AJMP NO1  AJMP NO2  AJMP NO3  AJMP NO4  AJMP NO5  AJMP NO6  AJMP NO7  AJMP NO8  AJMP NO9  AJMP LLA  AJMP LLB  AJMP LLC  AJMP LLD  AJMP LLE  AJMP LLFTAB1DB 0E7H,0EBH,0EDH,0EEH  DB 0D7H,0DBH,0DDH,0DEH&lt;dp n="d5"/&gt;  DB 0B7H,0BBH,0BDH,0BEH  DB 077H,07BH,07DH,07EHNO0MOV P2,#00H  LJMP BGNO1MOV P2,#01H  LJMP BGNO2MOV P2,#02H  LJMP BGNO3MOV P2,#03H  LJMP BGNO4MOV P2,#04H  LJMP BGNO5MOV P2,#05H  LJMP BGNO6MOV P2,#06H  LJMP BGNO7MOV P2,#07H  LJMP BGNO8MOV P2,#08H  LJMP BGNO9MOV P2,#09H  LJMP BGLLAMOV P2,#0AH  LJMP BGLLBMOV P2,#0BH  LJMP BGLLCMOV P2,#0CH  LJMP BGLLDMOV P2,#0DH  LJMP BGLLEMOV P2,#0EH  LJMP BGLLFMOV P2,#0FH  LJMP BGEND</pre>
图6示出了开关模块中所设置的语音芯片与微处理器的连接关系。开关模块设有语音芯片ISD4004,具有录放功能,通过语音显示(提示)各开关模块的状态。
语音频片ISD4004是通过串行方式同单片机进行通讯的,它具有录放功能,指令表如下

此程序的功能是当开关PLAY/REC为高电平或悬空时处于录音模式,为低电平时处于放音模式。按下AN时开始录/放音,录音时需长按,放音时每按一下放一段。STOP键用于切换录/放模式,按下STOP键后,从零地址开始录/放音。
源程序<pre listing-type="program-listing">  SS EQU P1.0  SCLK EQU P1.1  MOSI EQU P1.2  MISO EQU P1.3  LED EQU P1.7  INT EQU INT0  AN EQU P1.6  STOP EQU P1.5  PR EQU P1.4  ORG 0000H&lt;dp n="d7"/&gt;  SJMP BG  ORG 0030HBGMOV SP,#10HMAIISETB LED;灭灯  ACALL DSTOP;掉电MASOMOV 3AH,#200MASIJB AN,MASO;等待按下AN键  DJNZ 3AH,MASI;去抖动  ACALL UP;上电  MOV 20H,#00H;低位地址  MOV 21H,#00H;高位地址  JB PR,REC;PR=1录音  AJMP PLAY;PR=0放音RECMOV A,20H;送低位地址  ACALL ISDX  MOV A,21H;送高位地址  ACALL ISDX  MOV A,#0A0H;送指令,从指定地址录音  ACALL ISDX  SETB SSREC1MOV 36H,#10REC2ACALL YS50;延时录音  DJNZ 36H,REC2  CLR LED;开灯  MOV A,#0B0H;送指令,从当前地址开始录音  ACALL ISDX  SETB SSREC3MOV 35H,#200REC4JNB INT,REC7;OVF=0芯片溢出  JNB AN,REC3  DJNZ 35H,REC4;去抖动  SETB LED;关灯  ACALL STOPP;停止当前操作REC5JNB STOP,REC6;STOP键按下则转  JB AN,REC5;等待AN键按下&lt;dp n="d8"/&gt;  ACALL STOPP;停止当前操作  AJMP REC1REC6CLR SCLK  SETB SS  ACALL STOPP  AJMP MAIIREC7SETB LED;灭灯  MOV 36H,#15REC8ACALL YS50  JB AN,REC6;等待AN键放开  DJNZ 36H,REC8;延时  CLR LED;开灯  MOV 36H,#15REC9ACALL YS50  JB AN,REC6;等待AN键放开  DJNZ 36H,REC9;延时  AJMP REC7PLAYJNB AN,PLAY;等待AN键按下  MOV A,20H;送低位地址  ACALL ISDX  MOV A,21H;送高位地址  ACALL ISDX  MOV A,#0E0H;送指令,从指定地址放音  ACALL ISDX  SETB SSPLAY1CLR LED;开灯  MOV A,#0F0H;送指令,从当前地址开始放音  ACALL ISDX  SETB SSPLAY2JNB STOP,REC6;STOP键按下,则停止放音  JB INT,PLAY2;无OVF,EOM则继续放音  SETB LED;灭灯  ACALL STOPP;停止当前操作  CLR SS  CLR SCLK&lt;dp n="d9"/&gt;  SETB SCLK  JB MISO,REC6;芯片是否溢出,是则转  CLR SCLK  SETB SS  ACALL STOPP;停止当前操作PLAY3JNB STOP,REC6;中断放音  JB AN,PLAY3;等待AN键按下  AJMP PLAY1;放下一段UPMOV A,#20H;送指令,上电  ACALL ISDX  SETB SS  ACALL YS50;延时  ACALL YS50  RETSTOPPMOV A,#30H;送指令,停止当前操作  ACALL ISDX  SETB SS  ACALL YS50  ACALL YS50  RETDSTOPMOV A,#10H;送指令,停止当前操作并掉电  ACALL ISDX  SETB SS  ACALL YS50  ACALL YS50  RETISDXCLR SS;送数据子程序  MOV R6,#8  CLR SCLKISDIMOV C,ACC.0  MOV MOSI,C  SETB SCLK  RR A  CLR SCLK  DJNZ R6,ISDI&lt;dp n="d10"/&gt;  RETYS1MOV TMOD,#01H  MOV TH0,#0D8H  MOV TL0,#0F0H  SETB TR0  JNB TF0,$  CLR TF0  CLR TR0  RETYS50MOV TMOD,#01H  MOV TH0,#3CH  MOV TL0,#0B0H  SETB TR0  JNB TF0,$  CLR TF0  CLR TR0  RETEND</pre>另外,开关模块还具有译码电路,图7示出了这一情况,其中上部的MT8880是编码芯片,下部的MT8880是译码芯片。
此处用一片单片机控制两片MT8880,一片负责发送一个双音多频信号,另一片在正确接收后将数据送到发光二极管上显示。
源程序<pre listing-type="program-listing">  CP2 EQU P2.4  RSS2 EQU P2.5  CS2 EQU P2.6  RW2 EQU P2.7  CP1 EQU P1.4   RSS1 EQU P1.5  CS1 EQU P1.6  RW1 EQU P1.7  ORG 0000H  SJMP BG  ORG 0003H;外部中断0  LJMP INTT&lt;dp n="d11"/&gt;  ORG 0030HBGMOV R5,#10H;上电延时H2MOV R6,#255H1MOV R7,#255HEREDJNZ R7,HERE  DJNZ R6,H1  DJNZ R5,H2  SETB EA  SETB EX0;开外部中断0  CLR CS1;初始化一片MT8880  CLR CP1  SETB RW1  SETB RSS1  SETB CP1  LCALL WAIT  CLR CP1  CLR RW1  LCALL WAIT  ANL P1,#0F0H  SETB CP1  LCALL WAIT  CLR CP1  ANL P1,#0F0H  SETB CP1  LCALL WAIT  CLR CP1  SETB P1.3  SETB CP1  LCALL WAIT  CLR CP1  CLR P1.3  SETB CP1  LCALL WAIT  CLR CP1  SETB RW1&lt;dp n="d12"/&gt;  SETB CP1  LCALL WAIT  CLR CP1  CLR RW1  SETB P1.3  SETB P1.2  CLR P1.1  SETB P1.0  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  clr P1.0  CLR P1.1  CLR P1.2  CLR P1.3  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  CLR CS2;初始化另一片MT8880  CLR CP2  SETB RW2  SETB RSS2  SETB CP2  LCALL WAIT  CLR CP2  CLR RW2  LCALL WAIT  ANL P2,#0F0H  SETB CP2  LCALL WAIT  CLR CP2  ANL P2,#0F0H&lt;dp n="d13"/&gt;  SETB CP2  LCALL WAIT  CLR CP2  SETB P2.3  SETB CP2  LCALL WAIT  CLR CP2  CLR P2.3  SETB CP2  LCALL WAIT  CLR CP2  SETB RW2  SETB CP2  LCALL WAIT  CLR CP2  CLR RW2  SETB P2.3  CLR P2.2  CLR P2.1  SETB P2.0  LCALL WAIT  SETB CP2  LCALL WAIT  CLR CP2  clr P2.0  CLR P2.1  CLR P2.2  CLR P2.3  LCALL WAIT  SETB CP2  LCALL WAIT  CLR CP2  CLR RSS2  ANL P2,#0F0H;送出数字0101所代表的双音多频信号  setb p2.2&lt;dp n="d14"/&gt;  setb p2.0  LCALL WAIT  SETB CP2  LCALL WAIT  CLR CP2  SJMP $;等待中断WAITMOV R7,#0FFH;延时子程序SSSNOP  DJNZ R7,SSS  RETINTTPUSH P1;中断服务子程序  CLR CP1  CLR CS1  SETB RSS1  SETB RW1  SETB CP1  LCALL WAIT  ORL P1,#0FH  MOV A,P1  CLR CP1  JNB ACC.2,RE;若中断不是因为接受到双音多频信号,则转  CLR RSS1  SETB CP1  LCALL WAIT  ORL P1,#0FH  MOV A,P1  CLR CP1  MOV C,ACC.0;将得到的数据送到发光二极管显示,正确接收时应显示0101  MOV P3.4,C  MOV C,ACC.1  MOV P3.5,C  MOV C,ACC.2  MOV P3.6,C  MOV C,ACC.3&lt;dp n="d15"/&gt;  MOV P3.7,CREPOP P1  RETIEND</pre>图8示出了接收模块内部结构。将总线上接收到的DTMF编码信号通过MT88800芯片解码。CPU通过查询MT8880的状态寄存器来判断是否有信号接收。当有信号接收时,CPU将接收的数据与自身的地址相比较,判断是否与本地址相符,如果符合,表明本地灯开关闭合或关断;如果不相符合,CPU将不作出输出处理。其电原理图如图9所示,其中CPU通过一个晶体管控制继电器工作,继电器又控制灯泡通断。CPU可采用AT89C1051或89C2051,以降低成本。
图10示出了只有一个开关模块的本实用新型另一实施例的电路图。该电路原理与上述说明基本相同,在此省略对其说明。需要注意的是,各接收模块增加了一个由手动开关和芯片74LS86组成的用户开关,以方便各地的用户手动开灯。
该实施例的是这样操作的,在主控模块中,89C52不断地扫描键盘,如果“1”键按下,则通过8880送出相应指令,使1号灯的状态改变;如果“2”键按下,则改变2号灯的状态;如果“F”键按下,则通过语音芯片4004报告两个灯的状态。开放外部中断0,当8880正确接收到双音多频信号后,向89C52提出中断申请。在接收模块中,当检测到灯的状态发生了改变,则通过8880向主控模块报告。主控模块正确接收到这个信号后,进行语音提示。
89C52的源程序<pre listing-type="program-listing">  SS EQU P3.0  SCLK EQU P3.1  MOSI EQU P3.4   MISO EQU P3.5  INT EQU INT1  CP1 EQU P2.4  RSS1 EQU P2.5  CS1 EQU P2.6  RW1 EQU P2.7  ORG 0000H  SJMP BG  ORG 0003H  LJMP INTT&lt;dp n="d16"/&gt;  ORG 0030HBGMOV R5,#10HH2MOV R6,#255H1MOV R7,#255HEREDJNZ R7,HERE  DJNZ R6,H1  DJNZ R5,H2  SETB EA  SETB EX0  MOV SP,#27H  CLR CS1;初始化MT8880  CLR CP1  SETB RW1  SETB RSS1  SETB CP1  LCALL WAIT  CLR CP1  CLR RW1  LCALL WAIT  ANL P2,#0F0H  SETB CP1  LCALL WAIT  CLR CP1  SETB CP1  LCALL WAIT  CLR CP1  SETB P2.3  SETB CP1  LCALL WAIT  CLR CP1  CLR P2.3  SETB CP1  LCALL WAIT  CLR CP1  SETB RW1&lt;dp n="d17"/&gt;  SETB CP1  LCALL WAIT  CLR CP1  CLR RW1  SETB P2.3  SETB P2.2  CLR P2.1  SETB P2.0  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  ANL P2,#0F0H  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1KEYMOV P1,#0F0H;扫描键盘  MOV A,P1  ANL A,#0F0H  CJNE A,#0F0H,AAA;若有键按下,则转  LCALL DELAY;若无键按下  MOV P1,#0F0H  MOV A,P1  ANL A,#0F0H  CJNE A,#0F0H,AAA  CLR 00H;确认无键按下,清位地址00H,目的在于确认键松开了  SJMP KEYAAAJB 00H,KEY;若键未松开,则转  LCALL DELAY  MOV B,A  MOV P1,#0FH  MOV A,P1  ANL A,#0FH&lt;dp n="d18"/&gt;  CJNE A,#0FH,BBB  SJMP KEY;若是抖动BBBORL A,B;组合成键的编号  MOV B,A  MOV R0,#00HEEEMOV A,R0  MOV DPTR,#TAB1  MOVC A,@A+DPTR;从键编号表中取编号  INC R0  CJNE A,B,CCC;若不是这个编号,则再取下一个编号  SJMP DDD;若查到键的编号CCCCJNE R0,#10H,EEE  AJMP KEYDDDSETB 00H  DEC R0  MOV A,R0  RL A  MOV DPTR,#TAB2  JMP@A+DPTR;通过跳转表到达键所对应的子程序TAB2AJMP NO0  AJMP NO1  AJMP NO2  AJMP NO3  AJMP NO4  AJMP NO5  AJMP NO6  AJMP NO7  AJMP NO8  AJMP NO9  AJMP LLA  AJMP LLB  AJMP LLC  AJMP LLD  AJMP LLE  AJMP LLF&lt;dp n="d19"/&gt;TAB1DB 0E7H,0EBH,0EDH,0EEH;键编号表DB 0D7H,0DBH,0DDH,0DEH  DB 0B7H,0BBH,0BDH,0BEH  DB 077H,07BH,07DH,07EHNO0MOV R3,#00H;送出指令0F,使0号灯状态改变  MOV R4,#0FH  LCALL SEND  LJMP KEYNO1MOV R3,#01H;送出指令1F,使1号灯状态改变  MOV R4,#1FH  LCALL SEND  LJMP KEYNO2LJMP KEY;未做处理,留作扩展更多灯时用NO3LJMP KEYNO4LJMP KEYNO5LJMP KEYNO6LJMP KEYNO7LJMP KEYNO8LJMP KEYNO9LJMP KEYLLALJMP KEYLLBLJMP KEYLLCLJMP KEYLLDLJMP KEYLLELJMP KEYLLFjb 01h,mmm;语音提示子程序  mov 70h,#00h  mov 71h,#01h  acall play  sjmp nnnmmmmov 70h,#00h  mov 71h,#02h  acall playnnnjb 02h,ooo  mov 70h,#00h&lt;dp n="d20"/&gt;  mov 71h,#03h  acall play  ljmp keyooomov 70h,#00h  mov 71h,#04h  acall play  ljmp keyWAITMOV R7,#0FFHSSSNOP  DJNZ R7,SSS  RETINTTCLR CP1;中断服务子程序  CLR CS1  SETB RSS1  SETB RW1  SETB CP1  LCALL WAIT  ORL P2,#0FH  MOV A,P2  CLR CP1  JNB ACC.2,RE  CLR RSS1  SETB CP1  LCALL WAIT  ORL P2,#0FH  MOV A,P2  CLR CP1  ANL A,#0FH  MOV B,A  MOV A,26H  SWAP A  ANL A,#0F0H  ORL A,B  MOV 26H,A  MOV R0,#00H&lt;dp n="d21"/&gt;  MOV DPTR,#TAA1LOOOPMOV A,R0  MOVC A,@A+DPTR  CJNE A,26H,DDE  AJMP EEFDDEINC R0  CJNE R0,#04H,LOOOP  SJMP REEEFMOV A,R0  RL A  MOV DPTR,#TAA2  JMP@A+DPTRTAA2AJMP L0M  AJMP L0L  AJMP L1M  AJMP L1LL0MCLR P0.0  clr 01h  mov 70h,#00h  mov 71h,#01h  ACALL play  SJMP REL0LSETB P0.0  setb 01h  mov 70h,#00h  mov 71h,#02h  ACALL play  SJMP REL1MCLR P0.1  clr 02h  mov 70h,#00h  mov 71h,#03h  ACALL play  SJMP REL1LSETB P0.1&lt;dp n="d22"/&gt;  setb 02h  mov 70h,#00h  mov 71h,#04h  ACALL playRERETITAA1DB 0DH,0CH,1DH,1CHSENDMOV P2,R3;通过8880送指令的子程序  ANL P2,#0FH  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  ACALL DELAY1  MOV P2,R4  ANL P2,#0FH  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  RETDELAYMOV R7,#12THMOV R6,#0FFHHERDJNZ R6,HER  DJNZ R7,TH  RETDELAY1MOV R7,#0e0HTH2MOV R6,#0FFHHER1DJNZ R6,HER1  DJNZ R7,TH2  RETPLAYMOV A,70H;控制4004发音子程序  ACALL ISDX  MOV A,71H  ACALL ISDX  MOV A,#0E0H&lt;dp n="d23"/&gt;  ACALL ISDX  SETB SSPLAY1MOV A,#0F0H  ACALL ISDX  SETB SSPLAY2JB INT,PLAY2  ACALL STOPPUPMOV A,#20H  ACALL ISDX  SETB SS  ACALL YS50  ACALL YS50  RETSTOPPMOV A,#30H  ACALL ISDX  SETB SS  ACALL YS50  ACALL YS50  RETDSTOPMOV A,#10H  ACALL ISDX  SETB SS  ACALL YS50  ACALL YS50  RETISDXCLR SS  MOV R6,#8  CLR SCLKISDIMOV C,ACC.0  MOV MOSI,C  SETB SCLK  RR A  CLR SCLK  DJNZ R6,ISDI  RET&lt;dp n="d24"/&gt;YS50MOV TMOD,#01H  MOV TH0,#3CH  MOV TL0,#0B0H  SETB TR0  JNB TF0,$  CLR TF0  CLR TR0  RETEND</pre>0号89C2051的源程序<pre listing-type="program-listing">  CP1 EQU P1.4  RSS1 EQU P1.5  CS1 EQU P1.6  RW1 EQU P1.7  D3 EQU P1.3  D2 EQU P1.2  D1 EQU P3.1  D0 EQU P3.0  ORG 0000H  SJMP BG  ORG 0003H  LJMP INTT  ORG 0030HBGMOV R5,#10HH2MOV R6,#255H1MOV R7,#255HEREDJNZ R7,HERE  DJNZ R6,H1  DJNZ R5,H2  SETB EA  SETB EX0  CLR CS1;初始化8880  CLR CP1  SETB RW1&lt;dp n="d25"/&gt;  SETB RSS1  SETB CP1  LCALL WAIT  CLR CP1  CLR RW1  LCALL WAIT  CLR D3  CLR D2  CLR D1  CLR D0  SETB CP1  LCALL WAIT  CLR CP1  SETB CP1  LCALL WAIT  CLR CP1  SETB D3  SETB CP1  LCALL WAIT  CLR CP1  CLR D3  SETB CP1  LCALL WAIT  CLR CP1  SETB RW1  SETB CP1  LCALL WAIT  CLR CP1  CLR RW1  SETB D3  SETB D2  CLR D1  SETB D0  LCALL WAIT  SETB CP1&lt;dp n="d26"/&gt;  LCALL WAIT  CLR CP1  CLR D0  CLR D1  CLR D2  CLR D3  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1HHHMOV R5,#10H;延时Ha2MOV R6,#255Ha1MOV R7,#255HEREaDJNZ R7,HEREa  DJNZ R6,Ha1  DJNZ R5,Ha2  SETB P3.5  MOV C,P3.5;采集灯的开关状态  JC ABC  jnb 00h,hhh;若状态没有改变,则转  clr 00h  MOV R3,#00H;若状态改变,则通过8880送出指令通知主控模块  MOV R4,#0cH  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL SEND  ajmp hhhABCjb 00h,hhh&lt;dp n="d27"/&gt;  setb 00h  MOV R3,#00H  MOV R4,#0dH  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL SEND  ajmp hhhWAITMOV R7,#0FFHSSSNOP  DJNZ R7,SSS  RETINTTCLR CP1;中断服务子程序  CLR CS1  SETB RSS1  SETB RW1  SETB CP1  LCALL WAIT  SETB D3  SETB D2  SETB D1  SETB D0  MOV A,P1  CLR CP1  JNB ACC.2,RE  CLR RSS1  SETB CP1  LCALL WAIT  SETB D3  SETB D2&lt;dp n="d28"/&gt;  SETB D1  SETB D0  MOV A,P1  mov c,d1  mov acc.1,c  mov c,d0  mov acc.0,c  CLR CP1  anl a,#0fh  CJNE A,#00H,AAA  SETB 20HRERETIAAAJNB 20H,RE  CLR 20H  MOV DPTR,#TAB  RL A  JMP@A+DPTRTABAJMP NO0  AJMP NO1  AJMP NO2  AJMP NO3  AJMP NO4  AJMP NO5  AJMP NO6  AJMP NO7  AJMP NO8  AJMP NO9  AJMP NOA  AJMP NOB  AJMP NOC  AJMP NOD  AJMP NOE  AJMP NOFNO0AJMP RENO1AJMP RE&lt;dp n="d29"/&gt;NO2AJMP RENO3AJMP RENO4AJMP RENO5AJMP RENO6AJMP RENO7AJMP RENO8AJMP RENO9AJMP RENOAAJMP RENOBAJMP RENOCAJMP RENODAJMP RENOEajmp reNOFCPL P3.7  AJMP RESENDMOV A,R3;通过8880发送子程序  MOV C,ACC.0  MOV D0,C  MOV C,ACC.1  MOV D1,C  MOV C,ACC.2  MOV D2,C  MOV C,ACC.3  MOV D3,C  ANL P1,#0FH  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  ACALL DELAY1  acall delay1  MOV A,R4  MOV C,ACC.0  MOV D0,C  MOV C,ACC.1&lt;dp n="d30"/&gt;  MOV D1,C  MOV C,ACC.2  MOV D2,C  MOV C,ACC.3  MOV D3,C  ANL P1,#0FH  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  CLR P3.4  RETDELAY1MOV R7,#0E0HTH2MOV R6,#0FFHHER1DJNZ R6,HER1  DJNZ R7,TH2  RETEND</pre>1号89C2051的源程序<pre listing-type="program-listing">  CP1 EQU P1.4  RSS1 EQU P1.5  CS1 EQU P1.6  RW1 EQU P1.7  D3 EQU P1.3  D2 EQU P1.2  D1 EQU P3.1  D0 EQU P3.0  ORG 0000H  SJMP BG  ORG 0003H  LJMP INTT  ORG 0030HBGMOV R5,#10HH2MOV R6,#255&lt;dp n="d31"/&gt;H1MOV R7,#255HEREDJNZ R7,HERE  DJNZ R6,H1  DJNZ R5,H2  SETB EA  SETB EX0  CLR CS1  CLR CP1  SETB RW1  SETB RSS1  SETB CP1  LCALL WAIT  CLR CP1  CLR RW1  LCALL WAIT  CLR D3  CLR D2  CLR D1  CLR D0  SETB CP1  LCALL WAIT  CLR CP1  SETB CP1  LCALL WAIT  CLR CP1  SETB D3  SETB CP1  LCALL WAIT  CLR CP1  CLR D3  SETB CP1  LCALL WAIT  CLR CP1  SETB RW1  SETB CP1&lt;dp n="d32"/&gt;  LCALL WAIT  CLR CP1  CLR RW1  SETB D3  SETB D2  CLR D1  SETB D0  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  CLR D0  CLR D1  CLR D2  CLR D3  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1HHHMOV R5,#10HHa2MOV R6,#255Ha1MOV R7,#255HEREaDJNZ R7,HEREa  DJNZ R6,Ha1  DJNZ R5,Ha2  SETB P3.5  MOV C,P3.5  JC ABC  jnb 00h,hhh  clr 00h  MOV R3,#01H  MOV R4,#0cH  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1&lt;dp n="d33"/&gt;  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL SEND  ajmp hhhABCjb 00h,hhh  setb 00h  MOV R3,#01H  MOV R4,#0dH  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL DELAY1  ACALL SEND  ajmp hhhWAITMOV R7,#0FFHSSSNOP  DJNZ R7,SSS  RETINTTCLR CP1  CLR CS1  SETB RSS1  SETB RW1  SETB CP1  LCALL WAIT  SETB D3  SETB D2  SETB D1  SETB D0&lt;dp n="d34"/&gt;  MOV A,P1  CLR CP1  JNB ACC.2,RE  CLR RSS1  SETB CP1  LCALL WAIT  SETB D3  SETB D2  SETB D1  SETB D0  MOV A,P1  mov c,d1  mov acc.1,c  mov c,d0  mov acc.0,c  CLR CP1  anl a,#0fh  CJNE A,#01H,AAA  SETB 20HRERETIAAAJNB 20H,RE  CLR 20H  MOV DPTR,#TAB  RL A  JMP@A+DPTRTABAJMP NO0  AJMP NO1  AJMP NO2  AJMP NO3  AJMP NO4  AJMP NO5  AJMP NO6  AJMP NO7  AJMP NO8  AJMP NO9&lt;dp n="d35"/&gt;  AJMP NOA  AJMP NOB  AJMP NOC  AJMP NOD  AJMP NOE  AJMP NOFNO0AJMP RENO1AJMP RENO2AJMP RENO3AJMP RENO4AJMP RENO5AJMP RENO6AJMP RENO7AJMP RENO8AJMP RENO9AJMP RENOAAJMP RENOBAJMP RENOCAJMP RENODAJMP RENOEajmp reNOFCPL P3.7  AJMP RESENDMOV A,R3  MOV C,ACC.0  MOV D0,C  MOV C,ACC.1  MOV D1,C  MOV C,ACC.2  MOV D2,C  MOV C,ACC.3  MOV D3,C  ANL P1,#0FH  LCALL WAIT  SETB CP1&lt;dp n="d36"/&gt;  LCALL WAIT  CLR CP1  ACALL DELAY1  acall delay1  MOV A,R4  MOV C,ACC.0  MOV D0,C  MOV C,ACC.1  MOV D1,C  MOV C,ACC.2  MOV D2,C  MOV C,ACC.3  MOV D3,C  ANL P1,#0FH  LCALL WAIT  SETB CP1  LCALL WAIT  CLR CP1  CLR P3.4  RETDELAY1MOV R7,#0E0HTH2MOV R6,#0FFHHER1DJNZ R6,HER1  DJNZ R7,TH2  RETEND</pre>
权利要求1.一种智能总线式开关系统装置,其特征在于包括多个开关模块,其每个开关模块包括一个开关组、一个处理器和一个编码器,其中所述处理器的键盘端口和控制端口分别连接所述开关组和编码器,并通过扫描开关组的按键状态控制编码器编码;多个接收模块,其每个接收模块包括一个译码器、一个处理器和控制灯泡通断的可控开关,其中所述处理器的分别连接所述译码器和所述继电器,所述译码器对所接收的编码信号进行译码,处理器根据译码器的译码结果控制可控开关进行通断操作;一条通信总线,将上述开关模块和接收模块互联,实现信号通信;一个降压整流装置,其输入端连接交流供电线路,经降压整流的直流电压通过输出端供应给上述开关模块和接收模块。
2.根据权利要求1所述的装置,其特征在于所述开关模块还包括一个语音芯片和指示灯。
3.根据权利要求2所述的装置,其特征在于所述开关模块还包括一个编译码器,对经由通信总线接收的其它开关模块编码信号进行译码,译码结果送入处理器处理,之后通过指示灯或语音模块显示。
4.根据权利要求1所述的装置,其特征在于所述接收模块还包括一个控制灯泡通断的手动开关装置。
5.根据权利要求1、2、3所述的装置,其特征在于所述开关模块的编码器是双音多频编码器。
6.根据权利要求1、2、3所述的装置,其特征在于所述开关模块的编码器是MT8880芯片。
7.根据权利要求1所述的装置,其特征在于所述接收模块的译码器是双音多频解码器。
8.根据权利要求1、7所述的装置,其特征在于所述接收模块的译码器是MT8880芯片。
9.根据权利要求1所述的装置,其特征在于所述接收模块的可控开关是继电器。
10.根据权利要求1所述的装置,其特征在于所述的开关组是键盘。
专利摘要本实用新型是一种智能总线式开关系统装置,包括多个开关模块,其每个开关模块包括一个开关组、一个处理器和一个编码器,其中所述处理器的键盘端口和控制端口分别连接所述开关组和编码器,并通过扫描开关组的按键状态控制编码器编码;多个接收模块,其每个接收模块包括一个译码器、一个处理器和控制灯泡通断的可控开关,其中所述处理器的分别连接所述译码器和所述继电器,所述译码器对所接收的编码信号进行译码,处理器根据译码器的译码结果控制可控开关进行通断操作;一条通信总线,将上述开关模块和接收模块互联,实现信号通信。这样,开关模块通过扫描开关组的按键状态进行编码,该编码信号经某一接收模块的译码器正确译码后控制有该接收模块所属的灯泡通断,从而实现了总线式智能控制。
文档编号G05B19/04GK2673026SQ200320121730
公开日2005年1月19日 申请日期2003年11月21日 优先权日2003年11月21日
发明者王振红, 张常年, 王仲, 付晶晶 申请人:王振红, 张常年, 王仲, 付晶晶
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1