霍尔传感器磁性传感器原理图PCB图及例程.docx

上传人:b****6 文档编号:7528651 上传时间:2023-05-11 格式:DOCX 页数:37 大小:1.17MB
下载 相关 举报
霍尔传感器磁性传感器原理图PCB图及例程.docx_第1页
第1页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第2页
第2页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第3页
第3页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第4页
第4页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第5页
第5页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第6页
第6页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第7页
第7页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第8页
第8页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第9页
第9页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第10页
第10页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第11页
第11页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第12页
第12页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第13页
第13页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第14页
第14页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第15页
第15页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第16页
第16页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第17页
第17页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第18页
第18页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第19页
第19页 / 共37页
霍尔传感器磁性传感器原理图PCB图及例程.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

霍尔传感器磁性传感器原理图PCB图及例程.docx

《霍尔传感器磁性传感器原理图PCB图及例程.docx》由会员分享,可在线阅读,更多相关《霍尔传感器磁性传感器原理图PCB图及例程.docx(37页珍藏版)》请在冰点文库上搜索。

霍尔传感器磁性传感器原理图PCB图及例程.docx

霍尔传感器磁性传感器原理图PCB图及例程

霍尔传感器使用说明书

简要说明:

一、长尺寸:

32mmX宽11mmX高20mmﻫ二、主要芯片:

LM393、3144霍尔传感器

三、工作电压:

直流5伏ﻫ四、特点:

1、具有信号输出指示。

ﻫ2、单路信号输出。

3、输出有效信号为低电平。

4、灵敏度可调(精调)。

5、有磁场切割就有信号输出 

6、电路板输出开关量!

(可直接接单片机)

7、可用于电机测速/位置检测等场合ﻫ

适用场合:

单片机学习、电子竞赛、产品开发、毕业设计。

【图片展示】

【与单片机连接测试程序】

/********************************************************************

          汇诚科技

实现功能:

此版配套测试程序

使用芯片:

AT89S52

晶振:

11.0592MHZ

波特率:

9600

编译环境:

Keil

作者:

zhangxinchun

淘宝店:

汇诚科技 

【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!

 

*********************************************************************/

/********************************************************************

说明:

1、当测量浓度大于设定浓度时,单片机IO口输出低电平

*********************************************************************/

#includeﻩ  //库文件

#defineucharunsignedchar//宏定义无符号字符型

#defineuint unsignedint//宏定义无符号整型

/********************************************************************

     I/O定义

*********************************************************************/

sbitLED=P1^0;ﻩ//定义单片机P1口的第1位(即P1.0)为指示端

sbitDOUT=P2^0;//定义单片机P2口的第1位(即P2.0)为传感器的输入端

/********************************************************************

       延时函数

*********************************************************************/

voiddelay()//延时程序

{

ucharm,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

/********************************************************************

       主函数

*********************************************************************/

voidmain()

ﻩwhile(1)//无限循环

{

LED=1; //熄灭P1.0口灯

if(DOUT==0)//当浓度高于设定值时,执行条件函数

ﻩ {

delay();//延时抗干扰

ﻩif(DOUT==0)//确定 浓度高于设定值时,执行条件函数

ﻩ  {

ﻩﻩLED=0;  //点亮P1.0口灯

}

}

}

}ﻩ

/********************************************************************

       结束

*********************************************************************/

【与单片机连接测速参考程序】

/********************************************************************

         汇诚科技

实现功能:

电机转速表设计

使用芯片:

AT89S52

晶振:

11.0592MHZ

波特率:

9600

编译环境:

Keil

作者:

zhangxinchun

【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!

 

#include//包含单片机寄存器的头文件

#include

sbit RS=P2^0; //寄存器选择位,将RS位定义为P2.0引脚

sbit RW=P2^1;//读写选择位,将RW位定义为P2.1引脚

sbit E=P2^2;   //使能信号位,将E位定义为P2.2引脚

sbitBF=P0^7;//忙碌标志位,,将BF位定义为P0.7引脚

unsignedcharcodedigit[ ]={"0123456789"}; //定义字符数组显示数字

unsignedintv;//储存电机转速

unsignedcharcount; //储存定时器T0中断次数

bit flag; //计满1秒钟标志位

/*****************************************************

函数功能:

延时1ms

(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒

***************************************************/

voiddelay1ms()

{

 unsignedchari,j;

ﻩfor(i=0;i<10;i++)

ﻩ for(j=0;j<33;j++)

;ﻩﻩ 

}

/*****************************************************

函数功能:

延时若干毫秒

入口参数:

n

***************************************************/

voiddelay(unsignedcharn)

  unsigned chari;

for(i=0;i<n;i++)

  delay1ms();

}

/*****************************************************

函数功能:

判断液晶模块的忙碌状态

返回值:

result。

result=1,忙碌;result=0,不忙

***************************************************/

unsignedcharBusyTest(void)

{

  bit result;

ﻩRS=0;  //根据规定,RS为低电平,RW为高电平时,可以读状态

  RW=1;

E=1;  //E=1,才允许读写

_nop_(); //空操作

 _nop_();

 _nop_();

 _nop_();//空操作四个机器周期,给硬件反应时间ﻩ

 result=BF; //将忙碌标志电平赋给result

E=0; //将E恢复低电平

returnresult;

}

/*****************************************************

函数功能:

将模式设置指令或显示地址写入液晶模块

入口参数:

dictate

***************************************************/

void WriteInstruction (unsignedchardictate)

{ 

   while(BusyTest()==1); //如果忙就等待

 RS=0;      //根据规定,RS和R/W同时为低电平时,可以写入指令

ﻩRW=0; 

ﻩE=0;     //E置低电平(根据表8-6,写指令时,E为高脉冲,

       //就是让E从0到1发生正跳变,所以应先置"0"

_nop_();

ﻩ _nop_();  //空操作两个机器周期,给硬件反应时间

ﻩ P0=dictate;   //将数据送入P0口,即写入指令或地址

_nop_();

ﻩ _nop_();

_nop_();

ﻩ_nop_();    //空操作四个机器周期,给硬件反应时间

ﻩE=1;   //E置高电平

ﻩ_nop_();

 _nop_();

_nop_();

_nop_();   //空操作四个机器周期,给硬件反应时间

ﻩE=0;  //当E由高电平跳变成低电平时,液晶模块开始执行命令

/*****************************************************

函数功能:

指定字符显示的实际地址

入口参数:

x

***************************************************/

voidWriteAddress(unsigned char x)

{

   WriteInstruction(x|0x80);//显示位置的确定方法规定为"80H+地址码x"

}

/*****************************************************

函数功能:

将数据(字符的标准ASCII码)写入液晶模块

入口参数:

y(为字符常量)

***************************************************/

voidWriteData(unsignedchar y)

 {

while(BusyTest()==1);

RS=1;  //RS为高电平,RW为低电平时,可以写入数据

RW=0;

ﻩE=0;   //E置低电平(根据表8-6,写指令时,E为高脉冲,

     // 就是让E从0到1发生正跳变,所以应先置"0"

P0=y;     //将数据送入P0口,即将数据写入液晶模块

ﻩ_nop_();

ﻩ _nop_();

ﻩ_nop_();

_nop_();    //空操作四个机器周期,给硬件反应时间

E=1;  //E置高电平

 _nop_();

ﻩ_nop_();

 _nop_();

 _nop_();   //空操作四个机器周期,给硬件反应时间

ﻩE=0;    //当E由高电平跳变成低电平时,液晶模块开始执行命令

}

/*****************************************************

函数功能:

对LCD的显示模式进行初始化设置

***************************************************/

voidLcdInitiate(void)

{

delay(15);   //延时15ms,首次写指令时应给LCD一段较长的反应时间

WriteInstruction(0x38);//显示模式设置:

16×2显示,5×7点阵,8位数据接口

delay(5);  //延时5ms ,给硬件一点反应时间

WriteInstruction(0x38);

delay(5);

WriteInstruction(0x38);//连续三次,确保初始化成功

delay(5);

WriteInstruction(0x0c); //显示模式设置:

显示开,无光标,光标不闪烁

ﻩdelay(5);

ﻩWriteInstruction(0x06);//显示模式设置:

光标右移,字符不移

delay(5);

ﻩWriteInstruction(0x01);//清屏幕指令,将以前的显示内容清除

ﻩdelay(5);

 }

/******************************************************************************

函数功能:

显示速度提示符     

******************************************************************************/

voiddisplay_sym(void)

{

WriteAddress(0x00);//写显示地址,将在第1行第1列开始显示

ﻩWriteData('v');//将字符常量v写入LCD

ﻩWriteData('=');  //将字符常量=写入LCD

}

/******************************************************************************

函数功能:

显示速度数值     

******************************************************************************/

voiddisplay_val(unsigned intx)

unsignedchari,j,k,l;    //j,k,l分别储存温度的百位、十位和个位

ﻩi=x/1000;//取千位

ﻩj=(x%1000)/100;//取百位

k=(x%100)/10; //取十位 

 l=x%10;  //取个位

ﻩWriteAddress(0x02); //写显示地址,将在第1行第3列开始显示

WriteData(digit[i]);//将千位数字的字符常量写入LCD

WriteData(digit[j]);   //将百位数字的字符常量写入LCD

WriteData(digit[k]);//将十位数字的字符常量写入LCD

ﻩWriteData(digit[l]);//将个位数字的字符常量写入LCD

/*******************************************************

函数功能:

显示速度单位“r/min”

********************************************************/

voiddisplay_unit(void)

{

 WriteAddress(0x06); //写显示地址,将在第2行第7列开始显示

ﻩWriteData('r');  //将字符常量r写入LCD

WriteData('/');  //将字符常量/写入LCD

WriteData('m'); //将字符常量m写入LCD

WriteData('i'); //将字符常量i写入LCD

ﻩWriteData('n'); //将字符常量n写入LCD

} 

/*******************************************************

函数功能:

主函数

********************************************************/

voidmain(void)

{

LcdInitiate();   //调用LCD初始化函数

TMOD=0x51;     //定时器T1工作于计数模式1,定时器T0工作于计时模式1;

TH0=(65536-46083)/256; //定时器T0的高8位设置初值,每50ms产生一次中断

TL0=(65536-46083)%256; //定时器T0的低8位设置初值,每50ms产生一次中断

ﻩEA=1;    //开总中断

ET0=1;      //定时器T0中断允许

TR0=1;        //启动定时器T0

ﻩcount=0;     //将T0中断次数初始化为0

display_sym();     //显示速度提示符

display_val(0000);    //显示器工作正常标志

 display_unit();    //显示速度单位

ﻩ while

(1)    //无限循环

ﻩ {

  ﻩ TR1=1;   //定时器T1启动

ﻩTH1=0;     //定时器T1高8位赋初值0

ﻩ TL1=0;   //定时器T1低8位赋初值0

 flag=0;   //时间还未满1分钟

ﻩﻩ while(flag==0) //时间未满等待

ﻩ  ;

ﻩﻩv=(TH1*256+TL1)*60/16;//计算速度,每周产生16个脉冲

ﻩdisplay_val(v);   //显示速度

 }ﻩﻩﻩ

}

/*******************************************************

函数功能:

定时器T0的中断服务函数

********************************************************/

voidTime0(void )interrupt 1using 1//定时器T0的中断编号为1,使用第1组工作寄存器

 {

  count++;   //T0每中断1次,count加1

ﻩif(count==20)//若累计满20次,即计满1秒钟

ﻩ {

  flag=1;   //计满1秒钟标志位置1

ﻩ count=0;   //清0,重新统计中断次数

ﻩ}

 TH0=(65536-46083)/256; //定时器T0高8位重新赋初值

 TL0=(65536-46083)%256;//定时器T0低8位重新赋初值

 }  

/********************************************************************

      结束

*********************************************************************/

/********************************************************************

     汇诚科技

实现功能:

传感器判断程序

使用芯片:

AT89S52

晶振:

11.0592MHZ

波特率:

9600

编译环境:

Keil

作者:

zhangxinchun  

*********************************************************************/

/********************************************************************

*************************程序说明************************************

1、VCC接电源正极

2、GND接电源负极

3、OUT接单片机P2.0口

功能简介:

当传感器接收到信号时,传感器输出低电平,单片机IO口P2.0检测到信号后,单片机IO口P1.0输出低电平

*********************************************************************/

#include<reg52.h> //库文件

#defineucharunsignedchar//宏定义无符号字符型

#defineuintunsignedint//宏定义无符号整型

/********************************************************************

    I/O定义

*********************************************************************/

sbit LED=P1^0;ﻩ//定义单片机P1口的第1位(即P1.0)为指示端

sbitOUT=P2^0;//定义单片机P2口的第1位 (即P2.0)为传感器输出信号的输入端

/********************************************************************

        主函数

*********************************************************************/

voidmain()

{

while

(1) //无限循环

 LED=1;  //熄灭P1.0口灯

ﻩif(OUT==0)//当传感器检测到磁场时,执行条件函数

ﻩ{

 LED=0;ﻩ//点亮P1.0口灯

while(!

OUT);

ﻩ}

}

}

/********************************************************************

        结束

*********************************************************************/

/********************************************************************

实现功能:

霍尔传感器计数应用仿真程序

使用芯片:

AT89S52

晶振:

11.0592MHZ

波特率:

9600

编译环境:

Keil

作者:

zhangxinchun  

*********************************************************************/

/********************************************************************

*************************程序说明**********************************

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2