找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1388|回復(fù): 0
收起左側(cè)

基于單片機(jī)的1602超聲波顯示

[復(fù)制鏈接]
ID:215891 發(fā)表于 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觸發(fā)控制信號(hào)
sbit RX = P1^1;       //echo

uint time = 0;                 //定義時(shí)間
unsigned long S = 0;          //距離
bit flag = 0;                //定義一個(gè)標(biāo)志位
uchar disdat[4] = {0,0,0,0,};     //定義一個(gè)數(shù)組

void delay(uchar i)           //延時(shí)函數(shù)
{
    uchar x,y;
    for (x = i;x > 0;x--)
        for(y = 114;y > 0;y--);
}

/*******************************************************************************
* 函 數(shù) 名         : Lcd1602_Delay1ms
* 函數(shù)功能           : 延時(shí)函數(shù),延時(shí)1ms
* 輸    入         : c
* 輸    出         : 無(wú)
* 說(shuō)    名         : 該函數(shù)是在12MHZ晶振下,12分頻單片機(jī)的延時(shí)。
*******************************************************************************/
void Lcd1602_Delay1ms(uint c)   //1602延時(shí)  誤差 0us
{
    uchar a,b;
    for (; c>0; c--)
    {
         for (b=199;b>0;b--)
         {
              for(a=1;a>0;a--);
         }      
    }
        
}

/*******************************************************************************
* 函 數(shù) 名         : LcdWriteCom
* 函數(shù)功能           : 向LCD寫(xiě)入一個(gè)字節(jié)的命令
* 輸    入         : com
* 輸    出         : 無(wú)
*******************************************************************************/
#ifndef     LCD1602_4PINS     //當(dāng)沒(méi)有定義這個(gè)LCD1602_4PINS時(shí)
void LcdWriteCom(uchar com)      //寫(xiě)入命令
{
    LCD1602_E = 0;     //使能
    LCD1602_RS = 0;       //選擇發(fā)送命令
    LCD1602_RW = 0;       //選擇寫(xiě)入
   
    LCD1602_DATAPINS = com;     //放入命令
    Lcd1602_Delay1ms(1);        //等待數(shù)據(jù)穩(wěn)定

    LCD1602_E = 1;              //寫(xiě)入時(shí)序
    Lcd1602_Delay1ms(5);      //保持時(shí)間
    LCD1602_E = 0;
}
#else
void LcdWriteCom(uchar com)      //寫(xiě)入命令
{
    LCD1602_E = 0;     //使能清零
    LCD1602_RS = 0;     //選擇寫(xiě)入命令
    LCD1602_RW = 0;     //選擇寫(xiě)入

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

    LCD1602_E = 1;     //寫(xiě)入時(shí)序
    Lcd1602_Delay1ms(5);
    LCD1602_E = 0;


1602超聲波顯示.rar

25.5 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表