專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

LPC210X的ADC測試程序

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年09月01日   【字體:

以下程序運行在LPC210X單片機(jī)上面:

 void main(void)

{
 // U8 Test[20];
  U32 ADC_Data;
  const U32 ADC_CR=
        ( 1 << 0 ) |     // SEL = 1 ,選擇通道0
 ( ( Fpclk / 1000000 - 1 ) << 8 ) |   // CLKDIV = Fpclk / 1000000 - 1 ,即轉(zhuǎn)換時鐘為1MHz
 ( 0 << 16 ) |     // BURST = 0 ,軟件控制轉(zhuǎn)換操作
 ( 0 << 17 ) |      // CLKS = 0 ,使用11clock轉(zhuǎn)換
 ( 1 << 21 ) |      // PDN = 1 , 正常工作模式(非掉電轉(zhuǎn)換模式)
 ( 0 << 22 ) |      // TEST1:0 = 00 ,正常工作模式(非測試模式)
 ( 1 << 24 ) |      // START=1,啟動轉(zhuǎn)換
 ( 0 << 27 );       //上升沿啟動轉(zhuǎn)換
  PINSEL0=0x00000005; //TXD0和RXDE0功能連接到管腳
  PINSEL1=(3<<12);    //ADC0.0連接到管腳(11)
  PLL_Init();
  UART0_Init();
  printf(" \nAD Convert\n");
  printf("ADC0.0'S VALUE:\n ");
  while(1)
  {
    AD0CR = ADC_CR;
    do{}while((AD0GDR&0x80000000)==0);    //AD0GDR:31位:DONEAD  轉(zhuǎn)換結(jié)束時該位置位
    ADC_Data=AD0DR0;   //數(shù)據(jù)寄存器的15:6     DONEAD為1進(jìn),這十位存儲著AIN腳的電壓,共十位    
    AD0DR0=ADC_Data;
    ADC_Data=(ADC_Data>>6)&0x3ff;               //得到二進(jìn)制結(jié)果 ,10bits
    ADC_Data>>=2;                               //只要八位準(zhǔn)備輸出;
    printf("0x%x ",(ADC_Data&0xff));
    Delay(10);
  }
}
 
不知什么原因,仿真老出問題。可能JLINK電壓低?
關(guān)閉窗口