找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于单片机的1602超声波显示

[复制链接]
跳转到指定楼层
楼主
ID:215891 发表于 2017-6-29 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define LCD1602_DATAPINS P0

sbit LCD1602_E=P3^4;
sbit LCD1602_RW=P3^6;
sbit LCD1602_RS=P3^5;
sbit led = P1^0;
sbit TX = P1^2;       //TRIG触发控制信号
sbit RX = P1^1;       //echo

uint time = 0;                 //定义时间
unsigned long S = 0;          //距离
bit flag = 0;                //定义一个标志位
uchar disdat[4] = {0,0,0,0,};     //定义一个数组

void delay(uchar i)           //延时函数
{
    uchar x,y;
    for (x = i;x > 0;x--)
        for(y = 114;y > 0;y--);
}

/*******************************************************************************
* 函 数 名         : Lcd1602_Delay1ms
* 函数功能           : 延时函数,延时1ms
* 输    入         : c
* 输    出         : 无
* 说    名         : 该函数是在12MHZ晶振下,12分频单片机的延时。
*******************************************************************************/
void Lcd1602_Delay1ms(uint c)   //1602延时  误差 0us
{
    uchar a,b;
    for (; c>0; c--)
    {
         for (b=199;b>0;b--)
         {
              for(a=1;a>0;a--);
         }      
    }
        
}

/*******************************************************************************
* 函 数 名         : LcdWriteCom
* 函数功能           : 向LCD写入一个字节的命令
* 输    入         : com
* 输    出         : 无
*******************************************************************************/
#ifndef     LCD1602_4PINS     //当没有定义这个LCD1602_4PINS时
void LcdWriteCom(uchar com)      //写入命令
{
    LCD1602_E = 0;     //使能
    LCD1602_RS = 0;       //选择发送命令
    LCD1602_RW = 0;       //选择写入
   
    LCD1602_DATAPINS = com;     //放入命令
    Lcd1602_Delay1ms(1);        //等待数据稳定

    LCD1602_E = 1;              //写入时序
    Lcd1602_Delay1ms(5);      //保持时间
    LCD1602_E = 0;
}
#else
void LcdWriteCom(uchar com)      //写入命令
{
    LCD1602_E = 0;     //使能清零
    LCD1602_RS = 0;     //选择写入命令
    LCD1602_RW = 0;     //选择写入

    LCD1602_DATAPINS = com;    //由于4位的接线是接到P0口的高四位,所以传送高四位不用改
    Lcd1602_Delay1ms(1);

    LCD1602_E = 1;     //写入时序
    Lcd1602_Delay1ms(5);
    LCD1602_E = 0;


1602超声波显示.rar

25.5 KB, 下载次数: 12, 下载积分: 黑币 -5

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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