导航:首页 > 操作系统 > 用单片机对干簧管通断次数计数

用单片机对干簧管通断次数计数

发布时间:2025-06-22 08:49:45

㈠ 51单片机和干簧管怎么连接,怎么用

干簧管,当有磁铁靠近干簧开关时(反之亦然)干簧片就会关闭

在单片机中的应用一般是用来作检测干簧管状态(开关的通断)来完成某种功能的检测。

㈡ 如何将干簧管脉冲信号通过单片机实现到数码管显示

将干簧管脉冲信号通过单片机实现到数码管显示:


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

*文件名:TLC549.c

*描述:该程序实现了对TLC549的控制。通过TLC549把电压转换为数字信号并通过数码管显示出来。实际工作中进行AD采样时,一般都要把AD信号处理后再用。在这里,采集了30次,去掉最大和最小的5个,中间20个取平均值,最大限度的保证了所要采集AD的准确性。

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

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitAD_Out=P3^2;//TLC549输出端

sbitCS=P1^0;//TLC549片选信号

sbitAD_In=P1^1;//TLC549输入端

ucharcodetable[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};

ucharcodetable_d[10]={0x02,0x9e,0x24,0x0c,0x98,0x48,0x40,0x1e,0x00,0x08};//带点数码管显示

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

*名称:AD_Change(void)

*功能:TLC549驱动程序,在“视频及教程”中有讲解。

*输入:无

*输出:temp(电压值)

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

ucharAD_Change(void)

{

uchari,temp=0;

CS=0;

_nop_();

_nop_();

_nop_();

_nop_();

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

{

AD_In=1;

_nop_();

_nop_();

temp=temp<<1;

if(AD_Out==1)temp+=1;

AD_In=0;

_nop_();

_nop_();

}

CS=1;

returntemp;

}

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

*名称:Delay()

*功能:延时,延时时间为1ms*del

*输入:del

*输出:无

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

voidDelay(uintdel)

{

uchari,j;

for(i=0;i

for(j=0;j<=148;j++)

;

}

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

*名称:Average()

*功能:中位值平均滤波法,取一共三十个数据,最大和最小的五个数据不要

对中间的二十个数据求平均值

*输入:三十个待处理的值

*输出:得到一个中位的平均值

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

uintAverage(uintbuffer[30])

{

uchari,j;

uinttemp;

for(i=1;i<30;i++)////先对整个数组的三十个值进行从小到大的排列

for(j=29;j>=i;--j)

{

if(buffer[j-1]>buffer[j])

{

temp=buffer[j-1];

buffer[j-1]=buffer[j];

buffer[j]=temp;

}

}

////对数组进行处理,去掉一个最大值和一个最小值,中间的二十个值再来求平均值

temp=0;

for(i=5;i<25;i++)

{

temp+=buffer[i];

}

temp=(uint)(((float)temp)/20+0.5);

return(temp);

}

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

*名称:AD_Filter()

*功能:进行AD采集30次,并进行滤波处理

*输入:三十次AD采集值

*输出:经过处理后的AD值

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

uintAD_Filter()

{

uintDate_Buffer[30]={0},temp;

uchari;

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

{

Date_Buffer[i]=AD_Change();

Delay(1);//延时1毫秒采集一次。这里可以根据工作需要调整时间。

}

temp=Average(Date_Buffer);

return(temp);

}

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

*名称:Main()

*功能:主函数

*输入:无

*输出:无

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

voidMain()

{

uinti=0,temp;

uintj;

P2=0x00;

P1=0xff;

while(1)

{

temp=AD_Filter();

j=temp*2;

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

{

P0=table_d[j/100];

P2=0x04;

Delay(10);

P0=table[j/10%10];

P2=0x02;

Delay(10);

P0=table[j%10];

P2=0x01;

Delay(10);

}

}

}

阅读全文

与用单片机对干簧管通断次数计数相关的资料

热点内容
北仑二级压缩螺杆机 浏览:44
加密路线免费入口 浏览:739
计算器程序员是干嘛的 浏览:362
数控编程里fo是啥键 浏览:655
javacdataxml 浏览:943
本机tcp服务器地址 浏览:426
切换pdf 浏览:92
iturns下载的app在哪里 浏览:641
云起书院App在哪里 浏览:615
怎么对hex文件进行加密 浏览:285
pdf少年时 浏览:953
两个同名文件夹同步 浏览:630
拍照文件夹哪个好用 浏览:91
文件夹和书包 浏览:511
解压归档拿登记证 浏览:225
去体验解压房 浏览:613
单片机一键中断响应 浏览:646
唐浩明pdf 浏览:845
程序员土木 浏览:73
android如何与web服务器交互 浏览:611