pic assembler eeprom

 

                                        

ඊප්රොම් ( E.E.P.R.O.M )

PIC16F84A ඔබට බයිට් හැට හතරක ස්ථීර මතකයක් ලබා දේ. මෙම මතකය තුලට ලියන දෑ විදුලිය විසන්දි වූ විටකදී පවා නැතිව නොයන අතර මෙහි දත්ත අවුරුදු හතළිහක් පමණ නොමැකී පවතින බව නිෂ්පාදකයාගේ දත්ත සටහන පවසයි. ඊප්රොම් මතකය ලිවීම සෘජුව කල නොහැකි අතර ඒ සඳහා වක්‍රීය ක්‍රමයක් භාවිතා කල යුතුය. මෙම කිරීම සඳහා රෙජිස්ටර් හතරක් භාවිතා වේ. ඒවා නම්..

 EEADR

 EEDATA

 EECON 1

 EECON 2



ඔබට ලිවීමට අවශ්‍ය දත්තය EEDATA රෙජිස්ටරයටද ඔබට ලිවීමට අවශ්‍ය ඇඩ් රස් එක EEADR රෙජිස්ටරයටද ලිවීමෙන් පසු WREN බිට් එක සෙට් කිරීමෙන් දත්ත ලිවීම සක්‍රීය කරයි.ඉන් අමතරව 0X55 , 0XAA යන අගයන් EECON2 රෙජිස්ටරයට ලිවීම අත්‍යවශ්‍ය බව නිෂ්පාදකය පවසයි.මෙසේ කරන්නේ යම් දෝෂයක් නිසා ඊප්රොම් ඉබේ ලිවීම වලකා ගැනීමටය. ඉන් පසුව WR බිට් එක සෙට් කිරීමෙන් ඊප්රොම් ලියවීම ආරම්භ වන අතර ලියවී ඉවර වූ වහාම බිට් එක ක්ලියර් වන බැවින් එය පරීක්ෂා කිරීමෙන් ලියවී හමාර වී ද යන වග දැන ගත හැක .සාම්පල් කෝඩ් එකක් පහත දැක්වේ.

BSF   STATUS,RP0

MOVF  ADDRESS,W    ; Move address to W

MOVWF EEADR        ; Write address

MOVF  DATA,W       ; Move data to W

MOVWF EEDATA       ; Write data

BCF   EECON1,EEPGD ; Select EEPROM

BSF   EECON1,WREN  ; Write to EEPROM enabled

BCF   INCON,GIE    ; All interrupts disabled

MOVLW 55h          ; required sequence start

MOVWF EECON2

MOVLW AAh

MOVWF EECON2       ; Required sequence end

BSF   EECON1,WR

BTFSC EECON,WR1    ; Wait for the previous write to complete

GOTO  $-1          ;

BSF   INTCON,GIE   ; Interrupts enabled


                                          

ඊප්රොම් කියවීම

මෙය ලිවීම තරම් සංකීර්ණ නොවේ. ඔබට කියවීම අවශ්‍ය ඇඩ්රස් එක EEADR රෙජිස්ටරයට ලියා RD බිට් එක සෙට් කල විට එම ඇඩ්රස් එකේ ඇති දත්තය EEDATA රෙජිස්ටරයට පැමිණේ. සාම්පල් කෝඩ් එකක් පහත දැක්වේ.

BSF   STATUS,RP1   ;

BCF   STATUS,RP0   ; Access bank 2

MOVF  ADDRESS,W    ; Move address to the W register

MOVWF EEADR        ; Write address

BSF   STATUS,RP0   ; Access bank 3

BCF   EECON1,EEPGD ; Select EEPROM

BSF   EECON1,RD    ; Read data

MOVF  EEDATA,W   ; Data is stored in the W register



ඊප්රොම් ප්‍රායෝගික පරීකක්ෂාව සඳහා අප විසින් සරල ඇටවුමක් සාදා ඇති අතර එහිදී පොර්ට් බී වෙත අමුණා ඇති එල් ඊ ඩී අටෙන් බින්දුවේ සිට දෙසිය පනස්පහ දක්වා ඉහලට ගනිමින් ඒ අගයන් පොර්ට් බී වෙතින් නිරූපණය කරයි. ඔබ යම් අවස්ථාවක මයික්‍රෝ ස්විච් එක තද කලේ නම් එම මොහොතේ පොර්ට් බී වෙත තිබූ අගය ඊප්රොම් එකේ සීරෝ වන ඇඩ්රස් එකේ ගබඩා වේ. ඉන් පසු පරිපථයට විදුලිය විසන්දි කොට යම් වේලාවකට අනතුරුව නැවත විදුලිය සැපයූ විට ඔබට පරිපථය ඔබ එම බොත්තම තදකල ස්ථානයේ සිට ඉහලට ගනිනු දැක ගත හැක. මෙහිදී සිදුවන්නේ බලය සැපයූ විට ඊප්රොම් කියවා එම අගය පොර්ට් බී වෙත ලබාදී එතැන සිට ඉහලට ගැනීමයි.




         find code on https://github.com/mikrohouse/asm-tutorials/tree/main/EEPROM

Comments

Popular posts from this blog

pic micro assembler tutorials in sinhala part1

microc for pic