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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4274|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

有關(guān)用2Y0A21紅外傳感器測(cè)量距離的程序,求幫助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:166237 發(fā)表于 2017-3-2 20:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
最近在做紅外測(cè)距實(shí)驗(yàn),用的是2Y0A21紅外傳感器,外加外置的ADC0809轉(zhuǎn)換模塊連接到單片機(jī)中,用數(shù)碼管顯示出測(cè)到的距離,程序在下面,紅外模塊和ADC的連線應(yīng)該沒有錯(cuò)誤,但是不能測(cè)到距離,數(shù)碼管總是顯示000,求大神幫助為什么不能測(cè)出距離;PS:我的單片機(jī)數(shù)碼管顯示程序是正確的,程序編譯后沒有錯(cuò)誤沒有警告
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char


  5. sbit ST  = P3^0;
  6. sbit OE  = P3^1;
  7. sbit EOC = P3^2;
  8. sbit CLK = P3^3;
  9. sbit LSA=P2^2;
  10. sbit LSB=P2^3;
  11. sbit LSC=P2^4;
  12. sbit adress_A=P1^0; //這是定義ADIN0輸入
  13. sbit adress_B=P1^1;
  14. sbit adress_C=P1^2;

  15. uchar DisplayData[8]; //數(shù)碼管顯示數(shù)組

  16. uchar code table[]={ 0x3f  , 0x06 , 0x5b , 0x4f ,0x66 , 0x6d,
  17.                        0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c,
  18.                              0x39 , 0x5e , 0x79 , 0x71} ;

  19. void delayms(uint a)        //延時(shí)函數(shù)
  20.   {
  21.      uint c,d;
  22.      for(c=a;c>0;c--)
  23.        for(d=110;d>0;d--);
  24.   }


  25. /*******************************************************************************
  26. * 函 數(shù) 名         : datapros()
  27. * 函數(shù)功能                   :AD讀取處理轉(zhuǎn)換函數(shù)
  28. * 輸    入         : temp
  29. * 輸    出         : 無
  30. *******************************************************************************/
  31. void datapros(int temp)  //數(shù)據(jù)轉(zhuǎn)換函數(shù),用來轉(zhuǎn)換由AD轉(zhuǎn)換而來的電壓值,以便讓數(shù)碼管顯示
  32. {
  33.    DisplayData[0] = 0x00;//因?yàn)閿?shù)據(jù)處理有小數(shù)點(diǎn)所以將溫度賦給一個(gè)浮點(diǎn)型變量
  34.     DisplayData[1]=table[temp/100];
  35.      DisplayData[2]=table[temp%100/10];
  36.      DisplayData[3]=table[temp%100%10];
  37. }

  38. /*******************************************************************************
  39. * 函數(shù)名         :DigDisplay()
  40. * 函數(shù)功能                 :數(shù)碼管顯示函數(shù)
  41. * 輸入           : 無
  42. * 輸出                  : 無
  43. *******************************************************************************/
  44. void DigDisplay()
  45. {
  46.         uchar i;
  47.         for(i=0;i<3;i++)
  48.         {
  49.                 switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
  50.                 {
  51.                         case(0):
  52.                                 LSA=0;LSB=0;LSC=0; break;//顯示第0位
  53.                         case(1):
  54.                                 LSA=1;LSB=0;LSC=0; break;//顯示第1位
  55.                         case(2):
  56.                                 LSA=0;LSB=1;LSC=0; break;//顯示第2位
  57.                         case(3):
  58.                                 LSA=1;LSB=1;LSC=0; break;//顯示第3位
  59.                         case(4):
  60.                                 LSA=0;LSB=0;LSC=1; break;//顯示第4位
  61.                         case(5):
  62.                                 LSA=1;LSB=0;LSC=1; break;//顯示第5位        
  63.                 }
  64.                 P0=DisplayData[3-i];//發(fā)送數(shù)據(jù)
  65.                 delayms(5); //間隔一段時(shí)間掃描        
  66.                 P0=0x00;//消隱
  67.         }               
  68. }



  69. void ADC0809 ()          //ADC0809啟動(dòng)程序
  70. {        
  71.       long int temp;
  72.         long int temp1;

  73.       adress_A=0;adress_B=0;adress_C=0;   //選擇IN0作為模擬信號(hào)輸入
  74.       ST=0;         //START下降沿時(shí)啟動(dòng)芯片,開始進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換期間保持低電平
  75.         OE=0;

  76.         delayms(10);

  77.         while(1)
  78.         {
  79.              ST=1;ST=0;
  80.              CLK=1;                     //用作AD的時(shí)鐘
  81.            CLK=0;
  82.            CLK=1;
  83.            CLK=0;                //給一個(gè)脈沖,上升沿寄存器復(fù)位,下降沿AD轉(zhuǎn)換開始
  84.              while(!EOC)
  85.              {
  86.                         CLK=1;
  87.                CLK=0;
  88.              }        //當(dāng)EOC為1時(shí),轉(zhuǎn)換結(jié)束
  89.              OE=1;                        //寄存器數(shù)據(jù)輸出到D0-D7
  90.              temp=P0;               
  91.              OE=0;                    //DO-D7復(fù)位

  92.              temp1=(temp*500)/256;        //AD值轉(zhuǎn)換成電壓值(V=AD*VREF/256)
  93. //顯示AD值
  94.            datapros(temp1); //先轉(zhuǎn)換數(shù)據(jù)
  95.              DigDisplay();
  96.         }
  97. }

  98. void main()
  99.   {
  100.           ADC0809 ();
  101.          
  102.   }

復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2017-3-3 17:03 | 只看該作者
你先把a(bǔ)d的輸入端分別接地和vcc看看 看看這時(shí)候數(shù)碼管的顯示有沒有變化
回復(fù)

使用道具 舉報(bào)

板凳
ID:166237 發(fā)表于 2017-3-4 18:31 | 只看該作者
admin 發(fā)表于 2017-3-3 17:03
你先把a(bǔ)d的輸入端分別接地和vcc看看 看看這時(shí)候數(shù)碼管的顯示有沒有變化

都只是顯示000
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 人人艹人人爽 | 91大神新作在线观看 | 日韩国产一区二区三区 | 伊人网99 | 精品国产18久久久久久二百 | 九九热这里只有精品在线观看 | 久久爱综合| 国产精品久久久久久久久久不蜜臀 | 妞干网福利视频 | 五月香婷婷 | 久草在线中文888 | 91视频麻豆 | a级在线免费观看 | 欧美精品一区二区三区在线播放 | 精品1区| 免费视频一区二区 | 超碰97人人人人人蜜桃 | 在线一区视频 | 午夜免费网站 | 2019天天干夜夜操 | 在线观看国产wwwa级羞羞视频 | 婷婷狠狠 | 精品九九 | 国产精品av久久久久久久久久 | 黄色大片在线免费观看 | 日韩在线观看视频一区 | 韩国av一区二区 | 黄色一级大片在线免费看产 | 91最新视频 | 亚洲欧美日韩一区二区 | 日韩成人在线电影 | 一区二区在线免费观看视频 | 在线婷婷 | 天堂久| 欧美日韩三级在线观看 | 91亚洲国产成人久久精品网站 | 精品久久久久久久久久久久 | 极品久久| 欧美国产精品一区二区三区 | 99精品一区二区三区 | 成人欧美一区二区三区视频xxx |