9-21
TIMER/COUNTER UNIT
Example 9-2. Configuring a Square-Wave Generator
$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
;substitute register offsets
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
;save caller’s bp
mov
bp, sp
;get current top of stack
_space
equ word ptr[bp+6]
;get parameters off the stack
_mark
equ word ptr[bp+8]
push
ax
;save registers that will be
push
bx
;modified
push
dx
mov
dx, T1CMPA
;set mark time
mov
ax, _mark
out
dx, al
mov
dx, T1CMPB
;set space time
mov
ax, _space
out
dx, al
mov
dx, T1CNT
;Clear Timer 1 Counter
xor
ax, ax
out
dx, al
mov
dx, T1CON
;start Timer 1
mov ax,
C003H
out dx,
al
Содержание 80C186XL
Страница 1: ...80C186XL 80C188XL Microprocessor User s Manual...
Страница 2: ...80C186XL 80C188XL Microprocessor User s Manual 1995...
Страница 18: ...1 Introduction...
Страница 19: ......
Страница 27: ......
Страница 28: ...2 Overview of the 80C186 Family Architecture...
Страница 29: ......
Страница 79: ......
Страница 80: ...3 Bus Interface Unit...
Страница 81: ......
Страница 127: ......
Страница 128: ...4 Peripheral Control Block...
Страница 129: ......
Страница 137: ......
Страница 138: ...5 ClockGenerationand Power Management...
Страница 139: ......
Страница 154: ...6 Chip Select Unit...
Страница 155: ......
Страница 178: ...7 Refresh Control Unit...
Страница 179: ......
Страница 193: ......
Страница 194: ...8 Interrupt Control Unit...
Страница 195: ......
Страница 227: ......
Страница 228: ...9 Timer Counter Unit...
Страница 229: ......
Страница 253: ......
Страница 254: ...10 Direct Memory Access Unit...
Страница 255: ......
Страница 283: ......
Страница 284: ...11 Math Coprocessing...
Страница 285: ......
Страница 302: ...12 ONCE Mode...
Страница 303: ......
Страница 306: ...A 80C186 Instruction Set Additions and Extensions...
Страница 307: ......
Страница 318: ...B Input Synchronization...
Страница 319: ......
Страница 322: ...C Instruction Set Descriptions...
Страница 323: ......
Страница 371: ......
Страница 372: ...D Instruction Set Opcodes and Clock Cycles...
Страница 373: ......
Страница 396: ...Index...
Страница 397: ......