久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 51單片機(jī)P1口的數(shù)據(jù)采樣(ADC)驅(qū)動(dòng)程序 [打印本頁(yè)]

作者: xueren    時(shí)間: 2013-7-19 02:20
標(biāo)題: 51單片機(jī)P1口的數(shù)據(jù)采樣(ADC)驅(qū)動(dòng)程序
  1. #include "reg52.h"
  2. #include "intrins.h"

  3. #define FOSC    18432000L
  4. #define BAUD    9600

  5. typedef unsigned char BYTE;
  6. typedef unsigned int WORD;

  7. /*Declare SFR associated with the ADC */
  8. sfr ADC_CONTR   =   0xBC;           //ADC control register
  9. sfr ADC_RES     =   0xBD;           //ADC high 8-bit result register
  10. sfr ADC_LOW2    =   0xBE;           //ADC low 2-bit result register
  11. sfr P1ASF       =   0x9D;           //P1 secondary function control register

  12. /*Define ADC operation const for ADC_CONTR*/
  13. #define ADC_POWER   0x80            //ADC power control bit
  14. #define ADC_FLAG    0x10            //ADC complete flag
  15. #define ADC_START   0x08            //ADC start control bit
  16. #define ADC_SPEEDLL 0x00            //420 clocks
  17. #define ADC_SPEEDL  0x20            //280 clocks
  18. #define ADC_SPEEDH  0x40            //140 clocks
  19. #define ADC_SPEEDHH 0x60            //70 clocks

  20. void InitUart();
  21. void InitADC();
  22. void SendData(BYTE dat);
  23. BYTE GetADCResult(BYTE ch);
  24. void Delay(WORD n);
  25. void ShowResult(BYTE ch);
  26. /*
  27. void main()
  28. {   InitUart();                     //Init UART, use to show ADC result
  29.     InitADC();                      //Init ADC sfr
  30.     while (1)
  31.     {
  32.         ShowResult(0);              //Show Channel0
  33.     }
  34. }
  35. */

  36. /*----------------------------
  37. Send ADC result to UART
  38. ----------------------------*/
  39. void ShowResult(BYTE ch)
  40. {
  41.     SendData(ch);                   //Show Channel NO.
  42.     SendData(GetADCResult(ch));     //Show ADC high 8-bit result

  43. //if you want show 10-bit result, uncomment next line
  44. //    SendData(ADC_LOW2);             //Show ADC low 2-bit result
  45. }

  46. /*----------------------------
  47. Get ADC result
  48. ----------------------------*/
  49. BYTE GetADCResult(BYTE ch)
  50. {
  51.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
  52.     _nop_();                        //Must wait before inquiry
  53.     _nop_();
  54.     _nop_();
  55.     _nop_();
  56.     while (!(ADC_CONTR & ADC_FLAG));//Wait complete flag
  57.     ADC_CONTR &= ~ADC_FLAG;         //Close ADC

  58.     return ADC_RES;                 //Return ADC result
  59. }

  60. /*----------------------------
  61. Initial UART
  62. ----------------------------*/
  63. void InitUart()
  64. {
  65.     SCON = 0x5a;                    //8 bit data ,no parity bit
  66.     TMOD = 0x20;                    //T1 as 8-bit auto reload
  67.     TH1 = TL1 = -(FOSC/12/32/BAUD); //Set Uart baudrate
  68.     TR1 = 1;                        //T1 start running
  69. }

  70. /*----------------------------
  71. Initial ADC sfr
  72. ----------------------------*/
  73. void InitADC()
  74. {
  75.     P1ASF = 0xe7;                   //Open 8 channels ADC function
  76.     ADC_RES = 0;                    //Clear previous result
  77.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
  78.     Delay(2);                       //ADC power-on and delay
  79. }
  80. /*----------------------------
  81. Send one byte data to PC
  82. Input: dat (UART data)
  83. Output:-
  84. ----------------------------*/
  85. void SendData(BYTE dat)
  86. {   while (!TI);                    //Wait for the previous data is sent
  87.     TI = 0;                         //Clear TI flag
  88.     SBUF = dat;                     //Send current data
  89. }
  90. /*----------------------------
  91. Software delay function
  92. ----------------------------*/
  93. void Delay(WORD n)
  94. {   WORD x;
  95.     while (n--)
  96.     {   x = 5000;
  97.         while (x--);
  98.     }
  99. }
復(fù)制代碼

作者: s360221867    時(shí)間: 2018-9-22 15:57
這跟STC的一樣么




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产成人精品一区二区在线 | 欧美激情在线观看一区二区三区 | 国产精品久久久久久婷婷天堂 | 四虎影院在线免费观看 | 免费一级欧美在线观看视频 | 羞羞视频在线观看免费观看 | 免费黄色录像视频 | 欧美日韩综合 | 欧美高清视频一区 | 亚洲精品一区二区三区中文字幕 | 久久久久国产精品人 | 天堂精品视频 | 99精品免费 | 爱综合 | 国产亚洲精品精品国产亚洲综合 | 久久av在线播放 | 国产精品99久久久久久动医院 | av一级一片 | 精品视频99 | 欧美性受xxxx | 992人人草 | 国产精品久久久久久久久婷婷 | 国产精品久久久久久二区 | 久久久久国产一区二区三区 | 欧美日韩电影免费观看 | 日韩精品a在线观看图片 | 日韩精品一区二区三区免费视频 | 国产永久免费 | 免费一级做a爰片久久毛片潮喷 | 欧美日韩国产精品一区二区 | 国产69精品久久99不卡免费版 | 日韩视频免费 | 成人精品视频99在线观看免费 | 国产福利在线 | 久久免费精品 | 免费观看av | 国产玖玖| 成人性视频免费网站 | 黑人巨大精品欧美一区二区免费 | 丝袜 亚洲 另类 欧美 综合 | 久久色视频 |