单片机的金属探测装置设计"/>
51单片机的金属探测装置设计
设计功能
(1)主要采用51单片机及最小系统电路+LM393比较器电路+LCD1602液晶+电感线圈+ 按键+蜂鸣器设计而成。
(2)实现金属物质的探测,如硬币,钥匙,金属手机壳等,LED和蜂鸣器实现声光报警。
(3)按键设置探测金属的精度,掉电记忆。
(4)采用LCD1602液晶显示屏显示测量值,方便记录和更改。
原理图:
原理图及PCB绘制软件采用AD2013。金属探测原理是根据电磁感应原理制成的,将一金属置于变化的磁场当中时,根据电磁感应原理就会在金属内部产生涡流,涡流产生的磁场反过来又影响原磁场,这种变化可以转换为频率和幅值的变化,供相关电路进行检测。
金属感应电路是通过电容三点式振荡电路产生正弦波,对其放大和整形后,送入单片机,由单片机探测它频率的变化。当遇见金属时由于电磁感应原理原先建立起来的振荡将受到影响,频率将发生变化,单片机探测到这种变化后进行报警。
其总体硬件原理图如图所示。
仿真设计
仿真软件采用Protues7.8。
程序设计
程序采用C作为编程语言,使用Keil5作为编程软件;
//延时函数
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;//预设阈值为69KHz//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)%10; Data[2]='.'; Data[3]='0'+(x/100)%10; Data[4]='0'+(x/10)%10; LCD1602_Disp_ZF(0x88,Data,5); //频率if(!KEY1){Delay_ms(100);if(!KEY1) {x1=x1+100;//阈值加100EA=0;ISP_ERASE(0x2c00); //注意:字节编程时必须要先要擦除整个扇区 ISP_PROGRAM(0x2c00, (x1-50000)/100);EA=1;}}if(!KEY2){Delay_ms(100);if(!KEY2) {x1=x1-100;//阈值减100EA=0;ISP_ERASE(0x2c00); //注意:字节编程时必须要先要擦除整个扇区 ISP_PROGRAM(0x2c00, (x1-50000)/100);EA=1;}}Data2[0]='0'+x1/10000; Data2[1]='0'+(x1/1000)%10; Data2[2]='.'; Data2[3]='0'+(x1/100)%10; Data2[4]='0'+(x1/10)%10; LCD1602_Disp_ZF(0x88+0x40,Data2,5); //阈值频率if(x>x1)//判断,发现金属{LED = 0; //打开LED和蜂鸣器Speak = 0;Delay_ms(200);LED = 1; //关闭LED和蜂鸣器Speak = 1;}} }
关注公众号-单片机实例设计,发送“金属探测”获取资料;
下载地址
更多推荐
51单片机的金属探测装置设计
发布评论