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

QQ登錄

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

搜索
查看: 1375|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

超聲波測(cè)距 很好用的

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:391355 發(fā)表于 2018-8-29 20:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//超聲波測(cè)距模塊 trig接P3^1                Echo接P3^2

#ifndef _LCD1602_DEF_
#define _LCD1602_DEF_
#include <intrins.h>  

#define uchar unsigned char
#define uint  unsigned int


//LCD1602 引腳定義 //采用 8 位并行方式,DB0~DB7 連接至 P00~P07
sbit RS=P1^2;
sbit RW=P1^1;
sbit CS=P1^0;
#define LCDDATA P2    //數(shù)據(jù)端口在 P0
//**********************************************
void Delay_xms(uint x)  //功能:延時(shí) 1 毫秒
{   
uint i,j;  
for(i=0;i<x;i++)     
for(j=0;j<122;j++);
}
//******************************************
void Delay_xus(uint t)   //功能:12us 延時(shí)      
{     
for(;t>0;t--)   
{   _nop_();   
}
}
//*************************************
void LCD_en(void)    //控制 LCD 寫(xiě)時(shí)序   
{   
CS=1;    //EN 端產(chǎn)生一個(gè)高電平脈沖,控制 LCD 寫(xiě)時(shí)序      
Delay_xus(20);   
CS=0;      
Delay_xus(20);
}   //**************************************************
void WR_Command(uchar command)  //寫(xiě)指令函數(shù)//寫(xiě)指令函數(shù)
{   
RS=0;   
RW=0;   
CS=1;

LCDDATA=command;   
LCD_en();//寫(xiě)入指令數(shù)據(jù)
}

//*******************************************
void WR_Data(uchar Wdata)  //寫(xiě)數(shù)據(jù)函數(shù)
{   
RS=1;   
RW=0;   
CS=1;   
LCDDATA=Wdata;   
LCD_en();//寫(xiě)入數(shù)據(jù)
}
//********************************************************
void SET_XY(uchar X,uchar Y)  //字符顯示初始地址設(shè)置
{   
uchar address;   
if(Y==0)     
address=0x80+X;//Y=0,表示在第一行顯示,地址基數(shù)為 0x80   
else      
address=0xc0+X;//Y 非 0 時(shí),表時(shí)在第二行顯示,地址基數(shù)為 0xC0   
WR_Command(address);//寫(xiě)指令,設(shè)置顯示初始地址
}
//***********************************************
void WR_str(uchar X,uchar Y,uchar *s)  //在第 X 行 Y 列開(kāi)始顯示,指針*S 所指向的字符串
{   
SET_XY(X,Y);   //設(shè)置初始字符顯示地址   

while(*s)      //逐次寫(xiě)入顯示字符,直到最后一個(gè)字符"/0"   
{     
WR_Data(*s);   //寫(xiě)入當(dāng)前字符并顯示   
s++;          //地址指針加 1,指向下一個(gè)待寫(xiě)字符   
}
}
//*****************************************************
void WR_char(uchar X,uchar Y,uchar Wdata)  //在第 X行 Y 列開(kāi)始顯示 Wdata 所對(duì)應(yīng)的單個(gè)字 符
{   
SET_XY(X,Y);//寫(xiě)地址   
WR_Data(Wdata);//寫(xiě)入當(dāng)前字符并顯示
}
//***********************************
void LCD_clear(void)  //清屏函數(shù)
{   
WR_Command(0x01);
Delay_xms(5); }
//*********************************************
void LCD_init(void) //顯示屏初始化函數(shù)
{   
WR_Command(0x38); //8bit interface,2line,5*7dots  
Delay_xms(5);  
WR_Command(0x38);   
Delay_xms(5);  
WR_Command(0x38);  

WR_Command(0x08); //關(guān)顯示,不顯光標(biāo),光標(biāo)不閃爍  
WR_Command(0x01); //清屏  
Delay_xms(5);   
WR_Command(0x04); //寫(xiě)一字符,整屏顯示不移動(dòng)  
Delay_xms(5);  
WR_Command(0x0C); //開(kāi)顯示,光標(biāo)、閃爍都關(guān)閉
  }

#endif         

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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