8051
AVR
EZLab
PIC
80C196KC
DSP
ARM
VHDL
¸¶ÀÌÅ©·Î¸¶¿ì½º
·Îº¿Ã౸
Battle ·Îº¿
·Îº¿´ëȸ
È޸շκ¿
Embeded Linux
HW/SW °­ÁÂ
RTOS
 
 

 1. I/O Æ÷Æ® Á¦¾îÇϱâ

 

¡Ø I/O port control

  º» °­Á´ PIC16c74·Î ¼³¸íÇϸç, CCS-C»çÀÇ C ÄÄÆÄÀÏ·¯¸¦ Áß½ÉÀ¸·Î ÇÏ°Ú´Ù. ±×·¯´Ù º¸¸é ¼¼ºÎÀûÀÎ °ÍÀº ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼­ ÇØÁֱ⠶§¹®¿¡ ³»¿ëÀÌ ºüÁú °æ¿ìµµ ÀÖ´Ù. ±×·¯³ª CCS-C ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϴµ¥´Â ÀüÇô ¹®Á¦°¡ µÇÁö ¾ÊÀ» °Å¶ó »ý°¢ÇÑ´Ù. ¶ÇÇÑ º» °­Á´ PIC16c74¸¦ Àß ´Ù·é´Ù¸é ³ª¸ÓÁö DEVICE´Â ±×¸® ¾î·ÆÁö ¾Ê°Ô »ç¿ëÇÒ ¼ö ÀÖÀ» °Å¶ó º»ÀÎÀº »ý°¢Çϱ⠶§¹®¿¡ PIC16C74·Î ¼³¸íÀ» ÇÏ°Ú´Ù.
  º»·ÐÀ¸·Î µé¾î°¡¼­ I/O port¸¦ Á¦¾îÇϱâ À§Çؼ­´Â File AddressÁß 06h ȤÀº 86h¸¦ ÄÁÆ®·ÑÇÔÀ¸·Î½á PICÀÇ I/OÆ÷Æ®¿¡ logic 0[ 0V ] ȤÀº logic 1[ 5V ]À» ÁÙ ¼ö ÀÖ´Ù.

(1) PORTB¸¦ ÀÔÃâ·ÂÀ¸·Î »ç¿ëÇϱâ

    1) PORTB¸¦ ¸ðµÎ ÀÔ·ÂÀ¸·Î »ç¿ëÇϱâ
        PORTB¸¦ ¸ðµÎ ÀÔ·ÂÀ¸·Î »ç¿ëÇϱâ À§Çؼ­´Â TRISB¿¡ 0xFF·Î ¼³Á¤ÇÏ¸é µÈ´Ù.

        ¨ç ¹æ¹ý
            TRISB REGISTER

      1

       1

      1

      1

      1

      1

      1

      1

            À§¿Í °°ÀÌ TRISB REGISTER¿¡ °ªÀ» ¾²¸é PORTB ¸ðµÎ¸¦ ÀÔ·ÂÀ¸·Î »ç¿ëÀÌ °¡´ÉÇϹǷΠ¿ÜºÎ ÀåÄ¡ÀÇ °ªÀ» ÀÐ¾î ¿À´Â °ÍÀÌ °¡´ÉÇÏ´Ù.

                [ ¿¹Á¦ 1 ]


        ......
        SET_TRIS_B( 0xFF );   //  = SET_TRIS_B( all_in );
        ......

         

 

    2) PORTB¸¦ ¸ðµÎ Ãâ·ÂÀ¸·Î »ç¿ëÇϱâ
        PORTB¸¦ ¸ðµÎ Ãâ·ÂÀ¸·Î »ç¿ëÇϱâ À§Çؼ­´Â TRISB¸¦ 0x00À¸·Î ¼³Á¤ÇÏ¸é µÈ´Ù.

        ¨ç ¹æ¹ý
            TRISB REGISTER

      0

       0

      0

      0

      0

      0

      0

      0

           À§¿Í °°ÀÌ TRISB REGISTER¿¡ °ªÀ» ¾²¸é PORTB ¸ðµÎ¸¦ Ãâ·ÂÀ¸·Î »ç¿ëÀÌ °¡´ÉÇϹǷΠ¿ÜºÎ ÀåÄ¡ Á¦¾î°¡ °¡´ÉÇÏ´Ù.

                                 [ ¿¹Á¦ 2 ]

         

        ......
        SET_TRIS_B( 0x00 );         //  = SET_TRIS_B( all_out );
        OUTPUT_HIGH( PIN_B0 ); // B0Æ÷Æ®¿¡ HIGHÃâ·Â ³»º¸³»±â
        OUTPUT_LOW( PIN_B1 );  // B1Æ÷Æ®¿¡ LOWÃâ·Â ³»º¸³»±â
        ......

 

 

         

    3) PORTB¸¦ ÀԷ°ú Ãâ·ÂÀ¸·Î È¥¿ëÇÏ¿© »ç¿ëÇϱâ
           TRISB REGISTER

      1

      0

      1

      0

      0

      1

      0

      0

      À§¿Í °°ÀÌ TRISB REGISTER¸¦ ¼³Á¤Çϸé PORTBÀÇ Ã¹ ¹ø° Áï, RB0´Â Ãâ·ÂÀ¸·Î ¼³Á¤µÇ°í, RB1Àº Ãâ·ÂÀ¸·Î, RB2´Â ÀÔ·ÂÀ¸·Î, RB3´Â Ãâ·ÂÀ¸·Î, RB4´Â Ãâ·ÂÀ¸·Î, RB5´Â ÀÔ·ÂÀ¸·Î, RB6Àº Ãâ·ÂÀ¸·Î, RB7Àº ÀÔ·ÂÀ¸·Î ¼³Á¤ÀÌ µÈ´Ù. ÇÁ·Î±×·¥ÀûÀ¸·Î´Â [ ¿¹Á¦ 3 ]¿Í °°ÀÌ ÇÏ¸é µÈ´Ù.

                                            [ ¿¹Á¦ 3 ]


                           ......
                           SET_TRIS_B( 0xA4 );      
                           ......

 

 

    * SET_TRIS_B(), OUTPUT_HIGH( PIN_B0 ), OUTPUT_LOW( PIN_B1 )ÇÔ¼ö³ª ¾ÕÀ¸·Î ³ª¿À°Ô µÉ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ »ç¿ë¹ýÀº °Ô½ÃÆÇ¿¡ °ø°³ÇÑ ¸Å´º¾ó Áß Built-In Functions Command Summary ºÎºÐ¿¡ ÀÚ¼¼È÷ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù. Âü°íÇϽñ⠹ٶø´Ï´Ù.

   

À§ÀÇ ³»¿ëÀ» Åä´ë·Î Çؼ­ 8°³ÀÇ LED¸¦ ¼øÂ÷ÀûÀ¸·Î ¹Ýº¹Çؼ­ ÄÑ´Â ½ÇÇèÀÌ´Ù. ȸ·Îµµ¿Í ¼Ò½º°¡ ÀÖÀ¸´Ï ½±°Ô ÀÌÇØÇϸ®¶ó »ý°¢ÇÕ´Ï´Ù.  

½ÇÇè¿¡ ÀÌ¿ëµÉ ȸ·Îµµ´Â ´ÙÀ½°ú °°½À´Ï´Ù. RC0¿¡ RESET¸¦ ¸¸µé¾ú´Âµ¥ ¼Ò½º¿¡´Â RESET ±â´ÉÀÌ ¾ø½À´Ï´Ù. ÀÌ»óÇÏ°Ô »ý°¢ÇÏÁö ¸¶¼¼¿©~

   ±×¸®°í ¾Æ·¡ÀÇ ¼Ò½º´Â ¾Æ·¡¿Í °°´Ù.

                                                   [¹æ¹ý 1]

#include "16C74B.h"

#use delay(clock=4000000)

 

void main(void)

{

   SET_TRIS_B( 0x00 );         //  = SET_TRIS_B( all_out );

      while(1) {

        OUTPUT_HIGH( PIN_B0 ); // B0Æ÷Æ®¿¡ HIGHÃâ·Â ³»º¸³»±â

        DELAY_MS(1000);              // 0~65535±îÁö ÆĶó¸ÞŸ·Î »ç¿ë °¡´É, Áï 65.535 ÃʱîÁö °¡´É

        OUTPUT_LOW( PIN_B0 );  // B1Æ÷Æ®¿¡ LOWÃâ·Â ³»º¸³»±â

        DELAY_MS(1000);           

        OUTPUT_HIGH( PIN_B1 );

        DELAY_MS(1000);           

        OUTPUT_LOW( PIN_B1 );

        DELAY_MS(1000);           

        OUTPUT_HIGH( PIN_B2 );

        DELAY_MS(1000);           

        OUTPUT_LOW( PIN_B2 );

        DELAY_MS(1000);           

        OUTPUT_HIGH( PIN_B3 );

        DELAY_MS(1000);           

        OUTPUT_LOW( PIN_B3 );

        DELAY_MS(1000);           

        OUTPUT_HIGH( PIN_B4 );

        DELAY_MS(1000);           

        OUTPUT_LOW( PIN_B4 );

        DELAY_MS(1000);          

        OUTPUT_HIGH( PIN_B5 );

        DELAY_MS(1000);           

        OUTPUT_LOW( PIN_B5 );

        DELAY_MS(1000);          

        OUTPUT_HIGH( PIN_B6 );

        DELAY_MS(1000);           

        OUTPUT_LOW( PIN_B6 );

        DELAY_MS(1000);          

        OUTPUT_HIGH( PIN_B7 );

        DELAY_MS(1000);           

        OUTPUT_LOW( PIN_B7 );

        DELAY_MS(1000);          

    }

}

 

À§ÀÇ ¼Ò½º´Â ¹«ÇÑ·çÇÁ Áï, while()À» µ¹¸é¼­ LED¸¦ 1ÃÊ °£°ÝÀ¸·Î Ä×´Ù ²°´Ù ÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. Âü°í·Î CCS C»çÀÇ ÄÄÆÄÀÏ·¯´Â ´ë¼Ò¹®ÀÚ ±¸ºÐÀÌ ¾ø½À´Ï´Ù. ¶ÇÇϳª À§¿Í °°ÀÌ ÇÏ¸é ºÒÆíÀ» ´À³¢´Â »ç¶÷ÀÌ ÀÖ½À´Ï´Ù. º¸ÅëÀÇ »ç¶÷µéÀÌ ¾î¼Àºí¸®¿¡ Àͼ÷ÇØÁ® Àֱ⠶§¹®¿¡ Çì´õÆÄÀÏÀ» ¼öÁ¤Çؼ­ ¿ì¸®°¡ Á»´õ Àͼ÷ÇÑ ¹æ½ÄÀ¸·Î ÄÚµùÀÌ °¡´ÉÇÕ´Ï´Ù. Çì´õÆÄÀÏÀº °Ô½ÃÆÇ¿¡ ¿Ã·Á ³õ°Ú½À´Ï´Ù. ÀÚ, ±×·³ ¼Ò½º·Ñ º¼±î¿ä!

                                                   [¹æ¹ý 2]

#include "H_16C74B.h"

#use delay(clock=4000000)

 

void main(void)
{

        trisb = 0x00;

        while(1) {
                rb0 = 0;    delay_ms(1000);

                rb0 = 1;    delay_ms(1000);

                rb1 = 0;    delay_ms(1000);

                rb1 = 1;    delay_ms(1000);

                rb2 = 0;    delay_ms(1000);

                rb2 = 1;    delay_ms(1000);

                rb3 = 0;    delay_ms(1000);

                rb3 = 1;    delay_ms(1000);

                rb4 = 0;    delay_ms(1000);

                rb4 = 1;    delay_ms(1000);

                rb5 = 0;    delay_ms(1000);

                rb5 = 1;    delay_ms(1000);

                rb6 = 0;    delay_ms(1000);

                rb6 = 1;    delay_ms(1000);

                rb7 = 0;    delay_ms(1000);

                rb7 = 1;    delay_ms(1000);

        }
}

 

 ¼Ò½º¸¦ º¸¸é "rb0=0" ¶ó°í µÇ¾î ÀÖ½À´Ï´Ù. ÀÌ·± ¹æ½ÄÀÌ °¡´ÉÇÑ°Ô Á¦°¡ Çì´õÆÄÀÏ Áï, 16C74B.hÀÇ ³»¿ëÀ» ¹Ù²ã¼­ "H_16C74B.h" ÆÄÀÏ·Î ¸¸µé¾ú½À´Ï´Ù. ±Ã±ÝÇϽŠºÐµéÀº µÎ Çì´õ ÆÄÀÏÀ» ºñ±³Çؼ­ º¸½Ã¸é ÀÌÇØ°¡ °¡½Ã¸®¶ó »ý°¢ÇÕ´Ï´Ù. ÀÌ·± ³»¿ë±îÁö ÇÏ¸é ³»¿ëÀÌ ³Ê¹« ¹æ´ëÇÏ°Ô µË´Ï´Ù. °¢ÀÚ ¼÷Á¦·Î ³²±â°í¿ä, ±Ã±ÝÇÑ »çÇ×ÀÌ ÀÖÀ¸½Ã¸é °Ô½ÃÆÇÀ» ÀÌ¿ëÇØ Áú¹®ÇØ ÁֽʽÿÀ.




»óÈ£ : (ÁÖ) ·Îº¸ºí·° »ç¾÷ÀÚµî·Ï¹øÈ£:214-86-56219 Åë½ÅÆǸž÷½Å°í19-2544 ´ëÇ¥: ½Å´ë¼· ÀüÈ­:(02)2679-8556 Fax :(02)2679-8557 [°³ÀÎÁ¤º¸Ã³¸®¹æħ]
º»»ç : °æ±âµµ ºÎõ½Ã ¿ø¹Ì±¸ ¾à´ëµ¿ ºÎõ Å×Å©³ëÆÄÅ© 401µ¿ 502È£     ¼­¿ï»ç¹«¼Ò : ¼­¿ï½Ã ¿µµîÆ÷±¸ ¹®·¡µ¿ 4°¡ 8-1 4Ãþ
Copyright(C) 2004, (ÁÖ) ·Îº¸ºí·° ½Ã½ºÅÛÁî All Rights Reserved E-Mail : WebMaster