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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? f31x_adc0_externalinput_mux.lst

?? C8051F31系列單片機的例子
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V8.08   F31X_ADC0_EXTERNALINPUT_MUX                                           07/28/2008 14:50:43 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE F31X_ADC0_EXTERNALINPUT_MUX
OBJECT MODULE PLACED IN F31x_ADC0_ExternalInput_Mux.OBJ
COMPILER INVOKED BY: E:\Apps\Keil\C51\BIN\c51.exe F31x_ADC0_ExternalInput_Mux.c DB OE

line level    source

   1          //-----------------------------------------------------------------------------
   2          // F31x_ADC0_ExternalInput_Mux.c
   3          //-----------------------------------------------------------------------------
   4          // Copyright 2005 Silicon Laboratories, Inc.
   5          // http://www.silabs.com
   6          //
   7          // This code example illustrates using the internal analog multiplexer to
   8          // measure analog voltages on up to 8 different analog inputs.  Results are
   9          // printed to a PC terminal program via the UART.
  10          //
  11          // The inputs are sequentially scanned, beginning with input 0 (P1.0), up
  12          // to input number <ANALOG_INPUTS>-1 based on the values in <PIN_TABLE>.
  13          //
  14          //
  15          // ADC Settling Time Requirements, Sampling Rate:
  16          // ----------------------------------------------
  17          //
  18          // The total sample time per input is comprised of an input setting time
  19          // (Tsettle), followed by a conversion time (Tconvert):
  20          //
  21          // Tsample  = Tsettle + Tconvert
  22          //
  23          // Settling and conversion times may overlap, as the ADC holds the value once
  24          // conversion begins.  This program takes advantage of this to increase the
  25          // settling time above the minimum required.  In other words, when
  26          // converting the value from analog input Ain(n), the input mux is switched
  27          // over to the next input Ain(n+1) to begin settling.
  28          //
  29          // |---Settling Ain(n)---|=Conversion Ain(n)=|
  30          //                       |---Settling Ain(n+1)---|=Conversion Ain(n+1)=|
  31          //                                               |---Settling Ain(n+2)---|
  32          // ISR:  Timer 2         ^                       ^                       ^
  33          // ISR:  ADC0                                ^                         ^
  34          //
  35          // The ADC input voltage must be allowed adequate time to settle before the
  36          // conversion is made.  This settling depends on the external source
  37          // impedance, internal mux impedance, and internal capacitance.
  38          // Settling time is given by:
  39          //
  40          //                   | 2^n |
  41          //    Tsettle =   ln | --- | * Rtotal * Csample
  42          //                   | SA  |
  43          //
  44          // In this application, assume a 100kohm potentiometer as the voltage divider.
  45          // The expression evaluates to:
  46          //
  47          //                   | 2^12 |
  48          //    Tsettle =   ln | ---- | * 105e3 * 10e-12 = 10.2uS
  49          //                   | 0.25 |
  50          //
  51          // In addition, one must allow at least 1.5 us after changing analog MUX
  52          // inputs or PGA settings.  The settling time in this example, then, is
  53          // dictated by the large external source resistance.
  54          //
  55          // The conversion is 16 periods of the SAR clock.  At 2.5 MHz,
C51 COMPILER V8.08   F31X_ADC0_EXTERNALINPUT_MUX                                           07/28/2008 14:50:43 PAGE 2   

  56          // this time is 16 * 400nS = 6.4 uS.
  57          //
  58          //
  59          // Tsample, minimum  = Tsettle + Tconvert
  60          //                   = 10.2uS + 6.4uS
  61          //                   = 16.6 uS
  62          //
  63          // Timer2 is set to change the MUX input and start a conversion every 20 us.
  64          //
  65          // General:
  66          // --------
  67          //
  68          // The system is clocked using the internal 24.5MHz oscillator. Results are
  69          // printed to the UART from a loop with the rate set by a delay based on
  70          // Timer0. This loop periodically reads the ADC value from a global array,
  71          // <RESULT>.
  72          //
  73          // The ADC makes repeated measurements at 20 us intervals based on Timer2.
  74          // The end of each ADC conversion initiates an interrupt which calls an
  75          // averaging function. <INT_DEC> samples are averaged, then the Result
  76          // values updated.
  77          //
  78          // For each power of 4 of <INT_DEC>, you gain 1 bit of effective resolution.
  79          // For example, <INT_DEC> = 256 gain you 4 bits of resolution: 4^4 = 256.
  80          //
  81          // The ADC input multiplexer is set for a single-ended input.  The example
  82          // sequentially scans through the inputs, starting at P1.0.  <ANALOG_INPUTS>
  83          // inputs are read.  The amplifier is set for unity gain so a voltage range of
  84          // 0 to Vref (2.43V) may be measured.  Although voltages up to Vdd may be
  85          // applied without damaging the device, only the range 0 to Vref may be
  86          // measured by the ADC.
  87          //
  88          // A 100 kohm potentiometer may be connected as a voltage divider between
  89          // VREF and AGND as shown below:
  90          //
  91          // ---------
  92          //          |
  93          //         o| AGND ----|
  94          //         o| VREF ----|<-|
  95          //         o| P1.x     |  |
  96          //         o|    |        |
  97          //         o|     --------
  98          //         o|
  99          //         o|
 100          //         o|
 101          //          |
 102          // ---------
 103          //
 104          // How To Test:
 105          //
 106          // 1) Download code to a 'F31x device that is connected to a UART transceiver
 107          // 2) Verify the TX and RX jumpers are populated on J3.
 108          // 3) Connect a serial cable from the DB9 connector to a PC
 109          // 4) On the PC, open HyperTerminal (or any other terminal program) and connect
 110          //    to the COM port at <BAUDRATE> and 8-N-1
 111          // 5) Connect a variable voltage source (between 0 and Vref) to the Port1 pins,
 112          //    or a potentiometer voltage divider as shown above.
 113          // 6) HyperTerminal will print the voltages measured by the device if
 114          //    everything is working properly.  Note that some of the analog inputs are
 115          //    floating and will return nonzero values.
 116          //
 117          // Target:         C8051F31x
C51 COMPILER V8.08   F31X_ADC0_EXTERNALINPUT_MUX                                           07/28/2008 14:50:43 PAGE 3   

 118          // Tool chain:     Keil C51 7.50 / Keil EVAL C51
 119          // Command Line:   None
 120          //
 121          // Release 1.0
 122          //    -Initial Revision (SM / TP)
 123          //    -19 OCT 2006
 124          //
 125          
 126          
 127          //-----------------------------------------------------------------------------
 128          // Includes
 129          //-----------------------------------------------------------------------------
 130          
 131          #include "c8051F310.h"                 // SFR declarations
 132          #include <stdio.h>
 133          
 134          //-----------------------------------------------------------------------------
 135          // 16-bit SFR Definitions for 'F31x
 136          //-----------------------------------------------------------------------------
 137          
 138          sfr16 TMR2RL = 0xCA;                   // Timer2 reload value
 139          sfr16 TMR2 = 0xCC;                     // Timer2 counter
 140          sfr16 ADC0 = 0xBD;                     // 10-bit ADC0 result
 141          
 142          //-----------------------------------------------------------------------------
 143          // Global CONSTANTS
 144          //-----------------------------------------------------------------------------
 145          
 146          #define SYSCLK        24500000         // SYSCLK frequency in Hz
 147          #define BAUDRATE      115200           // Baud rate of UART in bps
 148          #define ANALOG_INPUTS 6                // Number of AIN pins to measure,
 149                                                 // skipping the UART0 pins
 150          #define INT_DEC       256              // Integrate and decimate ratio
 151          
 152          #define TIMER0_RELOAD_HIGH  0          // Timer0 High register
 153          #define TIMER0_RELOAD_LOW 255          // Timer0 Low register
 154          
 155          //-----------------------------------------------------------------------------
 156          // Function PROTOTYPES
 157          //-----------------------------------------------------------------------------
 158          
 159          void Oscillator_Init (void);
 160          void Port_Init (void);
 161          void Timer2_Init(void);
 162          void ADC0_Init(void);
 163          void UART0_Init (void);
 164          
 165          void Timer0_wait(int ms);
 166          
 167          //-----------------------------------------------------------------------------
 168          // Global Variables
 169          //-----------------------------------------------------------------------------
 170          
 171          long RESULT[ANALOG_INPUTS];            // ADC0 decimated value, one for each
 172                                                 // analog input
 173          
 174          // Port1 ADC Inputs
 175          unsigned char idata PIN_TABLE[ANALOG_INPUTS] = {0,1,2,3,4,5};
 176          
 177          unsigned char AMUX_INPUT = 0;          // Index of analog MUX inputs
 178          
 179          //-----------------------------------------------------------------------------
C51 COMPILER V8.08   F31X_ADC0_EXTERNALINPUT_MUX                                           07/28/2008 14:50:43 PAGE 4   

 180          // MAIN Routine
 181          //-----------------------------------------------------------------------------
 182          void main (void)
 183          {
 184   1         unsigned char i;
 185   1         unsigned long measurement;
 186   1      
 187   1         PCA0MD &= ~0x40;                    // WDTE = 0 (clear watchdog timer
 188   1                                             // enable)
 189   1      
 190   1         Oscillator_Init ();                 // Initialize system clock to
 191   1                                             // 24.5MHz
 192   1         Port_Init ();                       // Initialize crossbar and GPIO
 193   1         Timer2_Init();                      // Init Timer2 to generate
 194   1                                             // overflows to trigger ADC
 195   1         UART0_Init();                       // Initialize UART0 for printf's
 196   1         ADC0_Init();                        // Initialize ADC0
 197   1      
 198   1         EA = 1;                             // Enable global interrupts
 199   1         while (1)
 200   1         {
 201   2            EA = 0;                          // Disable interrupts
 202   2            printf("\f");
 203   2            for(i = 0; i < ANALOG_INPUTS; i++)
 204   2            {
 205   3               // The 10-bit ADC value is averaged across INT_DEC measurements.
 206   3               // The result is then stored in RESULT, and is right-justified
 207   3               // The measured voltage applied to the port pins is then:
 208   3               //
 209   3               //                           Vref (mV)
 210   3               //   measurement (mV) =   --------------- * Result (bits)
 211   3               //                        (2^10)-1 (bits)
 212   3      
 213   3               measurement =  (RESULT[i] - 8) * 3268 / 1023;
 214   3               printf("P1.%bu voltage: %4ld mV\n",PIN_TABLE[i],measurement);
 215   3            }
 216   2            EA = 1;                          // Re-enable interrupts
 217   2      
 218   2            Timer0_wait(25);                 // Wait before displaying new values
 219   2         }
 220   1      }
 221          
 222          //-----------------------------------------------------------------------------
 223          // Initialization Subroutines
 224          //-----------------------------------------------------------------------------
 225          
 226          //-----------------------------------------------------------------------------
 227          // SYSCLK_Init
 228          //-----------------------------------------------------------------------------
 229          //
 230          // Return Value : None
 231          // Parameters   : None
 232          //
 233          // This routine initializes the system clock to use the internal 24.5MHz
 234          // oscillator as its clock source.  Also enables missing clock detector reset.
 235          //
 236          //-----------------------------------------------------------------------------
 237          void Oscillator_Init (void)
 238          {
 239   1         OSCICN = 0x83;                      // Configure internal oscillator for
 240   1                                             // its highest frequency
 241   1         RSTSRC = 0x04;                      // Enable missing clock detector
C51 COMPILER V8.08   F31X_ADC0_EXTERNALINPUT_MUX                                           07/28/2008 14:50:43 PAGE 5   

 242   1      }
 243          
 244          //-----------------------------------------------------------------------------
 245          // Port_Init
 246          //-----------------------------------------------------------------------------
 247          //
 248          // Return Value : None
 249          // Parameters   : None
 250          //
 251          // Configure the Crossbar and GPIO ports.
 252          //
 253          // P0.4 - UART TX (push-pull)
 254          // P0.5 - UART RX

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜诱惑亚洲看片| 99久久综合99久久综合网站| 亚洲成人免费av| 夜色激情一区二区| 成人免费一区二区三区视频| 欧美激情一区二区三区全黄| 国产女人18毛片水真多成人如厕| 久久综合九色综合欧美98| 欧美日韩国产首页在线观看| 亚洲乱码中文字幕综合| 亚洲精品免费看| 亚洲高清视频在线| 亚洲成在线观看| 日本不卡123| 老司机精品视频线观看86| 久久99精品一区二区三区三区| 免费观看日韩电影| 国产呦精品一区二区三区网站| 久草中文综合在线| 国产成人丝袜美腿| 不卡的av在线播放| 色综合久久中文综合久久97| 欧美性受xxxx| 日韩欧美亚洲国产另类 | 欧美va亚洲va在线观看蝴蝶网| 日韩写真欧美这视频| 精品国产乱码久久| 国产精品视频看| 亚洲一级二级在线| 美女诱惑一区二区| 丁香激情综合国产| 91成人免费电影| 欧美一区二区精品| 国产日韩欧美不卡在线| 一区二区三区日韩欧美| 日本不卡不码高清免费观看| 国产老妇另类xxxxx| 9久草视频在线视频精品| 91成人国产精品| 日韩久久久久久| 中文字幕亚洲区| 亚洲高清不卡在线| 国产剧情av麻豆香蕉精品| 91在线精品一区二区| 欧美高清视频在线高清观看mv色露露十八| 日韩欧美美女一区二区三区| 国产三级精品三级| 亚洲综合在线视频| 国产综合色精品一区二区三区| 99久久777色| 欧美大黄免费观看| 亚洲色图.com| 狠狠色丁香久久婷婷综合丁香| 伊人性伊人情综合网| 国产精品女上位| 五月激情综合网| 国产69精品一区二区亚洲孕妇| 欧美亚洲自拍偷拍| 久久日韩粉嫩一区二区三区| 尤物av一区二区| 国产一区999| 欧美日韩高清一区| 国产精品高潮呻吟久久| 美女尤物国产一区| 91成人免费电影| 中文成人av在线| 人人狠狠综合久久亚洲| 色一情一伦一子一伦一区| 欧美一区二区在线不卡| 亚洲免费观看视频| 国产福利91精品一区| 欧美日韩精品一二三区| 中文字幕精品—区二区四季| 蜜臀av亚洲一区中文字幕| 色婷婷综合久色| 国产精品系列在线| 久久精品久久精品| 欧美日本一区二区三区四区| 亚洲日本电影在线| 国产精品1区2区| 欧美电影免费观看高清完整版在线| 亚洲欧美日韩系列| 成人av电影观看| 久久免费午夜影院| 免费不卡在线观看| 欧美日韩大陆一区二区| 一区二区三区在线视频免费观看| 成人免费va视频| 国产亚洲精品7777| 狠狠色综合播放一区二区| 欧美一卡二卡在线| 午夜亚洲国产au精品一区二区| 99re热视频精品| 国产精品久久二区二区| 丁香六月久久综合狠狠色| 亚洲精品一区二区三区福利| 免费久久99精品国产| 欧美日韩视频第一区| 亚洲精品乱码久久久久久黑人| 成人性生交大合| 欧美韩国日本一区| 国产99久久久国产精品潘金| 日韩欧美中文字幕公布| 日本sm残虐另类| 日韩片之四级片| 老司机午夜精品99久久| 欧美va日韩va| 国产又黄又大久久| 久久久99免费| 岛国精品在线观看| 国产精品久久久久久久第一福利| 高清在线观看日韩| 亚洲欧洲av色图| 一本一道综合狠狠老| 亚洲精品国产无套在线观| 亚洲一区二区三区小说| 成人激情综合网站| 国产精品家庭影院| 91蜜桃在线观看| 一区二区三区在线视频观看 | av电影在线不卡| 欧美一级片在线看| 国产精品久久三区| 91小视频在线免费看| 一区二区三区欧美| 欧美日韩在线免费视频| 性久久久久久久久| 欧美一区二区国产| 国产成人精品免费网站| 中文字幕在线不卡| 欧美优质美女网站| 日韩av一二三| 久久久www免费人成精品| 99re这里只有精品首页| 亚洲成a人v欧美综合天堂| 91精品国产综合久久久久久久 | 欧美日韩免费一区二区三区视频 | 91亚洲国产成人精品一区二区三| 有码一区二区三区| 日韩欧美一级二级| 成人av综合在线| 亚洲成av人片www| 精品久久久久久最新网址| 99久久精品国产毛片| 三级一区在线视频先锋| 国产日韩亚洲欧美综合| 在线观看91视频| 精品亚洲欧美一区| 亚洲视频免费看| 日韩精品一区二区在线| 99久久婷婷国产综合精品电影| 午夜欧美视频在线观看| 久久久亚洲精品一区二区三区 | 亚洲欧美偷拍另类a∨色屁股| 欧美美女bb生活片| 风间由美一区二区三区在线观看 | 欧美日韩一级大片网址| 国产精品影音先锋| 亚洲午夜久久久久| 国产日产欧产精品推荐色 | 亚洲激情图片小说视频| 精品粉嫩超白一线天av| 色狠狠色狠狠综合| 国产一区二区成人久久免费影院| 成年人国产精品| 五月天视频一区| 国产精品欧美一级免费| 日韩限制级电影在线观看| 色婷婷精品久久二区二区蜜臂av| 国产最新精品免费| 日韩激情视频在线观看| 亚洲男人的天堂在线观看| 久久久久久久综合狠狠综合| 欧美丰满高潮xxxx喷水动漫| 91色在线porny| 国产精品亚洲专一区二区三区| 午夜精品福利在线| 亚洲视频一二三区| 久久精品夜色噜噜亚洲a∨| 日韩午夜在线影院| 欧美视频在线一区| 99久久伊人久久99| 国产福利不卡视频| 日本不卡中文字幕| 一区二区在线观看免费视频播放| 色综合久久久久久久| 国产一区二区三区免费看| 美女视频黄久久| 日韩理论片中文av| 中文字幕高清一区| 久久精品一区四区| 日韩三级av在线播放| 欧美三级日韩三级国产三级| 99久久国产免费看| 国产高清精品网站| 久久99国产精品免费网站| 亚洲综合一区二区| 一区二区三区加勒比av| 有码一区二区三区| 亚洲人成亚洲人成在线观看图片|