CLOCK GENERATION AND POWER MANAGEMENT
5-22
Example 5-2. 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
Содержание 80C186EA
Страница 1: ...80C186EA 80C188EA Microprocessor User s Manual...
Страница 2: ...80C186EA 80C188EA Microprocessor User s Manual 1995...
Страница 19: ......
Страница 20: ...1 Introduction...
Страница 21: ......
Страница 28: ...2 Overview of the 80C186 Family Architecture...
Страница 29: ......
Страница 79: ......
Страница 80: ...3 Bus Interface Unit...
Страница 81: ......
Страница 129: ......
Страница 130: ...4 Peripheral Control Block...
Страница 131: ......
Страница 139: ......
Страница 140: ...5 ClockGenerationand Power Management...
Страница 141: ......
Страница 165: ......
Страница 166: ...6 Chip Select Unit...
Страница 167: ......
Страница 190: ...7 Refresh Control Unit...
Страница 191: ......
Страница 205: ......
Страница 206: ...8 Interrupt Control Unit...
Страница 207: ......
Страница 239: ...INTERRUPT CONTROL UNIT 8 32...
Страница 240: ...9 Timer Counter Unit...
Страница 241: ......
Страница 265: ......
Страница 266: ...10 Direct Memory Access Unit...
Страница 267: ......
Страница 295: ...DIRECT MEMORY ACCESS UNIT 10 28...
Страница 296: ...11 Math Coprocessing...
Страница 297: ......
Страница 314: ...12 ONCE Mode...
Страница 315: ......
Страница 318: ...A 80C186 Instruction Set Additions and Extensions...
Страница 319: ......
Страница 330: ...B Input Synchronization...
Страница 331: ......
Страница 334: ...C Instruction Set Descriptions...
Страница 335: ......
Страница 383: ...INSTRUCTION SET DESCRIPTIONS C 48...
Страница 384: ...D Instruction Set Opcodes and Clock Cycles...
Страница 385: ......
Страница 408: ...Index...
Страница 409: ......