º»¹®/³»¿ë
¸¶ÀÌÅ©·Î ÄÄÇ»ÅÍ ½Ç½À
1.A/DÄÁ¹öÅÍÀÇ Á¾·ù
1) °è¼ö ºñ±³Çü ADC
³»ºÎ¿¡¼ D/A ÄÁ¹öÅÍ·Î ¹ß»ý½ÃŲ Àü¾ÐÀÌ ¾Æ³¯·Î±× ÀԷº¸´Ù Ä¿Áú ¶§±îÁö ºñ±³ÇÏ´Â ¹æ½Ä, D/A ÄÁ¹öÅÍÀÇ Ãâ·ÂÀ» ¸¸µé±âÀ§ÇÑ °è¼ö±â¸¦ »ç¿ë, ÀÌ °è¼ö±â´Â º¯È¯À» ½ÃÀÛÇÒ ¶§ ¸®¼ÂµÇ°í °¢ Ŭ·° »çÀÌŬ¸¶´Ù 1¾¿ Áõ°¡ÇÏ´Â ±¸Á¶¸¦ °®´Â´Ù. ºñ±³±â´Â D/A ÄÁ¹öÅÍÀÇ Ãâ·ÂÀÌ ¾Æ³¯·Î±× ÀÔ·Â Àü¾ÐÀ» ÃʰúÇÏ´Â ¼ø°£ °è¼ö±âÀÇ µ¿ÀÛÀ» Á¤Áö½Ã۸ç, ÀÌ ¸¶Áö¸·ÀÇ °è¼ö°ªÀÌ µðÁöÅзΠº¯È¯µÈ Ãâ·Â°ªÀÌ µÈ´Ù. ȸ·Î°¡ ºñ±³Àû ´Ü¼øÇÏÁö¸¸ º¯È¯½Ã°£ÀÌ ±æ°í ÀÔ·Â ½ÅÈ£ÀÇ Å©±â¿¡ µû¶ó ´Þ¶óÁö´Â ´ÜÁ¡À» °¡Áø´Ù.
Áï, n bit º¯È¯±âÀÇ °æ¿ì ÀÔ·Â ½ÅÈ£°¡ full scaleÀÌ¸é º¯È¯½Ã°£ÀÌ °¡Àå ±æ¾îÁ®¼ Ŭ·° ÁֱⰡ ÇÊ¿äÇϰÔ
µÈ´Ù. ÀÌ·¯ÇÑ ´Ü¼ø °è¼öÇü ADC¸¦ ´Ù¼Ò °³¼±ÇÑ ÇüÅ·ΠÃßÀûºñ±³Çü(tracking ADC)ÀÌ ÀÖ´Ù.
´Ü¼ø °è¼öÇü¿¡¼´Â A/D º¯È¯À» ¹Ýº¹ÇÒ ¶§¸¶´Ù °è¼ö±â¸¦ ¸®¼Â½Ã۰í óÀ½ºÎÅÍ ´Ù½Ã °è¼öÇÔÀ¸·Î½á
º¯È¯½Ã°£ÀÌ ´ÊÀºµ¥ ºñÇÏ¿©, ÃßÀûºñ±³Çü¿¡¼´Â ù ¹øÂ° º¯È¯Àº ¸¶Âù°¡Áö·Î ¼öÇàµÇ³ª up/down °è¼ö±â¸¦
»ç¿ëÇÏ¿© ±× ´ÙÀ½ºÎÅÍ´Â ÀÔ·Â ¾Æ³¯·Î±× ½ÅÈ£¸¦ DACÀÇ Ãâ·Â°ª°ú ºñ±³ÇÏ¡¦(»ý·«)
2) ÃàÂ÷ ºñ±³Çü(ÃàÂ÷ ±Ù»çÇü)ADC
3) ÀÌÁß ÀûºÐÇü ADC(Dual-slope integrating ADC)
4)º´·Ä ºñ±³Çü ADC (Ç÷¡½ÃÇü(flash ADC))
2.AD CON0 & AD COM1 register¼³¸í
3.conversion timeÀº ¹«¾ùÀΰ¡?
4.ATD.c °¡º¯ÀúÇ×À¸·Î LED ¼ÓµµÁ¶Àý
5. SpeednDirect.c
#include
void Delay_routine(unsigned int Delay) //ÇÔ¼ö¸¦ Áִ°÷. unsigned´Â À½¼ö°ªÀ» °¡ÁöÁö ¾Ê´Â´Ù. ÃÖ¼Ò°ªÀº0 ÃÖ´ë°ªÀº 65535ÀÌ´Ù.
{
while(Delay--); //µðÅ©¸®¸ÕÆ®(--)0À̵ɶ§ ±îÁö °è¼Ó »«´Ù.
}
void main(void)
{
OSCCON = 0bxxx00000; //1Ãʵ¿¾È 400¸¸¹ø 󸮸¦ ÇÔ
ANSEL = 0b00000001; //¾Æ³¯·Î±× »ö·ºÅÍ 8°³Áß ¸Ç³¡AN0´Â ¾Æ³¯·Î±×·Î ¾²°í ³ª¸ÓÁö´Â µðÁöÅзλç¿ëÇÑ´Ù
ADCON0 = 0b00000001; //·¹ÇÁÆ® Àú½ºÆ® ÆÄÀÏ
ADCON1 = 0b00000000; //Áß°£¿¡ 3ºñÆ® 2Mhz
TRISA = 0b00000001; //AÆ÷Æ®ÀÇ 0¹ø ºñÆ® ÀÔ±¸ Æ÷Æ®·Î »ç¿ë
TRISD = 0b00000000; //Ãâ·Â Æ÷Æ®·Î »ç¿ë
while(1) { // ¹«ÇÑ ·çÀZ
Delay_routine(10); //»ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ ÇÔ¼ö(¸í·É¾îó·³ »ç¿ë),µô·¹À̰ªÀ»10À»°¡Áö °íµé¾î°£´Ù.
GODONE = 1; //½ºÅ¸¸£¸¦ ½ÃŲ´Ù.
while (GODONE); //10ºñÆ®º¯È¯À» ÇÏ°í³ª¸é 0À¸·Î ¸¸µç´Ù.(¿©±â¼ ºüÁ®³ª °¡´Â °ÍÀº º¯È¯ÀÌ ³¡³µ´Ù¶ó ´Â°É ÀǹÌ)
PORTD = ADRESH; //Æ÷Æ®D´Â 8ºñÆ®Áö¸¸ ½ÇÁ¦·Î´Â 10ºñÆ®À§ÂÊ¿¡ ÀÖ´Â 8 ºñÆ®¸¸ »ç¿ë
}
}
5. SpeednDirect.c
SW¸¦ »ç¿ëÇÏ¿© ÁÂ¿ì ¹æÇâÀ» ¼±ÅÃÇÏ°í °¡º¯ÀúÇ×À¸·Î ¼Óµµ¸¦ Á¶Àý
#include //Çì´õÆÄÀÏ
bit SW_ON, flag; // SW¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤
unsigned int Value; //16ºñÆ®
unsigned char Counter;
void Delay_rountine(unsigned int Delay) //ÇÔ¼ö¸¦ Áִ°÷ÀÌ´Ù. unsigned ´Â À½¼ö°ªÀ» °¡ÁöÁö ¾Ê´Â´Ù. ÃÖ¼Ò°ªÀº 0 ÃÖ´ë