103 基于51单片机的超声波测距仪阈值报警系统设计【毕设课设】

本设计由STC89C52单片机电路+LCD1602液晶显示电路+超声波模块检测电路+蜂鸣器报警电路+按键电路+电源电路组成。

1、LCD1602实时显示距离。

2、通过按键可以设置距离阈值,如果当前距离超过阈值,蜂鸣器报警,否则,蜂鸣器不报警。

 

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<stdio.h>
#include "1602.h"
#include "delay.h"
#include "math.h"

sbit Echo=P1^1;		//超声波引脚定义
sbit Trip=P1^0;

sbit buzzer=P1^5;	   //引脚定义
sbit key1=P1^4;	   
sbit key2=P1^3;	  

char tab[16];		//显示数组
float JuLi;			//距离
long JlCoun=0;		//定时器计数
unsigned int setNum = 500 ;//设置值

void main (void)
{  
	TMOD|=0x01;		   //设T0为方式1,GATE=1;
	TH0=0;
	TL0=0;          
	ET0=1;             //允许T0中断
	EA=1;			   //开启总中断	
		             
	LCD_Init();           //初始化液晶
	DelayMs(20);          //延时有助于稳定
	LCD_Clear(); 

	while (1)         //主循环
	{
		
		JuLi=(float)(JlCoun*17)/100.0*1.08;     //算出来是mm
		if((JlCoun>0)&&(JuLi>0))
		{
//			sprintf(dis0,"%05d  %05d",(unsigned int)JlCoun,(unsigned int)JuLi);//打印温度值
			sprintf(tab,"JuLi:%04dmm  ",(unsigned int)JuLi);//更新显示
			DispStr(0,0,(unsigned char *)tab);//打印显	
	//不报警 	
		}
		if(key1 == 0)
		{
			if(setNum<5000) setNum++;
		}

		


		DelayMs(100);
	}
}

 

资料下载地址

 https://pan.baidu.com/s/1RL97hSfT2C8THkRkVhuJyQ?pwd=8888

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值