Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 22

SET 1

16 BIT ADDITION
8100: LHLD 8200
XCHG
LHLD 8202
MVI C, 00
DAD D
JNC 810E
INR C
SHLD 8300
MOV A, C
STA 8302
HLT
MEMORY ADDRESS

INPUT

OUTPUT

8200H
8201H
8202H
8203H
8300H(SUM-lower)
8301H(SUM-Higher)
8302H(CARRY)

DATA 1
(WITHOU
T CARRY)
45
23
34
12
79
35
00

INTEGRATOR

DATA 2
(WITH
CARRY)
FF
FF
01
00
00
00
01

8100: LHLD 8200


XCHG
LHLD 8202
MOV A, E
ADD L
MOV L, A
MOV A, D
ADC H
MOV H, A
SHLD 8300
8301H.
MOV A, C
STA 8302
HLT

: Get first 16-bit number in HL


: Save first 16-bit number in DE
: Get second 16-bit number in HL
: Get lower byte of the first number
:add lower byte of the second number
: Store the result in L register
: Get higher byte of the first number
: add higher byte of second number with borrow
: Store l6-bit result in memory locations .
: Store l6-bit result in memory locations 8300H and
store the carry at 8302 memory location
: Terminate program execution.

MEMORY ADDRESS

INPUT

OUTPUT

8200H
8201H
8202H
8203H
8300H(SUM-lower)
8301H(SUM-Higher)
8302H(CARRY)

BINARY TO GRAY CODE CONVERTER:


LOGIC DIAGRAM:

DATA 1
(WITHOU
T CARRY)
45
23
34
12
79
35
00

DATA 2
(WITH
CARRY)
FF
FF
01
00
00
00
01

TRUTH TABLE:
DECIMA
L
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

MEMORY

8500
8503
8504
8507
8508
8509
850B
850C
850F
8510
8511
8514
8517
8518
851B

D
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

BINARY
C
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1

CODE
B
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1

A
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1

G3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1

GRAY CODE
G2
G1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0

G0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0

LABEL

MNEMONICS

START

LDA 8200H
MOV D,A
LDA 8201H
MOV B,A
DCR D
MVI C,00
ADD B
JNC 8510 (L1)
INR C
DCR D
JNZ 850B (L2)
STA 8300
MOV A,C
STA 8301
HLT

L2
L1

FULLSUBTRACTOR
TRUTHTABLE:FULLSUBTRACTOR
S.No

INPUT

OUTPUT

A
B
C
DIFF
BORR

1.
0
0
0
0
0

2.
0
0
1
1
1

3.
0
1
0
1

4.
0
1
1
0
1

5.
1
0
0
1
0

6.
1
0
1
0
0

7.
1
1
0

0
0

8.
1
1
1
1
1

DIFF= ABC + ABC + ABC + ABC = A


BORR = AB + AC + BC

MEMORY
8500
8503
8504
8507
8509

MNEMONICS
LDA 8200
MOV D,A
LDA 9201
MVI C,00
SUB D

LABEL
START

L1

850A
850B
850C
850F
8512
8513
8516

ADC

INR C
CMP D
JNC 8509 (L1)
STA 8300
MOV A,C
STA 9301
HLT

Digital Output = Analog Input * 256 / Vref

ADDRESS
8000
8003
8005
8006
8007
8008
8009
800C
800D
800E

LABEL

LOOP1

AHEAD

8011
8014

STOP

MNEMONICS
LXI H,8100H
MOV B,05
DEC B
MOV A,M
INX H
CMP M
JC AHEAD(800D)
MOV A,M
DCR B
JNZ LOOP1(8007)
STA 8200H
HLT

DAC PROGRAM FOR 8085:

8500
8502
8504
8506
8508
850A
850C

MVI A, 80h
OUT 23
MVI A,00h
OUT 20h
MVI A, 80h
OUT 21
MVI A, 00h

850E
8510

OUT 22
RST 1

; CNTRL WORD
; CONTROL REG
; DIGITAL INPUT DATA1
; DIGITAL INPUT DATA 2
; DAC SELECTION DATA
(00 OR 01)

Analog Output = Digital Input * Vref / 256

ADDRESS
8000
8003
8005
8006
8007
8008
8009
800C
800D
800E
8011
8014

LABEL

LOOP1

AHEAD

STOP

MNEMONICS
LXI H,8100H
MOV B,05
DEC B
MOV A,M
INX H
CMP M
JNC AHEAD(800D)
MOV A,M
DCR B
JNZ LOOP1(8007)
STA 8200H
HLT

FULL ADDER

SUM = ABC + ABC + ABC + ABC = A B


CARRY = AB + AC + BC

Program (addition):

ADDRESS
LABEL
9100
START

AHEAD

HERE
ADDRESS
9100

MNEMONICS
CLR C
MOV R0, #00
MOV A,#05
MOV B,#03
ADD A,B
MOV DPTR,#9200
JNC AHEAD
INC R0
MOV X @DPTR,A
INC DPTR
MOV A,R0
MOV X @DPTR,A
SJMP HERE

PROGRAM (SUBTRACTION):
LABEL
MNEMONICS
START
CLR C
MOV R0, #00
MOV A,#05
MOV B,#03
SUBB A,B
MOV DPTR,#9200
JNC AHEAD
INC R0
AHEAD
MOV X @DPTR,A
INC DPTR
MOV A,R0
MOV X @DPTR,A
HERE
SJMP HERE

PROGRAM (MULTIPLICATION):
Address
9000

Label
START

HERE

Mnemonics

MOV A,#05
MOV F0,#03
MUL AB
MOV DPTR,#9200
MOVX @ DPTR,A
INC DPTR
MOV A,F0
MOVX @DPTR,A
SJMP HERE

PROGRAM (DIVISION):

Addres Label
s
9000
START

HERE

Mnemonics
MOV A,#05
MOV F0,#03
DIV AB
MOV DPTR,#9200
MOVX @ DPTR,A
INC DPTR
MOV A,F0
MOVX @DPTR,A
SJMP HERE

MEMORY

LABEL

MNEMONICS

8500

START

LDA 8200H

8503

MOV B,A

8504

LDA 8201H

8507

MVI C,00

8509

SUB B

850A

JNC LOOP1

850D

INR C

850E

LOOP1

STA 8300H

8511

MOV A,C

8512

STA 8301H

8515

STOP

HLT

STEPPER MOTOR
start:

MOV DPTR,#4003H

MOV A,#80H
MOVX @DPTR,A
MOV DPTR,#4000H
LOOP: MOV A,#0A0H ;0A6H
MOVX @DPTR,A
LCALL DELAY
STEP COMMAND
MOV A,#0E0H ;0E7H
MOVX @DPTR,A
LCALL DELAY
MOV A,#0C0H ;0C5H
MOVX @DPTR,A
LCALL DELAY
MOV A,#80H ;84H

;CONTROL PORT OF 8255

;ALL BITS OUTPUTS


;FIRST STEP SEQUENCE
;DELAY BEFORE ISSUING THE NEXT
;SECOND STEP SEQUENCE
;DELAY
;THIRD STEP SEQUENCE
;DELAY
;FOURTH SEQUENCE

MOVX @DPTR,A
LCALL DELAY
LJMP LOOP

;DELAY
;REPEAT

DELAY SUBROUTINE:
MOV R1,#0AH
LAB1:
MOV A,#40H
LAB2:
NOP
NOP
NOP
NOP
DEC A
JNZ LAB2
DJNZ R1, LAB1
RET

Memory address
8100

Mnemonics
LXI H,8200
MOV A,M
ADD A
MOV B,A
ADD A
ADD A
ADD B
INX H
ADD M
INX H
MOV M,A
HLT

KEYBOARD PROGRAME FOR 8085:


9000
9002
9005
9007
900A
900C
900F

3E
32
3E
32
3E
32
06

12
01 60
3E
01 60
A0
01 61
08

MVI A,
STA 6001
MVI A,
STA 6001
MVI A,
STA 6001
MVI B,

12
3E
A0
08

9011
9013
9016
9017
901A
901D
901F
9022
9025
9027

3E 00 loop:
MVI A, 00
32 00 60 STA 6000
05
DCR B
C2 11 90 JNZ loop
3A 01 60 L1:LDA 6001
E6 07
ANI 07
CA 1A 90
JZ L1
3A 00 60
LDA 6000
E6 3F
ANI 3F
CF
RST 1

DISPLAY PROGRAME FOR 8085:

8500
8502
8505
8507
850A
850C
850F
8511
8513
8516
8517
851A
851C
851F
8520
8523
8524
8525
8523

3E 12

MVI A,12

; control word to define 8279

; In 8 bit 8 character display


32 01 61
STA 6001
; 8279 control port
3E 3E
MVI A,3E
; for frequency division into 8279
32 01 60
STA 6001
; into 8279 control reg.
3E A0
MVI A,A0
; display/write inhibit
32 01 60
STA 6001
; into 8279
06 08
MVI B,08
3E 00
MVI A,00
;clear the display
32 00 60 L1:
STA 6000
05
DCR B
C2 13 85
JNZ L1
0E 06
MVI C,06
21 00 90
LXI H,9000 ;Input code starting address
7E
L2: MOV A,M
32 00 60
STA 6000
23
INX H
0D
DCR C
C2 1F 85
JNZ L2
CF
RST 1
INPUT CODE ADDRESS:
1
2
3
4
5
6

ST

Digit 9000

ND

Digit 9001

RD

Digit 9002

TH

Digit 9003

TH

Digit 9004

TH

Digit 9005

565 PLL

SUM OF N NUMBERS

LOOP:

HERE

MOV 40H, #02H


store 1st number in location 40H
MOV 41H, #04H
MOV 42H, #06H
MOV 43H, #08H
MOV 44H, #01H
MOV R0, #40H
store 1 st number address 40H in R0
MOV R5, #05H
store the count {N=05} in R5
MOV B,R5
store the count {N=05} in B
CLR A
Clear Acc
ADD A,@R0
INC R0
DJNZ R5,LOOP
MOV DPTR,#9200
MOVX @ DPTR,A
SJMP HERE

OUTPUT:
Answer:

9200 - 15
02+04+06+08+01 = 21(decimal) = 15 (Hexa)

The I/O address for 8085:


Counter 0 -

4000

Counter 1 Counter 2
Control reg -

4001
4002
4003

Steps:
Enter the program into the kit.
Connect the PCLK and CLK2 through a wire connecter.
Now execute the program.
Now see the output waveform on the OUT2.
PROGRAM 1:
9000: 3E 37

MVI A, 37

; cntrl word for 8253.counter 0 is selected

9002: 32 03 40

STA 4003

; cntrl reg

9005: 3E F7

MVI A, F7

; LSB of the frequency divider

9007: 32 00 40

STA 4000

; out it in counter 0

900A: 3E 00

MVI A, 00

; MSB of the frequency divide

900C: 32 00 40

STA 4000

; out it in counter 0

900F: CF

RST 1

; end

Note: A change in the value of MSB and LSB causes the change in frequency of
Counter 0

4-bit Serial-in to Serial-out Shift Register

4-bit Parallel-in to Serial-out Shift Register

DESIGN OF 4-BIT SYNCHRONOUS UP COUNTER

2:4 DECODER:
INPUT
X
Y
0
0
0
1
1
0
1
1

D1
1
0
1
0

OUTPUT
D2
D3
0
0
1
0
0
1
0
0

D4
0
0
0
1

LOGIC DIAGRAM (2:4 Decoder)

PROGRAM (MULTIPLICATION):Product of 2 - 8bit


numbers
Address
Label
Mnemonics
9000

START

HERE

MOV A,#05
MOV F0,#03
MUL AB
MOV DPTR,#9200
MOVX @ DPTR,A
INC DPTR
MOV A,F0
MOVX @DPTR,A
SJMP HERE

FIND ODD or Even: {output=0 EVEN, output=1 ODD}


MOV A,#08
MOV B,#02
DIV AB
MOV DPTR,#9200
MOV B,A
MOVX @DPTR,A
DAC using 8051:
8255
8255
8255
8255

control register address


Port A address
Port B address
Port C address

- 4003H
- 4000H
- 4001H
- 4002H

PROGRAM:
8500

90 40 03

8503 74 80

MOV DPTR,#4003

; CONTROL REGISTER ADDRESS

MOV A, #80

; 8255 CNTRL WORD (ALL PORTS


ARE O/P)

8505 F0

MOVX @DPTR, A

; ALL PORTS AS O\P

8506

MOV A, #00

74 00

DIGITAL INPUT DATA1

8508 90 40 00

MOV DPTR, #4000

850B F0

MOVX @DPTR, A

; DIGITAL DATA TO PORT A

850C 74 80

MOV A, #80

850E 90 40 01

MOV DPTR, #4001

8511

F0

MOVX @DPTR, A

8512

90 40 02

MOV DPTR, #4002

8515

74 00

MOV A, #00

DIGITAL INPUT DATA2

; DIGITAL DATA TO PORT B


; DAC SELECTION DATA
(00 OR 01)

8517

F0

MOVX @DPTR, A

8518

12 00 BB

LCALL 00BB

; DIGITAL DATA TO PORT C

You might also like