找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1418|回复: 0
打印 上一主题 下一主题
收起左侧

超声波测距5100液晶显示

[复制链接]
跳转到指定楼层
楼主


无聊写的简易超声波C51源程序



#include <reg52.h>
#include <ultrasonic.h>
sbit Trig = P1^1;  //RX
sbit Echo = P1^2;  //TX
sbit Test = P1^3;  //测试输出IO
unsigned char flag;
unsigned int Time_sum; //距离转换变量
unsigned int S;
/****************************************/
        /**--- 不精准的延时 ---**/
/****************************************/
void Delay_us(void)   
{
    unsigned int a = 5550;
    while(--a);
}
/*****************************************/
         /**--- 发出脉冲 ---**/
/*****************************************/
void Pulse(void)
{
  Trig = 1;     //要求10us以上的TTL脉冲
  Delay_us();
  Trig = 0;
}
/*****************************************/
         /**--- 计算函数 ---**/
/*****************************************/
void Count_num(void)
{
  Time_sum = TH0 * 256 + TL0;
  TH0 = 0;
  TL0 = 0;
  S = (Time_sum * 1.56672)/100;  //计算得cm
  if(S>200||S<2)  {Test = 0; }
  else {Test = 1; }
}
/******************************************/
        /**--- 回向信号输出 ---**/
/******************************************/
void Response(void)
{
  Pulse();
  while(!Echo);
  TR0 = 1;
  while(Echo);    //等待并计数
  TR0 = 0;
  Count_num();    //计算测量结果
}
/*****************************************/
         /**--- 定时器初始化 ---**/
/*****************************************/
void Time_init(void)
{
  TMOD |= 0x01;
  TH0 = 0;
  TL0 = 0;
  EA = 1;
  ET0 = 1;
  TR0 = 0;
}
/******************************************/
       /**--- 中断服务函数 ---**/
/******************************************/
void Interrupt_0(void) interrupt 1
{
  flag = 1;       //中断溢出标志
}
/************************************/
extern unsigned int S;
void Response(void);   //回响信号
void Time_init(void);
/**************************************************************************************/
/* @file    main.c
/* @author  huahsi
/* @date    2017-2-24
/* @brief   超声波测距程序
/**************************************************************************************/
/*
/*  超声波模块与单片机IO连接
/*  Trig  ----> P1^1
/*  Echo  ----> P1^2
/*  
/*  5110液晶连接IO
/*  RST   ----> P2^4
/*  CE    ----> P2^3
/*  DC    ----> P2^2
/*  Din   ----> P2^1
/*  Clk   ----> P2^0
/*  Vcc   ---->电源VCC
/*  Bl    ---->电源的VCC
/*  Gnd   ---->电源GND
/***************************************************************************************/
#include <lcd_5110.h>
#include <ultrasonic.h>
void main(void)
{
  Time_init();
  LCD5510_Init();
  LCD_showsh(0,0,"创新实验室");
  LCD_showsh(0,1,"超声波检测");
  while(1)
  {
    Response();
LCD_clr_row(2,4);
LCD_printn(2,4,S);
  }
}

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表