Saturday, 16 August 2014

DC Motor Interface in 8086

;8086 Interfaced with 8255 and DC Motor
        OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
LIST DB FFH,80H,80H,80H,80H,80H,80H,00H
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV SI,OFFSET LIST
        MOV CL,08H
        MOV AL,80H
        MOV DX,FFE6H
        OUT DX,AL
L1:
        MOV AL,[SI]
        MOV DX,FFE0H
        OUT DX,AL
        CALL DELAY
        CALL DELAY
        CALL DELAY
        CALL DELAY
        CALL DELAY
        CALL DELAY   
        INC SI
        DEC CL
        JNZ L1
CODE ENDS
END

DELAY:

        MOV BX,FFFFH
L3:
        DEC BX
        JNZ L3
        RET

Stepper Motor Interface in 8086

;8086 Interfaced with 8255 PPI and Stepper Motor in Full Step Mode     
      OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
LIST DB 05H,09H,0AH,06H
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
L2:
        MOV SI,OFFSET LIST
        MOV CL,04H
        MOV AL,80H
        MOV DX,FFE6H
        OUT DX,AL
L1:
        MOV AL,[SI]
        MOV DX,FFE0H
        OUT DX,AL
        CALL DELAY   
        INC SI
        DEC CL
        JNZ L1
        JMP L2
DELAY:

        MOV BX,2200H
L3:
        DEC BX
        JNZ L3
        RET

CODE ENDS
END

;8086 Interfaced with 8255 PPI and Stepper Motor in Half Step Mode
      OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
LIST DB 05H,01H,09H,08H,0AH,02H,06H,04H
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV AL,80H
        MOV DX,FFE6H
        OUT DX,AL
        MOV CH,19H
L2:
        MOV SI,OFFSET LIST
        MOV CL,08H
L1:
        MOV AL,[SI]
        MOV DX,FFE0H
        OUT DX,AL
        CALL DELAY
        INC SI
        DEC CL
        JNZ L1
        DEC CH
        JNZ L2
        JMP LAST

DELAY:
        MOV BX,2200H
L3:
        DEC BX
        JNZ L3
        RET
LAST:
CODE ENDS
END

Digital to Analog Conversion Interface in 8086

;8086 interfaced with 8255 PPI and DAC for Square Wave Generation
        OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV AL,80H
        MOV DX,FFE6H
        OUT DX,AL
L1:
        MOV AL,00H
        MOV DX,FFE0H
        OUT DX,AL
        CALL DELAY
        MOV AL,FFH
        MOV DX,FFE0H
        OUT DX,AL
        CALL DELAY   
        JMP L1

DELAY:

        MOV BX,00FFH
L3:
        DEC BX
        JNZ L3
        RET
CODE ENDS
END

;8086 interfaced with 8255 PPI and DAC for Triangle Wave Generation
        OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV AL,80H
        MOV DX,FFE6H
        OUT DX,AL
        MOV AL,00H
L1:
        MOV DX,FFE0H
        OUT DX,AL
        INC AL
        CMP AL,FFH
        JNZ L1
L2:
        MOV DX,FFE0H
        OUT DX,AL
        DEC AL
        CMP AL,00H
        JNZ L2
        JMP L1
CODE ENDS
END

;8086 interfaced with 8255 PPI and DAC for Sine Wave Generation
OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
LIST DB 80H,8BH,96H,A1H,ABH,B6H,C0H,C9H,D2H,DAH,E4H,E8H, F0H,F3H,F9H,FBH,FDH,FFH,FFH
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV AL,80H
        MOV DX,FFE6H
        OUT DX,AL
L5:       
        MOV SI,OFFSET LIST
        MOV CL,13H
L1:
        MOV AL,[SI]
        MOV DX,FFE0H
        OUT DX,AL
        INC SI
        DEC CL
        JNZ L1
        MOV CL,13H
L2:
        DEC SI
        MOV AL,[SI]
        MOV DX,FFE0H
        OUT DX,AL
        DEC CL
        JNZ L2
        MOV SI,OFFSET LIST
        MOV CL,13H
L3:
        MOV AL,[SI]
        NEG AL
        MOV DX,FFE0H
        OUT DX,AL
        INC SI
        DEC CL
        JNZ L3
        MOV CL,13H
L4:
        DEC SI
        MOV AL,[SI]
        NEG AL
        MOV DX,FFE0H
        OUT DX,AL
        DEC CL
        JNZ L4
        JMP L5
CODE ENDS
END

Analog to Digital Conversion Interface in 8086

;8086 Microprocessor interfaced with 8255 PPI and ADC
;Read Analog input at Channel 0 of ADC0809 IC and display the digital value in the Segment Display
   OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV AL,98H
        MOV DX,FFE6H
        OUT DX,AL
L2:
        MOV AL,00H
        MOV DX,FFE4H
        OUT DX,AL
        MOV AL,00H
        MOV DX,FFE2H
        OUT DX,AL
        MOV AL,02H
        MOV DX,FFE4H
        OUT DX,AL
        MOV AL,03H
        MOV DX,FFE4H
        OUT DX,AL
        MOV AL,01H
        MOV DX,FFE4H
        OUT DX,AL
        MOV AL,00H
        MOV DX,FFE4H
        OUT DX,AL
L1:
        MOV DX,FFE4H
        IN AL,DX
        RCL AL,01H
        JNC L1
        MOV AL,04H
        MOV DX,FFE4H
        OUT DX,AL
        MOV DX,FFE0H
        IN AL,DX
        MOV BL,00H
        MOV BH,00H
        DB 9AH,12H,0BH,00H,0FFH
        JMP L2
CODE ENDS
END

Communication between two Microprocessors using 8255 Interface in 8086

;8086 Interfaced with 8255 PPI and Programmed as Transmitter
OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
LIST DB AAH,BBH,CCH,DDH,EEH
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV SI,OFFSET LIST
        MOV CL,05H
        MOV AL,A0H
        MOV DX,FFE6H
        OUT DX,AL
        MOV AL,0DH
        MOV DX,FFE6H
        OUT DX,AL
L1:
        MOV DX,FFE4H
        IN AL,DX
        AND AL,08H
        CMP AL,00H
        JZ L1
        MOV AL,[SI]
        MOV DX,FFE0H
        OUT DX,AL
        INC SI
        DEC CL
        JNZ L1
CODE ENDS
END
;8086 Interfaced with 8255 PPI and Programmed as Receiver
        OUTPUT 2500AD
.ORG 2000H

DATA SEGMENT
DATA ENDS

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA
START:
        MOV AX,DATA
        MOV DS,AX
        MOV SI,OFFSET LIST
        MOV CL,05H
        MOV AL,B0H
        MOV DX,FFE6H
        OUT DX,AL
        MOV AL,09H
        MOV DX,FFE6H
        OUT DX,AL
L1:
        MOV DX,FFE4H
        IN AL,DX
        AND AL,08H
        CMP AL,00H
        JZ L1
L2:
        MOV DX,FFE0H
        IN AL,DX
        MOV [SI],AL
        INC SI
        DEC CL
        JNZ L2
CODE ENDS
END