Intel 80C188EC User Manual page 284

Hide thumbs Also See for 80C188EC:
Table of Contents

Advertisement

$mod186
name
example_timer1_square_wave_code
;FUNCTION:
This function generates a square wave of given
;
frequency and duty cycle on Timer 1 output pin.
;
;
SYNTAX:
extern void far clock(int mark, int space)
;
;
INPUTS:
mark
- This is the mark (1) time.
;
space - This is the space (0) time.
;
;
The register compare value for a given time can be
;
easily calculated from the formula below.
;
;
CompareValue = (req_pulse_width*f)/4
;
; OUTPUTS:
None
;
;
NOTE:
Parameters are passed on the stack as required by
;
high-level Languages
T1CMPA equ xxxxH
T1CMPB equ xxxxH
T1CNT
equ xxxxH
T1CON
equ xxxxH
lib_80186
segment public 'code'
assume cs:lib_80186
public
_clock
_clock
proc far
push
bp
mov
bp, sp
_space equ word ptr[bp+6]
_mark
equ word ptr[bp+8]
push
ax
push
bx
push
dx
mov
dx, T1CMPA
mov
ax, _mark
out
dx, al
mov
dx, T1CMPB
mov
ax, _space
out
dx, al
mov
dx, T1CNT
xor
ax, ax
out
dx, al
mov
dx, T1CON
mov
ax, C003H
out
dx, al
Example 9-2. Configuring a Square-Wave Generator
;substitute register offsets
;save caller's bp
;get current top of stack
;get parameters off the stack
;save registers that will be
;modified
;set mark time
;set space time
;Clear Timer 1 Counter
;start Timer 1
TIMER/COUNTER UNIT
9-21

Advertisement

Table of Contents
loading

This manual is also suitable for:

80c186ec

Table of Contents