1
1 TPIS TPIS 2 2
1. 2. 3. 4. 3 3
4 5 4
TPIS TPIS 6 5
350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6
8 (TPIS) TPIS 9 7
IC AT89C2051 AT89C2051 CMOS8 RAM, Flash / I/O Port UART 2K 128 x 8 2.7V 6V 24 MHz 15 I/O 1 16 Timer/Counter 1 MCS-51 10AT89C2051 8
(Watch Dog Trigger,IC DS1232) DS1232 1. High 2. 4.5V High 3. High 11DS1232 IC HCPL2731 HCPL2731 1800% 0.5 ma 0.1 V 60 ma 1.6V 18V UL 12HCPL2731 9
10 IC AT89C2051 13 TPIS
閲 13 (28V) (28V) (5V) (5V) (Watch Dog Trigger DS1232) ( ) MCS-51 (LABEL) (OP CODE) (OPERAND) 11
bounce reduce TPIS 12
Y TPIS N Y TPIS N 14 13
14
[1] Agilent HCPL-2731.Dual Channel Low Input Current, High Gain Optocouplers Data Sheet http:/www. agilent.com.tw [2] Atmel AT89C2051.Microcontroller with 2K bytes Flash, 20-Pin Package Data Sheet http:/www. atmel.com [3] Dallas DS1232.MicroMonitor Chip Data Sheet http:/www. maxim-ic.com 15
;The Auto-Announce Control System of Train Passenger Information System ;WRITER: CHU CHEN GWO ;11.0592MHz AT89C2051 CPU MAX-ADDRESS 07FF (HEX) ;DETECT SPEED CODE SENT & 350 METER OF F3,6,(MARKER COIL) ;------------------------------------------------------ ;R0 50 MS COUNTER ;R1 ;R2 INT1 FLAG ;R3 ;R4 DELAY ;R5 DELAY ;R6 DELAY ;R7 DELAY ;------------------------------------------------------ RELAY3 REG P1.2 ;RELAY 350 METER DRIVE RELAYS REG P1.3 ;RELAY SPEED-CODE DRIVE RELAYR REG P1.4 ;RELAY RESET I350 REG P3.2 ;I/P 350 METER SIGNAL (INT0) ISPEED REG P3.3 ;I/P SPEED-CODE SIGNAL (INT1) WATCH REG P3.7 ;WATCH DOG & LED ORG 00H AJMP INIT ORG 03H ;INTERRUPT 0 ; AJMP INT0 ORG 0BH ;TIMER0 AJMP TIMER0 ORG 13H ;INTERRUPT 1 AJMP INT1 ORG 1BH ;TIMER1 ; AJMP TIMER1 ORG 23H ;SERIES PORT ; LJMP T/R ORG 30H RETI ;------------------------------------------------------ INIT 16
CPL WATCH ;WATCH DOG TRIGGER MOV R0,#00 MOV R1,#00 MOV R2,#00 MOV R3,#00 MOV R4,#00 MOV TMOD,#00100001B ;T1 MODE2,T0 MODE 1 MOV IE,#10000110B ;INTERRUPT INT1,TIMER0,INT0 MOV TH0,#>(65536-46075);50MS TIMER MOV TL0,#<(65536-46075) ; MOV TH1,#FDH ;9600 BPS SETB IT1 ;INT1 NEGATIVE EDGE TRIGGER ;-------------------------------------------------------- ;I350 LOOP ;0.2 SECOND LOOP CPL WATCH ;WATCHDOG TRIG MOV R7,#184 ;0.1 SECOND LOOP1 MOV R6,#249 JNB I350,BOUNCE DJNZ R7,LOOP1 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 LOOP2 MOV R6,#249 JNB I350,BOUNCE DJNZ R7,LOOP2 AJMP LOOP ;-------------------------------------------------------- BOUNCE MOV R6,#250 ;REDUCE BOUNCE JB I350,LOOP ;-------------------------------------------------------- ;DELAY 10 SECONDS DELAY12 MOV R5,#50 ;DELAY 10 SECONDS 17
DEL121 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 DEL122 MOV R6,#249 DJNZ R7,DEL122 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 DEL123 MOV R6,#249 DJNZ R7,DEL123 DJNZ R5,DEL121 ;-------------------------------------------------------- DELAY3 MOV R5,#15 ;DELAY 3 SECOND DEL31 CLR RELAY3 ;RELAY 350 METER ON CPL WATCH ;WATCHDOG TRIG MOV R7,#184 DEL32 MOV R6,#249 DJNZ R7,DEL32 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 DEL33 MOV R6,#249 DJNZ R7,DEL33 DJNZ R5,DEL31 SETB RELAY3 ;RELAY 350 METER OFF ;-------------------------------------------------------- DELAY20 ;WAIT 20 SECOND MOV R5,#100 ;DELAY 20 SECOND DEL151 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 DEL152 MOV R6,#249 DJNZ R7,DEL152 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 18
DEL153 MOV R6,#249 DJNZ R7,DEL153 DJNZ R5,DEL151 ;-------------------------------------------------------- LOOPW0 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 ;0.1 SECOND LOOPW1 MOV R6,#249 DJNZ R7,LOOPW1 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 LOOPW2 MOV R6,#249 DJNZ R7,LOOPW2 JNB I350,LOOPW0 CPL WATCH ;WATCHDOG TRIG MOV R7,#184 LOOPW3 MOV R6,#249 DJNZ R7,LOOPW3 JNB I350,LOOPW0 AJMP LOOP ;------------------------------------------------------ ;ISPEED INT1 ;SPEED CODE PROCESS CJNE R2,#00,INT1BACK MOV R4,#150 ;REDUCE BOUNCE DJNZ R4,$ JB ISPEED,INT1BACK SETB TR0 ;ENABLE TIMER0 MOV R2,#99 CLR RELAYS ;RELAY SPEED CODE ON RETI INT1BACK RETI ;------------------------------------------------------ 19
TIMER0 PUSH A MOV TH0,#>(65536-46075) ;50 MS MOV TL0,#<(65536-46075) INC R0 CJNE R0,#15,TIM01 ;0.75 SECOND SETB RELAYS ;RELAY SPEED CODE OFF AJMP TBACK TIM01 CJNE R0,#16,TIM02 ;0.8 SECOND CLR RELAYR ;RELAY RESET ON AJMP TBACK TIM02 CJNE R0,#36,TBACK ;1.8 SECOND SETB RELAYR ;RELAY RESET OFF MOV R0,#00 CLR TR0 ;STOP TIMER0 MOV TH0,#>(65536-46075) ;50 MS MOV TL0,#<(65536-46075) TBACK POP A RETI ;------------------------------------------------------ ORG 0700H MOV SP,#08 LJMP INIT DB "WRITED BY CHU CHEN GWO ;COPYRIGHT" ;------------------------------------------------------ ORG 07FDH LJMP INIT END 20