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

 3. ÀÎÅÍ·´Æ® ¼­ºñ½º ·çƾ »ç¿ë¹ý


 

 ¡á ÀÎÅÍ·´Æ® ¼­ºñ½º ·çƾ »ç¿ë¹ý

 

  ¾Æ! ÀÎÅÍ·´Æ®¶ó~~ °ú¿¬ ÀÎÅÍ·´Æ®°¡ ¹»±î¿ä? ÀÎÅÍ·´Æ®(interrupt)ÀÇ »çÀüÀûÀÎ Àǹ̴ ¹æÇØÇÏ´Ù, °¡·Î¸·´Ù ¹¹ ÀÌ·± °Å°ÚÁÒ. Á¦ °æÇè»ó ¾î¶² °øÇÐÀûÀÌµç ¹°¸®ÀûÀÌµç ¿ë¾î°¡ ³ª¿À¸é Àǹ̺ÎÅÍ °õ°õÀÌ µûÁö°í ³Ñ¾î°¡¾ß ÇÑ´Ù°í »ý°¢ÇÕ´Ï´Ù.

±×·³ ÀÎÅÍ·´Æ®¸¦ ¿¹¸¦ µé¾î ¼³¸íÇÏ¸é ¿ì¸®°¡ °øºÎ¸¦ ÇÏ°í Àִµ¥ ÀüÈ­°¡ ¿À¸é ÀüÈ­¸¦ ¹Þ°í °øºÎ¸¦ ´Ù½Ã ÇÏÁÒ. ¹Ù·Î ÀÌ°Í°ú °°ÀÌ ¼³¸íµå¸± ¼ö Àְڳ׿ä. ¿©±â¼­ ÀÎÅÍ·´Æ®´Â ÀüÈ­°¡ ¿À´Â °Å·Î ºñ±³ÇÒ ¼ö ÀÖ½À´Ï´Ù. PIC¿¡¼­ ÀÎÅÍ·´Æ® Àǹ̸¦ ¿¹¸¦ µé¾î ¼³¸íÇϸé A/Dº¯È¯À» Çϸ鼭 Æ÷Æ®BÀÇ 0¹ø, 1¹ø(RB0, RB1)¿¡ °ªÀ» Àд ÇÁ·Î±×·¥ÀÌ ÀÖ°í, A/D º¯È¯ÀÌ ¿Ï·áµÇ¸é ÀÎÅÍ·´Æ®°¡ °É¸®°Ô ÇÁ·Î±×·¥ Çß´Ù°í ÇսôÙ. ±×·³, º¸Åë »ç¶÷Àº ¹«ÇÑ ·çÇÁ¸¦ µ¹¸®¸é¼­ A/D º¯È¯ ¿Ï·á ÀÎÅÍ·´Æ®¸¦ ¼ÂÆÃÇØ ³õ°í ÀÖ°ÚÁÒ. ÀÌ·¸°Ô Çϸé PIC´Â Ç×»ó RB0, RB1 Æ÷Æ®¸¦ °Ë»çÇÏ°ÚÁÒ. ¹Ù·Î ÀÌ ÇൿÀÌ ¿ì¸®°¡ °øºÎÇÏ´Â °Í°ú °°´Ù°í º¸°í, A/D º¯È¯ ¿Ï·á°¡ ÀüÈ­°¡ ¿À´Â °Í°ú °°´Ù°í º¼ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ´ÙÀ½°ú °°ÀÌ Á¤¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

 

        Á¤»ó ¼öÇà½Ã

        ÀÎÅÍ·´Æ® ¹ß»ý½Ã

        ÀÎÅÍ·´Æ® Á¾·ù ÈÄ

        °øºÎÇÑ´Ù.

        ÀüÈ­°¡ ¿Â´Ù.

        °øºÎÇÑ´Ù.

        RB0, RB1 Æ÷Æ®¸¦ °Ë»çÇÑ´Ù.

        A/D º¯È¯ ¼­ºñ½º ·çƾÀ¸·Î °£´Ù.

        RB0, RB1 Æ÷Æ®¸¦ °Ë»çÇÑ´Ù.


¿ì¸®°¡ ÇÁ·Î±×·¥À» ÄÚµùÇÒ ¶§ ¹æ¹ýÀº ¿©·¯ °¡Áö°¡ ÀÖÁö¸¸ ±× Áß¿¡µµ ÀÎÅÍ·´Æ® ¹æ½Ä°ú Æú¸µ¹æ½ÄÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î À§¿¡¼­ µéÀº ¿¹¿Í °°ÀÌ ÇÁ·Î±×·¥À» Çß´Ù°í ÇսôÙ. ÀÎÅÍ·´Æ® ¹æ½ÄÀº ·¹Áö½ºÅ͸¦ °è¼Ó °Ë»çÇÏÁö ¾Ê°í RB0, RB1À» °Ë»çÇÏ´Ù°¡ ÀÎÅÍ·´Æ®°¡ °É¸®¸é ±× ÀÏÀ» ó¸®ÇÏ´Â °ÍÀ» ¸»ÇÏ°í Æú¸µ¹æ½ÄÀº RB0, RB1À» °Ë»çµµ ÇÏ°í, A/D º¯È¯ÀÌ ¿Ï·áµÇ¾ú´ÂÁö ·¹Áö½ºÅ͸¦ °è¼Ó °Ë»çÇÏ´Â ¹æ½ÄÀÇ ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ´ç¿¬È÷ ±× °á°ú¸¦ º¸¸é ÀÎÅÍ·´Æ® ¹æ½ÄÀÌ ¾à°£ È¿°úÀûÀÎ ¹æ½ÄÀ̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ´õ ±íÀÌ µé¾î°¡¸é OS( Operating System )ÀÇ °³³äÀÌ ³ª¿À±â ¶§¹®¿¡ ¿©±â¼­ ¸ØÃß±â·Î ÇÏ°í¿ä, ½Ã°£ÀÌ ³ª¸é Àúµµ OS¿¡ ´ëÇØ ´õ °øºÎÇؼ­ °­ÀÇÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

±×·³, PIC´Â ¾î¶² ÀÎÅÍ·´Æ®¸¦ °¡Áö°í ÀÖÀ¸¸ç ¾î¶² ¹æ¹ýÀ¸·Î ÀÎÅÍ·´Æ® ¼­ºñ½º ·çƾÀ» ¼öÇàÇÏ´ÂÁö ¾Ë¾Æº¾½Ã´Ù.

 

1. PIC16C74B°¡ °¡Áö°í ÀÖ´Â ÀÎÅÍ·´Æ®ÀÇ Á¾·ù

    PICÀÇ ÀÎÅÍ·´Æ®´Â 19°³ÀÇ ÀÎÅÍ·´Æ®°¡ ÀÖ½À´Ï´Ù. »ç½ÇÀº ÀÌ·¸°Ô ¸¹ÀºÁö Àúµµ À̹ø¿¡ ¾Ë¾Ò½À´Ï´Ù.

    1) À§Ä¡

      main()ÇÔ¼ö ¹Ù·Î À§

    2) FORMAT

       

      #int_xxx

      TYPE function_name(parameter) {

        ...........

        ...........

      }

       

      void main(voic)

      {

        ...........

        ...........

      }

         

- main()ÇÔ¼ö À§¿¡ ±â¼úÇÏ¸é µË´Ï´Ù.

- ¿©±â¼­ xxx´Â 19Á¾·ùÀÇ ÀÎÅÍ·´Æ®¸¦ ¸»Çϸç CCS-C »çÀÇ ÄÄÆÄÀÏ·¯´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÏ¿´½À´Ï´Ù.

 

2) ÀÎÅÍ·´Æ® Á¾·ù¿Í FORMAT

      ¹øÈ£

      format

      ¼³¸í

      1

      #int_ext

      external interrupt

      2

      #int_rtcc

      timer0(RTCC) overflow ¹ß»ý½Ã

      3

      #int_rb

      rb4¡­rb7ÀÌ º¯ÇÏ¿´À» ¶§ ¹ß»ý

      4

      #int_ad

      A/D º¯È¯ÀÌ ¿Ï·á½Ã

      5

      #int_eeprom

      eeprom write ¿Ï·á½Ã( eeprom °è¿­ Áï, 16f84 .... µî )

      6

      #int_timer1

      timer1 overflow ¹ß»ý½Ã

      7

      #int_timer2

      timer2 overflow ¹ß»ý½Ã

      8

      #int_ccp1

      ccp1 capture

      9

      #int_ccp2

      ccp2 capture

      10

      #int_ssp

      SPI, I2C ¿Ï·á½Ã

      11

      #int_psp

      Paraller port

      12

      #int_tbe

      SCI serial data Àü¼Û ¿Ï·á½Ã( RS232C )

      13

      #int_rda

      SCI serial data ¼ö½Å ¿Ï·á½Ã( RS232C )

      14

      #int_comp

      comparator interrupt

      15

      #int_adof

      14000 A/D overflowe ¹ß»ý½Ã

      16

      #int_rc

      14000 Channel ON Cx pin

      17

      #int_i2c

      14000 i2c

      18

      #int_button

      14000 push button

      19

      #int_lcd

      pic16c9x °è¿­ÀÇ LCD


Á¤¸®ÇÏ´Ùº¸´Ï Àúµµ ¸ð¸£´Â ÀÎÅÍ·´Æ®µéÀÌ ³ª¿É´Ï´Ù. ½Ç·ÂÀÇ ¹ÌºñÇÔÀÇ »õ»ï ´À³§´Ï´Ù. À§ÀÇ 15¹øÀÇ 14000À̶ó´Â °ÍÀº PIC14000À¸·Î PIC °è¿­ÁßÀÇ ÇϳªÀÔ´Ï´Ù. microchip ȨÆäÁö¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.

¿¹Á¦¸¦ º¼±î¿ä! ÀÇ¿Ü·Î °£´ÜÇÕ´Ï´Ù. À§¿¡¼­ ¼³¸í µå¸° ¿¹Á¦·Î A/D º¯È¯À» Çϸ鼭 Æ÷Æ® B( RB0, RB1 )¸¦ °Ë»öÇϸ鼭 A/D º¯È¯ÀÌ ¿Ï·áµÇ¸é A/D º¯È¯µÈ °á°ú °ªÀ» Æ÷Æ® B¿¡ Ãâ·ÂÇÏ´Â °ÍÀ» ¿¹Á¦·Î º¾½Ã´Ù. ¼Ò½º´Â ȨÆäÁö¿¡ ¿Ã·Á³õ°Ú½À´Ï´Ù. º¸¹°Ã£±âÇÒ±î¿ä?

 

¡Ø ÈùÆ®

PIC °­Á¶õ¿¡ A/D º¯È¯ ¼Ò½º°¡ ±× ´äÀÓ. ±×¸®°í ´äÀº ¾Æ·¡¿¡ ÀÖ½À´Ù. Ç×»ó ÀúÀÇ ÄûÁî´Â ½±½À´Ù ~~ ^^

 

#include "H_16c74b.h"
#use delay(clock=4000000)       

#int_ad
void ad_int_svr(void)
{
        // A/Dº¯È¯µÈ °ªÀ» PORTB¿¡ ½á¼­ A/D º¯È¯µÈ °ªÀ» üũÇÑ´Ù.  
        PORTB = read_adc();
}


void main()
{
        // ÀÌ ÇÔ¼ö´Â ÄÄÆÄÀÏ·¯¿¡¼­ Á¦°øÇÏ´Â ÇÔ¼öÀÌ´Ù.
        // ¸ðµç ¾Æ³¯·Î±× ÇÉÀ» A/D º¯È¯ Æ÷Æ®·Î »ç¿ë
        setup_adc_ports( all_analog );

        // clockÀ» 2ºÐÁÖÇÏ¿© A/D º¯È¯À» ÇÑ´Ù.
        setup_adc(adc_clock_div_2);

        // adc°¡ ¿Â·á ÇßÀ» ¶§ ÀÎÅÍ·´Æ®°¡ °É¸®°Ô ¼ÂÆÃÇÑ´Ù.
        enable_interrupts(adc_done);
        // ÀÌ ºÎºÐÀÌ ¾øÀ¸¸é ÀÎÅÍ·´Æ®°¡ °É¸®Áö ¾Ê´Â´Ù.
        enable_interrupts(global);

        while(1) {
                // ra0Æ÷Æ®¿¡ ¾Æ³¯·Î±×ÇÉÀ» ¿¬°áÇÑ´Ù. ( 0~5[V] level )
                set_adc_channel(1);
        }
}

 

 

 




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