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

標題: 51控制ADC0832子程序 [打印本頁]

作者: hfl996633    時間: 2018-7-26 22:05
標題: 51控制ADC0832子程序
51控制ADC0832子程序
  1. /**********************************************
  2. 程序名稱:ADC0832子程序
  3. 作    者:liuanggh
  4. 時    間:2006.12.30
  5. **********************************************/
  6. #ifndef ADC0832_H
  7. #define ADC0832_H
  8. #include <reg52.h>
  9. #include <intrins.h>
  10. #define uchar unsigned char
  11. #define uint  unsigned int
  12. #define first_channel   0x02  //通道1
  13. #define second_channel  0x03  //通道2
  14. sbit ADCLK  =P0^0;     //時鐘接口
  15. sbit ADDI   =P0^1;     //數據輸入接口
  16. sbit ADDO   =P0^2;    //數據輸出接口
  17. sbit ADCS =P0^3;    //使能接口
  18. uchar buff[] = {0};
  19. /********************************************************
  20. 函數名稱:void AD_init(uchar i)
  21. 函數作用:初始化ADC0832
  22. 參數說明:i=2,表示通道0,i=3,表示通道1
  23. ********************************************************/
  24. void AD_init(uchar i)
  25. {
  26.      ADDI = 1;       /*在第1 個時鐘脈沖的下沉之前DI端必須是高電平,表示啟始信號*/
  27.      _nop_();
  28.     _nop_();
  29.     ADCS = 0;  //使能ADC0832
  30.     _nop_();
  31.     _nop_();
  32.     ADCLK = 1;
  33.     _nop_();
  34.     _nop_();
  35.     ADCLK = 0;    //形成下降沿1
  36.     _nop_();
  37.     _nop_();         /*在第2、3個脈沖下沉之前DI端應輸入2位數據用于選擇通道功能*/
  38.     if( (i&&0x01) == 0)
  39.     ADDI = 0;
  40.     if( (i&&0x01) == 1)
  41.     ADDI = 1;
  42.     _nop_();
  43.     _nop_();
  44.     ADCLK = 1;
  45.     _nop_();
  46.     _nop_();
  47.     ADCLK = 0;    //形成下降沿2
  48.     _nop_();
  49.     _nop_();
  50.     if( (i&&0x02) == 0)
  51.     ADDI = 0;
  52.     if( (i&&0x02) == 1)
  53.     ADDI = 1;
  54.     ADCLK = 1;
  55.     _nop_();
  56.     _nop_();
  57.     ADCLK = 0;    //形成下降沿3
  58.     _nop_();
  59.     _nop_();
  60. }
  61. /********************************************************
  62. 函數名稱:uchar AD_read()
  63. 函數作用:讀取ADC0832轉換的數據
  64. 參數說明:無
  65. 函數返回:返回8位的數據
  66. ********************************************************/
  67. uchar AD_read()
  68. {
  69.      uchar temp = 0;
  70.      uchar temp1 = 0;
  71.      uchar temp2 = 0;
  72.      uchar i = 0;
  73.     for(i = 0; i < 8; i++)
  74.     {
  75.          ADCLK = 1;
  76.         _nop_();
  77.         _nop_();
  78.         ADCLK = 0;   //形成下降沿
  79.         _nop_();
  80.         _nop_();
  81.         if(ADDI)temp1 |= 0x01;
  82.         else temp1 |= 0x00;
  83.         temp1 = temp1 << 1;
  84.     }
  85.     for(i = 0; i < 8; i++)
  86.    {
  87.         if(ADDI)temp = 0x01;
  88.         else temp = 0x00;
  89.         temp = temp << i;
  90.         temp2 |= temp;
  91.         ADCLK = 1;
  92.         _nop_();
  93.         _nop_();
  94.         ADCLK = 0;   //形成下降沿
  95.         _nop_();
  96.         _nop_();
  97.     }
  98.     if(temp1 == temp2)
  99.     flag = 0;
  100.     return temp1;
  101. }

  102. void delay(void)//延時5ms
  103. {
  104.     unsigned char i,j;
  105.     for(i=10;i>0;i--)
  106.     for(j=248;j>0;j--);
  107. }

  108. #endif
復制代碼


ADC0832子程序.rar

955 Bytes, 下載次數: 8, 下載積分: 黑幣 -5


作者: lwf1    時間: 2018-8-14 19:46
if里面ADDI的是什么意思,temp分別代表的是什么意思
作者: 小璽    時間: 2018-11-7 22:57
親,能幫忙解釋一下嗎?新手真心理解困難
作者: 小璽    時間: 2018-11-29 15:20
lwf1 發表于 2018-8-14 19:46
if里面ADDI的是什么意思,temp分別代表的是什么意思

ADDI是數據信號輸入,temp是返回值,我是這樣理解的也不知道對不對




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人性生交大片免费看中文带字幕 | 韩日精品一区 | 伊人久久在线观看 | 日本一区二区视频 | 在线不卡 | 日韩www | 一区网站 | 国产成人艳妇aa视频在线 | 久久的色| 国产在线一区二区三区 | 婷婷精品| 一级毛片免费完整视频 | 91精品国产欧美一区二区成人 | 欧美日本一区 | 欧美日韩国产精品 | 国产视频一区二区 | 精品一区二区久久久久久久网精 | 日本三级电影在线免费观看 | 97精品国产一区二区三区 | 精品国产欧美一区二区三区成人 | 国产女人第一次做爰毛片 | 中文字幕一区二区三区在线观看 | 亚洲成人在线免费 | 黑人久久 | 一级片免费视频 | 国产在线一级片 | 国产成人精品午夜 | 毛片免费观看视频 | 成人福利视频网站 | 成人天堂噜噜噜 | 中文字幕一区二区三区精彩视频 | 嫩草懂你的影院入口 | 久久久91精品国产一区二区三区 | 精品久久电影 | 一区二区三区中文字幕 | 91在线精品视频 | 午夜视频免费网站 | 日韩国产专区 | 免费亚洲成人 | 国产视频中文字幕在线观看 | 99亚洲国产精品 |