PICÀÇ µ¥ÀÌÅÍ ¸Þ¸ð¸® ±¸Á¶

[µ¥ÀÌÅÍ ¸Þ¸ð¸®¶õ?]

µ¥ÀÌÅÍ ¸Þ¸ð¸®´Â ÇÁ·Î±×·¥ ¸Þ¸ð¸®¿Í´Â µ¶¸³ÀûÀ¸·Î °®Ãß¾îÁ® ÀÖ´Â
read/write °¡´ÉÇÑ µ¥ÀÌÅÍ ÀúÀå Àü¿ëÀÇ ¸Þ¸ð¸®·Î,
PICÀÇ Æ¯Â¡ÀÎ ¾ÆÅ°ÅØÃ³ÀÇ Çϳª·Î µÇ¾î ÀÖ´Ù.
ÀÌ µ¥ÀÌÅÍ ¸Þ¸ð¸®´Â ´ÙÀ½°ú °°Àº µÎ Á¾·ù·Î ³ª´©¾îÁ® ÀÖÀ¸¸ç,
¾î´À °ÍÀ̳ª read/write¸¦ ÇÒ ¼ö ÀÖ´Ù.

(1) Special Function Register (SFR)
CPUÀÇ ±â´É µ¿ÀÛÀ» ÁöÁ¤Çϰųª, ÁÖº¯ µð¹ÙÀ̽ºÀÇ ±â´É, µ¿ÀÛÀ» ÁöÁ¤Çϱâ À§ÇÑ ·¹Áö½ºÅÍÀÌ´Ù.

(2) General Purpose Register (GPR)
¹ü¿ëÀÇ µ¥ÀÌÅÍ ¿¡¸®¾î·Î »ç¿ëÇϸç, º¯¼ö³ª ¹öÆÛ·Î »ç¿ëÇÑ´Ù


[µ¥ÀÌÅÍ ¸Þ¸ð¸®ÀÇ ±¸Á¶]

µ¥ÀÌÅÍ ¸Þ¸ð¸®´Â 128¹ÙÀÌÆ®¸¦ ´ÜÀ§·Î ÇÏ´Â ÃÖ´ë 4°³ÀÇ "Bank"·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
¶Ç, °¢ ¿¡¸®¾î´Â "Á÷Á¢ ¾îµå·¹½Ì"°ú "°£Á¢ ¾îµå·¹½Ì"ÀÇ 2°èÅëÀ¸·Î ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù.
ÀÌ ¾×¼¼½º¸¦ À§ÇÑ ¾îµå·¹½º ±¸Á¶´Â ¾Æ·§ ±×¸²°ú °°ÀÌ µÇ¾î ÀÖ´Ù.

(1) Á÷Á¢ ¾îµå·¹½ÌÀÇ °æ¿ì
     ÀÌ °æ¿ì´Â "STATUS" ·¹Áö½ºÅÍ¿¡ ÀÖ´Â 2ºñÆ®ÀÇ Bank ÁöÁ¤¿ëÀÇ
     ºñÆ® RP0, RP1°ú ¸í·ÉÀÇ OP Äڵ峻 f ·¹Áö½ºÅ͸¦ »ç¿ëÇÑ´Ù.

RP1         RP0        ank
  0             0            0
  0             1            1
  1             0            2
  1             1            3




RP0,1·Î Bank¸¦ ÁöÁ¤Çϰí,
¸í·ÉÀÇ f opecode·Î
Àå¼Ò¸¦ ÁöÁ¤ÇÔÀ¸·Î½á
ÀÓÀÇÀÇ Àå¼Ò¸¦ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù
.



(2) °£Á¢ ¾îµå·¹½ÌÀÇ °æ¿ì
     ÀÌ °£Á¢ ¾îµå·¹½ÌÀ̶õ FSR ·¹Áö½ºÅÍ¿¡ ¾îµå·¹½º¸¦ ¼³Á¤Çϰí,
     INDF ·¹Áö½ºÅ͸¦ °æÀ¯ÇÏ¿© °£Á¢ÀûÀ¸·Î µ¥ÀÌÅÍ ¸Þ¸ð¸®ÀÇ
     read/write¸¦ ÇÏ´Â ¹æ¹ýÀÌ´Ù.
     ÀÌ °æ¿ìÀÇ ¾îµå·¹½º´Â "STATUS" ·¹Áö½ºÅÍ¿¡ ÀÖ´Â IRP ºñÆ®¿Í
      FSRÀÇ ÃÖ»óÀ§ ºñÆ®ÀÇ 2ºñÆ®·Î Bank¸¦ ÁöÁ¤ÇÑ´Ù.


                IRP               FSR<7>        Bank
                 0                   0                   0
                 0                   1                   1
                 1                   0                   2
                 1                   1                   3


IRP¿Í FSR<7>·Î
Bank¸¦ ÁöÁ¤Çϰí
FSR<0:6>À¸·Î Àå¼Ò¸¦
ÁöÁ¤ÇÔÀ¸·Î½á ÀÓÀÇÀÇ
Àå¼Ò¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.





[ÇÁ·Î±×·¡¹Ö Å×Å©´Ð]

(1) °£Á¢ ¾îµå·¹½ÌÀÇ Å×Å©´Ð
      °£Á¢ ¾îµå·¹½ÌÀÇ ¿¹·Î¼­, Bank 0ÀÇ ¹ü¿ë RAM ¿¡¸®¾îÀÇ 20H¿¡¼­
      3FH±îÁö¸¦ ¿¬¼Ó Ŭ¸®¾îÇÏ´Â ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°ÀÌ µÈ´Ù.

                 BCF           STATUS,IRP      ;Indirect addressing Bank0/1
                 MOVLW      0x20                ;Initial pointer to RAM
                 MOVWF      FSR                 ;set to pointer
      NEXT   CLRF          INDF                ;clear RAM area
                 INCF           FSR,F              ;FSR+1
                 BTFSS        FSR,4               ;end test(0x30)
                 GOTO         NEXT


(2) Bank ÀüȯÀÇ Å×Å©´Ð
´Ü¼øÈ÷ Bank¸¦ ÀüȯÇÏ¿© µ¥ÀÌÅ͸¦ ¾×¼¼½ºÇÒ ¶§ÀÇ
ÇÁ·Î±×·¥ ¼­½ÄÀº ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

                BSF            STATUS,RP0     ;Setpage 1
                MOVLW      0x10                 ;only RA4 input
                MOVWF      TRISA               ;Port A is all output
                CLRF          TRISB               ;Port B is all output
                BCF            STATUS,RP0     ;Set Page 0
                CLRF           PORTB             ;reset
                MOVLW       1
                MOVWF       PORTA             ;light on dot


    ´ÙÀ½ ÆäÀÌÁö·Î          ¸ñÂ÷ ÆäÀÌÁö·Î