基于51单片机的计件器设计

 本次的项目是基于51单片机的计件器,项目内容为:实现计件器功能,这对于工厂中的货物计数具有实际意义;系统上电后自动设置检测距离20cm,小于该距离的物体会引起计数变化和蜂鸣器鸣响,每个物体仅能触发一次;使用两个数码管用于显示检测距离和物品个数;使用两个按键用于调整检测距离。
在这里插入图片描述

 项目使用到了51单片机的四个中断源,分别为:外部中断0,定时器中断0,外部中断1,定时器中断1。基本上使用完了基础51内核的所有中断源,在两个定时器中断之间存在中断嵌套,是一份学习单片机中断的好实例!!
 项目采用Proteus进行仿真实验,下图是项目的原理图,超声波传感器采用HC-SR04(SRF04)。
在这里插入图片描述
 采用ad绘制了原理图PCB,版图大小8*9cm,空间较大,便于焊接。
在这里插入图片描述
在这里插入图片描述
 部分代码如下,项目主要内容是:中断的嵌套使用、传感器的驱动代码、数码管显示代码。

void start()//测距初始化
{

	TR=1;
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_();
	_nop_(); 
	_nop_(); 
	_nop_(); 
	_nop_();
	TR=0;
}

int getdistance(void)
{
	start();
	while(!ECHO);
	TR1=1;
	while(ECHO);
	TR1=0;
	
	time=TH1*256+TL1;
	TH1=0;
	TL1=0;
	
	s=(time*1.7)/100;         //测得cm
	if(flag==1||(s>700))
	{
		flag=0;
		s=0;
		return s;
	}
	return s;
}

完整项目包括:keilC语言代码+Proteus仿真原理图+ad原理图PCB+产品说明书

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在工业生产的过程中对产品的数量进行统计是非常常见的,一般采用的产品计数方式就是通过安装计数来自动完成的。光电计数是众多的计数的一种,它主要是利用光学原理来对自动生产线的产品数量进行统计,这种传感的基本工作原理是通过一套信号转换装置将光信号转换成电信号,它的基本理论就是著名的光电效应。一般来说光电效应主要分为三个类别,第一类也被称为世外光电效应,物体在接受光照的时候,它的表面会有一些电子逃逸出来,采用这种外光电效应制成的光学件主要有光电倍增管和真空光电管等类型;第二种称之为内光电效应,也就是说物体的电阻率随着光照的变化而发生变化,根据内光电效应制成的主要元件包括各种各样的光敏电阻;第三种光电效应指的是光生伏特效应,也就是说物体在一定的外界光线的照射作用下所产生的内部电动势现象,这种由于光照产生的电动势称之为光生电动势,根据光生伏特效应制成的电子元件主要包括光电晶体管和光电池等,所有的光电效应件都是根据物体在受到外界光照之后它的内部一些特性发生变化的原理所制成的。从目前来说市场上比较常见的光电计数所采用的传感件主要是光电管和摄像头,而光源一般都是用激光或者是普通光来提供的,另外还有不可见光以及可见光的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值