亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? f31x_adc0_externalinput.#1

?? C8051F31系列單片機的例子
?? #1
?? 第 1 頁 / 共 2 頁
字號:

   SYSCLK_Init ();                     // Initialize system clock to 
                                       // 12MHz
   PORT_Init ();                       // Initialize crossbar and GPIO
   Timer2_Init();                      // Init Timer2 to generate 
                                       // overflows to trigger ADC
   UART0_Init();                       // Initialize UART0 for printf's
   ADC0_Init();                        // Initialize ADC0

   EA = 1;							         // enable global interrupts
   while (1) {                         // spin forever
   ADC_Read_Ch(0x11);
   }
}

//-----------------------------------------------------------------------------
// Initialization Subroutines
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// SYSCLK_Init
//-----------------------------------------------------------------------------
// 
// Return Value:  None
// Parameters:    None
//
// This routine initializes the system clock to use the internal 24.5MHz 
// oscillator as its clock source.  Also enables missing clock detector reset.
//
//-----------------------------------------------------------------------------

void SYSCLK_Init (void)
{
   OSCICN = 0x83;                      // configure internal oscillator for
                                       // 24.5MHz / 1
   RSTSRC = 0x04;                      // enable missing clock detector
}

//-----------------------------------------------------------------------------
// PORT_Init
//-----------------------------------------------------------------------------
// 
// Return Value:  None
// Parameters:    None
//
// Configure the Crossbar and GPIO ports.
// P0.0 - VREF input / output
// P0.4 - UART TX (push-pull)
// P0.5 - UART RX 
// P2.5 - ADC0 analog input
// P3.3 - LED (push-pull)
// 
//-----------------------------------------------------------------------------

void PORT_Init (void)
{
   XBR0     = 0x01;                    // Enable UART0
   XBR1     = 0x40;                    // Enable crossbar and weak pull-ups
   P0MDOUT |= 0x11;                    // Set P0.1, TX pins to push-pull
   P0SKIP   = 0x01;                    // force crossbar to skip P0.0
   P3MDOUT |= 0x08;                    // enable LED as a push-pull output
   P2MDIN &= ~0x20;                    // set P2.5 as an analog input
   P3MDIN = 0xFF;
   P0 = 0x01;                          // drive P0.0 high to provide Vdd at
                                       // header for external voltage divider
}

//-----------------------------------------------------------------------------
// Timer2_Init
//-----------------------------------------------------------------------------
// 
// Return Value:  None
// Parameters:    None
//
// Configure Timer2 to 16-bit auto-reload and generate an interrupt at 100uS 
// intervals.  Timer 2 overflow automatically triggers ADC0 conversion.
// 
//-----------------------------------------------------------------------------

void Timer2_Init (void)
{
   TMR2CN  = 0x00;                     // Stop Timer2; Clear TF2;
                                       // use SYSCLK as timebase, 16-bit 
                                       // auto-reload
   CKCON  |= 0x10;                     // select SYSCLK for timer 2 source
   TMR2RL  = 65535 - (SYSCLK / 10000); // init reload value for 10uS
   TMR2    = 0xffff;                   // set to reload immediately
   TR2     = 1;                        // start Timer2
}

//-----------------------------------------------------------------------------
// ADC0_Init
//-----------------------------------------------------------------------------
// 
// Return Value:  None
// Parameters:    None
//
// Configures ADC0 to make single-ended analog measurements on pin P2.5
//  
//-----------------------------------------------------------------------------
void ADC0_Init (void)
{
   ADC0CN = 0x02;                      // ADC0 disabled, normal tracking, 
                                       // conversion triggered on TMR2 overflow

   REF0CN = 0x0E;                      // Enable on-chip VREF, select Vdd as 
                                       // voltage reference. 

   AMX0P = 0x11;                       // ADC0 positive input = P2.5
   AMX0N = 0x1F;                       // ADC0 negative input = GND
                                       // i.e., single ended mode

   ADC0CF = ((SYSCLK/3000000)-1)<<3;   // set SAR clock to 3MHz

   ADC0CF |= 0x00;                     // right-justify results 

   EIE1 |= 0x08;                       // enable ADC0 conversion complete int.

   AD0EN = 1;                          // enable ADC0
}

//-----------------------------------------------------------------------------
// UART0_Init
//-----------------------------------------------------------------------------
// 
// Return Value:  None
// Parameters:    None
//
// Configure the UART0 using Timer1, for <BAUDRATE> and 8-N-1.
//
//-----------------------------------------------------------------------------
void UART0_Init (void)
{
   SCON0 = 0x10;                       // SCON0: 8-bit variable bit rate
                                       //        level of STOP bit is ignored
                                       //        RX enabled
                                       //        ninth bits are zeros
                                       //        clear RI0 and TI0 bits
   if (SYSCLK/BAUDRATE/2/256 < 1) {
      TH1 = -(SYSCLK/BAUDRATE/2);
      CKCON |=  0x08;                  // T1M = 1; SCA1:0 = xx
   } else if (SYSCLK/BAUDRATE/2/256 < 4) {
      TH1 = -(SYSCLK/BAUDRATE/2/4);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 01
      CKCON |=  0x01;
   } else if (SYSCLK/BAUDRATE/2/256 < 12) {
      TH1 = -(SYSCLK/BAUDRATE/2/12);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 00
   } else if (SYSCLK/BAUDRATE/2/256 < 48) {
      TH1 = -(SYSCLK/BAUDRATE/2/48);
      CKCON &= ~0x0B;                  // T1M = 0; SCA1:0 = 10
      CKCON |=  0x02;
   } else {
      while (1);                       // Error.  Unsupported baud rate
   }

   TL1 = TH1;                          // init Timer1
   TMOD &= ~0xf0;                      // TMOD: timer 1 in 8-bit autoreload
   TMOD |=  0x20;
   TR1 = 1;                            // START Timer1
   TI0 = 1;                            // Indicate TX0 ready
}

//-----------------------------------------------------------------------------
// Interrupt Service Routines
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// ADC0_ISR
//-----------------------------------------------------------------------------
// 
// Return Value:  None
// Parameters:    None
//
// This ISR averages 2048 samples then prints the result to the terminal.  The 
// ISR is called after each ADC conversion which is triggered by Timer2.
//
//-----------------------------------------------------------------------------
void ADC0_ISR (void) interrupt 10
{

   static unsigned long accumulator = 0;     // accumulator for averaging
   static unsigned int measurements = 2048;  // measurement counter
   unsigned long result=0;
   unsigned long mV;                   // measured voltage in mV

   AD0INT = 0;                         // clear ADC0 conversion complete flag

   accumulator += ADC0;
   measurements--;

   if(measurements == 0)
   {  
      measurements = 2048;
      result = accumulator / 2048;
      accumulator=0;

      // The 10-bit ADC value is averaged across 2048 measurements.  
      // The measured voltage applied to P1.4 is then:
      //
      //                           Vref (mV)
      //   measurement (mV) =   --------------- * result (bits) 
      //                       (2^10)-1 (bits)

      mV =  result * 3250 / 1023;   
      printf("P3.1 voltage: %ld mV\n",mV);
   }
   
   LED=~LED;
}

//-----------------------------------------------------------------------------
// End Of File
//-----------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色琪琪一区二区三区亚洲区| 色综合天天性综合| 91在线视频播放地址| 91麻豆精品国产91久久久使用方法| 亚洲精品在线观| 性感美女久久精品| 色诱亚洲精品久久久久久| 日韩欧美在线1卡| 午夜精品一区二区三区电影天堂| 国产高清久久久久| 欧美一区二区三区日韩视频| 亚洲欧洲av在线| 国产福利一区在线观看| 欧美一卡二卡三卡四卡| 亚洲精品国产精品乱码不99 | 五月婷婷综合激情| 成人美女视频在线观看18| 日韩精品一区二区三区视频在线观看| 一区二区三区蜜桃网| 床上的激情91.| 日本一区二区三区久久久久久久久不| 久久电影网站中文字幕| 久久青草国产手机看片福利盒子 | 日本不卡一区二区| 在线视频一区二区免费| 亚洲日韩欧美一区二区在线| 粉嫩一区二区三区性色av| 2020国产成人综合网| 久久成人麻豆午夜电影| 欧美精品xxxxbbbb| 日本不卡一二三区黄网| 91麻豆精品国产91久久久久久久久 | 欧美亚一区二区| 亚洲天堂av老司机| 在线亚洲免费视频| 一区二区三区国产精品| 欧洲一区二区av| 一区二区久久久久久| 91欧美激情一区二区三区成人| 中文字幕一区二区三区四区不卡 | 国产成人免费视| 欧美高清在线一区二区| av电影在线观看一区| 亚洲欧洲成人精品av97| 日本韩国欧美一区| 亚洲图片欧美一区| 在线播放91灌醉迷j高跟美女 | 精品乱人伦小说| 国产乱妇无码大片在线观看| 国产三级精品视频| av在线综合网| 亚洲成av人综合在线观看| 777午夜精品视频在线播放| 免费精品视频最新在线| 久久久久久久免费视频了| 久久精品国产久精国产爱| 99精品视频在线免费观看| 精品视频一区三区九区| 亚洲欧洲韩国日本视频| 色噜噜狠狠成人中文综合 | 亚洲欧美精品午睡沙发| 欧美日韩一区二区电影| 精品午夜久久福利影院| 亚洲天堂免费在线观看视频| 91麻豆精品国产自产在线 | 高清不卡一区二区| 亚洲黄色性网站| 欧美一区二区不卡视频| 高清不卡在线观看av| 亚洲精品国产无天堂网2021| 日韩一区二区在线看| 国产大片一区二区| 亚洲欧美一区二区三区极速播放| 欧美日韩高清影院| 福利一区在线观看| 日韩av中文字幕一区二区三区 | 日韩欧美久久久| 成人国产视频在线观看| 日韩成人一区二区| 欧美人与禽zozo性伦| 大胆亚洲人体视频| 麻豆成人综合网| 亚洲国产日韩a在线播放性色| 26uuu久久天堂性欧美| 91福利社在线观看| 国产成人在线视频网站| 奇米影视一区二区三区小说| 国产精品蜜臀在线观看| 日韩午夜小视频| 欧美色视频在线观看| 丁香啪啪综合成人亚洲小说| 午夜天堂影视香蕉久久| 中文字幕欧美一| 久久先锋影音av鲁色资源| 精品视频在线视频| 色狠狠桃花综合| 国产成人h网站| 老司机免费视频一区二区| 一区二区三区在线视频观看58| 欧美激情一区二区三区全黄| 91精品国产一区二区三区香蕉| 91女人视频在线观看| 不卡在线观看av| 国产黄色91视频| 韩国av一区二区三区| 免费观看30秒视频久久| 日韩电影在线观看电影| 午夜视频在线观看一区| 午夜国产精品一区| 亚洲电影第三页| 亚洲午夜久久久久| 亚洲一区免费视频| 一区二区三区不卡视频| 最好看的中文字幕久久| 中文字幕佐山爱一区二区免费| 综合精品久久久| 亚洲伦理在线免费看| 亚洲精品第一国产综合野| 一区二区三区在线播放| 亚洲国产精品尤物yw在线观看| 国产精品亚洲综合一区在线观看| 国产精品水嫩水嫩| 亚洲欧洲日本在线| 中文字幕视频一区| 亚洲女同一区二区| 亚洲综合激情另类小说区| 一区二区三区在线观看网站| 亚洲一区二区黄色| 天堂成人国产精品一区| 天天射综合影视| 男女激情视频一区| 狠狠久久亚洲欧美| 国产麻豆精品95视频| 国产成人精品在线看| 成人黄色在线网站| 在线免费观看成人短视频| 欧美日韩一区二区三区视频| 欧美一区二区视频观看视频| 日韩欧美国产一区二区三区| 久久免费的精品国产v∧| 成人欧美一区二区三区白人| 一区二区三区美女| 日本视频免费一区| 国产精品亚洲视频| 色美美综合视频| 欧美刺激午夜性久久久久久久| 国产三级精品三级| 亚洲成人av在线电影| 国产在线一区观看| 色香色香欲天天天影视综合网| 91精品国产一区二区三区蜜臀| 久久精品人人做| 亚洲午夜日本在线观看| 国产在线精品一区二区三区不卡 | 国产精品少妇自拍| 亚洲图片欧美综合| 国产福利一区二区三区在线视频| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美日韩性生活| 欧美国产成人在线| 日韩国产成人精品| 成人美女视频在线观看| 5月丁香婷婷综合| 中文字幕制服丝袜成人av| 爽好多水快深点欧美视频| 成人丝袜视频网| 日韩欧美一二三| 一级做a爱片久久| 国产盗摄女厕一区二区三区 | www.色精品| 日韩欧美成人激情| 一级特黄大欧美久久久| 风流少妇一区二区| 日韩视频在线永久播放| 一区二区三区精品在线| 成人精品视频一区二区三区| 日韩欧美在线不卡| 亚洲18影院在线观看| 9人人澡人人爽人人精品| 精品奇米国产一区二区三区| 国产精品日韩成人| 久久91精品久久久久久秒播| 国产欧美日韩另类一区| 麻豆一区二区三| 精品国产三级a在线观看| 国产原创一区二区| 亚洲一区在线看| 国产欧美一区二区精品忘忧草| **性色生活片久久毛片| 奇米精品一区二区三区在线观看一| 国产一区二区按摩在线观看| 久久99国产精品免费网站| 奇米影视一区二区三区小说| 亚洲欧洲综合另类| 精品国产91久久久久久久妲己| 激情都市一区二区| 国产精品自拍av| 日韩一区二区三区在线观看| 精品1区2区在线观看| 国产亲近乱来精品视频|