Intel 80C186XL, 80C188XL user manual Timer/Counter Unit, Example 9-3.Configuring a Digital One-Shot

Models: 80C186XL 80C188XL

1 405
Download 405 pages 42.62 Kb
Page 251
Image 251
Example 9-3. Configuring a Digital One-Shot

TIMER/COUNTER UNIT

pop

dx

;restore saved registers

pop

bx

 

pop

ax

 

pop

bp

;restore caller’s bp

ret

 

 

_clock

endp

 

lib_80186

ends

 

end

 

 

Example 9-2. Configuring a Square-Wave Generator (Continued)

$mod186

name example_timer1_1_shot_code

;FUNCTION: This function generates an active-low one-shot pulse

;on Timer 1 output pin.

;

;SYNTAX: extern void far one_shot(int CMPB);

;INPUTS: CMPB - This is the T1CMPB value required to generate a

;pulse of a given pulse width. This value is calculated

;from the formula below.

;

;CMPB = (req_pulse_width*f)/4

;OUTPUTS: None

;

 

 

;

NOTE:

Parameters are passed on the stack as required by

;high-level languages

T1CNT

equ xxxxH

;substitute register offsets

T1CMPA

equ xxxxH

 

T1CMPB

equ

xxxxH

 

T1CON

equ

xxxxH

 

MaxCount equ 0020H

lib_80186 segment public ’code’ assume cs:lib_80186

public

_one_shot

 

_one_shot

proc far

 

push

bp

;save caller’s bp

mov

bp, sp

;get current top of stack

Example 9-3. Configuring a Digital One-Shot

9-22

Page 251
Image 251
Intel 80C186XL, 80C188XL user manual Timer/Counter Unit, Example 9-3.Configuring a Digital One-Shot