亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

智能總線式開關系統(tǒng)裝置的制作方法

文檔序號:6321542閱讀:376來源:國知局
專利名稱:智能總線式開關系統(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,則認為是抖動,不做處理&lt;dp n="d4"/&gt;BBBORL A,B;得到編號  MOV B,A;放在B保存  MOV R0,#00H;R0用來計數(shù)&lt;br/&gt;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&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,具有錄放功能,通過語音顯示(提示)各開關模塊的狀態(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&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則繼續(xù)放音  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;送數(shù)據(jù)子程序  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,一片負責發(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&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;送出數(shù)字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;將得到的數(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&lt;dp n="d15"/&gt;  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&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號燈狀態(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&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發(fā)音子程序  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;采集燈的開關狀態(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&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發(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&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.一種智能總線式開關系統(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ā)明者王振紅, 張常年, 王仲, 付晶晶 申請人:王振紅, 張常年, 王仲, 付晶晶
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1