intel's mcs-51 family of microcontrollers and its derivatives are ... · execute the program...

26
DUAL SLOPE ADC INTERFACE 1 CONTENTS PAGE NO 1.0 Introduction 2 2.0 Description of the Circuit 2 3.0 Installation 3 4.0 Demonstration Examples 4 4.1 Demonstration Program for MPS 85-3 Trainer 4 4.2 Demonstration Program for ESA 85-2 Trainer 6 4.3 Demonstration Program for ESA-65 Trainer 7 4.4 Demonstration Program for ESA-31 Trainer 8 4.5 Demonstration Program for ESA-68K Trainer 10 4.6 Demonstration Program for ESA 196 Trainer 12 4.7 Demonstration Program for ESA 86/88-2 Trainer 13 4.8 Demonstration Program for ESA 68-2 Trainer 15 4.9 Demonstration Program for ESA 68K-2 Trainer 17 4.10 Demonstration Program for ESA-51 Trainer 18 4.11 Demonstration Program for ESA 86/88-3 Trainer 20 4.12 Demonstration Program for ESA 51E Trainer 22 4.13 Demonstration Program for ESA 86/88E Trainer 24 Appendix A : Component Layout Diagram Appendix B : Schematic Diagram

Upload: tranxuyen

Post on 16-Jul-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

1

CONTENTS

PAGE NO

1.0 Introduction 2

2.0 Description of the Circuit 2

3.0 Installation 3

4.0 Demonstration Examples 4

4.1 Demonstration Program for MPS 85-3 Trainer 4

4.2 Demonstration Program for ESA 85-2 Trainer 6

4.3 Demonstration Program for ESA-65 Trainer 7

4.4 Demonstration Program for ESA-31 Trainer 8

4.5 Demonstration Program for ESA-68K Trainer 10

4.6 Demonstration Program for ESA 196 Trainer 12

4.7 Demonstration Program for ESA 86/88-2 Trainer 13

4.8 Demonstration Program for ESA 68-2 Trainer 15

4.9 Demonstration Program for ESA 68K-2 Trainer 17

4.10 Demonstration Program for ESA-51 Trainer 18

4.11 Demonstration Program for ESA 86/88-3 Trainer 20

4.12 Demonstration Program for ESA 51E Trainer 22

4.13 Demonstration Program for ESA 86/88E Trainer 24

Appendix A : Component Layout Diagram

Appendix B : Schematic Diagram

Page 2: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

2

DUAL SLOPE ADC INTERFACE

1.0 INTRODUCTION

ELECTRO SYSTEMS ASSOCIATES PVT. LTD, manufactures trainers, for popular

microcomputers viz 8085, 6502, Z-80, 8031, 8051, 8086/8088, 68000 and 6809. ESA offers a

variety of modules which can be interfaced to these trainers. This manual describes one such

interface, DUAL SLOPE ADC INTERFACE.

Analog to digital conversion can be done in many ways. One of the methods is the Dual slope

method used to achieve high noise immunity.

The input voltage Vx is integrated for a fixed time Tr. Also a known reference voltage Vr is

integrated for a time Tx. Now the input voltage Vx is given by

Vr

Vx = ---- Tx

Tr

Vr

But ---- = K (a constant)

Tr

Hence Vx = K. Tx

i.e, the input voltage is proportional to the measured time Tx.

If the integration time Tr is chosen as 20 ms, the mains hum can be suppressed. The

microprocessor measures time as the number of counts, namely

Tx = Nx. Tc

where Nx = Number of counts

Tc = Counter period.

By proper choice of the counter period Tc, scaling can be incorporated into the counter such

that a software multiplication can be avoided.

2.0 DESCRIPTION OF THE CIRCUIT

As seen from the circuit diagram, LM339 is a quad differential comparator of which three

comparators are used to trigger the bi-lateral switches present in CD4066. The LM308 OPAMP

Page 3: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

3

is used as an integrator. Finally the LM311 is used as the differential comparator. The steps

carried out by the Microprocessor for A/D conversion are as follows:

1. Switch SW1 is ON to reset the integrator. This can be accomplished by setting pin 7 of the

LM339 high (ie by sending a high on bit 1 of port A.) which inturn triggers the bilateral

switch of CD 4066, and the required delay can be introduced in software.

2. Switch SW2 on and start the counter at count N. This is done by sending a high on bit 0 of

port A and by decrementing the count to zero. It is during this that the analog input is

integrated.

3. After the counter counts down to zero, switch SW3 is ON and starts the counter again. This is

done by sending a high on bit 2 of port A. It is during this period that the reference voltage is

integrated.

4. Stop the counter when the LM311 comparator output changes its state and read the timer

count. This is done by sampling the bit 0 of port B which inputs the comparator output.

The waveforms of this dual slope ADC are as shown in the figure.

3.0 INSTALLATION

The interface is housed in a plastic enclosure which has a locking mechanism. To open the cover,

push in the locking mechanism with a finger and lift the cover to open.

The interface module has a 26-pin connector at one edge of the card. This is used for connecting

the interface to the trainer with a flat cable connector. The +5V DC power required by this

interface is drawn from the trainer via the flat cable connector.

Table 3-1 shows the connector on various trainers to which this interface can be connected. Some

trainers have two connectors and either may be used for connecting this interface. The

demonstration programs presented in this manual assume that the interface is connected to

connectors shown in column A. If the connector shown in column B is used, then user has to

Page 4: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

4

change the port addresses appropriately. User may refer to the component layout diagrams of

respective ESA trainers to locate the connectors mentioned here.

TABLE-3.1

MICROPROCESSOR

TRAINER

A B

MPS85-3 J2 J1

ESA85-2 J2 J1

ESA-80 J2 J1

ESA-65 P4

ESA-68K P3 P4

ESA 68K-2 J2 J1

ESA 68-2 J1 J6

ESA 196 J1 J2

ESA-31 J2 J1

ESA-51 J10 J7

ESA-51E J5 J3

ESA-86/88-2 J4 J5

ESA-86/88-3 J8 J9

ESA-86/88E J4 J6

Connect +12V and -12V as indicated. (The color code is yellow for +12 & green for -12). +5V

required for the interface board is taken from the trainer through the flat cable connector.

Hence no extra connection for +5V is needed. Connect the Analog voltage Vin to the tower tag

marked ANG IN (Maximum Voltage that may be given to this input is 5.6V).

4.0 DEMONSTRATION EXAMPLES.

A sample program is enclosed. Execute the program & observe the dual slope wave form at pin

number 6 of OPAMP LM308.

4.1 DEMONSTRATION PROGRAM FOR MPS 85-3 TRAINER

; Assume the interface is connected over J2 of the trainer.

; The trainer can be in KEYBOARD MODE or SERIAL MODE.

UPDAD EQU 0440H

DISPM EQU 0B5BH

UPDDT EQU 044CH

NMOUT EQU 0C41H

Page 5: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

5

SOUTPT EQU 0C2DH

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

ORG 8C00H ; INITIALIZE 8255 IN

8C00 3E 82 MVI A,82H ; MODE 0. PORT A AS

8C02 D3 43 OUT 43H ; O/P, PORT B AS I/P.

8C04 DB 50 IN 50H

8C06 E6 08 ANI 08H ; CHECK FOR KEY

8C08 C2 25 8C JNZ KBD ; BOARD AND SERIAL

8C0B 21 59 8C LXI H,MSG ; MODE.

8C0E CD 5B 0B CALL DISPM ; SERIAL MODE.

8C11 CD 32 8C BACK: CALL CONVERT ; A/D CONVERSION

8C14 0E 08 MVI C,08H ; DELETE OLD VALUE

8C16 CD 2D 0C CALL SOUTPT

8C19 0E 08 MVI C,08H

8C1B CD 2D 0C CALL SOUTPT

8C1E 78 MOV A,B

8C1F CD 41 0C CALL NMOUT ; DISPLAY NEW VALUE

8C22 C3 11 8C JMP BACK

8C25 CD 32 8C KBD: CALL CONVERT ; KEY BOARD MODE

8C28 78 MOV A,B

8C29 32 F1 8F STA 8FF1H

8C2C CD 4C 04 CALL UPDDT ; DISPLAY VALUE

8C2F C3 25 8C JMP KBD

8C32 3E 02 CONVERT: MVI A,02H ; CONVERSION ROUTINE

8C34 D3 40 OUT 40H

8C36 00 NOP ; RESET INTEGRATOR

8C37 00 NOP

8C38 00 NOP

8C39 3E 01 MVI A,01H

8C3B D3 40 OUT 40H

8C3D 21 C0 02 LXI H,2C0H ; START COUNTER

8C40 2B L1: DCX H ; INTEGRATE ANALOG

8C41 7C MOV A,H ; Vin FOR KNOWN

8C42 B5 ORA L ; PERIOD OF TIME

8C43 C2 40 8C JNZ L1

8C46 3E 04 MVI A,04H ; FEED Vref

8C48 D3 40 OUT 40H

8C4A 06 00 MVI B,00H

Page 6: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

6

8C4C 04 TVAR: INR B

8C4D DB 41 IN 41H ; CHECK COMPARATOR

8C4F E6 01 ANI 01H ; FOR CHANGE OF VALUE

8C51 C2 4C 8C JNZ TVAR ; IF NO CHANGE

8C54 3E 02 MVI A,02H ; CONTINUE SAMPLING

8C56 D3 40 OUT 40H ; RESET INTEGRATOR

8C58 C9 RET

8C59 0D 0A 44 49 47 MSG: DB 0DH,0AH,'DIGITAL VALUE = ',00H

8C5E 49 54 41 4C 20

8C63 56 41 4C 55 45

8C68 20 3D 20 20 20

8C6D 00

4.2 DEMONSTRATION PROGRAM FOR ESA 85-2 TRAINER

; Assume the interface is connected over J2 of the trainer.

; The trainer can be in KEYBOARD MODE or SERIAL MODE.

UPDAD EQU 0440H

DISPM EQU 0B5BH

UPDDT EQU 044CH

NMOUT EQU 0C41H

SOUTPT EQU 0C2DH

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

ORG 8C00H

8C00 3E 82 MVI A,82H ; INITIALIZE 8255 IN;

8C02 D3 43 OUT 43H ; MODE 0. PORT A AS O/P,

8C04 DB 70 IN 70H ; PORT B AS I/P.

8C06 E6 08 ANI 08H ; CHECK FOR KEY

8C08 C2 25 8C JNZ KBD ; BOARD AND SERIAL

8C0B 21 59 8C LXI H,MSG ; MODE.

8C0E CD 04 0B CALL DISPM ; SERIAL MODE.

8C11 CD 32 8C BACK: CALL CONVERT ; A/D CONVERSION

8C14 0E 08 MVI C,08H ; DELETE OLD VALUE

8C16 CD B9 0B CALL SOUTPT

8C19 0E 08 MVI C,08H

8C1B CD B9 0B CALL SOUTPT

8C1E 78 MOV A,B

8C1F CD 11 0C CALL NMOUT ; OUTPUT NEW VALUE

8C22 C3 11 8C JMP BACK

Page 7: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

7

8C25 CD 32 8C KBD: CALL CONVERT ; KEY BOARD MODE

8C28 78 MOV A,B

8C29 32 75 FE STA FE75H

8C2C CD 78 05 CALL UPDDT ; DISPLAY VALUE

8C2F C3 25 8C JMP KBD

8C32 3E 02 CONVERT: MVI A,02H ; CONVERSION ROUTINE

8C34 D3 40 OUT 40H

8C36 00 NOP ; RESET INTEGRATION

8C37 00 NOP

8C38 00 NOP

8C39 3E 01 MVI A,01H ; FEED ANALOG VIN

8C3B D3 40 OUT 40H ; FOR KNOWN PERIOD

; OF TIME

8C3D 21 E0 02 LXI H,2E0H ; START COUNTER

8C40 2B L1: DCX H

8C41 7C MOV A,H

8C42 B5 ORA L

8C43 C2 40 8C JNZ L1

8C46 3E 04 MVI A,04H ; FEED Vref

8C48 D3 40 OUT 40H

8C4A 06 00 MVI B,00H

8C4C 04 TVAR: INR B

8C4D DB 41 IN 41H ; CHECK COMPARATOR

8C4F E6 01 ANI 01H ; FOR CHANGE OF VALUE

8C51 C2 4C 8C JNZ TVAR ; IF NO CHANGE

8C54 3E 02 MVI A,02H ; CONTINUE SAMPLING

8C56 D3 40 OUT 40H ; RESET INTEGRATOR

8C58 C9 RET

8C59 0D 0A 44 49 47 MSG: DB 0DH,0AH,'DIGITAL VALUE = ',00H

8C5E 49 54 41 4C 20

8C63 56 41 4C 55 45

8C68 20 3D 20 20 20

8C6D 00

4.3 DEMONSTRATION PROGRAM FOR ESA-65 TRAINER

; Assume the interface is connected over P4 of the trainer.

; The trainer can be in KEYBOARD MODE or SERIAL MODE.

UPDDT EQU FE59H

PORT_A EQU A040H

Page 8: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

8

PORT_B EQU A041H

CTRL_PRT EQU A043H

CRDISP EQU FE6CH

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

ORG 1000H ; CONFIGURE 8255 IN

1000 A2 00 LDX #$00 ; MODE 0. PORT A AS

1002 20 6C FE JSR CRDISP ; O/P. PORT B AS I/P

1005 A9 82 START: LDA #$82

1007 8D 43 A0 STA CTRL_PRT

100A A9 02 LDA #$02 ; RESET INTEGRATOR

100C 8D 40 A0 STA PORT_A

100F EA NOP

1010 EA NOP

1011 A0 FF LDY #$FF

1013 A9 01 LDA #$01 ; FEEDS ANALOG Vin TO

1015 8D 40 A0 STA PORT_A ; THE INTEGRATOR

1018 88 TCON: DEY ; INTEGRATE ANALOG Vin

1019 EA NOP ; FOR A KNOWN PERIOD

101A EA NOP ; OF TIME

101B EA NOP

101C D0 FA BNE TCON

101E A9 04 LDA #$04 ; FEED Vref

1020 8D 40 A0 STA PORT_A

1023 88 DEY

1024 C8 TVAR: INY

1025 AD 41 A0 LDA PORT_B

1028 29 01 AND #$01 ; COMPARATOR CHANGED

102A D0 F8 BNE TVAR ; O/P?

102C 98 TYA ; NO, CONTINUE

102D A2 00 LDX #$00 ; SAMPLING

102F 20 59 FE JSR UPDDT ; DISPLAY THE COUNT

102F 4C 05 10 JMP START ; REPEAT INFINETELY.

4.4 DEMONSTRATION PROGRAM FOR ESA-31 TRAINER

; Assume the interface is connected over J2 of the trainer.

; The trainer can be in KEYBOARD MODE or SERIAL MODE.

CRLOUT EQU 1787H

DISPM EQU 164BH

Page 9: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

9

SEG EQU 0E8H

DISPD8 EQU 019BH

PUTBYTE EQU 185EH

SOUTPT EQU 160EH

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

ORG 8000H

8000 75 A0 E1 MOV P2,#E1H ; READ DIP SWITCH

8003 E2 MOVX A,@R0 ; AND CHECK FOR

8004 20 E3 2B JB ACC.3,KBD ; SERIAL OR KEY BOARD

8007 90 80 79 MOV DPTR,#MSG ; MODE.

800A C2 D5 CLR PSW.5

800C 12 16 4B LCALL DISPM ; DISPLAY MESSAGE IN

800F 74 08 BACK: MOV A,#08H ; SERIAL MODE

8011 12 16 0E LCALL SOUTPT ; DELETE OLD VALUE.

8014 74 08 MOV A,#08H

8016 12 16 0E LCALL SOUTPT

8019 74 08 MOV A,#08H

801B 12 16 0E LCALL SOUTPT

801E 75 A0 E8 MOV P2,#SEG

8021 78 03 MOV R0,#03H ; INITIALIZE 8255

8023 74 82 MOV A,#82H ; PORT A AS O/P

8025 F2 MOVX @R0,A ; PORT B AS I/P

8026 12 80 49 LCALL FUNC

8029 E9 MOV A,R1 ; A/D CONVERSION

802A F5 71 MOV 71H,A

802C 12 18 5E LCALL PUTBYTE ; DISPLAY DIGITAL VALUE

802F 02 80 0F LJMP BACK

8032 75 A0 E8 KBD: MOV P2,#SEG ; KEY BOARD MODE

8035 78 03 MOV R0,#03H

8037 74 82 MOV A,#82H

8039 F2 MOVX @R0,A

803A 12 80 49 LCALL FUNC ; CALL CONVERSION

803D 75 F0 00 MOV B,#00H ; ROUTINE

8040 E9 MOV A,R1

8041 F5 60 MOV 60H,A

8043 12 01 9B LCALL DISPD8 ; DISPLAY DIGITAL

8046 02 80 32 LJMP KBD ; VALUE

8049 74 02 FUNC: MOV A,#02H ; A/D CONVERSION

804B 78 00 MOV R0,#00H ; ROUTINE

804D F2 MOVX @R0,A

Page 10: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

10

804E 00 NOP ; RESET INTEGRATOR

804F 00 NOP

8050 00 NOP

8051 74 01 MOV A,#01H ; INTEGRATE ANALOG

8053 F2 MOVX @R0,A ; Vin FOR KNOWN PERIOD

8054 79 04 MOV R1,#04H ; OF TIME

8056 00 NOP ; INTEGRATION PERIOD

8057 00 NOP

8058 00 NOP

8059 00 NOP

805A 00 NOP

805B 7A FF MOV R2,#FFH

805D 19 TCON: DEC R1

805E 1A TCON1: DEC R2

805F BA 00 FC CJNE R2,#00H,TCON1

8062 B9 00 F8 CJNE R1,#00H,TCON

8065 74 04 MOV A,#04H ; FEED Vref

8067 F2 MOVX @R0,A

8068 79 00 MOV R1,#00H

806A 09 TVAR: INC R1

806B 78 01 MOV R0,#01H ; CHECK COMPARATOR

806D E2 MOVX A,@R0 ; FOR CHANGE OF

806E 54 01 ANL A,#01H ; VALUE

8070 B4 00 F7 CJNE A,#00H,TVAR

8073 74 02 MOV A,#02H ; RESET INTEGRATOR

8075 78 00 MOV R0,#00H

8077 F2 MOVX @R0,A

8078 22 RET

8079 0A 0D 44 49 47 MSG: DB 0AH,0DH,'DIGITAL VALUE = ',00H

807E 49 54 41 4C 20

8083 56 41 4C 55 45

8088 20 3D 20 20 00

4.5 DEMONSTRATION PROGRAM FOR ESA-68K TRAINER

; Assume the interface is connected over P3 of the trainer.

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

Page 11: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

11

ORG 40600H

00040600 207C 0008 0306 MOVE.L #$80306,A0 ; INITIALIZE

00040606 10BC 0082 MOVE.B #$82,(A0) ; 8255 PORTS

0004060A 267C 0008 0302 MOVE.L #$80302,A3 ; PORT B I/P

00040610 247C 0008 0300 MOVE.L #$80300,A2 ; PORT A O/P

00040616 2C7C 0004 0681 MOVE.L #$MSG,A6 ; DISPLAY

0004061C 4EB8 1300 JSR $1300 ; MSEG.

00040620 2C7C 0004 067E START: MOVE.L #$SPAC,A6 ; DELETE OLD

00040626 4EB8 1300 JSR $1300 ; VALUE

0004062A 4EB9 0004 0642 JSR $FUNC ; CALL A/D

00040630 2241 MOVE.L D1,A1 ; CONVERSION

00040632 4EB8 0324 JSR $0324 ; ROUTINE

00040636 5C89 ADDQ.L #6,A1

00040638 2049 MOVE.L A1,A0 ; DISPLAY

0004063A 7002 MOVEQ #2,D0 ; DIGITAL

0004063C 4EB8 008C JSR $008C ; VALUE

00040640 60DE BRA $START

00040642 14BC 0002 FUNC: MOVEA.B #$02,(A2) ; CONVERSION

00040646 4E71 NOP ; ROUTINE

00040648 4E71 NOP ; RESET

0004064A 4E71 NOP ; INTEGRATOR

0004064C 14BC 0001 MOVE.B #$01,(A2) ; INTEGRATE

00040650 323C 0325 MOVE.W #$325,D1 ; Vin FOR A

00040654 5341 BACK: SUBQ.W #$01,D1 ; KNOWN

00040656 0C41 0000 CMPI.W #$00,D1 ; PERIOD OF

0004065A 66F8 BNE $BACK ; TIME

0004065C 14BC 0004 MOVE .B #$04,(A2) ; FEED Vref

00040660 123C 0000 MOVE.B #$00,D1

00040664 5201 TVAR: ADDQ.B #$01,D1 ; CHECK THE

00040666 1439 0008 0302 MOVE.B $80302,D2 ; COMPARATOR

0004066C 0202 0001 AND.B #$01,D2 ; OUTPUT

00040670 66F2 BNE.S $TVAR

00040672 247C 0008 0300 MOVE.L #$80300,A2 ; RESET

00040678 14BC 0002 MOVE.B #$02,(A2) ; INTEGRATOR

0004067C 4E75 RTS

0004067E 08 08 00 SPAC: .BYTE 08H,08H,00H

00040681 0D 0A 44 49 47 49 MSG:.BYTE 0DH,0AH,'DIGITAL VALUE =',00H

00040687 54 41 4C 20 56 41

0004068D 4C 55 45 20 3D 20

Page 12: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

12

00040693 20 00

4.6 DEMONSTRATION PROGRAM FOR ESA 196 TRAINER

;Assume the Interface is connected over FRC connector J1 of the

;trainer

;The trainer must be operating in SERIAL MODE

REGA EQU 52H

REGB EQU 54H

REGC EQU 56H

REGD EQU 58H

C_PRT EQU 206H

PORTA EQU 200H

PORTB EQU 202H

PORTC EQU 204H

ORG 8000H

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

8000 B1 80 52 LDB REGA,#82H ;Initialize 8255 in

8003 C7 01 06 02 52 STB REGA,C_PRT ;mode 0. PORT A as

8008 A1 7A 80 2A LD 2AH,#LF_CR ;O/P,PORT B as I/P.

800C EF E6 A2 LCALL 22F5H ;LF & CR

800F A1 68 80 2A LD 2AH,#MESS ;Display Message

8013 EF DF A2 LCALL 22F5H ;”DIGITAL VALUE”

8016 EF 15 00 BACK: LCALL CONVRT ;A/D Conversion

8019 B1 08 20 LDB 20H,#08 ;Delete old value

801C EF DC A1 LCALL 21FBH

801F B1 08 20 LDB 20H,#08

8022 EF D6 A1 LCALL 21FBH ;Display new value

8025 B0 54 22 LDB 22H,REGB

8028 EF E4 A2 LCALL 230FH

802B E7 E8 FF LJMP BACK

802E B1 02 52 CONVRT: LDB REGA,#02 ;Conversion Routine

8031 C7 01 00 02 52 STB REGA,PORTA ;Reset Integrator

8036 FD NOP

8037 FD NOP

8038 FD NOP

8039 B1 01 52 LDB REGA,#01 ;Feed Analog VIN

803C C7 01 00 02 52 STB REGA,PORTA ;For known period

Page 13: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

13

8041 A1 C0 02 56 LD REGC,#12C0H ;of time

8045 E0 56 FD DLY: DJNZ REGC,DLY ;Start counter

8048 B1 04 52 LDB REGA,#04 ;Feed Vref

804B C7 01 00 02 52 STB REGA,PORTA

8050 B1 00 54 LDB REGB,#00

8053 07 54 TVAR: INC REGB ;Check Comparator

8055 B3 01 02 02 52 LDB REGA,PORTB ;For change of value

805A 71 01 52 ANDB REGA,#01 ;If no change

805D D7 F4 JNE TVAR ;continue sampling

805F B1 02 52 LDB REGA,#02 ;Reset Integrator

8062 C7 01 00 02 52 STB REGA,PORTA

8067 F0 RET

8068 0D 44 49 47 MESS: DCB 0DH,'DIGITAL VALUE ',00H

806C 49 54 41 4C

8070 20 56 41 4C

8074 55 45 20 20

8078 20 00

807A 0D 0A 00 LF_CR: DCB 0DH,0AH,00H

4.7 DEMONSTRATION PROGRAM FOR ESA 86/88-2 TRAINER

; Assume the interface is connected over J4 of the trainer.

; The trainer can be in KEYBOARD MODE or SERIAL MODE.

OUTSTR EQU FE00:1B50H

OUTBYTE EQU FF00:0B0AH

PUTBYTE EQU FE00:1B64H

DISPM EQU FE00:1B55H

ADDRESS OPCODE LABLE MNEMONIC COMMENTS

ORG 2000H

2000 B0 82 MOVB AL,82H ; INITIALIZE

2002 BA E6 FF MOVW DX,0FFE6H ; 8255 PORTS

2005 EE OUTW DX,AL ; PORT A AS O/P

; PORT B AS I/P

2006 BA ED FF MOVW DX,0FFEDH

2009 EC INB AL,DX ; CHECK FOR

200A 24 80 ANDB AL,80H ; DIP SW FOR

200C 74 27 JE KBD ; SERIAL OR

200E 8C C8 MOVW AX,CS ; KB MODE

2010 8E C0 MOVW ES,AX

2012 B8 76 20 MOVW AX,OFFSET CS:MSG1

Page 14: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

14

2015 9A 55 1B 00 FE CALLS DISPM ; DISPLAY MSG

201A B0 08 SERIAL: MOVB AL,08H

201C 9A 50 1B 00 FE CALLS OUTSTR ; DELETE OLD

2021 B0 08 MOVB AL,08H ; VALUE

2023 9A 50 1B 00 FE CALLS OUTSTR

2028 E8 17 00 CALL FUNC ; CONVERSION

202B 8B C3 MOVW AX,BX ; ROUTINE FOR

202D 9A 64 1B 00 FE CALLS PUTBYTE ; A/D.

2032 E9 E5 FF JMP SERIAL

2035 E8 0A 00 KBD: CALL FUNC ; KB MODE

2038 8A C3 MOVB AL,BL ; DISPLAY

203A 9A 0A 0B 00 FF CALLS OUTBYTE ; DIGITAL

203F E9 F3 FF JMP KBD ; VALUE

2042 B0 02 FUNC: MOVB AL,02H

2044 BA E0 FF MOVW DX,0FFE0H ; RESET

2047 EE OUTB DX,AL ; INTEGRATOR

2048 90 NOP

2049 90 NOP

204A 90 NOP

204B 90 NOP

204C 90 NOP

204D B0 01 MOVB AL,01H ; INTEGRATE

204F BA E0 FF MOVW DX,0FFE0H ; Vin FOR

2052 EE OUTB DX,AL ; KNOWN VALUE

2053 B9 C0 02 MOVW CX,02C0H ; OF TIME.

2056 49 L1: DECW CX

2057 8A C5 MOVB AL,CH

2059 0A C1 ORB AL,CL

205B 75 F9 JNZ L1

205D B0 04 MOVB AL,04H

205F BA E0 FF MOVW DX,0FFE0H

2062 EE OUTB DX,AL

2063 BA E2 FF MOVW DX,0FFE2H ; FEED Vref

2066 B3 00 MOVB BL,00H ; START COUNTER

2068 FE C3 TVAR: INCB BL

206A EC INB AL,DX

206B 24 01 ANDB AL,01H ; CHECK FOR

206D 75 F9 JNE TVAR ; COMPARATOR

206F B0 02 MOVB AL,02H ; O/P

2071 BA E0 FF MOVW DX,FFE0H ; RESET

Page 15: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

15

2074 EE OUTB DX,AL ; INTEGRATOR

2075 C3 RET

2076 0D 0A 44 49 47 49 MSG1: DB 0DH,0AH,'DIGITAL VALUE = ',00H

207C 54 41 4C 20 56 41

2082 4C 55 45 20 3D 20

2088 20 00

4.8 DEMONSTRATION PROGRAM FOR ESA 68-2 TRAINER

; Assume the interface is connected over J1 of the trainer.

; The trainer can be in Keyboard or Serial mode.

CNTLA EQU 0C801H

CNTLB EQU 0C803H

DIRA EQU 0C800H

DIRB EQU 0C802H

UPDDT EQU 0E313H

NMOUT EQU 0E518H

DISPM EQU 0E546H

SERIAL EQU 0E454H

SOUTPT EQU 0E52CH

UPDAD EQU 0440H

ADDRESS OPCODE LABLE MNEMONIC COMMENTS

ORG 400H ; USER RAM STARTS FROM

; 400H

0400 4F CLRA

0401 B7 C8 01 STA CNTLA ; INITIALISE 6821

0404 B7 C8 03 STA CNTLB ; PORT A AS O/P

0407 B7 C8 02 STA DIRB ; PORT B AS I/P.

040A 43 COMA

040B B7 C8 00 STA DIRA

040E B7 C8 01 STA CNTLA

0411 B7 C8 03 STA CNTLB

0414 0D 26 TST 26H

0416 26 02 BNE SER

0418 8D 17 BSR KBD ; KEYBOARD MODE

041A 8E 04 62 SER: LDX #MSG

041D BD E5 46 JSR DISPM

0420 8D 16 BACK: BSR CONVERT

Page 16: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

16

0422 86 08 LDA #08H

0424 BD E5 2C JSR SOUTPT

0427 86 08 LDA #08H

0429 BD E5 2C JSR SOUTPT

042C BD E5 18 JSR NMOUT

042F 20 EF BRA BACK

0431 8D 05 KBD: BSR CONVERT

0433 BD E3 13 JSR UPDDT

0436 20 F9 BRA KBD

0438 86 02 CONVERT: LDA #02H ; CONVERSION ROUTINE

043A B7 C8 00 STA DIRA

043D 12 NOP ; RESET INTEGRATOR

043E 12 NOP

043F 12 NOP

0440 86 01 LDA #01h

0442 B7 C8 00 STA DIRA

0445 CC 02 C0 LDD #2C0H ; START THE COUNTER

0448 83 00 01 L1: SUBD #1 ; INEEGRATE ANALOG VIN

044B 26 FB BNE L1 ; FOR KNOWN PERIOD OF

; TIME

044D 86 04 LDA #04H ; FEED VREF

044F B7 C8 00 STA DIRA

0452 C6 00 LDB #0H

0454 5C TVAR: INCB

0455 B6 C8 02 LDA DIRB ; CHECK COMPARATOR

0458 84 01 ANDA #01H ; FOR CHANGE OF VALUE.

045A 26 F8 BNE TVAR ; IF NO CONTINUE

045C 86 02 LDA #02H ; SAMPLING.

045E B7 C8 00 STA DIRA ; RESET INTEGRATOR

0461 39 RTS

0462 0D 0A 44 49 47 MSG: FCB 0DH,0AH,044H,049H,047H,

0467 49 54 41 4C 20 049H,054H,041H,04CH,020H,

046C 56 41 4C 55 45 056H,041H,04CH,055H,045H,

0471 20 3D 20 020H,03DH,020H,020H,00H

4.9 DEMONSTRATION PROGRAM FOR ESA 68K-2 TRAINER

Page 17: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

17

; Assume the interface is connected over J2 of the trainer.

ORG 400400H

PORTA EQU 800011H

PORTB EQU 800017H

PA_CT EQU 80000DH

PA_DI EQU 800005H

ADDRESS OPCODE LABLE MNEMONICS COMMENTS

400400 13FC 0000 MOVE.B #0,PA_CT ;Initialise

0080 000D ;8255 in mode0

400408 13FC 00FF MOVE.B #$FF,PA_DI ;Port A as an

0080 0005 ;O/P. Port B

;as an I/P.

400410 614A BACK: BSR.S DISPM ;A/D conversion.

400412 6106 BSR.S CONVERT

400414 4E4B TRAP #11

400416 00 09 DC.B 00H,09H

400418 60F6 BRA.S BACK

40041A 13FC 0002 CONVERT: MOVE.B #$02h,PORTA ;Conversion

0080 0011 ;Routine, Reset

400422 4E71 NOP ;Integrator.

400424 13FC 0001 MOVE.B #$01h,PORTA ;Start counter.

0080 0011

40042C 6124 BSR.S DELAY ;Integrate

;Analog Vin

;for known

;period of time.

40042E 13FC 0004 MOVE.B #$04h,PORTA ;Feed Vref.

0080 0011

400436 103C 0000 MOVE.B #$0,D0

40043A 5200 TVAR: ADDQ.B #01,D0 ;Check comparator

40043C 1439 0080 MOVE.B PORTB,D2 ;for change of

0017 ;value.

400442 0202 0001 ANDI.B #$01,D2 ;If no change,

;continue sampling

400446 66F2 BNE.S TVAR ;Reset

;integrator.

400448 13FC 0002 MOVE.B #$02h,PORTA

0080 0011

400450 4E75 RTS

400452 323C 0925 DELAY: MOVE.W #$925H,D1

Page 18: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

18

400456 57C9 FFFE LOOP: DBEQ D1,LOOP

40045A 4E75 RTS

40045C 2C7C 0040 DISPM: MOVEA.L #MSG,A6

0468

400462 4E4B TRAP #11

400464 00 06 DC.B 00H,06H

400466 4E75 RTS

400468 0D 20 44 49 MSG: DC.B 0DH,"DIGITAL VALUE = ",00H

47 49 END

40046E 54 41 4C 20

56 41

400474 4C 55 45 20

3D 20

40047A 00

4.10 DEMONSTRATION PROGRAM FOR ESA-51 TRAINER

;Assume the interface is connected over J10 of the trainer.

;The trainer can be in KEYBOARD MODE or SERIAL MODE

OUTSTG EQU 1200H

OUTCHR EQU 11A8H

PUTBYTE EQU 13D2H

CLRLCD EQU 03BBH

LCDOUT EQU 0348H

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

ORG 8000H

8000 75 A0 E9 MOV P2,#0E9H ;Read DIP switch

8003 78 04 MOV R0,#04H

8005 E2 MOVX A,@R0 ;Check for Serial

8006 20 E3 26 JB ACC.3,KBD ;or Keyboard mode

8009 90 80 8A MOV DPTR,#MSG

800C C2 D5 CLR PSW.5

800E 12 12 00 LCALL OUTSTG

8011 74 08 BACK: MOV A,#08H

8013 12 11 A8 LCALL OUTCHR

8016 74 08 MOV A,#08H

8018 12 11 A8 LCALL OUTCHR

801B 75 A0 E8 MOV P2,#0E8H ;Initialize 8255

801E 78 03 MOV R0,#03H

8020 74 82 MOV A,#82H ;Port A as O/P

Page 19: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

19

8022 F2 MOVX @R0,A ;Port B as I/P

8023 12 80 51 LCALL FUNC ;A/D conversion

8026 E9 MOV A,R1

8027 F5 71 MOV 71H,A

8029 12 13 D2 LCALL PUTBYTE ;Display Digital

802C 02 80 11 LJMP BACK ;value

;KEY BOARD Mode

802F 12 03 BB KBD: LCALL CLRLCD

8032 90 80 8A MOV DPTR,#MSG ;Display

8035 C2 F0 CLR 0F0H ;message

8037 12 03 48 LCALL LCDOUT ;"DIGITAL VALUE="

803A 75 A0 E8 MOV P2,#0E8H ;Initialize 8255

803D 78 03 MOV R0,#03H

803F 74 82 MOV A,#82H ;Port A as O/P

8041 F2 MOVX @R0,A ;Port B as I/P

8042 12 80 51 LCALL FUNC ;A/D conversion

8045 E9 MOV A,R1 ;put DIGITAL VALUE

8046 F5 71 MOV 71H,A

8048 12 13 D2 LCALL PUTBYTE

804B 12 80 81 LCALL DLY

804E 02 80 2F LJMP KBD

;A/D Conversion Routine

8051 74 02 FUNC: MOV A,#02H

8053 78 00 MOV R0,#00H ;Reset Integrator

8055 F2 MOVX @R0,A

8056 00 NOP

8057 00 NOP

8058 00 NOP

8059 74 01 MOV A,#01H ;Integrate Analog

805B F2 MOVX @R0,A ;Vin for known

805C 79 04 MOV R1,#04H ;period of time

805E 00 NOP ;Integration

;Period

805F 00 NOP

8060 00 NOP

8061 00 NOP

8062 00 NOP

8063 7A FF MOV R2,#FFH

8065 19 TCON: DEC R1

8066 1A TCON1: DEC R2

8067 BA 00 FC CJNE R2,#00H,TCON1

Page 20: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

20

806A B9 00 F8 CJNE R1,#00H,TCON

806D 74 04 MOV A,#04H ;Feed Vref

806F F2 MOVX @R0,A

8070 79 00 MOV R1,#00H

8072 09 TVAR: INC R1

8073 78 01 MOV R0,#01H ;Check comparator

8075 E2 MOVX A,@R0 ;for change of

;value

8076 54 01 ANL A,#01H

8078 B4 00 F7 CJNE A,#00H,TVAR

807B 74 02 MOV A,#02H ;Reset Integrator

807D 78 00 MOV R0,#00H

807F F2 MOVX @R0,A

8080 22 RET

;Delay Routine

8081 7E 25 DLY: MOV R6,#25H

8083 7F FF DLY1: MOV R7,#FFH

8085 DF FE DJNZ R7,$

8087 DE FA DJNZ R6,DLY1

8089 22 RET

808A 0D 44 49 47 49 MSG: DB 0DH,'DIGITAL VALUE = ',00H

808F 54 41 4C 20 56

8094 41 4C 55 45 20

8099 3D 20 20 00

4.11 DEMONSTRATION PROGRAM FOR ESA 86/88-3 TRAINER

; Assumes the interface is connected over J8 of the trainer.

; This program displays the digital equivalent of the Analog

; voltage on the PC console in serial mode or LCD in stand-

; alone mode of operation.

; The program can be executed in STAND-ALONE MODE or SERIAL

; MODE of operation.

; The program starts at memory location 0:2000H

; Please refer ESA 86/88-3 user's manual for mnemonic syntax

; suitable to trainer

Code Segment :0000H

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

Page 21: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

21

2000 B8 00 00 MOVW AX,0000H ;Initialise

2003 8E C8 MOVW CS,AX ;Segment

2005 8E C0 MOVW ES,AX ;Registers

2007 9A 31 00 00 FB CALLS 0FB00:0031H ;Newline routine

200C BA E6 FF MOVW DX,0FFE6H ;Initialise 8255

200F B0 82 MOVB AL,82H ;Port A as o/p &

2011 EE OUTB DX,AL ;Port B as i/p.

2012 EB 12 JMP START

2014 0D 44 49 47 49 54 MES: DB 0DH, 'DIGITAL VALUE = ',0H

201A 41 4C 20 56 41 4C

2020 55 45 20 3D 20 00 ; Display Message string

2026 9A 35 01 00 FB START: CALLS 0FB00:0135H ;Clear LCD if

202B 2E CS ;in Stand-alone

202C 8D 16 15 20 LEA DX,@MES ;mode

2030 8B C2 MOVB AX,DX

2032 9A 13 00 00 FB CALLS 0FB00:0013H ;Display message

2037 B0 02 STC: MOVB AL,02H ;Reset Integrator

2039 BA E0 FF MOVW DX,0FFE0H

203C EE OUTB DX,AL

203D 90 NOP

203E 90 NOP

203F 90 NOP

2040 90 NOP

2041 90 NOP

2042 B8 01 00 MOVW AX,01H ;Integrate Vin for

2045 EE OUTB DX,AL ;known value of time

2046 B9 00 10 MOVW CX,1000H

2049 E2 FE LOOP $

204B B0 04 MOVB AL,04H ;Feed Vref to

;comparator

204D EE OUTB DX,AL

204E BA E0 FF MOVW DX,0FFE0H

2051 B3 00 MOVB BL,00H ;Start Counter

2053 BA E2 FF TVAR: MOVW DX,0FFE2H

2056 EC INB AL,DX ;Check for comparator

2057 24 01 ANDB AL,01H ;output. If high,

2059 74 04 JE DISP ;display digital value

205B FE C3 INCB BL ;else increment

205D EB F4 JMP TVAR ;counter and continue

205F 8A C3 DISP: MOVB AL,BL ;Routine to output

2061 9A 52 00 00 FB CALLS 0FB00:0052H ;digital value

2066 B0 02 MOVB AL,02H ; Reset Integrator

Page 22: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

22

2068 BA E0 FF MOVW DX,0FFE0H

206B EE OUTB DX,AL

; Routine to introduce delay between successive conversions

206C BB 03 00 MOVW BX,03H

206F B9 FF FF DY: MOVW CX,0FFFFH

2072 E2 FE LOOP $

2074 4B DECW BX

2075 75 F8 JNZ DY

2077 EB AD JMP START ;Repeat continuously

4.12 DEMONSTRATION PROGRAM FOR ESA-51E TRAINER

;Assume the interface is connected over J5 of the trainer.

;The trainer can be in KEYBOARD MODE or SERIAL MODE

OUTSTG EQU 11E0H

OUTCHR EQU 11AEH

PUTBYTE EQU 139EH

CLRLCD EQU 03B1H

LCDOUT EQU 032AH

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

ORG 8000H

8000 75 A0 E1 MOV P2,#0E1H ;Read DIP switch

8003 78 02 MOV R0,#02H

8005 E2 MOVX A,@R0 ;Check for Serial

8006 20 E3 26 JB ACC.3,KBD ;or Key Board mode

8009 90 80 8D MOV DPTR,#MSG

800C C2 D5 CLR PSW.5

800E 12 11 E0 LCALL OUTSTG

8011 74 08 BACK: MOV A,#08H

8013 12 11 AE LCALL OUTCHR

8016 74 08 MOV A,#08H

8018 12 11 AE LCALL OUTCHR

801B 75 A0 E8 MOV P2,#0E8H ;Initialize 8255

801E 78 03 MOV R0,#03H

8020 74 82 MOV A,#82H ;Port A as O/P

8022 F2 MOVX @R0,A ;Port B as I/P

8023 12 80 54 LCALL FUNC ;A/D conversion

8026 E9 MOV A,R1

Page 23: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

23

8027 F5 71 MOV 71H,A

8029 12 13 9E LCALL PUTBYTE ;Display Digital

802C 02 80 11 LJMP BACK ;value

;KEY BOARD Mode

802F 12 03 B1 KBD: LCALL CLRLCD

8032 90 80 8D MOV DPTR,#MSG ;Display

8035 C2 D5 CLR PSW.5 ;message

8037 12 03 2A LCALL LCDOUT ;"DIGITAL VALUE="

803A 75 A0 E8 MOV P2,#0E8H ;Initialize 8255

803D 78 03 MOV R0,#03H

803F 74 82 MOV A,#82H ;Port A as O/P

8041 F2 MOVX @R0,A ;Port B as I/P

8042 12 80 54 LCALL FUNC ;A/D conversion

8045 E9 MOV A,R1 ;put DIGITAL VALUE

8046 F5 71 MOV 71H,A

8048 12 13 9E LCALL PUTBYTE

804B 12 80 84 LCALL DLY

804E 12 80 84 LCALL DLY

8051 02 80 2F LJMP KBD

;A/D Conversion Routine

8054 74 02 FUNC: MOV A,#02H ;Reset Integrator

8056 78 00 MOV R0,#00H

8058 F2 MOVX @R0,A

8059 00 NOP

805A 00 NOP

805B 00 NOP

805C 74 01 MOV A,#01H ;Integrate Vin for

805E F2 MOVX @R0,A ;known value of

805F 79 04 MOV R1,#04H ;time

8061 00 NOP

8062 00 NOP

8063 00 NOP

8064 00 NOP

8065 00 NOP

8066 7A FF MOV R2,#FFH

8068 19 TCON: DEC R1

8069 1A TCON1: DEC R2

806A BA 00 FC CJNE R2,#00H,TCON1

806D B9 00 F8 CJNE R1,#00H,TCON

Page 24: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

24

8070 74 04 MOV A,#04H

8072 F2 MOVX @R0,A

8073 79 00 MOV R1,#00H

8075 09 TVAR: INC R1

8076 78 01 MOV R0,#01H ;Check comparator

8078 E2 MOVX A,@R0 ;for change value.

8079 54 01 ANL A,#01H ;If no change,

807B B4 00 F7 CJNE A,#00H,TVAR ;increment

807E 74 02 MOV A,#02H ;counter

8080 78 00 MOV R0,#00H

8082 F2 MOVX @R0,A

8083 22 RET

8084 7E 25 DLY: MOV R6,#25H

8086 7F FF DLY1: MOV R7,#FFH

8088 DF FE DJNZ R7,$

808A DE FA DJNZ R6,DLY1

808C 22 RET

808D 0D 44 49 47 49 MSG: DB 0DH,'DIGITAL VALUE = ',00H

8092 54 41 4C 20 56

8097 41 4C 55 45 20

809C 3D 20 20 20 00

4.13 DEMONSTRATION PROGRAM FOR ESA 86/88E TRAINER

; Assumes the interface is connected over J4 of the trainer.

; This program displays the digital equivalent of the Analog

; voltage on the PC console in serial mode or LCD in stand-

; alone mode of operation.

; The program can be executed in STAND-ALONE MODE or SERIAL

; MODE of operation.

; The program starts at memory location 0:2000H

; Please refer ESA 86/88E user's manual for mnemonic syntax

; suitable to trainer

Code Segment :0000H

ADDRESS OPCODE LABEL MNEMONIC COMMENTS

2000 B8 00 00 MOVW AX,0000H ;Initialise

2003 8E C8 MOVW CS,AX ;Segment

2005 8E C0 MOVW ES,AX ;Registers

2007 9A 31 00 00 FB CALLS 0FB00:0031H ;Newline routine

Page 25: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

25

200C BA E6 FF MOVW DX,0FFE6H ;Initialise 8255

200F B0 82 MOVB AL,82H ;Port A as o/p &

2011 EE OUTB DX,AL ;Port B as i/p.

2012 EB 12 JMP START

2014 0D 44 49 47 49 54 MES: DB 0DH, 'DIGITAL VALUE = ',0H

201A 41 4C 20 56 41 4C

2020 55 45 20 3D 20 00 ; Display Message string

2026 9A 35 01 00 FB START: CALLS 0FB00:0135H ;Clear LCD if

202B 2E CS ;in Stand-alone

202C 8D 16 15 20 LEA DX,@MES ;mode

2030 8B C2 MOVB AX,DX

2032 9A 13 00 00 FB CALLS 0FB00:0013H ;Display message

2037 B0 02 STC: MOVB AL,02H ;Reset Integrator

2039 BA E0 FF MOVW DX,0FFE0H

203C EE OUTB DX,AL

203D 90 NOP

203E 90 NOP

203F 90 NOP

2040 90 NOP

2041 90 NOP

2042 B8 01 00 MOVW AX,01H ;Integrate Vin for

2045 EE OUTB DX,AL ;known value of time

2046 B9 00 10 MOVW CX,1000H

2049 E2 FE LOOP $

204B B0 04 MOVB AL,04H ;Feed Vref to

;comparator

204D EE OUTB DX,AL

204E BA E0 FF MOVW DX,0FFE0H

2051 B3 00 MOVB BL,00H ;Start Counter

2053 BA E2 FF TVAR: MOVW DX,0FFE2H

2056 EC INB AL,DX ;Check for comparator

2057 24 01 ANDB AL,01H ;output. If high,

2059 74 04 JE DISP ;display digital value

205B FE C3 INCB BL ;else increment

205D EB F4 JMP TVAR ;counter and continue

205F 8A C3 DISP: MOVB AL,BL ;Routine to output

2061 9A 52 00 00 FB CALLS 0FB00:0052H ;digital value

2066 B0 02 MOVB AL,02H ; Reset Integrator

2068 BA E0 FF MOVW DX,0FFE0H

206B EE OUTB DX,AL

; Routine to introduce delay between successive conversions

Page 26: Intel's MCS-51 family of microcontrollers and its derivatives are ... · Execute the program & observe the dual slope wave form at pin number 6 of OPAMP LM308. 4.1 DEMONSTRATION PROGRAM

DUAL SLOPE ADC INTERFACE

26

206C BB 03 00 MOVW BX,03H

206F B9 FF FF DY: MOVW CX,0FFFFH

2072 E2 FE LOOP $

2074 4B DECW BX

2075 75 F8 JNZ DY

2077 EB AD JMP START ;Repeat continuously