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)
À§Ä¡
2)
FORMAT
-
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);
} }
|
|