Created
March 20, 2019 06:34
-
-
Save vintagechips/85f28112a0f4a6ec374716966d6f582c to your computer and use it in GitHub Desktop.
MCS8085 BLINK LED TIMER INTERRUPT VERSION
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; 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