CLOCK GENERATION AND POWER MANAGEMENT
5-14
Example 5-1. Initializing the Power Management Unit for Power-Save Mode
$mod186
name
example_PSU_code
;FUNCTION:
This function reduces CPU power consumption
;
by dividing the CPU operating frequency by a
;
divisor.
; SYNTAX:
extern void far power_save(int divisor);
; INPUTS:
divisor - This variable represents F0, F1 and F2
;
of PWRSAV.
; OUTPUTS:
None
; NOTE:
Parameters are passed on the stack as required
;
by high-level languages
;substitute register offset
PWRSAV
equ xxxxH
;Power-Save Register
RFTIME
equ xxxxH
;Refresh Interval Count
;Register
RFCON
equ xxxxH
;Refresh Control Register
PSEN
equ 8000H
;Power-Save enable bit
data
segment public 'data'
FreqTable
dw 1, 4, 8, 16, 32, 64, 0, 0
data
ends
lib_80C186
segment public 'code'
assume cs:lib_80C186, ds:data
public _power_save
_power_save
proc far
push bp
;save caller's bp
mov bp, sp
;get current top of stack
push ax
;save registers that will
push dx
;be modified
_divisor
equ word ptr[bp+6]
;get parameter off the
;stack
mov dx, RFTIME
;get current DRAM refresh
in ax, dx
;rate
and ax, 01ffh
;mask off unwanted bits
div FreqTable[_divisor]
;divide refresh rate
;by _divisor
out dx, ax
;set new refresh rate
mov dx, PWRSAV
;select Power-Save Register
mov ax, _divisor
;get divisor
and ax, 7
;mask off unwanted bits
or ax, PSEN
;set enable bit
out dx, ax
;divide frequency
pop dx
;restore saved registers
pop bx
pop ax
pop bp
;restore caller's bp
ret
_power_save
endp
lib_80C186
ends
end
Summary of Contents for 80C186XL
Page 1: ...80C186XL 80C188XL Microprocessor User s Manual...
Page 2: ...80C186XL 80C188XL Microprocessor User s Manual 1995...
Page 18: ...1 Introduction...
Page 19: ......
Page 27: ......
Page 28: ...2 Overview of the 80C186 Family Architecture...
Page 29: ......
Page 79: ......
Page 80: ...3 Bus Interface Unit...
Page 81: ......
Page 127: ......
Page 128: ...4 Peripheral Control Block...
Page 129: ......
Page 137: ......
Page 138: ...5 ClockGenerationand Power Management...
Page 139: ......
Page 154: ...6 Chip Select Unit...
Page 155: ......
Page 178: ...7 Refresh Control Unit...
Page 179: ......
Page 193: ......
Page 194: ...8 Interrupt Control Unit...
Page 195: ......
Page 227: ......
Page 228: ...9 Timer Counter Unit...
Page 229: ......
Page 253: ......
Page 254: ...10 Direct Memory Access Unit...
Page 255: ......
Page 283: ......
Page 284: ...11 Math Coprocessing...
Page 285: ......
Page 302: ...12 ONCE Mode...
Page 303: ......
Page 306: ...A 80C186 Instruction Set Additions and Extensions...
Page 307: ......
Page 318: ...B Input Synchronization...
Page 319: ......
Page 322: ...C Instruction Set Descriptions...
Page 323: ......
Page 371: ......
Page 372: ...D Instruction Set Opcodes and Clock Cycles...
Page 373: ......
Page 396: ...Index...
Page 397: ......