Fujitsu MB89202 Computer Hardware User Manual


 
277
CHAPTER 12 A/D CONVERTER
12.8 Program Example for A/D Converter
This section shows a program example of the 10-bit A/D converter.
Program Example of the A/D Conversion Functions
Processing specifications
The analog voltage to be applied to the AN0 pin is converted to digital voltage through software activation.
In this example, completion of conversion is detected in a loop in the program without using interrupts.
Coding example
PDR4 EQU 000FH ; Address of port 4 data register 4
ADC1 EQU 0030H ; Address of A/D control register 1
ADC2 EQU 0031H ; Address of A/D control register 2
ADDH EQU 0032H ; Address of A/D data register H
ADDL EQU 0033H ; Address of A/D data register L
ADEN EQU 0034H ; Enables the A/D input pin.
AN0 EQU PDR4:0 ; Defines the AN0 analog input.
ADE0 EQU ADEN:0 ; Enables the AN0 analog input.
ADI EQU ADC1:3 ; Defines the interrupt request flag bit.
ADMV EQU ADC1:2 ; Defines the conversion in-progress flag bit.
AD EQU ADC1:0 ; Defines the bit for activating A/D conversion (software
activation).
EXT EQU ADC2:1 ; Defines the bit for enabling continuous activation.
;------------------------Main program--------------------------------------------------------------------------------
CSEG ; [CODE SEGMENT]
:
SETB AN0 ; Sets the P40/AN0 pin to the analog input.
CLRI ; Disables interrupts.
SETB ADE0 ; Enables the AN0 pin.
CLRB EXT ; Disables continuous activation.
AD_WAIT
BBS ADMV,AD_WAIT ; Loop for verifying that the A/D converter is stopped.
MOV ADC1,#00000000B ; Selects analog input channel 0 (AN0), clears the
interrupt request flag, does not perform software
activation.
MOV ADC2,#00000001B ; Disables the interrupt request output, selects A/D
conversion functions, and selects software activation.
SETI ; Enables interrupts.
:
SETB AD ; Activates software.
AD_CONV
BBS ADMV,AD_CONV ; Loop for waiting for completion of A/D conversion
(at about 12.2 µs/12.5 MHz)
CLRB ADI ; Clears the interrupt request flag.