所有仿真详情导航:
目录
一、主要功能
基于51单片机,采用超声波传感器检测距离,通过LCD1602显示屏显示,三个按键,第一个按键是切换模式,切换到阈值设置,两个按键负责阈值增减,初始阈值设置为20,如果低于20,则蜂鸣器报警,继电器断开,电机停止转动,高于阈值,则停止报警,继电器吸合,电机转动。
具体动态效果看B站演示视频(高清需要跳转到B站看)
基于单片机的小车雷达避障及阈值可调
二、硬件资源
基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。
三、主程序编程
cpp
#include <REGX52.H>
#include <intrins.h>
#include <stdio.h>
#include "Delay.h"
#include "LCD1602.h"
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
sbit Tr=P3^0;//触发信号
sbit Ec=P3^1;//回响信号
sbit beep=P2^7;
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit motor = P1^3;
uchar Recv_Buffer[4];
uint Voltage[]={'0','0','0','0'};
bit bdata IIC_ERROR;
unsigned int distance;
static unsigned char num;
unsigned int Read_value(void);//读值函数
unsigned int jlyz=20;
static int moshi = 0;
void Delay10us(void);//10us延时函数
void cslsz(void);
void Time0_Init() //定时器初始化
{
TMOD = 0x01;
TH0 = 0x00;
TL0 = 0x00;
TR0 = 0;//先关闭定时器0
}
void Time0_Int() interrupt 1 //中断程序
{
TH0 = 0xfe; //重新赋值
TL0 = 0x33;
}
unsigned int Read_value()
{
uint result;
Tr=1;//触发引脚发出11us的触发信号(至少10us)
Delay10us();
Tr=0;
while(!Ec);//度过回响信号的低电平
TR0=1;//开启定时器0
while(Ec);//度过回响信号高电平
TR0=0;//关闭定时器0
result=((TH0*256+TL0)*0.034)/2; // 距离cm=(时间us * 速度cm/us)/2
return result + 2; //+2修正补偿
}
void main() //主函数
{
Tr=0;//出发引脚首先拉低
LCD_Init(); //显示屏初始化
Time0_Init(); //定时初始化
LCD_ShowString(1,1,"-----kaiji-----");
Delay(1000);
LCD_Init();
LCD_ShowString(1,1,"yuzhi:");
LCD_ShowString(2,1,"distance:");
while(1)
{
Delay(200);
cslsz();//按键判断
distance = Read_value();//读值
distance = distance-1;
LCD_ShowNum(2,10,distance,3);
LCD_ShowNum(1,7,jlyz,3);
if(moshi == 0) //判断
{
if(distance < jlyz)
{
beep = 1;
motor = 1;
}
else
{
beep = 0;
motor = 0;
}
}
}
}
void cslsz()
{
if(!key1)
{
moshi++;
if(moshi>1)moshi=0;
while(!key1);
}
if(!key2)
{
if(moshi==1)
jlyz++;
while(!key2);
}
if(!key3)
{
if(moshi==1)
jlyz--;
while(!key3);
}
}
void Delay10us()
{
TL0=0xF5;
TH0=0xFF;
TR0=1;
while (TF0==0);
TR0=0;
TF0=0;
}
四、资源下载
全部资料(源程序、仿真文件、安装包、演示视频):
链接: https://pan.baidu.com/s/1Tiy7k1Fqj31cTDXlXew8AQ?pwd=vhh9 提取码: vhh9
--来自百度网盘超级会员v4的分享