资源简介
超声波测距并LCD1602上显示距离,蜂鸣器发出的声音频率判断距离大小。
代码片段和文件信息
#include
#include
typedef unsigned int u16; //对数据类型进行声明定义
#define uint unsigned int
#define uchar unsigned char
sbit rs=P2^6; //1602的数据/指令选择控制线
sbit rw=P2^5; //1602的读写控制线
sbit en=P2^7; //1602的使能控制线
sbit trig=P1^0; //超声波测距模块Trig
sbit echo=P1^1; //超声波测距模块Echo
sbit beep=P1^5; // 蜂鸣器连接端
uchar flag=1; //触发信号标志位//
uchar count; //中断累加变量
long int distance; //测量所得距离
unsigned char code table[ ]={“0123456789“}; //定义字符数组显示数字
/*------------------------------------------------
延时函数
------------------------------------------------*/
void delay(uint n)
{
uint xy;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
/*---延时函数---*/
void delay1(u16 i)
{
while(i--);
}
/*------------------------------------------------
延时函数
------------------------------------------------*/
void delayt(uint x)
{
uchar j;
while(x-- > 0)
{
for(j = 0;j < 125;j++)
{
;
}
}
}
/*------------------------------------------------
1602写命令函数
------------------------------------------------*/
void lcd_wcom(uchar com)
{
rs=0; //选择指令寄存器
rw=0; //选择写
P0=com; //把命令字送入P0
delay(5); //延时一小会儿,让1602准备接收数据
en=1; //使能线电平变化,命令送入1602的8位数据口这点非常重要
en=0;
}
/*------------------------------------------------
1602写数据函数
------------------------------------------------*/
void lcd_wdat(uchar dat)
{
rs=1; //选择数据寄存器
rw=0; //选择写
P0=dat; //把要显示的数据送入P0
delay(5); //延时一小会儿,让1602准备接收数据也就是检测忙信号,这点非常重要。
en=1; //使能线电平变化,数据送入1602的8位数据口
en=0;
}
/*------------------------------------------------
1602初始化函数
------------------------------------------------*/
void lcd_init()
{
lcd_wcom(0x38); //8位数据,双列,5*7字形 ,用到功能设定指令
lcd_wcom(0x0c); //开启显示屏,关光标,光标不闪烁,用到显示开关控制指令
lcd_wcom(0x06); //显示地址递增,即写一个数据后,显示位置右移一位,用到了写入模式设置指令
lcd_wcom(0x01); //清屏,用到了清屏指令
}
/*------------------------------------------------
1602显示固定字符函数
------------------------------------------------*/
void lcd_xianshi()
{
lcd_wcom(0x40+0x40);
lcd_wdat(‘D‘);
lcd_wdat(‘i‘);
lcd_wdat(‘s‘);
lcd_wdat(‘t‘);
lcd_wdat(‘a‘);
lcd_wdat(‘n‘);
lcd_wdat(‘c‘);
lcd_wdat(‘e‘);
lcd_wdat(‘:‘);
lcd_wcom(0x40+0x4c);
lcd_wdat(‘.‘);
lcd_wcom(0x40+0x4e);//单位是厘米// 0x40表示第一排显示0x80表示第二排显示
lcd_wdat(‘c‘);
lcd_wdat(‘m‘);
}
/*------------------------------------------------
定时器0初始化,用于计算响应信号时间
------------------------------------
相关资源
- 智能小车--循迹--追光--避障--测速--超
- HC-SR04超声波测距显示LED灯闪烁
- 51单片机测距报警.rar
- 基于超声波传感器的水位自动控制系
- P+F超声波说明书
- 基于DSP和单片机的超声波测距系统
- 基于Robei:(FPGA)超声波避障
- Arduino+超声波+esp8266。_8266ok.ino
- 超声波在道路车辆信息检测中的应用
- 温度显示、超声波测距、光敏D/A显示
- STM32F407 US100 USART串口超声波
- APM 超声波
- 基于单片机的液位测量
- 超声波程序代码
- 基于impinj的RFID的RSSI测距
- GPS测码伪距绝对定位的几种算法
- CIVA超声波仿真软件
- 超声波测距通过串口发送
- 51单片机超声波测距1602显示
- 超声波程序,原理图
- 基于msp430和12864的超声波测距
- 超声波测距器的设计
- 51单片机利用传感器测距
- US100超声波代码stm32
- 基于51单片机的超声波避障小车AD原理
- 2017年全国电子设计超声波测距精确毫
- 超声波测距设计 可以测量5米之内的距
- 超声波的原理及其应用
- 智能小车循迹、避障、遥控、测距、
- 增加DW1000测距距离的方法
评论
共有 条评论