IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> c51单片机光电门测反应时间(实战小项目) -> 正文阅读

[嵌入式]c51单片机光电门测反应时间(实战小项目)

第一步:准备材料(光电门)也叫测距模块

?产品用途:广泛用于电机转速检测,脉冲计数,位置限位等。

模块特色:
1、使用进口槽型光耦传感器,槽宽度 5mm。
2、有输出状态指示灯,输出高电平灯灭,输出低电平灯亮。
3、有遮挡,输出高电平;无遮挡,输出低电平。
4、比较器输出,信号干净,波形好,驱动能力强,超过 15mA。
5、工作电压 3.3V-5V
6、输出形式 :数字开关量输出(0 和 1)
7、设有固定螺栓孔,方便安装
8、小板 PCB 尺寸:3.2cm x 1.4cm
9、使用宽电压 LM393 比较器
模块使用说明:
1.模块槽中无遮挡时,接收管导通,模块 DO 输出低电平,遮挡时,
DO 输出高电平;
2、DO 输出接口可以与单片机 IO 口直接相连,检测传感器是否有遮
档,如用电机码盘则可检测电机的转速。
2.模块 DO 可与继电器相连,组成限位开关等功能,也可以与有源蜂
鸣器模块相连,组成报警器。

还有一个普中的开发板

直接上代码吧

这个原理主要是光点门没有东西过的时候反馈的是一个低电平,反之是高电平。然后根据高低电平来判断是否启动定时器来计速既是反应时间(毫秒级别)可以用来测人的反应时间。神经反应时间。

main.c

#include <REGX52.H>
#include "LCD1602.h"


sbit LightDoor=P3^7;

typedef unsigned int uint;

uint fen,miao,umiao;

uint m1,m2,m3,m4,m5;


void Timer0_Init()
{
		TMOD &= 0xF0;		//设置定时器模式
  	TMOD |= 0x01;		//设置定时器模式
		TL0 = 0x18;		//设置定时初值
		TH0 = 0xFC;		//设置定时初值
		TF0 = 0;		//清除TF0标志
		TR0 = 0;		//定时器0开始计时
		ET0=1;
  	EA=1;//打开中断
}


void main()
{
		Timer0_Init();
		LCD_Init();//初始化	
		LCD_ShowString(1,12,"GAP");
		while(1)
		{
				LCD_ShowString(1,1,"F");//显示分
				LCD_ShowString(1,4,"M");//显示miao
				LCD_ShowString(1,7,"mM");//显示微秒
				
				LCD_ShowNum(2,1,fen,2);//显示分
				LCD_ShowChar(2,3,'.');//显示.
				LCD_ShowNum(2,4,miao,2);//显示秒
				LCD_ShowChar(2,6,'.');//显示.
				LCD_ShowNum(2,7,umiao,2);//显示u秒
				LCD_ShowString(2,9,"s");
				LCD_ShowChar(2,14,'.');
				LCD_ShowNum(2,15,umiao,2);
				LCD_ShowNum(2,12,miao,2);
				
			
//				m4=umiao;//毫秒
//		  	m3=miao;//秒转为毫秒*1000
//			  //m2=fen*m3;//分转为毫秒
			  
			
			
				if(LightDoor==1)
				{
					TR0=0;
				 
				}
				 else
				{
					TR0=1;
					if(umiao>1000)
					{
						m1=umiao=0;
						m2=miao=0;
					  m3=fen=0;
						
					LCD_ShowChar(2,14,'.');
					LCD_ShowNum(2,15,m1,2);
					LCD_ShowNum(2,12,m2,2);

					}
//					LCD_ShowChar(2,14,'.');
//					LCD_ShowNum(2,15,umiao,2);
//					LCD_ShowNum(2,12,miao,2);

				}
		
		
		}
}


void Timer0_Routine() interrupt 1
{
		TL0 = 0x18;		//设置定时初值
		TH0 = 0xFC;		//设置定时初值
		umiao++;

		if(umiao>1000)
		{ 
		//	m1=umiao;
			umiao=0;
			miao++;
			if(miao>60)
			{
				miao=0;
				fen++;
			}
	 }
}




?LCD1602模块之前的博客也发过了,如有需要请自行查找吧

?最后是运行效果图

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:41:27  更:2021-08-22 13:43:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:32:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码