设计功能
(1)主要采用51单片机和最小系统电路 LM393比较器电路 LCD1602液晶 电感线圈 按键 蜂鸣器设计而成。 (2)实现金属物质的探测,如硬币,钥匙,金属手机壳等,LED和蜂鸣器实现声光报警。 (3)按键设置检测金属精度和断电记忆。 (4)采用LCD1602液晶显示屏显示测量值,便于记录和更改。
原理图:
原理图及PCB采用绘制软件AD2013年。金属检测原理是根据电磁感应原理制成的。当将金属放置在变化的磁场中时,根据电磁感应原理会在金属中产生涡流。涡流产生的磁场反过来会影响原始磁场。这种变化可以转换为频率和振幅值的变化,供相关电路检测。
金属感应电路是通过电容三点式振荡电路产生正弦波,对其放大和整形后,送入单片机,由单片机探测它频率的变化。当遇到金属时,由于电磁感应原理而建立的振荡会受到影响,频率会发生变化,单片机检测到这种变化后会报警。
其整体硬件原理图如图所示。
仿真设计
采用仿真软件Protues7.8。
程序设计
程序采用C作为编程语言,使用Keil作为编程软件;
///延迟函数 void Delay_ms(uint jj) { uint ii; while(jj--) for(ii=0;ii<125;ii ); } void main() //函数功能:主函数 { unsigned char Data[5],Data2[5]; Timer(); ///定时器初始化 LCD1602_init()//液晶初始化 LCD1602_Disp_ZF(0x80,"NowFreq: KHz",16); LCD1602_Disp_ZF(0x80 0X40,"SetFreq: KHz",16); LED = 1; //关闭LED和蜂鸣器 Speak = 1; EA=0; x1=ISP_READ(0x2c00)*100 5000//预设阈值为690KHz //x1=70000; EA=1; while(1) { if(flag==1) { flag=0; ///清标志位 if(KEY1&&KEY2) x=T0count*65536 TH0*256 TL0; ////获得时间宽度参数 timecount=0; T0count=0; TH0=0; TL0=0; TR0=1; //TR0=1,控制开关闭合,计数脉冲进入T1计数器,启动计数 } Data[0]='0' x/10000; Data[1]='0' (x/1000); Data[2]='.'; Data[3]='0' (x/100); Data[4]='0' (x/10); LCD1602_Disp_ZF(0x88,Data,5); //频率 if(!KEY1) { Delay_ms(100); if(!KEY1) { x1=x1 100;/阈值加1000 EA=0; ISP_ERASE(0x2c00); //注意编程字节时,必须先擦除整个风扇区域 ISP_PROGRAM(0x2c00, (x1-50000)/100); EA=1; } } if(!KEY2) { Delay_ms(100); if(!KEY2) { x1=x1-100 EA=0; ISP_ERASE(0x2c00); //注意编程字节时,必须先擦除整个风扇区域 ISP_PROGRAM(0x2c00, (x1-50000)/100); EA=1; } } Data2[0]='0' x1/10000; Data2[1]='0' (x1/1000); Data2[2]='.'; Data2[3]='0' (x1/100); Data2[4]='0' (x1/10); LCD1602_Disp_ZF(0x88 0x40,Data2,5); //阈值频率 if(x>x1)//判断,发现金属 { LED = 0; //打开LED和蜂鸣器 Speak = 0; Delay_ms(200); LED = 1; //关闭LED和蜂鸣器 Speak = 1; } } }
关注微信官方账号-单片机实例设计,发送获取信息;