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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1810|回復: 1
打印 上一主題 下一主題
收起左側

51單片機跟超聲波測距硬件電路沒有問題,數碼管顯示為0

[復制鏈接]
跳轉到指定樓層
樓主
硬件電路沒有問題,程序出現了問題,數碼管顯示為0 天使了一下午也沒有解決 望大神們解答!!!!

  1. #include<reg51.h>
  2. typedef unsigned char u8;
  3. typedef unsigned int u16;


  4. u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

  5. u8 time,distance;
  6. bit flag=0;                  //中斷溢出標志
  7. u8 pros[3];
  8. void delay(u16 i)
  9. {
  10.   while(i--);
  11. }

  12. void delay20us(void)   //誤差 -0.46875us
  13. {
  14.     unsigned char a,b;
  15.     for(b=3;b>0;b--)
  16.         for(a=1;a>0;a--);
  17. }

  18. sbit LSA=P2^2;
  19. sbit LSB=P2^3;
  20. sbit LSC=P2^4;

  21. sbit TRIG=P2^5;
  22. sbit ECHO=P2^6;
  23. void Usair()                 //中斷
  24. {
  25.   TMOD=0X01;                 //定時器0
  26.   TH0=0;
  27.   TL0=1;
  28.   EA=1;
  29.   TR0=1;

  30. }



  31. void Count()                           //計算距離
  32. {
  33.    time=TH0*256+TL0;
  34.    TH0=0;
  35.    TL0=0;
  36.    distance=(time*1.87)/100;


  37. }


  38. void Digplay()                                                                  //數碼管動態掃描
  39. {
  40.     u8 i;
  41.         for(i=0;i<8;i++)
  42.         {
  43.           switch(i)
  44.         {
  45.            case(0):LSA=0;LSB=0;LSC=0;break;
  46.            case(1):LSA=1;LSB=0;LSC=0;break;
  47.          

  48.         }
  49.      P1=pros[i];
  50.          delay(100);
  51.          P1=0X00;
  52.         }
  53. }

  54. void KeyDown()                                                                  //數碼管顯示
  55. {
  56.   if(flag==1)
  57.   {
  58.     flag=0;
  59.     pros[0]=0x40;
  60.         pros[1]=0x40;
  61.   }
  62.   pros[0]=smgduan[distance/10];
  63.   pros[1]=smgduan[distance%10];

  64. }



  65. void star_Ch()                                                                //打開超聲波測距模塊
  66. {
  67.     TRIG=1;
  68.         delay20us();
  69.         TRIG=0;

  70. }
  71. void main()
  72. {
  73.    Usair();
  74.    while(1)
  75.    {
  76.     star_Ch();
  77.         while(!ECHO);
  78.         TR0=1;
  79.         while(ECHO)
  80.         TR0=0;
  81.     delay(1000);
  82.         Digplay();  
  83.           KeyDown();
  84.    }

  85. }
  86. void Init() interrupt 1
  87. {
  88.     TH0=0;
  89.         TL0=0;
  90.           flag=1;
  91. }
復制代碼


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

使用道具 舉報

沙發
ID:212177 發表于 2018-2-8 07:44 來自手機 | 只看該作者
沒有看懂你的程序,count函數在主程序沒有使用,定時器中斷里吧定時器清零了,那么你的程序就是使用查詢定時器發得到距離。你的顯示部分沒有體現出數碼管的掃描,LSB和LSC沒有使用過,沒有看懂你的i掃描了0到8結果只取了0到3是做什么用的?我想說,新手,你先用簡單的程序把數碼管驅動好再來吃蛋糕吧!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频亚洲| 狠狠涩 | 成人毛片在线视频 | av久久| 国产在线观看一区二区 | 久久国产成人 | 日韩中文字幕一区 | 91在线网站 | 亚洲va在线va天堂va狼色在线 | 精品欧美一区二区三区久久久 | 欧美精品福利 | 精品国产一区二区三区性色av | avav在线看 | 久久精品亚洲一区二区三区浴池 | 日韩亚洲一区二区 | 久精品久久 | 国产成人jvid在线播放 | 欧美在线观看免费观看视频 | 偷拍第一页 | 一区二区三区高清在线观看 | 中文字幕一区二区三区日韩精品 | 99精品国产一区二区青青牛奶 | 日韩成人高清在线 | 羞羞的视频免费在线观看 | 亚洲第1页 | 91精品一区二区三区久久久久久 | 91精品国产91 | 欧美日韩手机在线观看 | 成人激情视频网 | 日日夜夜天天久久 | 久久一区二区三区四区五区 | 中文字幕一区二区三区四区 | 国色天香成人网 | 欧美极品在线观看 | 一区二区三区视频免费观看 | 欧美日韩三级在线观看 | 一区二区在线不卡 | 国产午夜精品久久久久免费视高清 | 91麻豆蜜桃一区二区三区 | 国产精品久久久久久久一区二区 | 婷婷狠狠 |