超声波测距正确程序.doc
- 文档编号:392430
- 上传时间:2022-10-09
- 格式:DOC
- 页数:7
- 大小:28KB
超声波测距正确程序.doc
《超声波测距正确程序.doc》由会员分享,可在线阅读,更多相关《超声波测距正确程序.doc(7页珍藏版)》请在冰豆网上搜索。
/*-----------------------------------------------
内容:
通过标准程序静态显示字符
引脚定义如下:
1-VSS2-VDD3-V04-RS5-R/W6-E7-14DB0-DB715-BLA16-BLK
------------------------------------------------*/
#include
#include
sbitRS=P2^0;//定义端口
sbitRW=P2^1;
sbitEN=P2^2;
sbitecho=P1^1;//接收端
sbittrig=P1^0; //发射端
sbitBeap=P2^3;//蜂鸣器
sbitKey_Data=P2^4;//按键发射
#defineRS_CLRRS=0
#defineRS_SETRS=1
#defineRW_CLRRW=0
#defineRW_SETRW=1
#defineEN_CLREN=0
#defineEN_SETEN=1
#defineDataPortP0
unsignedcharcodeASCII[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
unsignedchardisbuff[4] ={0,0,0,0,};
unsignedlongS=0;
unsignedcharFlag;
unsignedinttime;
unsignedintt=500;
/*------------------------------------------------
uS延时函数,含有输入参数unsignedchart,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下T=tx2+5uS
------------------------------------------------*/
voidDelayUs2x(unsignedchart)
{
while(--t);
}
/*------------------------------------------------
mS延时函数,含有输入参数unsignedchart,无返回值
unsignedchar是定义无符号字符变量,其值的范围是
0~255这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
voidDelayMs(unsignedchart)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
判忙函数
------------------------------------------------*/
bitLCD_Check_Busy(void)
{
DataPort=0xFF;
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return(bit)(DataPort&0x80);
}
/*------------------------------------------------
写入命令函数
------------------------------------------------*/
voidLCD_Write_Com(unsignedcharcom)
{
while(LCD_Check_Busy());//忙则等待
RS_CLR;
RW_CLR;
EN_SET;
DataPort=com;
_nop_();
EN_CLR;
}
/*------------------------------------------------
写入数据函数
------------------------------------------------*/
voidLCD_Write_Data(unsignedcharData)
{
while(LCD_Check_Busy());//忙则等待
RS_SET;
RW_CLR;
EN_SET;
DataPort=Data;
_nop_();
EN_CLR;
}
/*------------------------------------------------
清屏函数
------------------------------------------------*/
voidLCD_Clear(void)
{
LCD_Write_Com(0x01);
DelayMs(5);
}
/*------------------------------------------------
写入字符串函数
------------------------------------------------*/
voidLCD_Write_String(unsignedcharx,unsignedchary,unsignedchar*s)
{
if(y==0)
{
LCD_Write_Com(0x80+x);//表示第一行
}
else
{
LCD_Write_Com(0xC0+x);//表示第二行
}
while(*s)
{
LCD_Write_Data(*s);
s++;
}
}
/*------------------------------------------------
写入字符函数
------------------------------------------------*/
voidLCD_Write_Char(unsignedcharx,unsignedchary,unsignedcharData)
{
if(y==0)
{
LCD_Write_Com(0x80+x);
}
else
{
LCD_Write_Com(0xC0+x);
}
LCD_Write_Data(Data);
}
/*------------------------------------------------
LCD初始化函数
------------------------------------------------*/
voidLCD_Init(void)
{
LCD_Write_Com(0x38);/*显示模式设置*/
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
LCD_Write_Com(0x08);/*显示关闭*/
LCD_Write_Com(0x01);/*显示清屏*/
LCD_Write_Com(0x06);/*显示光标移动设置*/
DelayMs(5);
LCD_Write_Com(0x0C);/*显示开及光标设置*/
}
/*-------------------------------------------------
初始化超声波测距仪,定时器,中断
---------------------------------------------------*/
voidinit()
{
echo=0;
trig=0;
Flag=1;
LCD_Write_Char(7,0,'o');
LCD_Write_Char(8,0,'k');
TMOD=0x01;//设T0为方式1
TH0=0;
TL0=0;
ET0=1;//允许T0中断
TR0=0;
EA=1;//开启总中断
}
/*------------------------------------------------
定时器0中断函数
--------------------------------------------------*/
voidtimer0()interrupt1
{
TH0=0;
TL0=0;
Flag=0;//标志位,当检测超过65ms退出等待回波,继续下一次检测,非常必要
}
/*------------------------------------------------
超声波测距仪触发模块
-------------------------------------------------*/
voidstartmodule()
{
trig=1;//15us启动一次模块
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();
trig=0;
}
/*------------------------------------------------
键盘扫描函数
--------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超声波 测距 正确 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)