0% found this document useful (0 votes)
105 views44 pages

MP Lab Manual 2

This document contains algorithms and assembly language code for interfacing programs with the 8255 PPI chip. It includes examples of (A) a ring counter, (B) a BCD up/down counter, (C) complementing a number, (D) parity checking, and (E) calculating the square of a number. The code initializes the 8255's control word register, uses ports for input and output, and contains delays between operations. The examples demonstrate basic operations like incrementing, decrementing, complementing, and multiplying values using the 8255 for I/O.

Uploaded by

Nisha T
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views44 pages

MP Lab Manual 2

This document contains algorithms and assembly language code for interfacing programs with the 8255 PPI chip. It includes examples of (A) a ring counter, (B) a BCD up/down counter, (C) complementing a number, (D) parity checking, and (E) calculating the square of a number. The code initializes the 8255's control word register, uses ports for input and output, and contains delays between operations. The examples demonstrate basic operations like incrementing, decrementing, complementing, and multiplying values using the 8255 for I/O.

Uploaded by

Nisha T
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 44

MICROPROCESSOR LAB [15ECL47] IV

SEM

INTERFACING PROGRAMS

PIN DIAGRAM OF 8255PPI

DEPT OF ECE, DBIT Page 1


MICROPROCESSOR LAB [15ECL47] IV
SEM

CONTROL WORD FORMAT OF 8255 PPI

CONTROL WORD FORMAT OF SIMPLE I/O OF MODE

DEPT OF ECE, DBIT Page 2


MICROPROCESSOR LAB [15ECL47] IV
SEM

LOGIC CONTROLLER INTERFACE

FIG: BLOCK DIAGRAM OF LOGIC CONTROLLER INTERFACE WITH 8086

(A) RING COUNTER

1 0 0 0 0 0 0 0

ALGORITHMS:

STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: LOAD THE COUNTER REGISTER.
STEP3: INITIALIZE PORT A AS O/P PORT.
STEP4: LOAD THE INPUT AS 01H OR 80H.
STEP5: ROTATE CLOCKWISE THE RING COUNTER.
STEP6: AFTER EACH COUNT INTRODUCE DELAY
STEP6: DECREMENT THE COUNTER.
STEP6: COUNTER WILL ROTATE UNTIL THE COUNTER BECOMES ZERO.
STEP7: STOP THE EXECUTION.

CWR VALUE =80H

.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ;INITIALISE THE DATE SEGMENT
MOV DS,AX
MOV AL,80H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW

DEPT OF ECE, DBIT Page 3


MICROPROCESSOR LAB [15ECL47] IV
SEM

OUT DX,AL
MOV SI,0010H ; INITIALISE COUNT VALUE
MOV DX,PA
MOV AL, 01H
AGAIN:OUT DX,AL
CALL DELAY
ROL AL,01H
DEC SI
JNZ AGAIN
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY

DELAY PROC ; START OF DELAY PROCEDURE


MOV BX,0FFFH
BACK1: MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
RET
DELAY ENDP ; END OF DELAY PROCEDURE
END ; END OF CODE SEGMENT

RESULT: RING COUNTER COUNTS 01H, 02H, 04H, 08H, 10H, 20H, 40H, 80H AND REPEATS THE COUNT FOR 2
TIMES.

DEPT OF ECE, DBIT Page 4


MICROPROCESSOR LAB [15ECL47] IV
SEM

(B) BCD UP DOWN COUNTER:

1 0 0 0 0 0 0 0
CWR VALUE =80H

ALGORITHMS:

STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: FIX THE MAXIMUM BCD COUNT FOR 8-BIT.
STEP3: INITIALIZE PORT A AS O/P PORT.
STEP4: LOAD THE INPUT AS 00H.
STEP5: LOAD THE INPUT VALUE IN ACCUMULATOR REGISTER FOR 8-BIT.
STEP6: AFTER EACH COUNT INTRODUCE DELAY
STEP7: ADD 01 FOR EACH INCREMENT IN COUNT.
STEP8: USE BCD INSTRUCTION FOR EACH UP COUNT & DOWN COUNT.
STEP9: COMPARE THE ACCUMULATOR VALUE WITH THE FIXED MAXIMUM BCD COUNT.
STEP10: IF NOT EQUAL DO THE STEP6.
STEP11: STOP THE EXECUTION.

.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,80H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV AL,00H ;INITIALISE COUNT = 00H
MOV DX,PA
AGAIN:OUT DX,AL
CALL DELAY
ADD AL,01H ; COUNT = COUNT + 1
DAA
CMP AL,99H ; COMPARE COUNT WITH MAX COUNT
JNE AGAIN ; IF COUNT< MAX COUNT, REPEAT COUNT
AGAIN1:OUT DX,AL
CALL DELAY
SUB AL,01H ; COUNT = COUNT - 1
DAS
CMP AL,00H ; COMPARE COUNT WITH MIN COUNT
JNE AGAIN1 ; IF COUNT< MIN COUNT, REPEAT COUNT
OUT DX,AL
MOV AH,4CH

DEPT OF ECE, DBIT Page 5


MICROPROCESSOR LAB [15ECL47] IV
SEM

INT 21H ; TERMINATE PROGRAM NORMALLY

DELAY PROC ; START OF DELAY PROCEDURE


MOV BX,0FFFH
BACK1:MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
RET
DELAY ENDP ; END OF DELAY PROCEDURE
END ; END OF CODE SEGMENT

RESULT: THE COUNTER IS UP COUNT FROM 00 TO 99 & SIMIlLARLY DOWN COUNT FROM 99 TO 00.

(C )COMPLEMENT OF A NUMBER:

1 0 0 0 0 0 1 0
ALGORITHMS:

STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS I/P PORT AND PORT A AS O/P PORT.
STEP3: READ THE VALUE FROM THE PORT B
STEP4: COMPLEMENTINPUT VALUE AND SEND TO THEPORTA.
STEP5: STOP THE EXECUTION.

CWR VALUE =80H

.MODEL SMALL
.DATA
PA EQU 0DE00H
PB EQU 0DE01H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS, AX
MOV AL,82H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV DX,PB ; GIVE 8 BIT INPUT IN PORT B
IN AL,DX
NOT AL ; COMPLEMENT 8 BIT INPUT
MOV DX,PA
OUT DX,AL ; OUTPUT IN PORT A
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY
END ; END OF CODE SEGMENT

DEPT OF ECE, DBIT Page 6


MICROPROCESSOR LAB [15ECL47] IV
SEM

RESULT:

BEFORE EXECUTION: I/P IS 00H

AFTER EXECUTION : O/P IS 0FFH.

(D).PARITY CHECKER:

ALGORITHMS:

STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS I/P PORT AND PORT A AS O/P PORT.
STEP3: READ THE VALUE FROM THE PORT B
STEP4: CHECK THE PARITY FLAG IS SET OR NOT.
STEP5: IF THE PARITY FLAG IS SET THE IN O/P, 0FFH WILL DISPLAY.
STEP6: IF THE PARITY FLAG IS NOT SET THEN IN O/P, 00H WILL DISPLAY.
STEP7: STOP THE EXECUTION.

CWR VALUE =82H 1 0 0 0 0 0 1 0


.MODEL SMALL
.DATA
PA EQU 0DE00H
PB EQU 0DE01H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,82H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV DX,PB ; GIVE 8 BIT INPUT IN PORT B
IN AL,DX
CMP AL,00H
JPE NEXT
MOV AL,00H ; DISPLAY 00H IF DATA IS OF ODD PARITY
JMP NEXT1
NEXT: MOV AL,0FF ; DISPLAY FFH IF DATA IS OF EVEN PARITY
NEXT1: MOV DX,PA
OUT DX,AL
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY
END ; END OF CODE SEGMENT

RESULT:
THE STATUS OF THE PARITY FLAG WILL CHECK & DISPLAY THE CONDITIONS.

DEPT OF ECE, DBIT Page 7


MICROPROCESSOR LAB [15ECL47] IV
SEM

BEFORE EXECUTION: I/P IS 02H I/P IS 55H


AFTER EXECUTION : O/P IS 0FFH. O/P IS 00H

(E) SQAURE OF A NUMBER:

CWR VALUE =82H 1 0 0 0 0 0 1 0


ALGORITHMS:

STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS I/P PORT AND PORT A AS O/P PORT.
STEP3: READ THE VALUE FROM THE PORTT B
STEP4: MULTIPLY THE I/P VALUE AND SEND TO PORT B.
STEP5: APPLY DELAY BETWEEN LOWER & HIGHER PRODUCT.
STEP6: STOP THE EXECUTION.

.MODEL SMALL
.DATA
PA EQU 0DE00H
PB EQU 0DE01H
CW EQU 0DE03H
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,82H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW
OUT DX,AL
MOV SI,03H
MOV DX,PB ; GIVE 8 BIT INPUT IN PORT B
IN AL,DX
MOV BL,AL
MUL BL
MOV DX,PA
OUT DX,AL ; DISPLAY LOWER BYTE RESULT IN PORT A
AGAIN: CALL DELAY
DEC SI
JNZ AGAIN
MOV AL,AH
OUT DX,AL ; DISPLAY HIGHER BYTE RESULT IN PORT A
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY

DELAY PROC; START OF DELAY PROCEDURE


MOV BX,0FFFH
BACK1: MOV CX,0FFFFH
BACK: LOOP BACK

DEPT OF ECE, DBIT Page 8


MICROPROCESSOR LAB [15ECL47] IV
SEM

DEC BX
JNZ BACK1
RET
DELAY ENDP; END OF DELAY PROCEDURE
END; END OF CODE SEGMENT

RESULT:
THE I/P VALUE IS MULTIPLIED & SQUARE OF A NUMBER IS DISPLAYED

BEFORE EXECUTION: I/P IS 0FFH


AFTER EXECUTION : O/P IS 0FE01H.

DEPT OF ECE, DBIT Page 9


MICROPROCESSOR LAB [15ECL47] IV
SEM

PROGRAM2.
STEPPER MOTOR INTERFACE THROUGH 8255 PPI

FIG: STEPPER MOTOR POWER INTERFACE WITH 8086

DEPT OF ECE, DBIT Page 10


MICROPROCESSOR LAB [15ECL47] IV
SEM

FIG: BASIC STEPPER MOTOR DRIVE CIRCUIT

FIG: INTERNAL SCHEMATIC OF FOUR WINDING STEPPER MOTOR AND COUNTING SEQUENCE

CLOCK WISE ROTATION OR ANTICLOCKWISE ROTATION

CWR VALUE =80H 1 0 0 0 0 0 0 0

ALGORITHMS:
STEP1: INITIALIZE 8255 PPI CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT A AS O/P PORT.
STEP3: LOAD THEI/P VALUE AS ‘88H’ IN ACCUMULATOR.
STEP4: INITIALIZE THE COUNTER FOR ONLY CLOCKWISE OR ANTI-CLOCKWISE ROTATION.
STEP5: ROTATE THE STEPPER MOTOR FOR ONLY CLOCKWISE OR ANTI-CLOCKWISE UNTIL

DEPT OF ECE, DBIT Page 11


MICROPROCESSOR LAB [15ECL47] IV
SEM

COUNTER VALUE BECOMES ZERO


STEP6: AFTER EACH ROTATION INTRODUCE SOME DELAY BY CALLING DELAY SUBROUTINE.
STEP7: STOP THE EXECUTION.

.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H

COUNT EQU 200


.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,80H
MOV DX,CW ; INITIALISE PORTS OF 8255 PPI
OUT DX,AL
MOV CX,COUNT ; INITIALISE STEP COUNT FOR ROTATION
MOV SI,05H
MOV DX,PA
MOV AL, 88H ; ENERGISE COIL FOR ROTATION
AGAIN: OUT DX,AL
CALL DELAY
ROL AL,01H ; ROTATES STEPPER MOTOR LEFT SIDE
LOOP AGAIN
DEC SI
JNZ AGAIN
MOV AH,4CH
INT 21H ; TERMINATE PROGRAM NORMALLY
DELAY PROC ; START OF DELAY PROCEDURE
PUSH CX
MOV BX,0055H
BACK1: MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
POP CX
RET
DELAY ENDP ; END OF DELAY PROCEDURE
END ; END OF CODE SEGMENT

RESULT:
THE MOTOR WILL ROTATE CLOCKWISE / ANTICLOCKWISE DIRECTION.

DEPT OF ECE, DBIT Page 12


MICROPROCESSOR LAB [15ECL47] IV
SEM

(ii) CLOCK WISE ROTATION & ANTICLOCKWISE ROTATION

CWR VALUE =80H 1 0 0 0 0 0 0 0

ALGORITHMS:

STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT A AS O/P PORT.
STEP3: LOAD THE I/P VALUE AS ‘88H’ IN ACCUMULATOR.
STEP4: INITIALIZE THE COUNTER FOR BOTH CLOCKWISE & ANTI-CLOCKWISE.
STEP5: ROTATE THE STEPPER MOTOR BOTH CLOCKWISE & ANTI-CLOCKWISE UNTIL
COUNTER VALUE BECOMES ZERO
STEP6: FOR EACH STEP ROTATION INTRODUCE SOME DELAY.
STEP7: STOP THE EXECUTION.

.MODEL SMALL
.DATA
PA EQU 0DE00H
CW EQU 0DE03H
COUNT EQU 200
.CODE ; INTIALISE THE CODE SEGMENT
MOV AX,@DATA ; INTIALISE THE DATA SEGMENT
MOV DS,AX
MOV AL,80H ; INITIALISE PORTS OF 8255 PPI
MOV DX,CW

DEPT OF ECE, DBIT Page 13


MICROPROCESSOR LAB [15ECL47] IV
SEM

OUT DX,AL
MOV SI,05H
TOP: MOV CX,COUNT ; INITIALISE STEP COUNT FOR ROTATION
MOV DX,PA
MOV AL, 88H ; ENERGISE COIL FOR ROTATION
AGAIN:OUT DX,AL
CALL DELAY
ROL AL,01H ; ROTATES STEPPER MOTOR ANTICLOCK WISE
LOOP AGAIN
MOV CX,COUNT ; INITIALISE STEP COUNT FOR ROTATION
MOV DX,PA
MOV AL, 88H ; ENERGISE COIL FOR ROTATION
AGAIN1:OUT DX,AL
CALL DELAY
ROR AL,01H ; ROTATES STEPPER MOTOR CLOCK WISE
LOOP AGAIN1
DEC SI
JNZ TOP
MOV AH,4CH ; TERMINATE PROGRAM NORMALLY
INT 21H

DELAY PROC ; START OF DELAY PROCEDURE


PUSH CX
MOV BX,0055H
BACK1:MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
POP CX
RET
DELAY ENDP ; END OF DELAY PROCEDURE
END ;END OF CODE SEGMENT

RESULT:

THE MOTOR WILL ROTATE BOTH IN CLOCKWISE & ANTICLOCKWISE DIRECTION.

DEPT OF ECE, DBIT Page 14


MICROPROCESSOR LAB [15ECL47] IV
SEM

SEVEN SEGMENT DISPLAY PROGRAMS

PROGRAM3.

WRITE AN ALP TO DISPLAY HELP IN SEVEN SEGMENT DISPLAY

DEPT OF ECE, DBIT Page 15


MICROPROCESSOR LAB [15ECL47] IV
SEM

(a) TO DISPLAY HELP ON SEVEN SEGMENT DISPLAY

CW VALUE =80H

1 0 0 0 0 0 0 0

ALGORITHM: STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT & PORT C AS O/P PORT.
STEP3: INITIALIZE THE COUNTER.
STEP4: USING PORT C, GIVE THE CONTROL PULSE.
STEP5: USING PORT B LOADS THE DATA PARALLEL AND SHIFT DATA SERIALLY.
STEP6: INTRODUCE SOME DELAY AFTER EACH CHARACTER IS DISPLAYING.
HELP WILL DISPLAY.
STEP7: STOP THE EXECUTION.

.MODEL SMALL
.DATA
PA EQU 0DE00H; ; ADDRESS OF PORT A

DEPT OF ECE, DBIT Page 16


MICROPROCESSOR LAB [15ECL47] IV
SEM

PB EQU 0DE01H; ; ADDRESS OF PORT B


PC EQU 0DE02H; ;ADDRESS OF PORT C
CW EQU 0DE03H ;ADDRESS OF CWR
HELP DB 89H, 86H, 0C,7H, 8CH; ; HEX CODE FOR HELP
.CODE
MOV AX,@DATA ; INITIALIZE THE DATA SEGMENT REGISTER
MOV DS,AX
MOV AL,80H ;LOAD THE CONTROL WORD IN CONTROL WORD REGISTER
MOV DX,CW
OUT DX,AL
LEA SI,HELP ;INITIALIZE THE SOURCE INDEX REGISTER WITH STARTING ADDRESS
MOV CX,04H ;4 DISPLAYS
AGAIN1:MOV BL,08H ;8 LEDS IN EACH DISPLAY
MOV AL,[SI] ;LETTER TO BE DISPLAYED IS LOADED IN AL REGISTER
AGAIN: ROL AL,01H
MOV DX,PB
OUT DX,AL ; SEND THE LETTER TO BE DISPLAYED TO PORT B
MOV BH,AL
MOV DX,PC
MOV AL,00H
OUT DX,AL
MOV AL,0FFH
OUT DX,AL ; CONTROL PULSE IS GIVEN TO SHIFT REGISTER THROUGH PORT C
MOV AL,BH
DEC BL
JNZ AGAIN
CALL DELAY
INC SI
LOOP AGAIN1
MOV AH,4CH
INT 21H ;DOS ROUTINE TO TERMINATE

DELAY PROC
PUSH BX
PUSH CX
MOV BX,0055H
BACK1: MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
POP CX
POP BX
RET
DELAY ENDP
END

RESULT: HELP IS DISPLAYED ON SEVEN SEGMENT DISPLAY

DEPT OF ECE, DBIT Page 17


MICROPROCESSOR LAB [15ECL47] IV
SEM

b. SEVEN SEGMENT DISPLAY WITH ROLLING FASHION

ALGORITHM:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT & PORT C AS O/P PORT.
STEP3: INITIALIZE THE COUNTER.
STEP4: USING PORT C, GIVE THE CONTROL PULSE.
STEP5: USING PORT B LOADS THE DATA PARALLELLY AND SHIFT DATA SERIALLY.
STEP6: HELP WILL DISPLAY & THEN ROLL TILL THE COUNTER BECOMES ZERO.
STEP7: FOR EACH DISPLAY INTRODUCE SOME DELAY BY CALLING DELAY SUBROUTINE.
STEP8: STOP THE EXECUTION.

CWR VALUE =80H 1 0 0 0 0 0 0 0

.MODEL SMALL
.DATA
PA EQU 0DE00H; ADDRESS OF PORT A
PB EQU 0DE01H; ADDRESS OF PORT B
PC EQU 0DE02H; ADDRESS OF PORT C
CW EQU 0DE03H; ADDRESS OF CWR
HELP DB 8EH,0F9H,88H,86H ; HEX CODE FOR HELP
.CODE
MOV AX,@DATA
MOV DS,AX ;INITIALIZE THE DATA SEGMENT REGISTER
MOV AL,80H
MOV DX,CW ;LOAD THE CONTROL WORD IN CONTROL WORD REGISTER
OUT DX,AL
MOV DI,04H
AGAIN2:LEA SI,HELP ;INITIALIZE THE SOURCE INDEX REGISTER WITH STARTING ADDRESS OF HELP
MOV CX,04H ; 4 DISPLAYS
AGAIN1:MOV BL,08H ;8 LEDS IN EACH DISPLAY
MOV AL,[SI] ; LETTER TO BE DISPLAYED IS LOADED IN AL REGISTER
AGAIN: ROL AL,01H
MOV DX,PB
OUT DX,AL ; SEND THE LETTER TO BE DISPLAYED TO PORT B
MOV BH,AL
MOV DX,PC
MOV AL,00H
OUT DX,AL
MOV AL,0FFH
OUT DX,AL ; CONTROL PULSE IS GIVEN TO SHIFT REGISTER THROUGH PORT C
MOV AL,BH
DEC BL
JNZ AGAIN ;

DEPT OF ECE, DBIT Page 18


MICROPROCESSOR LAB [15ECL47] IV
SEM

CALL DELAY
INC SI ; SOURCE INDEX REGISTER IS INCREMENTED TO POINT TO NEXT LETTER
LOOP AGAIN1
DEC DI
JNZ AGAIN2
MOV AH,4CH
INT 21H ; DOS ROUTINE TO TERMINATE
DELAY PROC
PUSH BX
PUSH CX
MOV BX,0055H
BACK1: MOV CX,0FFFFH
BACK: LOOP BACK
DEC BX
JNZ BACK1
POP CX
POP BX
RET
DELAY ENDP
END

RESULT: HELP IS DISPLAYED WITH ROLLING FASHION

(C ) DISPLAY BOTH FOOL & FIRE IN THE SEVEN SEGMENT DISPLAY

WRITE AN ALP TO DISPLAY FIRE & POOL IN ROLLING FASHION

ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT & PORT C AS O/P PORT.
STEP3: USING PORT C, GIVE THE CONTROL PULSE.
STEP4: USING PORT B LOAD THE DATA PARALLEL AND SHIFT DATA SERIALLY.
STEP5: FOOL WILL DISPLAY & THEN FIRE WILL DISPLAY.
STEP6: FOR EACH DISPLAY CALL DISPLAY SUBROUTINE.
STEP7: STOP THE EXECUTION.

CWR VALUE =80H 1 0 0 0 0 0 0 0


.MODEL SMALL
.DATA
PA EQU 0DE00H ; ;ADDRESS OF PORT A
PB EQU 0DE01H; ;ADDRESS OF PORT B
PC EQU 0DE02H; ;ADDRESS OF PORT C
CW EQU 0DE03H; ; ADDRESS OF CWR
FOOL DB 8EH,0C0H,0C0H,0C7H ; HEX WORDS FOR FOOL
FIRE DB 8EH,0F9H,88H,86H ;HEX WORDS FOR FIRE

DEPT OF ECE, DBIT Page 19


MICROPROCESSOR LAB [15ECL47] IV
SEM

N DB 05H
.CODE
MOV AX,@DATA
MOV DS,AX ; INITIALIZE THE DATA SEGMENT REGISTER
MOV AL,80H
MOV DX,CW ; CONTROL WORD IS LOADED IN CONTROL WORD REGISTER
OUT DX,AL
START: LEA SI,FOOL ; SOURCE INDEX REGISTER IS LOADED WITH STARTING ADDRESS OF
FOOL
CALL DISPLAY ; CALL DISPLAY ROUTINE
CALL DELAY ; CALL THE DELAY ROUTINE
LEA SI FIRE ; SOURCE INDEX REGISTER IS LOADED WITH STARTING ADDRESS OF
FIRE
CALL DISPLAY ; CALL DISPLAY ROUTINE
CALL DELAY CALL THE DELAY ROUTINE
DEC N
JNZ START
MOV AH,4CH
INT 21H ; CALL DOS ROUTINE TO TERMINATE

DISPLAY PROC
MOV CX,04H ; 4 DISPLAYS
AGAIN1: MOV BL,08H ; 8 LEDS IN EACH DISPLAY
MOV AL,[SI] ; LETTER TO BE DISPLAYED IS MOVED TO AL REGISTER
AGAIN: ROL AL,01H
MOV DX,PB
OUT DX,AL ; SEND THE LETTER TO BE DISPLAYED TO PORT B
MOV BH,AL
MOV DX,PC
MOV AL,00H
OUT DX,AL
MOV AL,0FFH ; CONTROL PULSE IS GIVEN TO SHIFT REGISTER THROUGH PORT C
OUT DX,AL
MOV AL,BH
DEC BL
JNZ AGAIN
CALL DELAY
INC SI
LOOP AGAIN1
RET
DISPLAY ENDP

DELAY PROC
PUSH BX
PUSH CX
MOV BX,0055H
BACK1: MOV CX,0FFFFH

DEPT OF ECE, DBIT Page 20


MICROPROCESSOR LAB [15ECL47] IV
SEM

BACK: LOOP BACK


DEC BX
JNZ BACK1
POP CX
POP BX
RET
DELAY ENDP
END

RESULT: FOOL & FIRE IS DISPLAYED ON SEVEN SEGMENT DISPLAY.

DEPT OF ECE, DBIT Page 21


MICROPROCESSOR LAB [15ECL47] IV
SEM

MATRIX KEYBOARD & DISPLAY ( 4 X 4 MATRIX) PROGRAMS

CWR VALUE =90H 1 0 0 1 0 0 0 0

ALGORITHMS:
STEP1: INITIALIZE 8255 CONTROL WORD REGISTER FOR SIMPLE I/O MODE.
STEP2: INITIALIZE PORT B AS O/P PORT AND PORT A AS I/P PORT.
STEP3: INITIALIZE ROW =0, COL=1, KEY=0
STEP4: INITIALIZE ROW COUNT =4& COLUMN COUNT=4 FOR 4X4 7-SEGMENT
DISPLAY.
. STEP5: IF ANY KEY IS PRESSED IN ROW=0, DIFFERENT COLUMNS, INCREMENT THE
COLUMN COUNT & CORRESPONDING ROW, COLUMN, KEY WILL DISPLAY.
STEP6: IF WE PRESSED THE KEY OTHER THAN ROW=0, ROW COUNT WILL INCREMENT
AND CORRESPONDING ROW, COLUMN, KEY COLUMN AND KEY WILL DISPLAY.
STEP7: STOP THE EXECUTION.

PRINTSTRING MACRO MESSAGE ; MACRO TO DISPLAY MESSAGE

LEA DX, MESSAGE


MOV AH,09H
INT 21H
ENDM

.MODEL SMALL

DEPT OF ECE, DBIT Page 22


MICROPROCESSOR LAB [15ECL47] IV
SEM

.DATA
PA EQU 0DE00 ; ADDRESS OF PORT A
PB EQU 0DE01H; ADDRESS OF PORTB
PC EQU 0DE02H; ADDRESS OF PORT C
CW EQU 0DE03H; ADDRESS OF CWR
MESSAGE1 DB 10,13, ‘PRESS ANY KEY FRROM KEYBOARD’,’$’
MESSAGE2 DB 10,13,’ENTERED KEY IS:’, ‘$’
MESSAGE3 DB 10,13,’ROW NUMBER:’, ‘$’
MESSAGE4 DB 10,13,’COLUMN NUMBER:’,’$’
ROW DB 1 DUP(0)
COL DB 1 DUP(0)

.CODE
MOV AX,@DATA
MOV DS,AX ; INITIALIZE THE DATA SEGMENT REGISTER
MOV AL,90H
MOV DX,CW
OUT DX,AL ; ;LOAD THE CONTROL WORD IN CWR

PRINTSTRING MESSAGE1
START:MOV AL,80H
MOV ROW,1 ;INITIALIZE ROW TO1
MOV COL,1 ; INITIALIZE COL TO1
MOV CH,0
MOV BL,4
NEXTROW: ROL AL,01H
MOV BH,AL
MOV DX,PB
OUT DX,AL ; ACTIVATE FIRST ROW
MOV CL,04H
MOV DX,PA
IN AL,DX ; INPUT THE DATA FROM KEYBOARD TO AL THROUGH PORT A
NEXTCOL: ROR AL,01H
JC DISPLAY ; IF KEY IS PRESSED CARRY=1
INC CH
INC COL
DEC CL
JNZ NEXTCOL ; IF KEY IS NOT PRESSED THEN GO TO NEXT COLUMN
MOV COL,1
INC ROW
MOV AL,BH
DEC BL
JNZ NEXTROW; IF NONE OF COLUMNS IN THE PRESENT ROW IS NOT PRESSED GO TO NEXT ROW
START1: JMP START
DISPLAY: PRINTSTRING MESSAGE2
MOV DL,CH
CMP DL,0AH ; CONVERSION OF KEY PRESSED TO ASCII CODE
JC DIGIT

DEPT OF ECE, DBIT Page 23


MICROPROCESSOR LAB [15ECL47] IV
SEM

ADD DL,07H
DIGIT: ADD DL,30H
CALL DISPCHAR
ADD ROW,30H
ADD COL,30H
PRINTSTRING MESSAGE3
MOV DL,ROW
CALL DISPCHAR
PRINTSTRING MESSAGE4
MOV DL,COL
CALL DISPCHAR
MOV AH,4CH
INT 21H ; DOS ROUTINE TO TERMINATE

DISPCHAR PROC ; PROCEDURE TO DISPLAY CHARACTER


MOV AH,02H
INT 21H
RET
DISPCHAR ENDP
END

RESULT:

BEFORE EXECTION: PRESS ANY KEY FROM THE KEYBOARD: F


AFTER EXECUTION:
ROW NUMBER IS : 4
COLUMN NUMBER: 4

DEPT OF ECE, DBIT Page 24


MICROPROCESSOR LAB [15ECL47] IV
SEM

DAC INTERFACE

(I) SQUARE WAVE:

.MODEL SMALL

. DATA

PA EQU 0DE00H

PB EQU 0DE03H

.CODE

MOV AX,@DATA

MOV DS,AX

MOV AL,80H

MOV DX,CW

OUT DX,AL

MOV AL,00H

MOV DX,PA

OUT DX,AL

BACK2:XOR AL,0FFH

OUT DX,AL

CALL DELAY

JMP BACK2

MOV AH,4CH

INT 21H

DELAY PROC:

MOV BX,00FFH

DEPT OF ECE, DBIT Page 25


MICROPROCESSOR LAB [15ECL47] IV
SEM

BACK1:MOV CX,0FFFFH

BACK: LOOP BACK

DEC BX

JNZ BACK1

DELAY ENDP

END

(ii) SAWTOOTH WAVE:

.MODEL SMALL

. DATA

PA EQU 0DE00H

PB EQU 0DE03H

.CODE

MOV AX,@DATA

MOV DS,AX

MOV AL,80H

MOV DX,CW

OUT DX,AL

MOV AL,00H

MOV DX,PA

BACK: OUT DX,AL

INC AL

JMP BACK

MOV AH,4CH

INT 21H

END

DEPT OF ECE, DBIT Page 26


MICROPROCESSOR LAB [15ECL47] IV
SEM

DAC INTERFACE

Pin diagram of DAC 0800

DEPT OF ECE, DBIT Page 27


MICROPROCESSOR LAB [15ECL47] IV
SEM

(I) SQUARE WAVE:

.MODEL SMALL

. DATA

PA EQU 0DE00H

PB EQU 0DE03H

.CODE

MOV AX,@DATA : INITIAL

MOV DS,AX

MOV AL,80H

MOV DX,CW

OUT DX,AL

MOV AL,00H

MOV DX,PA

DEPT OF ECE, DBIT Page 28


MICROPROCESSOR LAB [15ECL47] IV
SEM

OUT DX,AL

BACK2:XOR AL,0FFH

OUT DX,AL

CALL DELAY

JMP BACK2

MOV AH,4CH

INT 21H

DELAY PROC:

MOV BX,00FFH

BACK1:MOV CX,0FFFFH

BACK: LOOP BACK

DEC BX

JNZ BACK1

DELAY ENDP

END

(ii) SAWTOOTH WAVE:

.MODEL SMALL

. DATA

PA EQU 0DE00H

PB EQU 0DE03H

.CODE

MOV AX,@DATA

MOV DS,AX

MOV AL,80H

MOV DX,CW

OUT DX,AL
DEPT OF ECE, DBIT Page 29
MICROPROCESSOR LAB [15ECL47] IV
SEM

MOV AL,00H

MOV DX,PA

BACK: OUT DX,AL

INC AL

JMP BACK

MOV AH,4CH

INT 21H

END

DEPT OF ECE, DBIT Page 30


MICROPROCESSOR LAB [15ECL47] IV
SEM

LIGHT DEPENDENT RESITOR(LDR), RELAY AND BUZZER INTERFACE TO MAKE LIGHT


OPERATED SWITCHES.

BASE_ADDRESS EQU 7080H

DEPT OF ECE, DBIT Page 31


MICROPROCESSOR LAB [15ECL47] IV
SEM

PORTA EQU BASE_ADDRESS+00H

PORTB EQU BASE_ADDRESS+01H

PORTC EQU BASE_ADDRESS+02H

CNTRL EQU BASE_ADDRESS +03H

DSEG SEGMENT

;PROGRAM FOR LDR-BUZZER-RELAY OPERATION

; PC1 CONNECTED TO LDR I/P

; PC4 CONNECTED TO BUZZER-RELAY

DSEG ENDS

CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG

ST1:

;CONFIGURE PORTCL AS I/P & OTHER PORTS AS O/P

MOV DX,CNTRL

MOV AL,81H

OUT DX,AL

MOV DX,CNTRL

MOV AL,08H; BZR RLY OFF

OUT DX,AL

CHKLDR:

MOV DX,PORTC

IN AL,DX

AND AL,02H
DEPT OF ECE, DBIT Page 32
MICROPROCESSOR LAB [15ECL47] IV
SEM

JNZ BZRLYON

MOV DX,CNTRL

MOV AL,08H ; BZR RLY OFF

OUT DX,AL

JMP CHKLDR

BZRLYON:

MOV DX,CNTRL

MOV AL,09H ; BZR RLY ON

OUT DX,AL

;DELAY

MOV CX,0FFFFH

DLY: LOOP DLY

JMP CHKLDR

CSEG ENDS

END ST1

END

DEPT OF ECE, DBIT Page 33


MICROPROCESSOR LAB [15ECL47] IV
SEM

VIVA QUESTIONS & ANSWERS

1.What is Microprocessor?
Ans:-It is a Semiconductor programmable device, it consists of electrical & logical circuits manufactured by
large scale integration technique, which fetches, decode and executes instructions.

2. Explain the function of CPU in Microprocessor.


Ans: A microprocessor controls all functions of the CPU, or central processing unit, of a computer or other
digital device. The microprocessor is programmed to give and receive instructions from other components of
the device. The system can control everything from small devices such as calculators and mobile phones to
large automobiles.

3. Define Compiler.
Ans:- A compiler is a computer program (or set of programs) that transforms source code written in a
programming language (the source language) into another computer language (the target language, often
having a binary form known as object code). The most common reason for wanting to transform source code
is to create an executable program.

4. Define Interpreter.
Ans:- An interpreter may be a program that either :-executes the source code directly; translates source code
into some efficient intermediate representation (code) and immediately executes this; explicitly executes
stored precompiled code made by a compiler which is part of the interpreter system.

5. Define Assembler.
Ans:- An assembler is a program that takes basic computer instructions and converts them into a pattern of
bits that the computer's processor can use to perform its basic operations. 

6. What is Assembly level language?


Ans:-An assembly language is a low-level programming language for microprocessors. It implements a
symbolic representation of the binary machine codes and other constants needed to program a particular CPU
architecture. This representation is usually defined by the hardware manufacturer, and is based on mnemonics
that symbolize processing steps (instructions), processor registers, memory locations, and other language
features.

7. What are Mnemonics?

Ans:-Mnemonics are instructions or commands to perform a particular operation given by user to


Microprocessor e.g MOV,ADD ,SUB,IMUL.

8. What is a bus?
Ans:-Information is transferred between units of the microcomputer by collections of conductors called buses.
There will be one conductor for each bit of information to be passed, e.g., 16 lines for a 16 bit address bus.
There will be address, control, and data buses.

9. Distinguish between Microprocessor & Microcontroller.

DEPT OF ECE, DBIT Page 34


MICROPROCESSOR LAB [15ECL47] IV
SEM

Ans:-The microprocessor is a digital integrated circuit device that can be programmed with a series of
instructions to perform specified functions on data. But micro controller is a computer on a chip which has
memory ,input, output on the chip itself. So ,micro processor can perform only few functions but micro
controller can perform so many functions.

10. Define address bus, data bus and control bus.

Ans:- ADDRESS BUS:-An address bus is a computer bus (a series of lines connecting two or more devices)
that is used to specify a physical address. When a processor or DMA-enabled device needs to read or write to
a memory location, it specifies that memory location on the address bus (the value to be read or written is sent
on the data bus). The width of the address bus determines the amount of memory a
system can address. 

DATA BUS:-The bus (connections between and within the CPU, memory, and peripherals) used to
carry data. Other connections are the address bus and control signals. The width and clock rate of the data bus
determine its data rate (the number of bytes per second it can carry), which is one of the main factors
determining the processing power of a computer.
CONTROL BUS:-The control bus (or command bus) transports orders and synchronization signals coming
from the control unit and travelling to all other hardware components. It is a bidirectional bus, as
it also transmits response signals from the hardware.

11. What is nibble, byte and word

Ans:-NIBBLE:-In computing, a nibble is a four-bit aggregation or half an octet. As a nibble contains 4 bits.
BYTE:-
The byte (pronounced /ˈbaɪt/) is a unit of digital information in computing and telecommunications. The size
of a byte is typically hardware dependent, but the modern de facto standard is 8 bits, as this is a convenient
power of 2.
WORD:- The most common microprocessors used in personal computers (for instance, the Intel Pentiums and
AMD Athlons) are an example of this; their IA-32 architecture is an extension of the original Intel
8086 design which had a word size of 16 bits. 

12.What is a register?

Ans:-In computer architecture, a processor register (or general purpose register) is a small amount of storage
available on the CPU whose contents can be accessed more quickly than storage available elsewhere.
Typically, this specialized storage is not considered part of the normal memory range for the machine.
Processor registers are at the top of the memory hierarchy, and provide the fastest way for a CPU to access
data

13. Why is the data bus bidirectional?

Ans:-Data bus is bi-directional because same bus is used for data transmission from microprocessor
to memory location or input/output device and vice versa. That’s why data bus is bi-directional.

DEPT OF ECE, DBIT Page 35


MICROPROCESSOR LAB [15ECL47] IV
SEM

14. what is a flag register.

Ans:-Flag Register:- * The flag indicates the condition of the microprocessor as well as controls its
operations. * A flag register is a flip-flop which indicates some conditions produced by the execution of an
instruction or controls certain operations of the EU. A 16-bit flag register in the EU contains nine active
flags. Two types of flags: Conditional or status flags: Six flags are conditional flags. They are set or reset by
the EU on the basis of the results of some arithmetic operation.

15. Give the features of 8086 microprocessor.

Ans:-8086 is a 16-bit microprocessor,» 16-bit data bus,» Up to 10 MHz,» 1 MB RAM,» 64K I/O ports,40-pin
DIP,56-pin QFP,44-pin PLCC.

16. Define effective address

Ans:-Effective address is the final address generated by offsetting and indexing which is sent to the virtual
translation logic. It is the address of the operand in the virtual address space of the process, but not
necessarily the address of the operand in the
physical address space of the computer. 

17.How many segment registers are there in 8086?

Ans:-4 different types of segments in 8086 i.e.,CS(Code Segment)to hold code area SS(Stack Segment)to run
program DS(Data Segment)to hold data ES(Extra Segment)to hold
large data.

18.What are the registers present in internal architecture 8086?

Ans:-The 8086 had eight (more or less general) 16-bit registers including the stack pointer, but excluding the
instruction pointer, flag register and segment registers. Four of them, AX, BX, CX, DX, could also be
accessed as twice as many 8-bit registers (see figure) while the
other four, BP, SI, DI, SP, were 16-bit only.

19 What is PSW?. Give its structure and explain.

Ans:-The current state of the processor is stored in a register called Processor Status


Word(PSW).The PSW contains bits which indicate such things as whether the previous arithmetic operations
produced a positive, negative or zero result. If a subtract instruction is followed by a "branch on zero"
instruction ,then the branch will be taken if the PSW indicates that the subtraction resulted in a zero. Most
loops, such as DO-WHILE, FOR, etc involve incrementing or decrementing a counter and repeating the loop
until the counter reaches the limit. Each time the counter is changed, the result is compared with the limit,
the PSW is set accordingly ,and branch is taken or not depending on the contents of the PSW. The 8086
microprocessor has a 16-bit PSW

20. What is an instruction?

DEPT OF ECE, DBIT Page 36


MICROPROCESSOR LAB [15ECL47] IV
SEM

Ans:-An instruction is an order given to a computer processor by a computer program. At the lowest level,
each instruction is a sequence of 0s and 1s that describes a physical operation the computer is to perform
(such as "Add") and, depending on the particular instruction type, the specification of special storage areas
called registers that may contain data to be used in carrying out the instruction, or the location in
computer memory of data.

The Microsoft Macro Assembler (MASM) is an x86 assembler for MS-DOS and Microsoft Windows. It
supports a wide variety of macro facilities and structured programming idioms, including high-level functions
for looping and procedures.

21. What are different types of instructions. Give examples

Ans:-There are different instruction types:-


1)Data Movement:-examples:-{Load,Move,Push,Pop}
2)Logical Operations:-ex:-{And,Or,Xor,Not,Shl,Shr}
3)Arithmetic Operations:-ex:-{Add,Sub,Mulu*,Muls*,Divu*,Divs*}
4)Comparison:-ex:-{Cmp}
5)Flow Control:-ex:-{Bra,Bsr,Rts,Rti}
6)Others:-ex:-{Nop}

22. What are different addressing modes?

Ans:-1. Immediate addressing.2. Register addressing.3. Direct addressing.4. Indirect addressing. 5. Relative
index addressing mode. 6. Based indexed addressing mode. 7. Relative based indexed Addressing mode. 8.
Stack addressing mode.

23. Give the different type of data related addressing modes and explain with examples.

Ans:-1}Immediate addressing
Load the immediate data into the register, R.
Example: MVI R, data
2)Register addressing
Data from source register is moved into destination register.
Example: MOV Rd, Rs
3)Direct addressing
Accepts data from external devices to be stored in the accumulator or sends the data from the accumulator to
the external device. Example: IN 00H or OUT 01H

24. What are the different types of branch related addressing modes?

Ans:- Branch Addressing Modes


1. Intrasegment Direct 2. Intrasegment Indirect 3. Intersegment Direct 4. Intersegment Direct

25. Distinguish between packed BCD and unpacked BCD

DEPT OF ECE, DBIT Page 37


MICROPROCESSOR LAB [15ECL47] IV
SEM

Ans:-Packed BCD numbers are stored two digits to a byte in 4 bit groups referred as nibbles Ex:86
in unpacked BCD there is only one digit per byte Ex: 08, 06

26. Describe CBW and CWD instructions

Ans:-The CBW and CWDE mnemonics reference the same opcode. The CBW instruction is intended for use
when the operand-size attribute is 16 and the CWDE instruction for when the operand-size attribute is 32. The
CWDE instruction is different from the CWD (convert word to double) instruction. The CWD instruction uses
the DX:AX register pair as a destination operand; whereas, the CWDE instruction uses the EAX register as a
destination.

27. Describe about MUL, IMUL, DIV, IDIV instructions.

Ans:-MUL (multiply) instruction is used for unsigned multiplication. This instruction multiplies bytes or
words. 
IMUL (Integer multiply) instruction is used for signed multiplication. This instruction multiply bytes or
words. 
The DIV instruction is to divide unsigned data. We can divide a byte by byte, a word by byte, double word by
word.
The IDIV instruction is to divide signed data. We can divide a byte by byte, a word by byte, double word by
word and the operations are just like DIV instructions 

28. Describe about LOOP instructions.

Ans:-The LOOP instruction is a combination of a decrement of CX and a conditional jump. In the 8086,
LOOP decrements CX and if CX is not equal to zero, it jumps to the address indicated by the label. If CX
becomes a 0, the next sequential instruction executes.

29. Give examples of conditional branch instructions.

Ans:-In a loop if there are different jump instructions with a condition or counter called conditional loop and
instructions in that loop are called unconditional branch instructions.

30. Give examples of unconditional branch instructions

Ans:-In a loop if there are different jump instructions with no condition it is called unconditional loop and
instructions in that loop are called unconditional branch instructions.

31. What are flag manipulation instructions ? Give examples

Ans:-Flag manipulation instructions. STC, CLC, CMC. Set, clear, complement carry flag. STD, CLD. Set,
clear direction flag

32.Explain about DAA instruction


The daa instruction is used to adjust the content of the AL register after that register is used to perform the

DEPT OF ECE, DBIT Page 38


MICROPROCESSOR LAB [15ECL47] IV
SEM

addition of two packed BCDs. The CPU uses the following logic:

CF_old = CF
IF (al AND 0Fh > 9) or (the Auxilliary Flag is set)
al = al+6
CF = CF or CF_old
AF set
ENDIF
IF (al > 99h) or (Carry Flag is set)
al = al + 60h
CF set
ENDIF

33.Explain shift and rotate instructions

Ans:-SHL(SHIFT LEFT):-shifting bit code by no.of bits to left{ex:-00001011 when shifted left by one bit it
becomes 00010110},SHR(SHIFT RIGHT):-shifting bit code by no.of bits to right{ex:-00001011 when shifted
left by one bit it becomes 00000101}
ROR(ROTATE RIGHT):-rotate bit code from right to left{ex:-00001011 when rotated right by one bit it
becomes as 00010110}ROL{ROTATE LEFT}:-rotate bit code from left to right{ex:-00001011 when rotated
left by one bit it becomes as 10000101}RCL{ROTATE CARRY TO LEFT};RCR{ROTATE CARRY TO
RIGHT}

34. What are Assembler directives?

Ans:-Assembler directives are instructions to the assembler concerning the program being assembled.

35. Define assembly process

Ans:-A microprocessor executes a collection of machine instructions that tell the processor what to do is
known as assembly process.

36. Define two pass assembler

Ans:-A two pass assembler does two passes over the source file ( the second pass can be over a file generated
in the first pass ). In the first pass all it does is looks for label definitions and introduces them in the symbol
table. In the second pass, after the symbol table is complete, it does the actual assembly by translating the
operations and so on.

37. What are the advantages of modular programming?

Ans:-Modular programming can be used to break up a large program into manageable units, or to create code
that can be easily re-used. Reduce problem to smaller, simpler, humanly comprehensible problems

38. What is linking and relocation

DEPT OF ECE, DBIT Page 39


MICROPROCESSOR LAB [15ECL47] IV
SEM

Ans:- A linker is a program used to join together several object files into one large object file. The linker
produces a link file which contains the binary codes for all the combined modules. It also produces a link map
which contains the address information about the link files. The linker does not assign absolute addresses but
only relative address starting from zero, so the programs are relocatable & can be put anywhere in memory to
be run.

39. What is a stack?

Ans:-A stack is a last in, first out (LIFO) abstract data type and data structure. A stack can have any abstract
data type as an element, but is characterized by only two fundamental operations: push and pop.

40. What are stack operated instructions? Explain

Ans:-The generic use of stack is for, Return address return value ,parameters to called function, local variables
in the called function, processor registers that will be reused in the
called function.

41. Define Procedure.

Ans:-Procedures are a group of instructions stored as a separate program in memory and it is called from the
main program whenever required. The type of procedure depends on where the procedures are stored in
memory. If it is in the same code segment as that of the main program then it is a near procedure otherwise it
is a far procedure.

42. Explain about CALL and RETURN instructions

Ans:-CALL 16-bit memory address of a subroutine. It is a 3-byte instruction that transfers the program
sequence to a subroutine Saves the content of the PC (Program Counter-16-bit register) , the address of the
next instruction , on the stack. Decrements the stack pointer register by 2. Jumps unconditionally to the
memory location specified by the 2nd and 3rd bytes. This instruction is accompanied by a RETURN
instruction in the subroutine. The return instruction is used either to return a function value or to terminate the
execution of a function. The exit may be from anywhere within the function body, including loops or nested
blocks. If the function returns a value, the return instruction is required

43. What is recursive procedure?

Ans:-A recursive procedure is a procedure, which calls itself. Recursive procedures are used to work with
complex data structures called trees. If the procedure is called with N=3, then the N is decremented by 1 after
each procedure CALL and the procedure is called until N=0.

44. What is an interrupt? Explain

Ans:-An interrupt is a condition that causes the microprocessor to temporarily work on a different task, and

DEPT OF ECE, DBIT Page 40


MICROPROCESSOR LAB [15ECL47] IV
SEM

then later return to its previous task. Interrupts can be internal or external. Internal interrupts, or "software
interrupts," are triggered by a software instruction and operate similarly to a jump or branch instruction Turbo
Assembler (TASM) is an x86 assembler package developed by Borland. It is used with Borland's high-level
language compilers, such as Turbo Pascal, Turbo Basic and Turbo C.

45. HOW THE INTERRUPTS ARE AFFECTED BY SYSTEM RESET? 

WHENEVER THE PROCESSOR OR SYSTEM IS RESETTED , ALL THE INTERRUPTS EXCEPT TRAP ARE DISABLED.
FU ORDER TO ENABLE THE INTERRUPTS, EL INSTRUCTION HAS TO BE EXECUTED AFTER A RESET. 

52. WHAT IS SOFTWARE INTERRUPTS? 

THE SOFTWARE INTERRUPTS ARE PROGRAM INSTRUCTIONS. THESE INSTRUCTIONS ARE INSERTED AT
DESIRED LOCATIONS IN A PROGRAM. WHILE RUNNING A PROGRAM, IF SOFTWARE INTERRUPT INSTRUCTION
IS ENCOUNTERED THEN THE PROCESSOR EXECUTES AN INTERRUPT SERVICE ROUTINE. 

53. WHAT IS HARDWARE INTERRUPT? 

IF AN INTERRUPT IS INITIATED IN A PROCESSOR BY AN APPROPRIATE SIGNAL AT THE INTERRUPT PIN, THEN


THE INTERRUPT IS CALLED HARDWARE INTERRUPT.

54. WHERE IS THE READY SIGNAL USED? 

READY IS AN INPUT SIGNAL TO THE PROCESSOR, USED BY THE MEMORY OR I/O DEVICES TO GET EXTRA TIME
FOR DATA TRANSFER OR TO INTRODUCE WAIT STATES IN THE BUS CYCLES. 

55. WHAT IS HOLD AND HLDA AND HOW IT IS USED?

HOLD AND HOLD ACKNOWLEDGE SIGNALS ARE USED FOR THE DIRECT MEMORY ACCESS (DMA) TYPE OF
DATA TRANSFER. THE DMA CONTROLLER PLACE A HIGH ON HOLD PINS IN ORDER TO TAKE CONTROL OF THE
SYSTEM BUS. THE HOLD REQUEST IS ACKNOWLEDGED BY THE 8085 BY DRIVING ALL ITS TRISTATED PINS TO
HIGH IMPEDANCE STATE
AND ASSERTING HLDA SIGNAL HIGH. 

56.WHAT IS POLLING? 

POLLING IS A SCHEME OR AN ALGORITHM TO IDENTIFY THE DEVICES INTERRUPTING THE PROCESSOR.


POLLING IS EMPLOYED WHEN MULTIPLE DEVICES INTERRUPT THE PROCESSOR THROUGH ONE INTERRUPT PIN
OF THE PROCESSOR. 

57. WHAT ARE THE DIFFERENT TYPES OF POLLING? 

THE POLLING CAN BE CLASSIFIED INTO SOFTWARE AND HARDWARE POLLING. IN SOFTWARE POLLING THE
ENTIRE POLLING PROCESS IS GOVERN BY A PROGRARN.1N HARDWARE POLLING, THE HARDWARE TAKES

DEPT OF ECE, DBIT Page 41


MICROPROCESSOR LAB [15ECL47] IV
SEM

CARE OF CHECKING THE STATUS OF INTERRUPTING DEVICES AND ALLOWING ONE BY ONE TO THE
PROCESSOR. 

58.WHAT IS THE NEED FOR INTERRUPT CONTROLLER? 

THE INTERRUPT CONTROLLER IS EMPLOYED TO EXPAND THE INTERRUPT INPUTS. IT CAN HANDLE THE
INTERRUPT REQUEST FROM VARIOUS DEVICES AND ALLOW ONE BY ONE TO THE PROCESSOR. 

59. LIST SOME OF THE FEATURES OF INTEL 8259 (PROGRAMMABLE INTERRUPT CONTROLLER) 

1. IT MANAGE EIGHT INTERRUPT REQUEST 2. THE INTERRUPT VECTOR ADDRESSES ARE PROGRAMMABLE. 
3.THE PRIORITIES OF INTERRUPTS ARE PROGRAMMABLE. 4. THE INTERRUPT CAN BE MASKED OR UNMASKED
INDIVIDUALLY. 

60. WHAT IS A PROGRAMMABLE PERIPHERAL DEVICE? 

IF THE FUNCTIONS PERFORMED BY A PERIPHERAL DEVICE CAN BE ALTERED OR CHANGED BY A PROGRAM


INSTRUCTION THEN THE PERIPHERAL DEVICE IS CALLED PROGRAMMABLE DEVICE. USUALLY THE
PROGRAMMABLE DEVICES WILL HAVE CONTROL REGISTERS. THE DEVICE CAN BE PROGRAMMED BY
SENDING CONTROL WORD IN THE PRESCRIBED FORMAT TO THE CONTROL REGISTER. 

61. WHAT IS SYNCHRONOUS DATA TRANSFER SCHEME?

FOR SYNCHRONOUS DATA TRANSFER SCHEME, THE PROCESSOR DOES NOT CHECK THE READINESS OF THE
DEVICE AFTER A COMMAND HAVE BEEN ISSUED FOR READ/WRITE OPERATION. FU THIS SCHEME THE
PROCESSOR WILL REQUEST THE DEVICE TO GET READY AND THEN READ/W1.ITE TO THE DEVICE
IMMEDIATELY AFTER THE REQUEST. IN SOME SYNCHRONOUS SCHEMES A SMALL DELAY IS ALLOWED AFTER
THE REQUEST. 

62. WHAT IS ASYNCHRONOUS DATA TRANSFER SCHEME.

IN ASYNCHRONOUS DATA TRANSFER SCHEME, FIRST THE PROCESSOR SENDS A REQUEST TO THE DEVICE FOR
READ/WRITE OPERATION. THEN THE PROCESSOR KEEPS ON POLLING THE STATUS OF THE DEVICE. ONCE THE
DEVICE IS READY, THE PROCESSOR EXECUTE A DATA TRANSFER INSTRUCTION TO COMPLETE THE PROCESS. 

63. EXPLAIN THE WORKING OF A HANDSHAKE OUTPUT PORT 

IN HANDSHAKE OUTPUT OPERATION, THE PROCESSOR WILL LOAD A DATA TO PORT. WHEN THE PORT
RECEIVES THE DATA, IT WILL INFORM THE OUTPUT DEVICE TO COLLECT THE DATA. ONCE THE OUTPUT
DEVICE ACCEPTS THE DATA, THE PORT WILL INFORM THE PROCESSOR THAT IT IS EMPTY. NOW THE
PROCESSOR CAN LOAD ANOTHER DATA TO PORT AND THE ABOVE PROCESS IS REPEATED.

64..WHAT ARE THE INTERNAL DEVICES OF 8255 ? 

THE INTERNAL DEVICES OF 8255 ARE PORT-A, PORT-B AND PORT-C. THE PORTS CAN BE PROGRAMMED FOR
EITHER INPUT OR OUTPUT FUNCTION IN DIFFERENT OPERATING MODES. 

DEPT OF ECE, DBIT Page 42


MICROPROCESSOR LAB [15ECL47] IV
SEM

65. WHAT IS BAUD RATE? 

THE BAUD RATE IS THE RATE AT WHICH THE SERIAL DATA ARE TRANSMITTED. BAUD RATE IS DEFINED AS L
/(THE TIME FOR A BIT CELL). IN SOME SYSTEMS ONE BIT CELL HAS ONE DATA BIT, THEN THE BAUD RATE AND
BITS/SEC ARE SAME. 

66. WHAT IS USART?

THE DEVICE WHICH CAN BE PROGRAMMED TO PERFORM SYNCHRONOUS OR ASYNCHRONOUS SERIAL


COMMUNICATION IS CALLED USART (UNIVERSAL SYNCHRONOUS ASYNCHRONOUS RECEIVER TRANSMITTER).
THE INTEL 8251A S AN EXAMPLE OF USART. 

67. WHAT ARE THE FUNCTIONS PERFORMED BY INTEL 8251A? THE INTEL 825LA IS USED FOR
CONVERTING PARALLEL DATA TO SERIAL OR VICE VERSA. THE DATA TRANSMISSION OR RECEPTION CAN BE
EITHER ASYNCHRONOUSLY OR SYNCHRONOUSLY. THE 8251A CAN BE USED TO INTERFACE MODEM AND
ESTABLISH SERIAL COMMUNICATION THROUGH MODEM OVER TELEPHONE LINES. 

68. WHAT IS AN INTERRUPT? 

INTERRUPT IS A SIGNAL SEND BY AN EXTERNAL DEVICE TO THE PROCESSOR SO AS TO REQUEST THE


PROCESSOR TO PERFORM A PARTICULAR TASK OR WORK. 

69. WHAT ARE THE CONTROL WORDS OF 8251A AND WHAT ARE ITS FUNCTIONS ? 

THE CONTROL WORDS OF 8251A ARE MODE WORD AND COMMAND WORD. THE MODE WORD INFORMS 8251
ABOUT THE BAUD RATE, CHARACTER LENGTH, PARITY AND STOP BITS. THE COMMAND WORD CAN BE SEND
TO ENABLE THE DATA TRANSMISSION AND RECEPTION. 

70. WHAT ARE THE INFORMATION THAT CAN BE OBTAINED FROM THE STATUS WORD OF 8251 ? 

THE STATUS WORD CAN BE READ BY THE CPU TO CHECK THE READINESS OF THE TRANSMITTER OR RECEIVER
AND TO CHECK THE CHARACTER SYNCHRONIZATION IN SYNCHRONOUS RECEPTION. IT ALSO PROVIDES
INFORMATION REGARDING VARIOUS ERRORS IN THE DATA RECEIVED. THE VARIOUS ERROR CONDITIONS
THAT CAN BE CHECKED FROM THE STATUS WORD ARE PARITY ERROR, OVERRUN ERROR AND FRAMING
ERROR.

71. GIVE SOME EXAMPLES OF INPUT DEVICES TO MICROPROCESSOR-BASED SYSTEM. 

THE INPUT DEVICES USED IN THE MICROPROCESSOR-BASED SYSTEM ARE KEYBOARDS, DIP SWITCHES, ADC,
FLOPPY DISC, ETC. 

72. WHAT ARE THE TASKS INVOLVED IN KEYBOARD INTERFACE? 

THE TASK INVOLVED IN KEYBOARD INTERFACING ARE SENSING A KEY ACTUATION, DEBOUNCING THE KEY
AND GENERATING KEY CODES (DECODING THE KEY). THESE TASK ARE PERFORMED SOFTWARE IF THE

DEPT OF ECE, DBIT Page 43


MICROPROCESSOR LAB [15ECL47] IV
SEM

KEYBOARD IS INTERFACED THROUGH PORTS AND THEY ARE PERFORMED BY HARDWARE IF THE KEYBOARD
IS INTERFACED THROUGH 8279. 

73. HOW A KEYBOARD MATRIX IS FORMED IN KEYBOARD INTERFACE USING 8279? 

THE RETURN LINES, RLO TO RL7 OF 8279 ARE USED TO FORM THE COLUMNS OF KEYBOARD MATRIX. IN
DECODED SCAN THE SCAN LINES SLO TO SL3 OF 8279 ARE USED TO FORM THE ROWS OF KEYBOARD MATRIX.
IN ENCODED SCAN MODE, THE OUTPUT LINES OF EXTERNAL DECODER ARE USED AS ROWS OF KEYBOARD
MATRIX.

74. WHAT IS SCANNING IN KEYBOARD AND WHAT IS SCAN TIME? 

THE PROCESS OF SENDING A ZERO TO EACH ROW OF A KEYBOARD MATRIX AND READING THE COLUMNS FOR
KEY ACTUATION IS CALLED SCANNING. THE SCAN TIME IS THE TIME TAKEN BY THE PROCESSOR TO SCAN
ALL THE ROWS ONE BY ONE STARTING FROM FIRST ROW AND COMING BACK TO THE FIRST ROW AGAIN. 

75. WHAT IS SCANNING IN DISPLAY AND WHAT IS THE SCAN TIME? 

IN DISPLAY DEVICES, THE PROCESS OF SENDING DISPLAY CODES TO 7 -SEGMENT LEDS TO DISPLAY THE LEDS
ONE BY ONE IS CALLED SCANNING ( OR MULTIPLEXED DISPLAY). THE SCAN TIME IS THE TIME TAKEN TO
DISPLAY ALL THE 7-SEGMENT LEDS ONE BY ONE, STARTING FROM FIRST LED AND COMING BACK TO THE
FIRST LED AGAIN. 

DEPT OF ECE, DBIT Page 44

You might also like