EasyManua.ls Logo

Holtek HT66F20 - Page 32

Holtek HT66F20
294 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Rev. 2.50 32 June 22, 2017 Rev. 2.50 33 June 22, 2017
HT66F20/HT66F30/HT66F40/HT66F50/HT66F60
HT66FU30/HT66FU40/HT66FU50/HT66FU60
A/D Flash MCU with EEPROM
HT66F20/HT66F30/HT66F40/HT66F50/HT66F60
HT66FU30/HT66FU40/HT66FU50/HT66FU60
A/D Flash MCU with EEPROM
Table Program Example
Thefollowingexampleshowshowthetablepointerandtabledataisdenedandretrievedfromthe
microcontroller.ThisexampleusesrawtabledatalocatedintheProgramMemorywhichisstored
thereusingtheORGstatement.ThevalueatthisORGstatementis"700H"whichreferstothestart
addressofthelastpagewithinthe2KProgramMemoryoftheHT66F30.Thetablepointerissetup
heretohaveaninitialvalueof"06H".Thiswillensurethattherstdatareadfromthedatatablewill
beattheProgramMemoryaddress"706H"or6locationsafterthestartofthelastpage.Notethat
thevalueforthetablepointerisreferencedtotheaddressspeciedbytheTBLPandTBHPifthe
"TABRD[m]"instructionisbeingused.Thehighbyteofthetabledatawhichinthiscaseisequal
tozerowillbetransferredtotheTBLHregisterautomaticallywhenthe"TABRD[m]"instructionis
executed.
BecausetheTBLHregisterisaread-onlyregisterandcannotberestored,careshouldbetaken
toensureitsprotectionifboththemainroutineandInterruptServiceRoutineusetableread
instructions.Ifusingthetablereadinstructions,theInterruptServiceRoutinesmaychangethe
valueoftheTBLHandsubsequentlycauseerrorsifusedagainbythemainroutine.Asaruleitis
recommendedthatsimultaneoususeofthetablereadinstructionsshouldbeavoided.However,in
situationswheresimultaneoususecannotbeavoided,theinterruptsshouldbedisabledpriortothe
executionofanymainroutinetable-readinstructions.Notethatalltablerelatedinstructionsrequire
twoinstructioncyclestocompletetheiroperation.
Table Read Program Example:
tempreg1 db ? ; temporary register #1
tempreg2 db ? ; temporary register #2
:
:
mov a,06h ; initialise low byte table pointer - note that this address
; is referenced
mov tblp, a
mov a,07h ; initialise high table pointer
mov tbhp, a
:
:
tabrdl tempreg1 ; transfers value in table referenced by table pointer data at
; program memory address "706H" transferred to tempreg1 and TBLH
dec tblp ; reduce value of table pointer by one
tabrdl tempreg2 ; transfers value in table referenced by table pointer data at
; program memory address "705H" transferred to tempreg2 and TBLH in
; this example the data "1AH" is transferred to tempreg1 and data
; "0FH" to register tempreg2
:
:
org 700h ; sets initial address of program memory
dc 000Ah, 000Bh, 000Ch, 000Dh, 000Eh, 000Fh, 001Ah, 001Bh
:
:

Table of Contents

Related product manuals