Skip to content

Instantly share code, notes, and snippets.

@vintagechips
Created March 20, 2019 06:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vintagechips/85f28112a0f4a6ec374716966d6f582c to your computer and use it in GitHub Desktop.
Save vintagechips/85f28112a0f4a6ec374716966d6f582c to your computer and use it in GitHub Desktop.
MCS8085 BLINK LED TIMER INTERRUPT VERSION
; MCS8085 BLINK LED
; TIMER INTERRUPT VERSION
;
PORTA EQU 00H ;8755 PORTA I/O
DDRA EQU 02H ;8755 PORTA DIRECTION
CSREG EQU 0F8H ;8156 COMMAND/STATUS REGISTER
TIMRL EQU 0FCH ;8156 TIMER L
TIMRH EQU 0FDH ;8156 TIMER H
;
; RESET VECTOR
ORG 0000H
JMP MAIN
;
; RST7.5 VECTOR
ORG 003CH
DCR M ;DECREMENT COUNTER
JNZ EXIT ;UNTIL 0, NO OPERATION
IN PORTA ;READ 8755 PORTA TO A
CMA ;COMPLEMENT A
OUT PORTA ;WRITE A TO 8755 PORTA
MVI A,100
MOV M,A ;SET 100 TO COUNTER
EXIT EI ;ENABLE INTERRUPT
RET ;RETURN
;
; MAIN ROUTINE
MAIN: LXI SP,000H ;SET STACK POINTER
MVI A,0FFH
OUT DDRA ;SET 8755 PORTA AS OUTPUT
OUT PORTA ;SET 8755 PORTA PINS HIGH
MVI A,98H
OUT TIMRL
MVI A,0FAH
OUT TIMRH ;SET 8156 TIMER 15000, PULSE, CONTINUANCE
MVI A,0CFH
OUT CSREG ;8156 TIMER START
LXI H,COUNT ;GET POINTER TO COUNTER
MVI A,0BH
SIM ;RST7.5 ENABLE
EI ;ENABLE INTERRUPT
;
LOOP: JMP LOOP ;PERMANENT LOOP
;
; RAM
ORG 0800H
COUNT DS 01H ;COUNTER
;
END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment