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

 CodeVisionAVR C ÄÄÆÄÀÏ·¯ ¿äÁ¡ Á¤¸®

 ¡ß CodeVisionAVR Ư¡

    - Atmel AVR¿ë ÅëÇÕ È¯°æ C ÄÄÆÄÀÏ·¯.

      ÅëÇÕ È¯°æ ³»¿¡ ¿©·¯ °¡Áö ISP ±â´É Æ÷ÇÔ.

      ÅëÇÕ È¯°æ ³»¿¡ ºñµ¿±â Åë½Å Å͹̳Π±â´É ³»Àå.

    - À©µµ¿ì 95, 98, NT4.0, 2000 ȯ°æ¿¡¼­ µ¿ÀÛ

    - »ý¼ºµÈ COFFÆÄÀÏÀº AVR Studio¸¦ »ç¿ëÇÏ¿© ¼Ò½º ·¹º§ µð¹ö±ë °¡´É.

    - Ç¥ÁØ ¶óÀ̺귯¸® ¿Ü¿¡ ¾Æ·¡ÀÇ ¿©·¯ °¡Áö ÁÖº¯ ¼ÒÀÚ ¶óÀ̺귯¸® Æ÷ÇÔ

       -- ¹®ÀÚÇü LCD ¸ðµâ

       -- Philips I2C ¹ö½º

       -- ¿Âµµ ¼¾¼­ ¼ÒÀÚ(LM75, DS1820)

       -- Real Time Clock ¼ÒÀÚ Áö¿ø(PCF8563,PCF8583, DS1302, DS1307)

       -- Dallas 1 Wire ÇÁ·ÎÅäÄÝ

       -- Thermometer/Thermostat (ds1621)

       -- SPI

       -- Delay ÇÔ¼ö

       -- Power management

    - ÀÚµ¿ ¼Ò½º »ý¼º ±â´É ³»Àå

¡ß º¯¼ö / ÇÔ¼ö / ·¹º§ÀÇ À̸§(Identifiers) ÁöÁ¤

    - ¾ËÆĺª ¹®ÀÚ(A..Z, a..z)¿Í ¼ýÀÚ(0¡¦9) ±×¸®°í underscore(_)¹®ÀÚ »ç¿ë °¡´É.

    - ½ÃÀÛÀº ¾ËÆĺª ¹®ÀÚ³ª underscore·Î »ç¿ë °¡´É.

    - ´ë¼Ò¹®ÀÚ ±¸ºÐ ÀÖÀ½.

    - ÃÖ´ë 32¹®ÀÚ±îÁö »ç¿ë °¡´É.

¡ß ÁÖ¼®(Comments) ó¸®

ÁÖ¼® ½ÃÀÛ           ¡°/*¡±

ÁÖ¼® ³¡              ¡°*/¡±

     ¿¹:        /* ÀÌ°ÍÀº ÁÖ¼® ÀÔ´Ï´Ù */

ÇÑ ÁÙ ÁÖ¼® ó¸®: ¡°//¡±

     ¿¹:        // À̰͵µ ÁÖ¼®ÀÔ´Ï´Ù.

¡ß Àüó¸®(Preprocessor)

 ¤ýÆÄÀÏ Æ÷ÇÔ Ã³¸®:

 #include <file name>       /* ÄÄÆÄÀÏ·¯ ¼³Ä¡ »ç¿ë µð·ºÅ͸®¿¡¼­ ÂüÁ¶ */

 #include ¡°file name¡±        /* ÇöÀç ÀÛ¾÷ µð·ºÅ͸®¿¡¼­ ÂüÁ¶ */

 

 ¤ýmacro define:

 #define ALFA 0xff            /* ALFA ½Éº¼À» 0xff·Î µ¿ÀÏ Ã³¸® */

                            /* ¼Ò½º ¹®¿¡¼­ ALFA¸¦ ¸ðµÎ 0xff·Î ÄÄÆÄÀÏ Ã³¸® ÇÔ */

 ¤ýÆĶó¹ÌÅ͸¦ °¡Áú ¼ö ÀÖÀ½:

 #define SUM(a,b) a+b

  int         i=SUM(2,3);               /* i=2+3;À¸·Î ġȯ ó¸® */

 

¤ý¸ÅÅ©·Î ÆĶó¹ÌÅÍ¿¡ #À» »ç¿ëÇÏ¸é ¹®ÀÚ¿­·Î ġȯ:

 #define PRINT_MESSAGE(t) printf(#t)

PRINT_MESSAGE(Hello);            /* printf(¡°Hello¡±)¿Í µ¿ÀÏ Ã³¸® */

 

¤ýµÎ°³ÀÇ ÆĶó¹ÌÅÍ°¡ ## ¿¬»êÀÚ·Î Çϳª·Î ÇÕÇØ Áü:

#define ALFA(a,b) a ## b

 char      ALFA(x,y)=1;       /* char xy=1; °ú µ¿ÀÏ  Ã³¸® */

 

¤ý¿ª ½½·¡½Ã(\)¸¦ »ç¿ëÇÏ¿© ´ÙÀ½ ÁÙ±îÁö ¿¬Àå:

 #define MESSAGE ¡°This is a very \

 long text¡¦¡±

 

¤ýdefine Ãë¼Ò: #undef »ç¿ë

 #undef  ALFA

 

¤ýÁ¶°ÇºÎ ÄÄÆÄÀÏ Ã³¸® : #ifdef, #ifndef, #else, #endif

 #ifdef macro_name

             [¹® 1 ±×·ì]

#else                                            /* option */

             [¹® 2 ±×·ì]

#endif

¼³¸í: ¸¸ÀÏ macro_nameÀÌ define µÇ¾î ÀÖÀ¸¸é [¹® 1 ±×·ì]À» ÄÄÆÄÀÏ ÇÏ°í, ±×·¸Áö ¾ÊÀ¸¸é

[¹® 2±×·ì]À» ÄÄÆÄÀÏ ÇÑ´Ù. ¶Ç ´Ù¸¥ Á¶°ÇºÎ ÄÄÆÄÀÏ Ã³¸®: #if, #elif, #else, #endif

#if expression1

             [¹® 1 ±×·ì]

#elif expression2

             [¹® 2 ±×·ì]

#else

             [¹® 3 ±×·ì]

#endif

¼³¸í: ¸¸ÀÏ expression1ÀÌ trueÀ̸é [¹® 1 ±×·ì]À» ÄÄÆÄÀÏ ÇÏ°í, ±×·¸Áö ¾Ê°í ¸¸ÀÏ expression2°¡ trueÀ̸é [¹® 2 ±×·ì]À» ÄÄÆÄÀÏ ÇÏ°í, ±× ¿Ü¿¡´Â [¹® 3 ±×·ì]À» ÄÄÆÄÀÏ ÇÑ´Ù.

 

¤ý#error ¹®: ÄÄÆÄÀÏÀ» ÁßÁöÇÏ°í ¿¡·¯ ¸Þ½ÃÁö¸¦ Ç¥½Ã.

¿¹:

#error This is an error!

 

#pragma ¹®: ÄÄÆÄÀÏ·¯ Ư¼ö Áö½Ã ¹®

#pragma warn-                             /* warning µð½º¾îºí */

#pragma warn+                             /* warning Àο¡À̺í */

#pragma opt-                               /* ÃÖÀûÈ­ ¾È ÇÔ */

#pragma opt+                               /* ÃÖÀûÈ­ ÇÔ */

#pragma savereg-                       /* ·¹Áö½ºÅÍ ÀúÀå ¾È ÇÔ */

#pragma savereg+                       /* ·¹Áö½ºÅÍ ÀúÀå ÇÔ */

#pragma library mylib.lib  /* ¸µÅ© ¶óÀ̺귯¸® ÁöÁ¤ */

¡ß »ó¼ö(Constants)

 2Áø¼ö : 0b·Î ½ÃÀÛ(¿¹ 0b101001)

 16Áø¼ö : 0x·Î ½ÃÀÛ (¿¹. 0xff)

 8Áø¼ö : 0À¸·Î ½ÃÀÛ (¿¹. 0777)

 Unsigned integer »ó¼ö´Â µÚ¿¡ U»ç¿ë: (¿¹, 10000U)

 Long integer »ó¼ö´Â µÚ¿¡ L»ç¿ë: (¿¹, 99L)

 Unsigned Long integer »ó¼ö´Â µÚ¿¡ UL»ç¿ë: (¿¹, 99UL)

 Floating point »ó¼ö´Â µÚ¿¡ F»ç¿ë: (¿¹, 1.234F)

 ¹®ÀÚ »ó¼ö´Â 1Áß µû¿ÈÇ¥·Î ó¸®: (¿¹, ¡®a¡¯)

 ¹®ÀÚ¿­ »ó¼ö´Â 2Áß µû¿ÈÇ¥·Î ó¸®:  (¿¹, ¡°Hello world¡±)

 (ÇÔ¼öÀÇ ÆĶó¹ÌÅÍ ¾È¿¡ 2Áß µû¿ÈÇ¥ ¹®ÀÚ¿­ÀÌ ÀÖÀ¸¸é FLASH ¸Þ¸ð¸®¿¡ ³õÀÓ.)

 Çà·ÄÀº ÃÖ´ë 8Â÷±îÁö °¡´É

¡ß º¯¼ö(Variables)

Àü¿ª(global) º¯¼ö¿Í Áö¿ª(local) º¯¼ö°¡ ÀÖÀ½.

Àü¿ª(global) º¯¼ö : ÇÔ¼ö ¿Ü°¢¿¡ ¼±¾ð, ÇÁ·Î±×·¥ ³»ÀÇ ¸ðµç ÇÔ¼ö¿¡¼­ »ç¿ë °¡´É.

Áö¿ª(local) º¯¼ö : ÇÔ¼ö ³»ºÎ¿¡ ¼±¾ð, ÇØ´ç ÇÔ¼ö ³»¿¡¼­¸¸ »ç¿ë °¡´É.

ÃʱâÈ­ÇÏÁö ¾ÊÀº Àü¿ª º¯¼ö´Â ÇÁ·Î±×·¥ Ãʱ⿡ 0À¸·Î ÃʱâÈ­ µÊ.

  ¿¹:

    /* Àü¿ª º¯¼ö ¼±¾ð */

      char a;

      int b;

      long c = 0x12345678;        /* ÃʱâÈ­ */

      void main(void){

    /* Áö¿ª º¯¼ö */

      char d;

      int e;

      long f=22222222; /* ÃʱâÈ­ */

    ¡¦

     }

¡ß Çà·Ä º¯¼ö: 8 Â÷±îÁö °¡´É, 0ºÎÅÍ ½ÃÀÛ, ÃʱâÈ­ÇÏÁö ¾ÊÀº Àü¿ª Çà·Ä º¯¼ö °ªÀº 0À¸·Î                   ÃʱâÈ­.

  /* Àü¿ª Çà·Ä º¯¼ö */

  int global_array1[32];       /* ¸ðµç °ªÀÌ 0À¸·Î ÃʱâÈ­ */

  int global_array2[]={1,2,3};

  int global_array3[4]={1,2,3,4};

  char global_array4[]=¡±This is a string¡±;

  int multidim_array[2,3]={{1,2,3},{4,5,6}};

  void main(void){

  

  /* Áö¿ª Çà·Ä º¯¼ö */

  int local_array[3]={11,22,33};

  ¡¦

   }

¡ß static º¯¼ö: Áö¿ª º¯¼ö¶óµµ static ¼±¾ðÀ» ÇÏ¸é °ªÀ» º¸Á¸ÇÒ ¼ö ÀÖ´Ù.

  ¿¹:

     int alfa(void){

     static int n=1;      /* static º¯¼ö ¼±¾ð */

     return n++;

     }

     void main(void){

     int i;

     i = alfa();             /* return °ª = 1 */

     i = alfa();             /* return °ª = 2 */

      ¡¦

     }

¡ß extern ¼±¾ð : ´Ù¸¥ ÆÄÀÏ¿¡ ¼±¾ðµÈ º¯¼ö´Â extern ¼±¾ðÀ» ÇؾßÇÑ´Ù.

    extern int xyz;

  Àü¿ª º¯¼ö´Â SRAMÀÇ Global Variables ¿µ¿ª¿¡ ÀúÀåµÇ°í, Áö¿ª º¯¼ö´Â SRAMÀÇ Data Stack ¿µ¿ª¿¡ dynamicÇÏ°Ô ÇÒ´çµÈ´Ù.

¡ß ¿ÜºÎ SRAMÀÇ Æ¯Á¤ ¹øÁö¿¡ Àü¿ª º¯¼ö¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ý

   ¿¬»êÀÚ »ç¿ëÇÏ¿© Àü¿ª º¯¼ö¸¦ ƯÁ¤ SRAM À§Ä¡¿¡ ¹èÄ¡ÇÒ ¼ö ÀÖ´Ù.

   int  a  @0x80                   /* Á¤¼ö º¯¼ö a´Â ¿ÜºÎ SRAM 0x80¿¡ ÇÒ´ç */

   struct x {

         int a;

         char c;

            } alfa @0x90        /* 0x90 ¹øÁö¿¡ ±¸Á¶Ã¼ alfa ÇÒ´ç */

¡ß ºñÆ®(bit) º¯¼ö

 ºñÆ® º¯¼ö´Â ·¹Áö½ºÅÍ R2¿¡¼­ R15±îÁö »ç¿ë °¡´É: ÃÖ´ë 112 ºñÆ®.

   ¿¹:

      bit alfa=1;            /* bit0 of R2 */

      bit beta;              /* bit1 of R2 */

      void main(void){

      if(alfa) beta != beta;

      ¡¦

      }

ºñÆ® º¯¼ö Å©±â ÁöÁ¤Àº Project|Configure|C Compiler|Compilation|Bit Variable Size¿¡¼­ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. °¡´ÉÇÑ ÀÛ°Ô ÁöÁ¤ÇÏ´Â °ÍÀÌ ÁÁÀ½ (Àü¿ª º¯¼ö¿¡¼­ ¸¹ÀÌ »ç¿ë °¡´É)

¡ß I/O ·¹Áö½ºÅÍÀÇ ºñÆ® ´ÜÀ§ ¾×¼¼½º

  I/O ·¹Áö½ºÅ͸¦ ºñÆ® ´ÜÀ§·Î ¾×¼¼½º ÇÒ ¼ö ÀÖ´Ù.

   ¿¹:

     DDRA.0 = 1;         /* Port AÀÇ ºñÆ® 0À» Ãâ·Â Æ÷Æ®·Î ÇÔ */

     DDRA.1 = 0;         /* Port AÀÇ ºñÆ® 1À» ÀÔ·Â Æ÷Æ®·Î ÇÔ */

     PORTA.0 = 1;      /* Port AÀÇ ºñÆ® 0¿¡ 1 Ãâ·Â */

     If(PINA.1){           /* Port AÀÇ ºñÆ® 1¸¦ ÆǺ°ÇÏ¿© ó¸® */

   /* ÄÚµå Ãß°¡ */

     }

   ÇÁ·Î±×·¥ÀÇ Æǵ¶À» ÁÁ°Ô ÇÏ·Á¸é #defineÀ» »ç¿ëÇÏ¿© ÀÇ¹Ì ºÎ¿© »ç¿ë.

  #define alarm_input PINA.2

   void main(void){

   if(alarm_input)

   ¡¦

    }

¡ß EEPROM ¾×¼¼½º

 AVR ³»ºÎÀÇ EEPROM »ç¿ëÀº Àü¿ª º¯¼ö ¾Õ¿¡ eeprom Å°¿öµå¸¦ »ç¿ëÇÏ¿© °¡´ÉÇÏ´Ù.

   ¿¹:

   eeprom int alfa=1;          /* Chip ÇÁ·Î±×·¥ ½Ã¿¡ EEPEOM¿¡ 1°ª ÀúÀå */

   eeprom char beta;

   eeprom long array1[5];

   eeprom char string[]=¡±Hello¡±;   /* Chip ÇÁ·Î±×·¥ ½Ã¿¡ EEPEOM¿¡ ¹®ÀÚ¿­ ÀúÀå */

 

 void main(void){

   int i;

   int eeprom *ptr_to_eeprom;          / EEPROM Æ÷ÀÎÅÍ */

    ¡¦

   alfa = 0x55;                       /* EEPROM¿¡ 0x55 °ª Á÷Á¢ ¾²±â */

   ptr_to_eeprom=&alfa;

   ptr_to_eeprom=0x55;       / Æ÷ÀÎÅÍ »ç¿ëÇÏ¿© °£Á¢ÀûÀ¸·Î ¾²±â */

   i=alfa;                               /* EEPROM¿¡¼­ Á÷Á¢ÀûÀ¸·Î °ª Àбâ */

   i=*ptr_to_eeprom;            /* EEPROM¿¡¼­ °£Á¢ÀûÀ¸·Î °ª Àбâ */

  }

   EEPROMÀÇ Æ÷ÀÎÅÍ´Â Ç×»ó 16ºñÆ®¸¦ »ç¿ëÇÔ.

¡ß ÀÎÅÍ·´Æ® »ç¿ë Çϱâ

 ¤ýinterrupt Å°¿öµå¸¦ »ç¿ë.

    ¿¹: ¿©±â¼­ º¤ÅÍ ¹øÈ£´Â AT90S8515¿¡ ´ëÇÑ °Í ÀÓ.

      interrupt [2] void external int0(void){           /* ¿ÜºÎ ÀÎÅÍ·´Æ® */

   /* ¿©±â¿¡ ó¸® Äڵ带 ³Ö´Â´Ù */

      }

      interrupt [8] void timer0 overflow(void){    /* ŸÀ̸Ó0 Overflow ÀÎÅÍ·´Æ® */

   /* ¿©±â¿¡ ó¸® Äڵ带 ³Ö´Â´Ù */

      }

 ÀÎÅÍ·´Æ® º¤ÅÍ ¹øÈ£´Â 1ºÎÅÍ ½ÃÀÛ.

 ÀÎÅÍ·´Æ® ó¸® ½ÃÀÛ ºÎºÐ¿¡¼­ ÀÚµ¿ÀûÀ¸·Î ·¹Áö½ºÅ͸¦ ½ºÅÿ¡ ÀúÀåÇÏ°í ÀÎÅÍ·´Æ® Á¾·á ½Ã ´Ù½Ã ½ºÅÿ¡¼­ ·¹Áö½ºÅͷΠȸº¹ÇØ ³õ´Â´Ù. ÀÚµ¿ÀûÀ¸·Î ÀúÀåÇÏ´Â ·¹Áö½ºÅÍ´Â R0, R1, R22 ~ R31, SREGÀÌ´Ù. ¸¸ÀÏ ·¹Áö½ºÅ͸¦ ´ëÇÇÇÏ´Â ÀÎÅÍ·´Æ® ó¸® ½Ã°£À» Á¶±ÝÀÌ¶óµµ ´ÜÃàÇÏ°íÀÚ ÇÏ´Â °æ¿ì #pragma savereg Áö½ÃÀÚ¸¦  »ç¿ëÇÑ´Ù.

 ¿¹:

   #pragma savereg-           /* ·¹Áö½ºÅÍ ÀúÀå ±â´É OFF */

    interrupt [1] void my_irq(void){

  /* »ç¿ëÇÏ´Â ·¹Áö½ºÅÍ ¸¸ ÀúÀå ¿¹: R30, R31, SREG ¸¸ »ç¿ëÇÏ´Â °æ¿ì */

  #asm

          push r30

          push r31

          in r30, SREG

          push      r30

#endasm

   /* ¿©±â¿¡ C Äڵ带 ³õÀ½ */

   /* ·¹Áö½ºÅÍ SREG, R31, R30 ȸº¹ */

 #asm

          pop       r30

          out         SREG,r30

          pop       r31

          pop       r30

 #endasm

  }

 #pragma savereg+           /* ·¹Áö½ºÅÍ ÀúÀå ±â´É ON */

¡ß ¾î¼Àºí¸® ¾ð¾î ÷°¡

 #asm °ú #endasm »ç¿ë

  ¿¹:

       void delay(unsigned char i){

    while(i--){

       #asm

              nop

              nop

       #endasm

          }

       }

 ´ÙÀ½°ú °°ÀÌ ÇÑ ÁٷΠǥÇö ÇÒ ¼öµµ ÀÖ´Ù.

   #asm(¡°sei¡±)        /* ÀÎÅÍ·´Æ® Àο¡À̺í */

 ¾î¼Àºí¸® ·çƾ¿¡¼­ R0, R1, R22 ~ R31Àº ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´Ü ÀÎÅÍ·´Æ® ·çƾ ¾È¿¡¼­ »ç¿ë ½Ã¿¡´Â ½ºÅÿ¡ ÀúÀå ¹× È¸º¹À» ÇØ¾ß ÇÑ´Ù.

¡ß µô·¹ÀÌ(delay) ÇÔ¼ö »ç¿ë

 CodeVisionAVR¿¡¼­´Â ÀÏÁ¤ ½Ã°£ µ¿¾È Áö¿¬ÇÏ´Â 2°³ÀÇ µô·¹ÀÌ ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù.

   void       delay_us(unsigned int n);          /* micro(u) sec ´ÜÀ§ Áö¿¬ ÇÔ¼ö */

   void       delay_ms(unsigned int n);         /* milli(m) sec ´ÜÀ§ Áö¿¬ ÇÔ¼ö */

¿¹:

   delay_us(100);    /* 100 usec Áö¿¬ */

   delay_ms(123);   /* 123 msec Áö¿¬ */

 µô·¹ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ Àü¿¡ delay.h Çì´õ ÆÄÀÏÀ» Æ÷ÇÔÇØ¾ß µÇ°í, Á¤È®ÇÑ ½Ã°£À» À§Çؼ­´Â Project|Configure|C Compiler ¸Þ´ºÀÇ AVR chip Ŭ·° ÁÖÆļö°¡ Á¤È®È÷ ¼³Á¤µÇ¾î¾ß ÇÑ´Ù.

 Áö¿¬ µ¿¾È ÀÎÅÍ·´Æ®°¡ ó¸®µÉ ¼ö ÀÖ°í ÀÎÅÍ·´Æ®°¡ 󸮵Ǹé Áö¿¬ ½Ã°£ÀÌ ´Ã¾î ³¯ ¼ö ÀÖ´Ù.Á»´õ Á¤È®ÇÑ ½Ã°£À» ¿øÇϸé Áö¿¬ ½Ã°£µ¿¾È ÀÎÅÍ·´Æ®¸¦ ±ÝÁöÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

     ¿¹:

         ¡¦

        #asm (¡°cli¡±)        /* ÀÎÅÍ·´Æ® µð½º¾îºí */

          delay_us(100);    /* 100 usec Áö¿¬ */

        #asm(¡°sei¡±)        /* ÀÎÅÍ·´Æ® Àο¡À̺í */

         ¡¦

¡ß Ç¥ÁØ ÇÔ¼ö ¹× ÀÀ¿ë ÇÔ¼ö »ç¿ë

 CodeVionAVR C ÄÄÆÄÀÏ·¯¿¡¼­´Â °ÅÀÇ ¸ðµç ANSI Ç¥ÁØ ÇÔ¼ö¸¦ Á¦°øÇÏ°í ÀÖÀ¸¸ç, ±âŸ LCD, ¿Âµµ ¼¾¼­, ½Ã°è ¼ÒÀÚ µî ¿©·¯ °¡Áö ¶óÀ̺귯¸® ÇÔ¼ö¸¦ Á¦°øÇÏ°í Àִµ¥ ÀÌ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¡°CodeVisionAVR User Manual¡±À» ÂüÁ¶ ¹Ù¶÷.

»óÈ£ : (ÁÖ) ·Îº¸ºí·° »ç¾÷ÀÚµî·Ï¹øÈ£: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