标题: 超声波测距5100液晶显示 [打印本页]

作者: 挖煤的码农    时间: 2017-8-3 17:55
标题: 超声波测距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);
  }
}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1