基于51单片机的金属探测器测量仪原理图程序设计

链接:https://pan.baidu.com/s/1ywIsht6UW0_tbzzGce5xOg
提取码:ycva

硬件设计

本文设计的金属探测是根据电磁感应原理制成的,将一金属置于变化的磁场当中时,根据电磁感应原理就会在金属内部产生涡流,涡流产生的磁场反过来又影响原磁场,这种变化可以转换为频率和幅值的变化,供相关电路进行检测。
由电容三点式振荡电路产生正弦波,对其放大和整形后,送入单片机,由单片机探测它频率的变化。当遇见金属时由于电磁感应原理原先建立起来的振荡将受到影响,频率将发生变化,单片机探测到这种变化后进行报警。
本文的金属探测器设计了接口,可以和外围的系统进行通讯,实现了与AT89S52管理的液晶显示及键盘组成的外围数据处理与显示模块的通信。对前端探测到的数据进行再处理和分析,并将结果显示在液晶屏幕上,并可以通过键盘对前端的探测精度进行设置。

方案:
在这里插入图片描述
原理图:
在这里插入图片描述

程序设计

在这里插入图片描述

#include<reg52.h>				 //头文件
#include"eeprom52.h"
#define uchar unsigned char		 //宏定义
#define uint unsigned int		 // 6T 工作模式
#define LCD1602_dat P0			 //9V供电

sbit LCD1602_rs=P2^5;					 //I/O 定义
sbit LCD1602_rw=P2^6;					 //I/O 定义
sbit LCD1602_e=P2^7;


sbit key_1=P1^3;	 //按键定义
sbit key_2=P1^4;
sbit beep=P1^5;				   //蜂鸣器及led定义
sbit led=P1^0;


unsigned long shu1,shu=1500;		  //设置值和采集置定义
uchar ms,sec;		   //时间中间值
uint cs;

bit OK,beep1;		//变量

 
void delay(uint T)							   //延时程序
{
	while(T--);
}


void LCD1602_write(uchar order,dat)				  //1602 一个字节  处理
{
    LCD1602_e=0;
    LCD1602_rs=order;
    LCD1602_dat=dat;
    LCD1602_rw=0;
    LCD1602_e=1;
    delay(10);
    LCD1602_e=0;																								     
}

void LCD1602_writebyte(uchar *prointer)				   //1602 字符串    处理
{
    while(*prointer!='\0')
    {
        LCD1602_write(1,*prointer);
        prointer++;
    }
}

void LCD1602_cls()									 //1602 初始化
{
	LCD1602_write(0,0x01);     //1602 清屏 指令
	delay(1500);
	LCD1602_write(0,0x38);     // 功能设置 8位、5*7点阵
	delay(1500);
	LCD1602_write(0,0x0c);     //设置 光标   不显示开关、不显示光标、字符不闪烁
	LCD1602_write(0,0x06);
	LCD1602_write(0,0xd0);
	delay(1500);
}

void show()
{									
	LCD1602_write(0,0x80);			//第一行显示内容
	LCD1602_writebyte("Now:");
	LCD1602_write(1,0x30+shu1/100000%10);
	LCD1602_write(1,0x30+shu1/10000%10);
	LCD1602_write(1,0x30+shu1/1000%10);
	LCD1602_writebyte(".");
	LCD1602_write(1,0x30+shu1/100%10);
//	LCD1602_write(1,0x30+shu1/10%10);
//	LCD1602_write(1,0x30+shu1%10);  
	LCD1602_writebyte("KHz");

	LCD1602_write(0,0xc0);			 //第二行显示内容
	LCD1602_writebyte("S:");
	LCD1602_write(1,0x30+shu/1000%10);
	LCD1602_write(1,0x30+shu/100%10);
	LCD1602_write(1,0x30+shu/10%10);
	LCD1602_writebyte(".");
	LCD1602_write(1,0x30+shu%10); 
	LCD1602_writebyte("KHz");

	if(beep1 == 1)
	{LCD1602_writebyte("  OKJS");} //检测到金属
	else
	{LCD1602_writebyte("  ERJS");}	//检测到金属

}

void key()
{
	if(OK==1)			   //按键检测
	{
		if(!key_1)
		{
	    		OK=0;
			if(sec==3)
			{
			 	if(shu<3000) shu+=10;	 //设置值	++
			}
			SectorErase(0x2000);	 //保存上限值
			byte_write(0x2000,shu/256);
			byte_write(0x2001,shu%256);	

		}
	
		if(!key_2)
		{
			OK=0;
			if(sec==3)
			{
				if(shu>200) shu-=10;		 //设置值 -- 
			}else
			{
				if(shu>200) shu-=1;	
			}
			SectorErase(0x2000);	 //保存上限值
			byte_write(0x2000,shu/256);
			byte_write(0x2001,shu%256);
		}
	}
	if(key_1==1&&key_2==1)
	{
		sec=0;
	}
}

void proc()
{
	if(shu1>=(shu*100)|shu1==0)	  //对比采集与设置
	{
		led=0;					  //对比采集与设置
		beep1=1;		
	}else
	{
		led=1;
		beep1=0;	   //对比采集与设置
	}
}

 
void main()
{
	uchar H,L;
	TMOD=0x51;
	TH1=0;
	TL1=0;
	TL0 = 0xB0;		//设置定时初值
	TH0 = 0x3C;		//设置定时初值
	TR0=1;	 //定时器
	TR1=1;
	EA=1;
	ET0=1;		//定时器终端
	ET1=1;
	H=byte_read(0x2000); //福初始值
	L=byte_read(0x2001);
	shu=H*256+L;
	if(shu>3000) shu=1500;
	LCD1602_cls();
	while(1)
	{	
		key();				//按键处理
		show();		

.

.

  • 16
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 51单片机金属探测器在Protues软件中是一个可以模拟金属探测器工作原理和效果的仿真程序。51单片机是一种常用的微控制器,具有强大的处理能力和丰富的外设接口,可以用来实现各种控制功能。金属探测器是一种可以探测金属物体的设备,广泛应用于安全检查、考古探测等领域。 在Protues软件中,可以通过编程来模拟51单片机的控制和运行过程。通过设置输入和输出接口,可以模拟金属探测器的信号传输和控制功能。通过设置模拟信号源,可以模拟金属物体产生的信号,并传递给51单片机进行处理。通过编写程序,可以实现金属探测器的工作逻辑,如控制传感器的灵敏度、发出声音或光信号等。 使用Protues软件可以对51单片机金属探测器进行仿真,并且可以通过改变参数、输入信号等来测试和调试探测器的性能。通过仿真测试,可以提前发现和解决硬件和软件问题,节省了实际制作和调试的时间和成本。此外,还可以在仿真软件中进行性能优化、算法调整等工作,提高探测器的灵敏度和准确性。 总之,51单片机金属探测器Protues是一种在Protues软件中模拟金属探测器的工作原理和效果的仿真程序,通过编程和设置接口等方式,可以实现金属探测器的功能,并且可以对其进行测试、优化和调试。 ### 回答2: 51单片机金属探测器是一种利用51单片机控制的金属探测设备,其主要功能是检测金属物体的存在。该探测器可以使用在安防领域,工地施工、地下管道维修以及考古等多个领域。 涉及到的技术主要有模拟信号处理、数字信号处理、电磁感应等。在硬件实现方面,通过采用51单片机作为主控芯片,利用其丰富的IO口、定时器和中断等功能,实现对金属物体的信号探测和处理。 具体的工作原理是通过探测线圈产生的磁场与金属物体产生的感应电流之间的相互作用,来判断金属物体的存在与否。当金属物体接近探测线圈时,会改变磁场的分布,从而引起线圈内感应电流的变化。通过采集和分析感应电流的变化,就可以得知金属物体到探测器的距离和大小。 在软件实现方面,通过编写相应的程序代码实现对电磁信号的采集、处理和判断。利用51单片机强大的计算能力和丰富的接口功能,可以实现对探测器工作状态的控制和显示。 在Protues软件中,可以进行探测器的仿真和调试。通过搭建电路原理图,并添加相应的元件和模块,可以模拟出探测器的工作环境和过程,通过对仿真结果的观察和分析,可以优化和改进探测器的性能和稳定性。 总结来说,51单片机金属探测器在硬件方面利用51单片机的强大功能实现对金属物体的探测和处理,而在软件方面通过编写相应的程序代码实现对采集数据的分析和判断。而在Protues中可以进行电路的仿真和调试,从而提高探测器的性能和稳定性。 ### 回答3: 51单片机金属探测器是一种用于检测和定位地下金属物体的设备。它通常由51单片机控制器、电源模块、传感器、音频转换器和显示模块等组成。 主要原理是利用金属物体与磁场的相互作用,通过传感器测量并分析磁场的变化,从而判断地下是否存在金属物体,并通过显示模块和音频转换器来反馈给用户。探测器可以调整敏感度和音频阈值,以适应不同的探测需求。 在Protues软件中,可以使用51单片机进行仿真和开发。首先,在电路设计中添加51单片机控制器,并与其他模块连接。然后,设置单片机的引脚和相应的IO口连接。接下来,选择适当的传感器和音频转换器,并将其与单片机相连。最后,为显示模块添加合适的模块。 通过Protues软件模拟和仿真,我们可以验证探测器的电路设计和功能。在仿真过程中,可以调整参数和模拟不同的测试场景,以确保探测器的准确性和可靠性。 总之,51单片机金属探测器是一种利用51单片机控制器进行金属探测的设备。在Protues软件中,我们可以设计和仿真该探测器的电路,以验证其功能和性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值