8086 ADC PROGRAM:
ADDRESS LABEL OPCODE MNEMONICS COMMENTS
1000 BA 26 FF MOV DX,FF26H OUT IT IN CONTROL REG
1003 B0 90 MOV AL,90H CWR FOR PORT A AS I/P PORT B
AND PORT C AS O/P
1005 EE OUT DX,AL MOVE THE CONTROL WORD
CNTR.REG
1006 BA 24 FF MOV DX,FF24H PORT C IS ENABLED FOR WR
1009 B0 FF MOV AL,FFH START OF CONVERSION
100B EE OUT DX,AL MOVE THE CONTROL WORD
CNTR.REG
100C B0 00 MOV AL,00H 00 VALUE MOVES TO AL
100E EE OUT DX,AL MOVE THE CONTROL WORD
CNTR.REG
100F B0 FF MOV AL,FFH FF VALUE MOVES TO AL
1011 EE OUT DX,AL MOVE THE CONTROL WORD
CNTR.REG
1012 E8 EB 00 CALL 1100H DELAY ROUTINE
1015 BA 20 FF MOV DX,FF20H PORTA AS I/P
1018 EC IN AL,DX READ THE ADC VALUE
1019 CC INT 3 BREAK POINT
DELAY SUBROUTINE:
ADDRESS LABEL OPCODE MNEMONICS COMMENTS
1100 B9 FF FF MOV CX,FFFFH DELAY COUNT
1103 L1 90 NOP NO OPERATION
1104 90 NOP NO OPERATION
1105 49 DEC CX DECREMENT CX
1106 75 FB JNE 1103H(L1) ZF=0,THEN GO TO 1103H
1108 C3 RET RETURN TO MAIN PROGRAM
FORMULAE:
255 x INPUT VOLTAGE
= DECIMAL VALUE, CONVERT TO HEX (DIGITAL VALUE)
(+5V)MAX VOLTAGE
EXAMPLE:
255 x 2.5 V
=127.5 (CONVERT THIS O/P VALUE TO HEX)
5V
=7F 80(DIGITAL VALUE)
OUTPUT EXAMPLE VALUES:
INPUT VALUE
OUTPUT DIGITAL VALUE
(V)
00 00
1.25 40
2.5 80
3.75 C0
5.0 FF
8086 DAC PROGRAM:
BASIC SIMPLE PROGRAM
ADDRESS LABEL OPCODE MNEMONICS COMMENTS
1000 BA 26 FF MOV DX,FF26H CWR FOR ALL PORT O/P
1003 B0 80 MOV AL,80H OUT IT IN CONTROL REG
1005 EE OUT DX,AL MOVE THE CONTROL WORD
CNTR.REG
1006 BA 22 FF MOV DX,FF22H OUT PORT B
1009 B0 FF MOV AL,80H GIVEN I/P DATA
100B EE OUT DX,AL MOVE THE CONTROL WORD
CNTR.REG
100C CC INT 3 BREAK POINT
FORMULAE:
255 x INPUT VOLTAGE
= DECIMAL VALUE, CONVERT TO HEX (DIGITAL VALUE)
(+5V)MAX VOLTAGE
EXAMPLE:
255 x 2.5 V
=127.5 (CONVERT THIS O/P VALUE TO HEX)
5V
=7F 80(DIGITAL VALUE)
OUTPUT EXAMPLE VALUES:
OUTPUT VALUE
INPUT DIGITAL VALUE
(V)
00 00
40 1.25
80 2.5
C0 3.75
FF 5.0
INTERFACING USING TIMER TO GENERATE SQUARE WAVE
I/O Address for 8253/8254:
Counter0 -> FF10H
Counter1 -> FF12H
Counter2 -> FF14H
Control reg -> FF16H
Program:
ADDRES LABEL OP CODE MNEMONICS COMMENT
S
0100 B0 B7 MOV AL,B7H ;timer initialised with
counter 2 in mode 3
0102 BA 16 FF MOV DX,FF16H ;control port address in
dx
0105 EE OUT DX,AL ;send the data to the
timer
0106 B0 02 MOV AL,02H ;load lsb count in the al
0108 BA 10 FF MOV DX,FF10H ;port address in dx
010B EE OUT DX,AL ;output the al contents
to clk2
010C B0 00 MOV AL,00H ;load msb count in the
al
010E BA 10 FF MOV DX,FF10H
0111 EE OUT DX,AL ;output the al content
to clk2
0112 CC INT 3 ;break point