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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7475|回復: 5
收起左側

STC15單片機超聲波測距+LCD1602顯示+串口調試+程序詳細解釋

[復制鏈接]
ID:415338 發(fā)表于 2018-10-30 10:10 | 顯示全部樓層 |閱讀模式
基于單片機STC15單片機的超聲波測距,采用超聲波模塊,
運用定時器計算波時,
采用串口加以調試,
運用LCD1602顯示
精確0.01m
測量距離在此范圍內:4m--0.01m
大于4m后,將產生誤差。
詳細請下載附件

單片機源程序如下:
  1. #include "super.h"
  2. #include<intrins.h>
  3. #include "stdio.h"


  4. float  High_Time=0;          //高電平時間
  5. float  Ultrasonic_Distance=0;//超聲波測試的距離
  6. void Delay15us()                //@24.000MHz
  7. {
  8.         unsigned char i;

  9.         _nop_();
  10.         _nop_();
  11.         i = 87;
  12.         while (--i);
  13. }



  14. void Timer0Init(void)                //20微秒@24.000MHz
  15. {
  16.         AUXR &= 0x7F;                //定時器時鐘12T模式
  17.         TMOD &= 0xF0;                //設置定時器模式
  18.         TL0 = 0x00;                //設置定時初值
  19.         TH0 = 0x00;                //設置定時初值
  20.         TF0 = 0;                //清除TF0標志
  21.         
  22.         TR0 = 0;                //定時器0開始計時
  23.         ET0 = 0;
  24.         EA = 1;                   //使能

  25. }


  26. //void Timer1Init(void)                //20毫秒@24.000MHz
  27. //{
  28. //        AUXR &= 0xBF;                //定時器時鐘12T模式
  29. //        TMOD &= 0x0F;                //設置定時器模式
  30. //        TL1 = 0xC0;                //設置定時初值
  31. //        TH1 = 0x63;                //設置定時初值
  32. //        TF1 = 0;                //清除TF1標志
  33. //        TR1 = 1;                //定時器1開始計時
  34. //        
  35. //        ET1 = 1;
  36. //        EA = 1;
  37. //}

  38. //void UartInit(void)                //9600bps@24.000MHz
  39. //{
  40. //        SCON = 0x50;                //8位數據,可變波特率
  41. //        AUXR |= 0x01;                //串口1選擇定時器2為波特率發(fā)生器
  42. //        AUXR &= 0xFB;                //定時器2時鐘為Fosc/12,即12T
  43. //        T2L = 0xCC;                //設定定時初值
  44. //        T2H = 0xFF;                //設定定時初值
  45. //        TI=1;                        //發(fā)送
  46. //        RI=0;                        //接收
  47. //        ES=0;
  48. //        AUXR |= 0x10;                //啟動定時器2
  49. //}


  50. void Ultrasonic_Dispose()//超聲波處理
  51. {
  52.         Trig=1;
  53.         Delay15us();
  54.         Trig=0;
  55.         while(!Echo);
  56.         TL0=0;
  57.         TH0=0;
  58.         TR0=1;
  59.         while(Echo);
  60.         TR0=0;
  61.         High_Time=(TH0*256+TL0)/2;           //高電平時間High_time毫秒
  62.         Ultrasonic_Distance=High_Time*0.017;//00.0
  63. }


  64. void Ultrasonic_Display()//超聲波顯示處理
  65. {
  66.         Ultrasonic_Dispose();//超聲波處理
  67.         Ultrasonic_Distance*=10;
  68.         string2[4] = (unsigned long)Ultrasonic_Distance/1000+'0';
  69.         string2[5] = (unsigned long)Ultrasonic_Distance/100%10+'0';
  70.         string2[6] = (unsigned long)Ultrasonic_Distance/10%10+'0';
  71.         string2[8] = (unsigned long)Ultrasonic_Distance%10+'0';
  72.         
  73.         LCD_Write_Char(4,1,string2[4]);
  74.     LCD_Write_Char(5,1,string2[5]);
  75.         LCD_Write_Char(6,1,string2[6]);
  76.         LCD_Write_Char(8,1,string2[8]);
  77.         printf("%f\n",Ultrasonic_Distance/10);
  78. }


  79. //void Timer1_Rountine(void) interrupt 3
  80. //{
  81. //        static unsigned int t;
  82. //        t++;
  83. //        if(t==25)
  84. //        {
  85. //                t=0;
  86. //                Ultrasonic_Dispose();
  87. //        }
  88. //        
  89. //}
復制代碼
  1. #include "main.h"


  2. void main(void)
  3. {
  4.         GPIO_Init();//IO初始化
  5.         Timer0Init();
  6. //        Timer1Init();
  7. //        UartInit();
  8.         LCD_Init();//1602初始化
  9.         while(1)
  10.         {
  11.                   
  12.            Ultrasonic_Display();//超聲波顯示處理
  13.            delayMS(500);
  14.         }
  15. }



復制代碼

全部資料51hei下載地址(提醒:代碼有錯誤,大家不要下載):
超聲波測距 串口顯示 詳細解析.rar (58.86 KB, 下載次數: 171)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:549174 發(fā)表于 2019-6-4 14:40 | 顯示全部樓層
代碼有錯誤?
回復

使用道具 舉報

ID:433444 發(fā)表于 2019-8-7 20:22 | 顯示全部樓層
程序有錯誤,審核不合格
回復

使用道具 舉報

ID:433444 發(fā)表于 2019-8-7 20:23 | 顯示全部樓層

有錯誤、
回復

使用道具 舉報

ID:655534 發(fā)表于 2020-3-28 19:36 | 顯示全部樓層
代碼好像有問題
回復

使用道具 舉報

ID:361216 發(fā)表于 2022-10-24 19:09 | 顯示全部樓層
不錯不錯,下載下來學習一下。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产aⅴ精品一区二区 免费观看av | 亚洲第1页| 日一日操一操 | 国产午夜精品久久久久免费视高清 | 欧美成年人视频在线观看 | 日本三级电影在线免费观看 | 黄网免费 | 在线看片国产精品 | 国产综合久久久久久鬼色 | 国产精品久久久久久52avav | 亚洲精品一区中文字幕乱码 | 91高清在线 | 久久伊人一区 | 国产九九av | 国产视频一区二区在线观看 | 欧美激情精品久久久久久 | 三级成人在线 | 一区二区成人 | 热久久久 | 免费高清av | 久草热播 | 在线日韩不卡 | 久久精品小视频 | 国产精品久久久久久婷婷天堂 | 久久在视频 | 日韩一区二区三区在线 | 高清国产一区二区 | 成人免费看电影 | 色综合99 | av在线一区二区三区 | 欧美电影免费观看高清 | 欧美亚洲国语精品一区二区 | 91黄在线观看 | 精品久久久久久久久久 | 中文字幕第十页 | 国产98色在线 | 日韩 | 欧美一级片在线观看 | 中文字幕日韩欧美一区二区三区 | 一级毛片在线播放 | 亚洲国产成人精品女人久久久 | 欧美一级欧美三级在线观看 |