您的当前位置:首页正文

霍尔传感器(3144E)

来源:九壹网


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

汇诚科技

实现功能:此版配套测试程序

使用芯片:AT89S52

晶振:11.0592MHZ

波特率:9600

编译环境:Keil

作者:zhangxinchunleo

网站:www.ourhc.cn

淘宝店:汇诚科技http://shop36330473.taobao.com

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

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

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

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

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

#include //库文件

#define uchar unsigned char//宏定义无符号字符型

#define uint unsigned int //宏定义无符号整型

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

I/O定义

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

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

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

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

延时函数

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

void delay()//延时程序

{

uchar m,n,s;

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

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

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

}

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

主函数

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

void main()

{

while(1) //无限循环

{

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

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

{

delay();//延时抗干扰

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

{

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

}

}

}

}

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

结束

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

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

汇诚科技

实现功能:0~9999计数器

使用芯片:AT89S52

晶振:11.0592MHZ

波特率:9600

编译环境:Keil

作者:zhangxinchunleo

网站:www.ourhc.cn

淘宝店:汇诚科技http://shop36330473.taobao.com

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

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

#include

#define uchar unsigned char

#define uint unsigned int

uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 所需的段的位码

//uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; 控制端 (开发板)

uchar wei[4]={0X80,0X40,0X20,0X10}; 控制端 (仿真)

uint z,x,c,v, date; //定义数据类型

uint dispcount=0;

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

////位的//位的 延时函数

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

void delay(uchar t)

{

uchar i,j;

for(i=0;i {

for(j=13;j>0;j--);

{ ;

}

}

}

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

数码管动态扫描

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

void xianshi()

{

/*****************数据转换*****************************/

z=date/1000; //求千位

x=date%1000/100; //求百位

c=date%100/10; //求十位

v=date%10; //求个位

P2=wei[0];

P0=duan[z];

delay(50);

P2=wei[1];

P0=duan[x];

delay(50);

P2=wei[2];

P0=duan[c];

delay(50);

P2=wei[3];

P0=duan[v];

delay(50);

}

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

中断函数

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

void ExtInt0() interrupt 0 //中断服务程序

{

dispcount++; //每按一次中断按键,计数加一

if (dispcount==9999) //计数范围0-9999

{dispcount=0;}

}

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

主函数

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

void main()

{

TCON=0x01; //中断设置

IE=0x81;

while(1)

{

date=dispcount;

xianshi();

}

}

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

结束

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

因篇幅问题不能全部显示,请点此查看更多更全内容

Top