專利名稱:智能總線式開關系統(tǒng)裝置的制作方法
技術領域:
本實用新型涉及一種電燈開關裝置,特別是一種智能總線式開關系統(tǒng)裝置。
背景技術:
在工作和學習中,常常碰到這樣的難題當停電后來再來電時,不該亮燈的地方仍然亮著;晚上回到家時,因為找不到開關而倍感煩惱;晚上睡覺了,不知道調皮的小孩子房間是否仍然亮著燈,為了解決這些問題要求在一個地方可以控制多盞燈;在多處地方可以控制一盞燈;在每一個開關面板上可觀察到不同地方燈的亮或滅;停電后,再來電時,燈應處于熄滅狀態(tài);另外可以查詢各個房間燈的工作狀態(tài)并配有語音提示,同時,可靠性要高。但是,采用復雜的布線來實現(xiàn)一個地方可以控制多盞燈是極不現(xiàn)實的。不僅因為需要大量導線,而且施工幾乎不能完成,工作量極大。
發(fā)明內容
本實用新型的目的是提供一種智能總線式開關系統(tǒng)裝置,通過設置分布式控制模塊可以實現(xiàn)以下功能在一個地方可以控制多盞燈;在多處地方可以控制一盞燈;在每一個開關面板上可觀察到不同地方燈的亮或滅;停電后,再來電時,燈應處于熄滅狀態(tài);可以查詢各個房間燈的工作狀態(tài)并配有語音提示。
本實用新型的上述目的是這樣實現(xiàn)的,一種智能總線式開關系統(tǒng)裝置,其特征在于包括多個開關模塊,其每個開關模塊包括一個開關組、一個處理器和一個編碼器,其中所述處理器的鍵盤端口和控制端口分別連接所述開關組和編碼器,并通過掃描開關組的按鍵狀態(tài)控制編碼器編碼;多個接收模塊,其每個接收模塊包括一個譯碼器、一個處理器和控制燈泡通斷的可控開關,其中所述處理器的分別連接所述譯碼器和所述繼電器,所述譯碼器對所接收的編碼信號進行譯碼,處理器根據(jù)譯碼器的譯碼結果控制可控開關進行通斷操作;一條通信總線,將上述開關模塊和接收模塊互聯(lián),實現(xiàn)信號通信;一個降壓整流裝置,其輸入端連接交流供電線路,經降壓整流的直流電壓通過輸出端供應給上述開關模塊和接收模塊。
這樣,開關模塊通過掃描開關組的按鍵狀態(tài)進行編碼,該編碼信號經某一接收模塊的譯碼器正確譯碼后控制有該接收模塊所屬的燈泡通斷,從而實現(xiàn)了總線式智能控制。
其中,所述開關模塊還包括一個語音芯片和指示燈,以顯示各個開關模塊的編碼狀態(tài)。
其中,所述開關模塊還包括一個編譯碼器,對經由通信總線接收的其它開關模塊編碼信號進行譯碼,譯碼結果送入處理器處理,之后通過指示燈或語音模塊顯示,從而顯示不同地方的燈泡的通斷狀態(tài)。
其中,所述接收模塊還包括一個控制燈泡通斷的手動開關裝置,以便用戶手控開燈。
其中,所述開關模塊的編碼器是雙音多頻編碼器。
其中,所述開關模塊的編碼器是MT8880芯片。
其中,所述接收模塊的譯碼器是雙音多頻解碼器。
其中,所述接收模塊的譯碼器是MT8880芯片。
其中,所述接收模塊的可控開關是繼電器。
以下結合附圖以具體實例對本實用新型進行詳細說明。
圖1是本實用新型的電路方框圖;圖2是開關模塊的結構框圖;圖3是圖2所述開關模塊的電原理圖;圖4是開關模塊主程序流程圖;圖5示出了微處理器與開關組的連接關系;圖6示出了開關模塊中所設置的語音芯片與微處理器的連接關系;圖7示出開關模塊的譯碼電路、編碼電路與微處理器的連接關系;圖8是接收模塊的方框圖;圖9是接收模塊的電路圖;
圖10是本實用新型另一實施例的電路圖。
具體實施方式
圖1是本實用新型的電路方框圖。包括多個開關模塊,其每個開關模塊包括一個開關組、一個處理器和一個編碼器,其中所述處理器的鍵盤端口和控制端口分別連接所述開關組和編碼器,并通過掃描開關組的按鍵狀態(tài)控制編碼器編碼;多個接收模塊,其每個接收模塊包括一個譯碼器、一個處理器和控制燈泡通斷的可控開關,其中所述處理器的分別連接所述譯碼器和所述繼電器,所述譯碼器對所接收的編碼信號進行譯碼,處理器根據(jù)譯碼器的譯碼結果控制可控開關進行通斷操作;一條通信總線,將上述開關模塊和接收模塊互聯(lián),實現(xiàn)信號通信;一個降壓整流裝置,其輸入端連接交流供電線路,經降壓整流的直流電壓通過輸出端供應給上述開關模塊和接收模塊。
這樣,開關模塊通過掃描開關組的按鍵狀態(tài)進行編碼,該編碼信號經某一接收模塊的譯碼器正確譯碼后控制有該接收模塊所屬的燈泡通斷,從而實現(xiàn)了總線式智能控制。
圖2是開關模塊的結構框圖。圖3是圖2所述開關模塊的電原理圖。如圖2、圖3所示,微處理器是一個CPU,將開關的狀態(tài)信號進行收集處理,并通過與接口相接的雙音頻信號編碼器MT8880將開關信號編碼發(fā)送出至總線上。CPU微處理器采用AT89C52單片機芯片。微處理器周期性地查詢八個開關的狀態(tài),在沒鍵按下時,CPU處理器循環(huán)查詢鍵的狀態(tài);在有鍵按下時,CPU判斷是那一個鍵,并經過處理后,與MT88800接口相聯(lián),MT88800是一個雙音頻編譯碼芯片,它實現(xiàn)圖2中的雙音頻信號編碼和雙音頻信號發(fā)射器的功能。從MT88800的OUT線輸出已經編碼好的信息到總線上。其程序框圖如圖4所示。
圖5示出了微處理器與開關組即鍵盤的連接關系。如圖5所示,鍵盤接在AT89C52的P1口,采取行反轉法掃描鍵盤,鍵盤的8個引腳都通過2.2K的上拉電阻接到+5V電源上。先從p1.0到p1.3送出低電平,將p1.4到p1.7的狀態(tài)讀進來(注意在讀外部狀態(tài)時要先在端口送高電平)。若無鍵按下,則采到的數(shù)據(jù)為1111;若有鍵按下,則相應的列會變?yōu)榈碗娖?。若有鍵按下,即采到的數(shù)據(jù)不是1111,則從p1.4到p1.7將這個數(shù)據(jù)送出(若只有一個鍵按下,則只有一個引腳送出低電平),將p1.0到p1.3的狀態(tài)讀進來,若這個鍵還在按下的狀態(tài),則采進來的數(shù)據(jù)就不是1111。將兩次采到的數(shù)據(jù)組合為一個字節(jié),就是該鍵所對應的編號。
去抖動是鍵盤掃描的一個重要步驟,這里采用軟件去抖動。第一次從p1.4到p1.7采進來的數(shù)據(jù)不是1111后,做一個延時,然后再采數(shù)據(jù),若還不是1111,則認為不是抖動;若第二次采到的數(shù)據(jù)是1111,則認為第一次采到的數(shù)據(jù)是抖動,不做處理。
若出現(xiàn)重鍵,有許多處理方法??梢酝ㄟ^軟件設置每一個鍵的優(yōu)先級,當重鍵出現(xiàn)時,先處理優(yōu)先級高的鍵。此處采用的方法是,若掃描到重鍵,則不做任何處理,直到有一個鍵放開。此方法是通過查詢鍵編號表實現(xiàn)的,若出現(xiàn)重鍵,則它的編號一定不在單個鍵的編號表里,若在單個鍵的編號表里沒有查到它的編號,則不做任何處理。
此程序是在掃描到有鍵按下時通過P2口顯示不同的數(shù)據(jù)。
源程序<pre listing-type="program-listing"> ORG 0000H SJMP BG ORG 0030HBGMOV P1,#0F0H MOVA,P1 ANL A,#0F0H CJNE A,#0F0H,AAA;若采到的數(shù)據(jù)不為1111,則轉 SJMP BG;若數(shù)據(jù)為1111,即無鍵按下,則繼續(xù)掃描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;若數(shù)據(jù)為1111,則認為是抖動,不做處理<dp n="d4"/>BBBORL A,B;得到編號 MOV B,A;放在B保存 MOV R0,#00H;R0用來計數(shù)<br/>EEEMOV A,R0 MOV DPTR,#TAB1;TAB1為鍵編號表,此句取表頭 MOVC A,@A+DPTR;取編號 INC R0 CJNE A,B,CCC;若數(shù)據(jù)與編號不相同,則轉CCC繼續(xù)比較 SJMP DDD;若數(shù)據(jù)與編號相同,則轉DDDCCCCJNE R0,#10H,EEE AJMP BG;若查完鍵編號表都不符合(可能是出現(xiàn)重鍵),不做處理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<dp n="d5"/> 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,具有錄放功能,通過語音顯示(提示)各開關模塊的狀態(tài)。
語音頻片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<dp n="d7"/> 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鍵按下<dp n="d8"/> 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則繼續(xù)放音 SETB LED;滅燈 ACALL STOPP;停止當前操作 CLR SS CLR SCLK<dp n="d9"/> 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;送數(shù)據(jù)子程序 MOV R6,#8 CLR SCLKISDIMOV C,ACC.0 MOV MOSI,C SETB SCLK RR A CLR SCLK DJNZ R6,ISDI<dp n="d10"/> 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,一片負責發(fā)送一個雙音多頻信號,另一片在正確接收后將數(shù)據(jù)送到發(fā)光二極管上顯示。
源程序<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<dp n="d11"/> 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<dp n="d12"/> 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<dp n="d13"/> 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;送出數(shù)字0101所代表的雙音多頻信號 setb p2.2<dp n="d14"/> 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;將得到的數(shù)據(jù)送到發(fā)光二極管顯示,正確接收時應顯示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<dp n="d15"/> MOV P3.7,CREPOP P1 RETIEND</pre>圖8示出了接收模塊內部結構。將總線上接收到的DTMF編碼信號通過MT88800芯片解碼。CPU通過查詢MT8880的狀態(tài)寄存器來判斷是否有信號接收。當有信號接收時,CPU將接收的數(shù)據(jù)與自身的地址相比較,判斷是否與本地址相符,如果符合,表明本地燈開關閉合或關斷;如果不相符合,CPU將不作出輸出處理。其電原理圖如圖9所示,其中CPU通過一個晶體管控制繼電器工作,繼電器又控制燈泡通斷。CPU可采用AT89C1051或89C2051,以降低成本。
圖10示出了只有一個開關模塊的本實用新型另一實施例的電路圖。該電路原理與上述說明基本相同,在此省略對其說明。需要注意的是,各接收模塊增加了一個由手動開關和芯片74LS86組成的用戶開關,以方便各地的用戶手動開燈。
該實施例的是這樣操作的,在主控模塊中,89C52不斷地掃描鍵盤,如果“1”鍵按下,則通過8880送出相應指令,使1號燈的狀態(tài)改變;如果“2”鍵按下,則改變2號燈的狀態(tài);如果“F”鍵按下,則通過語音芯片4004報告兩個燈的狀態(tài)。開放外部中斷0,當8880正確接收到雙音多頻信號后,向89C52提出中斷申請。在接收模塊中,當檢測到燈的狀態(tài)發(fā)生了改變,則通過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<dp n="d16"/> 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<dp n="d17"/> 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<dp n="d18"/> 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<dp n="d19"/>TAB1DB 0E7H,0EBH,0EDH,0EEH;鍵編號表DB 0D7H,0DBH,0DDH,0DEH DB 0B7H,0BBH,0BDH,0BEH DB 077H,07BH,07DH,07EHNO0MOV R3,#00H;送出指令0F,使0號燈狀態(tài)改變 MOV R4,#0FH LCALL SEND LJMP KEYNO1MOV R3,#01H;送出指令1F,使1號燈狀態(tài)改變 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<dp n="d20"/> 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<dp n="d21"/> 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<dp n="d22"/> 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發(fā)音子程序 ACALL ISDX MOV A,71H ACALL ISDX MOV A,#0E0H<dp n="d23"/> 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<dp n="d24"/>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<dp n="d25"/> 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<dp n="d26"/> 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;采集燈的開關狀態(tài) JC ABC jnb 00h,hhh;若狀態(tài)沒有改變,則轉 clr 00h MOV R3,#00H;若狀態(tài)改變,則通過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<dp n="d27"/> 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<dp n="d28"/> 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<dp n="d29"/>NO2AJMP RENO3AJMP RENO4AJMP RENO5AJMP RENO6AJMP RENO7AJMP RENO8AJMP RENO9AJMP RENOAAJMP RENOBAJMP RENOCAJMP RENODAJMP RENOEajmp reNOFCPL P3.7 AJMP RESENDMOV A,R3;通過8880發(fā)送子程序 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<dp n="d30"/> 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<dp n="d31"/>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<dp n="d32"/> 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<dp n="d33"/> 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<dp n="d34"/> 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<dp n="d35"/> 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<dp n="d36"/> 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.一種智能總線式開關系統(tǒng)裝置,其特征在于包括多個開關模塊,其每個開關模塊包括一個開關組、一個處理器和一個編碼器,其中所述處理器的鍵盤端口和控制端口分別連接所述開關組和編碼器,并通過掃描開關組的按鍵狀態(tài)控制編碼器編碼;多個接收模塊,其每個接收模塊包括一個譯碼器、一個處理器和控制燈泡通斷的可控開關,其中所述處理器的分別連接所述譯碼器和所述繼電器,所述譯碼器對所接收的編碼信號進行譯碼,處理器根據(jù)譯碼器的譯碼結果控制可控開關進行通斷操作;一條通信總線,將上述開關模塊和接收模塊互聯(lián),實現(xiàn)信號通信;一個降壓整流裝置,其輸入端連接交流供電線路,經降壓整流的直流電壓通過輸出端供應給上述開關模塊和接收模塊。
2.根據(jù)權利要求1所述的裝置,其特征在于所述開關模塊還包括一個語音芯片和指示燈。
3.根據(jù)權利要求2所述的裝置,其特征在于所述開關模塊還包括一個編譯碼器,對經由通信總線接收的其它開關模塊編碼信號進行譯碼,譯碼結果送入處理器處理,之后通過指示燈或語音模塊顯示。
4.根據(jù)權利要求1所述的裝置,其特征在于所述接收模塊還包括一個控制燈泡通斷的手動開關裝置。
5.根據(jù)權利要求1、2、3所述的裝置,其特征在于所述開關模塊的編碼器是雙音多頻編碼器。
6.根據(jù)權利要求1、2、3所述的裝置,其特征在于所述開關模塊的編碼器是MT8880芯片。
7.根據(jù)權利要求1所述的裝置,其特征在于所述接收模塊的譯碼器是雙音多頻解碼器。
8.根據(jù)權利要求1、7所述的裝置,其特征在于所述接收模塊的譯碼器是MT8880芯片。
9.根據(jù)權利要求1所述的裝置,其特征在于所述接收模塊的可控開關是繼電器。
10.根據(jù)權利要求1所述的裝置,其特征在于所述的開關組是鍵盤。
專利摘要本實用新型是一種智能總線式開關系統(tǒng)裝置,包括多個開關模塊,其每個開關模塊包括一個開關組、一個處理器和一個編碼器,其中所述處理器的鍵盤端口和控制端口分別連接所述開關組和編碼器,并通過掃描開關組的按鍵狀態(tài)控制編碼器編碼;多個接收模塊,其每個接收模塊包括一個譯碼器、一個處理器和控制燈泡通斷的可控開關,其中所述處理器的分別連接所述譯碼器和所述繼電器,所述譯碼器對所接收的編碼信號進行譯碼,處理器根據(jù)譯碼器的譯碼結果控制可控開關進行通斷操作;一條通信總線,將上述開關模塊和接收模塊互聯(lián),實現(xiàn)信號通信。這樣,開關模塊通過掃描開關組的按鍵狀態(tài)進行編碼,該編碼信號經某一接收模塊的譯碼器正確譯碼后控制有該接收模塊所屬的燈泡通斷,從而實現(xiàn)了總線式智能控制。
文檔編號G05B19/04GK2673026SQ200320121730
公開日2005年1月19日 申請日期2003年11月21日 優(yōu)先權日2003年11月21日
發(fā)明者王振紅, 張常年, 王仲, 付晶晶 申請人:王振紅, 張常年, 王仲, 付晶晶