ʵÑéËÄ ADºÍDAת»»ÊµÑé
[ʵÑéÄ¿µÄ]
1£®ÊìϤARMоƬÄÚ²¿ADÍâÉèµÄÅäÖ÷½·¨ 2£®ÕÆÎÕARMоƬI/O¿ØÖÆÊýÂë¹ÜÏÔʾµÄ·½·¨ [ʵÑéÒÇÆ÷]
1£®Proteus·ÂÕæµÄLPC2000ϵÁеÄARM´¦ÀíÆ÷
2£®Èí¼þ£ºPC»ú²Ù×÷ϵͳWin98¡¢Win2000»òWinXP£¬Keil for ARM£¨MDK£©¼¯³É¿ª·¢»·¾³
[ʵÑéÔÀí]
Lpc2000ϵÁеÄARMоƬÄÚ²¿ADÍâÉè¿ÉÒÔʵÏÖ¶ÔÍⲿ8·ģÄâÊý¾ÝµÄ²ÉÑù£¬²ÉÑùÄ£Äâµçѹ·¶Î§Îª0~3.3V¡£¾«¶ÈΪ10λ¡£ [ʵÑéÄÚÈÝ]
Éè¼ÆÒ»¸öʹÓÃARMÄÚ²¿AD¹¦ÄܵIJÉÑùµç·£¬½«²ÉÑùºóµÄÊý¾ÝÏÔʾÔÚ3λµÄÊýÂë¹ÜÉÏ¡£ [Ô¤±¸ÖªÊ¶]
LPC2114/2124¾ßÓÐÒ»¸öADת»»Æ÷£¬LPC2200ϵÁоßÓÐÁ½¸öADת»»Æ÷£¬ËüÃǾßÓÐÈçÏÂÌØÐÔ£º10λÖð´Î±Æ½üʽģʽת»»Æ÷£»²âÁ¿·¶Î§£º0¡«3.3V£»10λת»»Ê±¼ä>=2.44us£»¿ÉÉèÖÃADת»»´¥·¢·½Ê½£»¾ßÓеôµçģʽ¡£ADת»»µÄÄÚ²¿½á¹¹Í¼ÈçÏ£º
A/D¿ØÖƼĴæADCR AIN0 AIN1 ¡ AIN7 Fpclk ¡ ADת»»Ê±ÖÓ A/D ת»»¿ØÖƵç· A/DÊý¾Ý¼Ä´æADDR VIC ADCR£ºA/D¿ØÖƼĴæÆ÷¡£A/Dת»»¿ªÊ¼Ç°£¬±ØÐëÉèÖÃADCR¼Ä´æÆ÷À´Ñ¡Ôñ¹¤×÷ģʽ¡£ ADDR£ºA/DÊý¾Ý¼Ä´æÆ÷¡£¸Ã¼Ä´æÆ÷°üº¬ADCµÄ½áÊø±ê־λºÍ10λµÄת»»½á¹û£¨µ±½áÊø±êÖ¾
λΪ1ʱ£¬×ª»»½á¹û²ÅÊÇÓÐЧµÄ£©¡£Á½¸ö¼Ä´æÆ÷¾ßÌåλµÄÏêϸ¹¦ÄÜÐèÒª²é¿´Ò»Ï½̲ġ£ [ʵÑé²½Öè] °´ÕÕÏÂͼÉè¼ÆÓ²¼þ£¬À´Âú×ã±¾´ÎʵÑéµÄÐèÒª
Æ÷¼þµÄÃû³Æ²ÎÕÕϱí
ʹÓÃKeil MDK½¨Á¢Ò»¸öÈí¼þ¹¤³Ì¡£ÃüÃûΪAD¡£²½Öè²ÎÕÕÇ°ÃæµÄʵÑé¡£ ÔÚÖ÷º¯ÊýÖÐдÈëһЩ´úÂ룺
#include
void delay(int x) { while(--x); }
void DsipInit() { PINSEL0= 0; IO0DIR |= 0x3ff<<1; IO0CLR = 0x3ff<<1; IO0SET = 0x3ff<<1; }
void Display(unsigned int val) { IO0CLR = 0x3ff<<1; IO0SET = val<<1; }
int main() { unsigned short ADCData; DsipInit(); Display(0x123) ; PINSEL1 = (PINSEL1 & ~(0x3<<22)) | 0x1<<22; //ÉèÖÃÒý½ÅÁ¬½ÓÄ£¿é AD0CR = (0x01 << 27) | // EDGE Ó²¼þ´¥·¢±ßÑØÉèÖà (0x0 << 24) | // START ADÆô¶¯ÉèÖà (0x00 << 22) | // TEST1:0 ²âÊÔģʽÉèÖà (0x01 << 21) | // PDN AD²¿¼þÉϵçÉèÖà (0 << 17)| // CLKS BURSTģʽ¾«¶È (0x00 << 16) | // BUREST BURSTģʽ½ûÖ¹ (2 << 8) | // CLKDIV ADC²¿¼þʱÖÓ (0x01 << 0); // SEL ת»»Í¨µÀÑ¡Ôñ
for(;;){
AD0CR |= (1 << 24); // START ADÆô¶¯ÉèÖÃ,Èí¼þÆô¶¯Ò»´ÎADת»» while((AD0DR & 0x80000000) != 0); ADCData = (AD0DR >> 6) & 0x3FF; Display(ADCData) ; delay(1000000); } return 0;
}
½«Éú³ÉµÄhexÎļþ¼ÓÔØµ½lpc2138ÉÏÔËÐУ¬µ÷Õû»¬¶¯±ä×èÆ÷µÄλÖ㬼Ǽµ±Ç°ÏÔʾµÄ½á¹ûÖµ¡£²¢Í¨¹ý¼ÆËãÑéÖ¤½á¹ûµÄÕýÈ·ÐÔ¡£ ¡¾Ë¼¿¼Ìâ¡¿
1. Ð޸ĵç·£¨Ôµç·±¸·Ýһϣ©£¬½«3¸öÊýÂë¹Ü±ä»»³É4¸öÊýÂë¹Ü£¬½á¹ûÓÃ10½øÖÆÊý
ÏÔʾÔÚÊýÂë¹ÜÉÏ¡£
2. ÔÚP0.20Òý½ÅÉϽÓÒ»¸ö°´¼ü£¬µ±°´¼ü°´ÏÂÒ»´ÎµÄʱºò£¬Æô¶¯Ò»´ÎADת»»¡£Ã»Óа´
¼ü°´ÏÂʱºò£¬²»½øÐÐת»»¡£
3. ½«ÏÔʾ¹¦ÄÜ·ÅÈëÖжϷþÎñÖС£µ±ADת»»½áÊøºóÆô¶¯ÖжϳÌÐòÍê³ÉAD²ÉÑùÊý¾ÝµÄ
ÏÔʾ¡£
4. P0.25Òý½ÅÒ²ÊÇÆ¬ÄÚDAµÄÊä³öÒý½Å£¬ÔÚ¸ÃÒý½ÅÉϽÓÒ»¸öʾ²¨Æ÷£¬ÊÔ×űàд³ÌÐò´Ó
¸Ãʾ²¨Æ÷Êä³öÈý½Ç²¨£¨·½²¨¡¢ÕýÏҵȣ©¡£Ìáʾ£ºLpc2132/4/6/8ÓÐÒ»¸ö10-bitµÄDAC£¬ËüÖ»ÓÐÒ»¸ö¼Ä´æÆ÷£¬¼ûÏÂͼ¡£µÚ16λ³ÆÎªBIAS룬Èç¹ûÕâλΪ1£¬Ôòת»»Ê±¼äλ2.5us£¬¿ÉÇý¶¯Êä³ö700uAµçÁ÷£»ÈôΪ0£¬×ª»»Ê±¼äλ1us£¬Çý¶¯µçÁ÷λ350uA£¬DAC¼Ä´æÆ÷¼ûÏÂ±í£º
λ ¹¦ÄÜ
31:17 ²»ÒªÏòÕâÀïд1 16 BIAS 15:6 DACDATA 5:0 ²»Ð´1
Ïà¹ØÍÆ¼ö£º