User`s guide

Rev. 1.10 24 November 14, 2014 Rev. 1.10 25 November 14, 2014
HT66FW2230
Wireless Charger A/D Flash 8-Bit MCU
Special Function Register Description
MostoftheSpecialFunctionRegisterdetailswillbedescribedintherelevantfunctionalsection,
howeverseveralregistersrequireaseparatedescriptioninthissection.
Indirect Addressing Registers – IAR0, IAR1, IAR2
TheIndirectAddressingRegisters,IAR0,IAR1andIAR2,althoughhavingtheirlocationsinnormal
RAMregisterspace,donotactuallyphysicallyexistasnormalregisters.Themethodofindirect
addressingforRAMdatamanipulationusestheseIndirectAddressingRegistersandMemoryPointers,
incontrasttodirectmemoryaddressing,wheretheactualmemoryaddressisspecied.Actionsonthe
IAR0,IAR1andIAR2registerswillresultinnoactualreadorwriteoperationtotheseregistersbut
rathertothememorylocationspeciedbytheircorrespondingMemoryPointers,MP0,MP1L/MP1H
orMP2L/MP2H.Actingasapair,IAR0andMP0cantogetheraccessdataonlyfromBank0whilethe
IAR1registertogetherwithMP1L/MP1HregisterpairandIAR2registertogetherwithMP2L/MP2H
registerpaircanaccessdatafromanyDataMemorybank.AstheIndirectAddressingRegistersare
notphysicallyimplemented,readingtheIndirectAddressingRegistersindirectlywillreturnaresultof
“00H”andwritingtotheregistersindirectlywillresultinnooperation.
Memory Pointers – MP0, MP1L, MP1H, MP2L, MP2H
FiveMemoryPointers,knownasMP0,MP1L,MP1H,MP2LandMP2H,areprovided.These
MemoryPointersarephysicallyimplementedintheDataMemoryandcanbemanipulatedinthe
samewayasnormalregistersprovidingaconvenientwaywithwhichtoaddressandtrackdata.When
anyoperationtotherelevantIndirectAddressingRegistersiscarriedout,theactualaddressthatthe
microcontrollerisdirectedtoistheaddressspeciedbytherelatedMemoryPointer.MP0,together
withIndirectAddressingRegister,IAR0,areusedtoaccessdatafromBank0,whileMP1L/MP1H
togetherwithIAR1andMP2L/MP2HtogetherwithIAR2areusedtoaccessdatafromalldatabanks
accordingtothecorrespondingMP1HorMP2Hregister.DirectAddressingcanbeusedinalldata
banksusingthecorrespondinginstructionwhichcanaddressallavailabledatamemoryspace.
ThefollowingexampleshowshowtoclearasectionoffourDataMemorylocationsalreadydened
aslocationsadres1toadres4.
Indirect Addressing Program Example
data .section ´data´
adres1 db ?
adres2 db ?
adres3 db ?
adres4 db ?
block db ?
code .section at 0 ´code´
org00h
start:
mov a,04h ; setup size of block
mov block,a
mov a,offset adres1 ; Accumulator loaded with rst RAM address
mov mp0,a ; setup memory pointer with rst RAM address
loop:
clr IAR0 ; clear the data at address dened by mp0
inc mp0 ; increment memory pointer
sdz block ; check if last memory location has been cleared
jmp loop
continue:
Theimportantpointtonotehereisthatintheexampleshownabove,noreferenceismadetospecic
DataMemoryaddresses.