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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

超聲波HC-SR04與STC89C52RC用1602顯示

[復制鏈接]
跳轉到指定樓層
樓主
看著大家都再使用超聲波模塊,樓主也想試試,看效果怎么樣,說干就干。

單片機源程序如下:
  1. #include<reg52.h>
  2. #define LCD1602_DB  P0      
  3. #define  u8 unsigned  char
  4. #define  u16  unsigned   int
  5. sbit LCD1602_RS = P2^6;
  6. sbit LCD1602_EN = P2^5;         
  7. sbit LCD1602_RW = P2^7;
  8. sbit TX     =P1^3;
  9. sbit RX     =P1^4;

  10. bit  flag   =0;
  11. u16  time   =0;
  12. int  S      =0;
  13. int  H,L;
  14. u8 list[]={"0.00M"};
  15. u8 code asc[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
  16. void Read_Busy()            
  17. {
  18.     u8 sta;      
  19.     LCD1602_DB = 0xff;
  20.     LCD1602_RS = 0;
  21.     LCD1602_RW = 1;
  22.     do
  23.     {
  24.         LCD1602_EN = 1;
  25.         sta = LCD1602_DB;
  26.         LCD1602_EN = 0;   
  27.     }while(sta & 0x80);
  28. }

  29. void Lcd1602_Write_Cmd(u8 cmd)      
  30. {
  31.     Read_Busy();
  32.     LCD1602_RS = 0;
  33.     LCD1602_RW = 0;
  34.     LCD1602_DB = cmd;
  35.     LCD1602_EN = 1;
  36.     LCD1602_EN = 0;   
  37. }

  38. void Lcd1602_Write_Data(u8 dat)   
  39. {
  40.     Read_Busy();
  41.     LCD1602_RS = 1;
  42.     LCD1602_RW = 0;
  43.     LCD1602_DB = dat;
  44.     LCD1602_EN = 1;
  45.     LCD1602_EN = 0;
  46. }

  47. void LcdSetCursor(u8 x,u8 y)   
  48. {
  49.     u8 addr;
  50.     if(y == 0)
  51.         addr = 0x00 + x;
  52.     else
  53.         addr = 0x40 + x;
  54.    
  55.     Lcd1602_Write_Cmd(addr|0x80);
  56. }

  57. void LcdShowStr(u8 x,u8 y,u8 *str)      
  58. {
  59.     LcdSetCursor(x,y);      
  60.     while(*str != '\0')
  61.     {
  62.         Lcd1602_Write_Data(*str++);
  63.     }
  64. }

  65. void InitLcd1602()               
  66. {
  67.     Lcd1602_Write_Cmd(0x38);     
  68.     Lcd1602_Write_Cmd(0x0c);
  69.     Lcd1602_Write_Cmd(0x06);
  70.     Lcd1602_Write_Cmd(0x01);     
  71. }

  72. void Delay1ms()                //@12.000MHz
  73. {
  74.    unsigned char i, j;

  75.          i = 2;
  76.          j = 239;
  77.          do
  78.          {
  79.                    while (--j);
  80.          } while (--i);
  81. }


  82. void Delay(u16 t)               
  83. {
  84.          while (--t)
  85.          Delay1ms();       
  86. }

  87. void Conut(void)
  88. {
  89.    time=TH0*256+TL0;
  90.          TH0=0;
  91.          TL0=0;
  92.          S=(time*1.7)/100;  
  93.    if (S<35)S=S+1;   
  94.    list[0]=asc[S%1000/100];
  95.    list[1]=asc[10];
  96.    list[2]=asc[S%100/10];
  97.    list[3]=asc[S%10];
  98.    list[4]=asc[12];
  99. }

  100. void  StartModule()                         
  101. {
  102.    TX=1;                                         
  103.    Delay(800);
  104.    TX=0;
  105. }

  106. void Timer0Init(void)                //@12.0000MHz
  107. {
  108.    TMOD &= 0xF0;                 
  109.          TMOD |= 0x01;                 
  110.          TL0 = 0;                 
  111.          TH0 = 0;                 
  112.          TF0 = 0;               
  113. }

  114. void main()
  115. {
  116.    Timer0Init();
  117.    InitLcd1602();
  118.    H=200;
  119.    L=100;
  120.    LcdShowStr(5,0,list);
  121.    while(1)
  122.    {
  123.       StartModule();
  124.             while(!RX);
  125.             TR0=1;                            
  126.             while(RX);                       
  127.             TR0=0;       
  128.       Conut();       
  129.       LcdShowStr(5,0,list);
  130.          }
  131. }
復制代碼

工程文件下載:
超聲波HC-SR04與STC89C52RC用1602顯示.rar (34.27 KB, 下載次數: 49)

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

使用道具 舉報

沙發
ID:506248 發表于 2021-5-1 16:35 | 只看該作者
雖然程序調通了,但說實話感覺準確性不是很高,樓主水平有限僅供大家參考,網上這類程序還是蠻多的。

回復

使用道具 舉報

板凳
ID:506248 發表于 2021-5-1 16:37 | 只看該作者
我們畫電路圖,LCD1602并沒有畫,根據源程序應該可以知道是接在那些IO上的。


回復

使用道具 舉報

地板
ID:942433 發表于 2021-6-22 18:08 | 只看該作者
能加你 幫我過一個設計嗎 大佬
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲精品国产精品紫薇 | 国产精品一区在线 | 亚洲精品观看 | 精品欧美 | 天堂在线1 | 日韩精品久久 | 羞羞色在线观看 | 国产99视频精品免视看9 | 黄色网页在线观看 | 色免费视频 | 国产欧美在线 | 在线欧美一区 | 国产羞羞视频在线观看 | 国产精品久久av | 99久久99| 免费色网址 | 中文字幕在线观看av | 久久久成人精品 | 日韩在线免费 | 亚洲精品在线看 | 中文字幕亚洲精品 | 免费中文字幕日韩欧美 | av天天看| 国产97色| 久久一二 | 日韩一级电影免费观看 | 一区二区三区在线免费观看视频 | 日韩在线中文 | 天天综合91 | 成人在线观看免费 | 超碰成人免费 | 久久人爽 | 久久久亚洲 | 国产欧美日韩一区二区三区在线观看 | 亚洲精品成人免费 | www国产成人免费观看视频 | 日本一区二区视频 | 青草福利| 91精品国产91久久久久久最新 | 国产高清视频在线观看 | 逼逼网|