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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于單片機最小系統(tǒng)板的超聲波測距程序與PCB原理圖

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:686011 發(fā)表于 2020-10-3 22:26 | 只看該作者 |只看大圖 回帖獎勵 |正序瀏覽 |閱讀模式
之前寫的超聲波波測距,超聲波模塊是HC-SR04,LCD1602顯示。
超聲波模塊HC-SR04簡介以及編程附帶PCB板,
程序有一點點小bug,測距時數(shù)據(jù)變化太快,不能穩(wěn)定,如果有高手的話希望能給改改!!

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
main.c
  1. #include "reg52.h"
  2. #include "lcd1602.h"
  3. #include "lcd1602.c"
  4. #include "intrins.h"
  5. #define uchar unsigned char
  6. #define uint unsigned int

  7. sbit trig=P2^0;
  8. sbit echo=P2^1;

  9. uint number,dist,numbtime,ii;
  10. uchar shia,fen,miao;
  11. uchar code lcd[]="0123456789";
  12. uchar code cm[]="cm";

  13. void init()                //定時器0初始化
  14. {
  15.         TMOD=0x01;        //定時器0,工作方式1
  16.         TH0=0;
  17.         TL0=0;
  18.         TF1=0;
  19.         EA=1;
  20.         ET0=1;
  21. }

  22. void time()
  23. {
  24.         trig=1;
  25.         delay(1);
  26.         trig=0;
  27.         while(!echo);        //接收到返回波
  28.         TR0=1;                //開定時器0
  29.         while(echo);
  30.         TR0=0;                //關(guān)定時器0

  31.         number=TH0*256+TL0;
  32.         for(ii=number;ii<=40000;ii++);
  33.         TH0=0;
  34.         TL0=0;
  35.         number=number*12/11.0592;        //us
  36.         dist=number*0.17;        // mm         0.017(cm)
  37. }

  38. void main()
  39. {
  40.         uchar i;
  41.         lcd_init();
  42.         init();
  43.         while(1)
  44.         {
  45.                 time();
  46.                 lcd_com(0x80);
  47.                 lcd_dat(lcd[dist/1000]);
  48.                 lcd_dat(lcd[dist%1000/100]);
  49.                 lcd_dat(lcd[dist%100/10]);
  50.                 lcd_dat('.');
  51.                 lcd_dat(lcd[dist%10]);
  52.                 for(i=0;i<2;i++)
  53.                 {
  54.                         lcd_dat(cm[i]);
  55.                 }
  56.         }
  57. }
復(fù)制代碼




lcd1602.c
  1. #include "reg52.h"
  2. #define uchar unsigned char

  3. sbit lcden=P2^7;        //定義lcd1602使能端口
  4. sbit lcdrs=P2^6;        //定義lcd1602數(shù)據(jù)/命令選擇端口(H/L)
  5. sbit lcdrw=P2^5;        //定義lcd1602讀/寫端口(H/L)

  6. //sbit lcden=P1^7;        //定義lcd1602使能端口
  7. //sbit lcdrs=P1^5;        //定義lcd1602數(shù)據(jù)/命令選擇端口(H/L)
  8. //sbit lcdrw=P1^6;        //定義lcd1602讀/寫端口(H/L)

  9. void delay(uchar z)
  10. {
  11.         uchar x,y;
  12.         for(x=z;x>0;x--)
  13.                 for(y=110;y>0;y--);
  14. }

  15. void lcd_com(uchar com)                //lcd1602命令發(fā)送函數(shù)(位)
  16. {
  17.         lcdrs=0;
  18.         lcdrw=0;
  19.         P0=com;
  20.         delay(5);
  21.         lcden=1;
  22.         delay(5);
  23.         lcden=0;
  24. }

  25. void lcd_dat(uchar dat)                //lcd1602數(shù)據(jù)發(fā)送函數(shù)
  26. {
  27.         lcdrs=1;
  28.         lcdrw=0;
  29.         P0=dat;
  30.         delay(5);
  31.         lcden=1;
  32.         delay(5);
  33.         lcden=0;
  34. }

  35. void lcd_init()                //lcd1602初始化
  36. {
  37.         lcden=0;
  38.         lcd_com(0x38);
  39.         lcd_com(0x0c);
  40.         lcd_com(0x06);
  41.         lcd_com(0x01);
  42. }
復(fù)制代碼


lcd1602.h
  1. #ifndef __LCD1602_H_
  2. #define __LCD1602_H_
  3. #define uchar unsigned char

  4. void delay(uchar z);
  5. void lcd_init();                //lcd1602初始化
  6. void lcd_com(uchar com);                //lcd1602命令發(fā)送函數(shù)(位)
  7. void lcd_dat(uchar dat);                //lcd1602數(shù)據(jù)發(fā)送函數(shù)

  8. #endif
復(fù)制代碼


全部資料51hei下載地址:
超聲波電路板.7z (573.81 KB, 下載次數(shù): 33)
超聲波測距.zip (29.07 KB, 下載次數(shù): 22)

評分

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

查看全部評分

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

使用道具 舉報

樓主
ID:851949 發(fā)表于 2020-11-30 19:49 | 只看該作者

正好要做這個,謝謝大神
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区在线 | 涩涩导航 | 久久久久免费观看 | 1级毛片| 国产激情一区二区三区 | 中文字幕在线观 | 综合网中文字幕 | 亚洲一区二区三区免费在线观看 | 精品视频一区二区三区 | 九九热这里只有精品在线观看 | 草草视频在线观看 | 欧美日韩国产中文 | 亚洲综合一区二区三区 | 亚洲国产精品人人爽夜夜爽 | av免费网站在线观看 | 日韩精品一区二区三区视频播放 | 91大神新作在线观看 | 成人性视频免费网站 | 国产免费福利小视频 | 久久成人综合 | 亚洲区一区二 | www.色.com| 成人免费观看视频 | 91原创视频 | 亚洲先锋影音 | 亚洲毛片 | 久久久久久久久久久高潮一区二区 | 91精品国产综合久久久久久蜜臀 | 日韩中文字幕在线 | 精品国产免费一区二区三区演员表 | 国产精品成人一区二区三区 | 久久久久久99| av大全在线| 国产精品色 | 日韩精品在线观看免费 | 国产999精品久久久久久 | 6080yy精品一区二区三区 | 免费看一级毛片 | 日韩精品一区二区三区中文在线 | 国产精品免费av | 欧美日韩18|