IMKONTROL.COM- Kali ini admin membahas mengenai cara Membuat Traffic Light Controller Menggunakan IC AT89S51. Disini kita akan mengontrol 4 simpang lampu lalu lintas dan untuk delaynya selama 5 detik untuk pergantian lampunya.
Skematik

BACA JUGA : Membuat PCB Itu Mudah Loh!
Coding ASM
DSEG
ORG 20H
PENGALI: DS 1
DETIK: DS 1
PORT0: DS 1
PORT2: DS 1
TOMBOLSTART BIT P1.0
TOMBOLSTOP BIT P1.1
WAKTU EQU -50000
CSEG
ORG 0H
LJMP MULAI
ORG 0BH
AJMP INTERUPSI
MULAI: MOV PENGALI,#20
MOV DETIK,#0
MOV PORT0,#0FFH
MOV PORT2,#0FFH
MOV TMOD,#01H
MOV TH0,#HIGH WAKTU
MOV TL0,#LOW WAKTU
MOV A,#0FFH
SETB ET0
CLR EA
SETB TR0
TOMBOL: JB TOMBOLSTOP,START
MOV A,#0FFH
CLR EA
JMP MATI
START: JB TOMBOLSTART,DISPLAY
MOV DETIK,#0
MOV A,#0
SETB EA
DISPLAY: CJNE A,#0,MATI
MOV P0,PORT0
MOV P2,PORT2
JMP TOMBOL
MATI: MOV P0,#0FFH
MOV P2,#0FFH
JMP TOMBOL
INTERUPSI: PUSH PSW
PUSH ACC
MOV TL0,#LOW WAKTU
MOV TH0,#HIGH WAKTU
DJNZ PENGALI,SELESAI
MOV PENGALI,#20
MOV A,DETIK
CJNE A,#16,ISIAN
MOV A,#0
ISIAN: ACALL ISIDATA
MOV DETIK,A
INC DETIK
SELESAI:
POP ACC
POP PSW
RETI
ISIDATA:
HIJAU1:
CJNE A,#0,KUNING1
MOV PORT0,#0F3H
MOV PORT2,#0F6H
KUNING1:
CJNE A,#3,HIJAU2
MOV PORT0,#0E5H
MOV PORT2,#0F6H
HIJAU2:
CJNE A,#4,KUNING2
MOV PORT0,#0DEH
MOV PORT2,#0F6H
KUNING2:
CJNE A,#7,HIJAU3
MOV PORT0,#0EEH
MOV PORT2,#0F4H
HIJAU3:
CJNE A,#8,KUNING3
MOV PORT0,#0F6H
MOV PORT2,#0F3H
KUNING3:
CJNE A,#11,HIJAU4
MOV PORT0,#0F6H
MOV PORT2,#0E5H
HIJAU4:
CJNE A,#12,KUNING4
MOV PORT0,#0F6H
MOV PORT2,#0DEH
KUNING4:
CJNE A,#15,KEMBALI
MOV PORT0,#0F4H
MOV PORT2,#0EEH
KEMBALI:
RET
END
Coding HEX
:0300000002000DEE
:10000B0001517520147521007522FF7523FF758929
:10001B0001758C3C758AB074FFD2A9C2AFD28C200B
:10002B00910774FFC2AF020049209007752100743D
:10003B0000D2AFB400088522808523A080E17580B3
:10004B00FF75A0FF80D9C0D0C0E0758AB0758C3C1D
:10005B00D52010752014E521B4100274001173F52E
:10006B00210521D0E0D0D032B400067522F37523E0
:10007B00F6B403067522E57523F6B404067522DE85
:10008B007523F6B407067522EE7523F4B4080675CE
:10009B0022F67523F3B40B067522F67523E5B40C23
:1000AB00067522F67523DEB40F067522F47523EE62
:0100BB002222
:00000001FF