Rev. 1.20 44 January 23, 2015 Rev. 1.20 45 January 23, 2015
BS82B12A-3/BS82C16A-3/BS82D20A-3
Touch Key 8-Bit Flash MCU with LED/LCD Driver
BS82B12A-3/BS82C16A-3/BS82D20A-3
Touch Key 8-Bit Flash MCU with LED/LCD Driver
Programming Considerations
CaremustbetakenthatdataisnotinadvertentlywrittentotheEEPROM.Protectioncanbe
enhancedbyensuringthattheWriteEnablebitisnormallyclearedtozerowhennotwriting.Also
theMemoryPointerhighbyteregistercouldbenormallyclearedtozeroasthiswouldinhibit
accesstoSector1wheretheEEPROMcontrolregisterexist.Althoughcertainlynotnecessary,
considerationmightbegivenintheapplicationprogramtothecheckingofthevalidityofnewwrite
databyasimplereadbackprocess.WhenwritingdatatheWRbitmustbesethighimmediately
aftertheWRENbithasbeensethigh,toensurethewritecycleexecutescorrectly.Theglobal
interruptbitEMIshouldalsobeclearedbeforeawritecycleisexecutedandthenre-enabledafter
thewritecyclestarts.NotethatthedevicesshouldnotentertheIDLEorSLEEPmodeuntilthe
EEPROMreadorwriteoperationistotallycompleted.Otherwise,theEEPROMreadorwrite
operationwillfail.
Programming Examples
• Reading data from the EEPROM - polling method
MOV A, EEPROM_ADRES ; user dened address
MOV EEA, A
MOV A, 040H ; setup memory pointer MP1
MOV MP1, A ; MP1 points to EEC register
MOV A, 01H ; setup Bank Pointer BP
MOV BP, A
SET IAR1.1 ; set RDEN bit, enable read operations
SET IAR1.0 ; start Read Cycle - set RD bit
BACK:
SZ IAR1.0 ; check for read cycle end
JMP BACK
CLR IAR1 ; disable EEPROM read/write
CLR BP
MOV A, EED ; move read data to register
MOV READ_DATA, A
• Writing Data to the EEPROM - polling method
MOV A, EEPROM_ADRES ; user dened address
MOV EEA, A
MOV A, EEPROM_DATA ; user dened data
MOV EED, A
MOV A, 040H ; setup memory pointer MP1
MOV MP1, A ; MP1 points to EEC register
MOV A, 01H ; setup Bank Pointer BP
MOV BP, A
CLR EMI
SET IAR1.3 ; set WREN bit, enable write operations
SET IAR1.2 ; start Write Cycle - set WR bit – executed immediately
; after set WREN bit
SET EMI
BACK:
SZ IAR1.2 ; check for write cycle end
JMP BACK
CLR IAR1 ; disable EEPROM read/write
CLR BP