;===================================================================================================
;rs_int.src - Testprogramm für Interrupt der RS232
;===================================================================================================
;---------------
;|Programmstart|
;---------------
 
org          0000h                         ;Startadresse
              sjmp  main
 
org          0023h                         ;Interrupt RS232
             ljmp  rs_int
 
;---------------
;|Hauptprogramm|
;---------------
main:
             lcall rs_init
             lcall int_init
 
schleife:    cpl   p1.2

             mov   r0,#00h
             mov   r1,#00h
             mov   r2,#01h
warte:       djnz  r0,warte
             djnz  r1,warte
             djnz  r2,warte

ende:        sjmp  schleife
;===================================================================================================
;----------------
;|Unterprogramme|
;----------------
;-----------
;|für RS232|
;-----------
;Initialisierung der seriellen Schnittstelle
rs_init:     clr   tcon.6                  ;Timer1 stoppen

             mov   th1,#0FAh               ;für 9600 Baud
             mov   tl1,#0FAh
 
             anl   tmod,#0Fh               ;Timer1 8 Bit + Autoreload
             orl   tmod,#20h
             setb  tcon.6                  ;Timer1 starten

             mov   scon,#50h
             setb scon.1

             orl   pcon,#80h               ;Baudrate nicht verdoppeln

             ret
;---------------------------------------------------------------------------------------------------
;----------------
;|für Interrupts|
;----------------
;initialisiert die Interrupts
int_init:    clr   0A8h.7                  ;alle Interrupts deaktivieren
             mov   0A8h,#00010000b         ;Interrupts für Timer0 und RS232 aktivieren
             setb  0A8h.7                  ;ausgewählte Interrupts aktivieren

             ret
;===================================================================================================
;--------------------
;|Interruptprogramme|
;--------------------
;Interruptprogramm der RS232
rs_int:      cpl   p1.0

             reti

