基于单片机金属探测仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg51.h>
- //**************端口定义*******************
- sbit k1 = P1^0; //传感器
- sbit buzeer = P3^6; //声光报警
- //**************变量定义*******************
- char temp1 = 0;
- /*******************定时器T0初始化********************/
- void T0_init()
- {
- TMOD = TMOD | 0x01; //设T0为方式1
- TH0 = (65535-50000)/256; //计数50000个
- TL0 = (65535-50000)%256;
- EA = 1; //开启总中断
- ET0 = 1; //允许T0中断
- //TR0 = 1; //启动
- }
- //**************主函数*********************
- void main()
- {
- T0_init(); //定时器0初始化
- P0 = 0xff; //关闭指示灯
- while(1)
- {
- if(k1 == 0) //检测单金属
- {
- TR0 = 1;
- }
- else //没有检测单金属
- {
- TR0 = 0;
- P0 = 0xff; //关闭指示灯
- buzeer = 1; //关闭蜂鸣器
- }
- }
- }
- /**************************定时器T0中断服务函数************************************/
- void T0_time() interrupt 1
- {
- TH0 = (65535-50000)/256; //计数50000个
- TL0 = (65535-50000)%256;
- temp1 += 1;
- if(temp1 >= 20)
- {
- temp1 = 0;
- buzeer = ~buzeer;
- P0 = ~P0;
- }
- }
复制代码
所有资料51hei提供下载:
基于单片机金属探测.rar
(172.56 KB, 下载次数: 216)
|