基于51单片机的红外反射式光电传感器测速机的简易设计

合集下载

基于51单片机的红外测仪

基于51单片机的红外测仪

基于51单片机的红外测仪【摘要】本系统是基于51单片机的一款测量精度为0.1毫米红外测距仪。

本系统采用能量测距原理,通过红外接收模块将采集的光信号转化成电信号,再经信号放大,A/D采样将信号转化为数字信号输入单片机中,通过编写相应的程序实现自动测量功能,通过显示电路显示出结果。

并在超出系统测试范围时进行警报。

【关键词】红外测距当前主流测距方法主要有三种:传统测量、激光测量、红外测量、超声波测量。

传统测量方法需要话费大量人力时间,且精度和范围都无法达到高标准要求。

激光测距虽在测量范围和时间上有一定优势,但对操所人员的技能要求较高容易出现安全事故,且制做的难度较大,成本较高。

超声波测距误差较大环境温度、湿度、海拔高度等都可能对其造成影响。

红外线是介于可见光和微波之间的一种电磁波,因此,它不仅具有可见光直线传播、反射、折射等特性,还具有微波的某些特性,如较强的穿透能力和能贯穿某些不透明物质等。

故在未来的发展中红外测距技术必将拥有广阔的应用前景。

本文提供一种用51单片机解决短距高精度红外测距的方法。

此系统精度高电路简单,用51c编程易懂且方便移植。

降低了调试难度且增加了初学者的可操作性。

1 方案论证与比较目前在红外测距领域中,主要有应用一下三种测距法:时间差测距法、放射能测距法和相位测距法。

这三测距法原理如下1.1 时间差测距法原理红外线发射器发射出有频率的红外线,经障碍物反射,红外线接收器接收到反射波信号,并将其转变为电信号。

测出发射波与接收到反射波的时间差,即可求出距离s,但是经过计算这个方法并不合理,红外线的传播速度为310 m/s,单片机要想反应的过来的话,处理速度至少在GHz以上,很显然是不可能的,所以是无法根据时间测出距离的。

1.2 反射能量法原理反射能量法:仪器发射一束光(通常是近红外光)照射到被障碍物表面,同时红外接收管接收障碍物的反射光能量,传播距离越远,光强就越弱,所以根据接收到的反射光能量来判断被测物体的距离。

基于51单片机红外计数器设计毕业设计(论文)

基于51单片机红外计数器设计毕业设计(论文)

毕业设计论文红外线自动计数器的设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

基于单片机控制的红外测速装置设计报告

基于单片机控制的红外测速装置设计报告

基于单片机控制的红外测速装置设计报告姓名学号学院班级组长李庆鹏11221097机电学院机械1104组员郭鑫鹏11221065机电学院机械1103指导教师:邓湘联系方式:xdeng@完成日期:2013.7.10内容摘要:90C51单片机 LED动态显示红外传感测速(计时)通过利用分布在车辆运行线路上的两个红外传感装置A和B,使得其在车辆通过时因为被车体遮挡而产生低电位,进而控制单片机进行开始(停止)计时,达到计时效果;同时,利用LED动态显示方法将得到的时间显示出来。

利用得到的时间T和预先设定的检测口A、B距离S(S被认为是足够小的一段距离),则可以近似得出列车通过A、B时的瞬时速率V, V=S/T。

若利用通信设备将此速率传输到调度中心,可以建立一个独立于列车以外的运行监测系统,这样可以防止因列车通信系统意外故障而产生的运行监测失效,为列车安全运行提供了另一把安全锁。

目录1.背景和意义 (1)1.1设计背景及意义 (1)1.2设计内容 (1)1.3设计要求 (1)2.仿真设计............................. 错误!未定义书签。

2.1设计思路......................... 错误!未定义书签。

2.2硬件设计......................... 错误!未定义书签。

2.3软件设计......................... 错误!未定义书签。

2.4Proteus软件仿真结果.............. 错误!未定义书签。

3.实物设计............................. 错误!未定义书签。

3.1工作原理......................... 错误!未定义书签。

3.2硬件设计......................... 错误!未定义书签。

3.3软件设计......................... 错误!未定义书签。

基于51单片机的红外遥控课程设计

基于51单片机的红外遥控课程设计

目录第一章设计简介 (2)第二章系统方案 (2)一、设计方案对比 (2)二、方案设计 (4)第三章硬件设计 (4)一、红外遥控器 (4)二、红外接收模块部分 (6)第四章软件设计 (7)一、红外遥控器软件设计 (7)二、红外接收模块软件设计 (10)三、程序代码 (10)第五章测试及分析 (10)第六章结论 (10)第七章参考文献 (11)附录一(程序代码): (12)第一章设计简介本设计分为红外遥控器与红外接收模块两部分。

红外遥控器包括矩阵键盘、增强型51单片机(STC11L04E)、红外发射电路组成。

单片机扫描矩阵键盘后,将按键状态进行信源编码与信道编码,载波(38k脉冲)后由红外发射器发射。

红外接收模块部分由传统51单片机、数码管、一体化红外接收头组成。

一体化红外接收头将信号进行限幅放大、带通滤波、解调、积分、整形后输出解调信号至单片机,并由单片机输出解调信号。

第二章系统方案一、设计方案对比红外遥控器部分2.1.1 主控芯片方案一:HT6222方案二:STC11L04E分析:传统红外遥控器芯片HT6222具有性价比高、功能强大、稳定可靠、使用简单等特点,但该芯片难以零购。

STC11L04E为增强型51单片机,控制灵活(载波频率可调、通信协议可变更、用户码可变换)、价格较HT6222稍贵。

STC11L04E最大的特别是低功耗,功作电压低3.3V,易于应用于移动设备。

结论:由于STC11L04E单片机的灵活性以及学习性(可增强我们对一个完整通信系统的理解)。

因此我们采用方案二。

2.1.2 矩阵键盘方案一:3*6*2.5 贴片轻触开关方案二:6*6*6 直插轻触开关分析:3*6*2.5贴片轻触开关虽然体积小巧、美观,但与6*6*6直插轻触开关对比,在制板布线上较繁锁。

结论:综上,我们采用6*6*6直插轻触开关,使得整体布线简单,可布单面版,简化制板流程。

2.1.3电源模块方案一:钮扣电池CR2032方案二:可充电锂电池18650分析:可充电锂电池18650容量大,节能环保(可多次利用),但体积大。

基于51单片机和霍尔传感器的测速

基于51单片机和霍尔传感器的测速

基于51单片机和霍尔传感器的测速1. 小项目简介主要采用stc89c51/52单片机作为主控,由霍尔传感器作为测速的基本模块,采用按键控制速度快慢,数码管显示当前速度。

最后成品图如下:2.电源部分1.电源供电的功率尽可能的稍微大一些,我是采用罗马仕充电宝供电(5V,2.1A输出口)。

因为电源功率过小,将造成电机无法带动,或者数码管闪烁等硬件上的bug。

2.如果电源的电压高于5V,需要在电源输入端使用一个稳压电路,将输入电压稳压到5V给单片机,和其他外设供电。

防止电压过高造成器件损坏。

3.硬件部分1. stc89c51/52的最小系统注意:如果使用一般的USB接口供电,当电机转动时候,可能照成单片机的管脚供电不稳定,所以需要在单片机的IO的外接上拉排阻。

P3口不需要。

9针排阻如下:有小点的一端是公共端,需要和电源5V连接,其余口和单片机管脚一一对应焊接就行。

2. 霍尔传感器注意引脚,窄的一面来看引脚顺序:这里的VOUT口可以直接连接单片机的外部中断1口,可以经过一个电压比较器lm393之类的在给单片机。

3. 直流电机马达驱动51单片机的IO口输出的电流过小,驱动直流电机马达效果不明显,达不到后期变速,需要使用一个三极管(9015\9013这类都可以)放大电路去驱动马达:示范电路如下:(电阻根据自己需要修改)4. 共阴数码管//数码管位选sbit S1=P2^4;sbit S2=P2^5;sbit S3=P2^6;sbit S4=P2^7;//数码管段选:P1的八个IO口。

连线的时候一定根据下列图示的段选(注意注意注意:容易连错)4.软件部分1.软件工程整体图:2.main.c文件代码:自己创建一个51单片机的keil工程文件,将下面代码拷贝到自己工程文件下的main.c文件替换即可/************************************************************** ************************* 基于51单片机测速* 实现现象:按下按键K1减速按下按键K2加速外部中断1对应IO口P3^3注意事项:电机速度不能过快,否则会造成数码管显示不稳定*************************************************************** ************************/#include 'reg52.h' //此文件中定义了单片机的一些特殊功能寄存器typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;//测试端口(根据自己需要决定)sbit led=P0^0; //将单片机的P0.0端口定义为led/************************************************************** ****************************************************核心部分**************************************************************************************************************** ************************///占空比u16 time = 0; // 定义占空比的变量u16 count=30; //定义占空比上限sbit PWM=P0^1;// P0.1输出pwm//速度u16 zhuansu=0; //转速初值为0u16 jishu = 0; //jishu的变量初值为0u8 flag = 0; //定时器1计数变量//按键sbit k1=P2^0;sbit k2=P2^1;sbit k3=P2^2;sbit k4=P2^3;//数码管位选sbit S1=P2^4;sbit S2=P2^5;sbit S3=P2^6;sbit S4=P2^7;//数码管位选:P1的八个IO口//共阴数码管段选u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值//数码管存储中间变量unsigned char Display_data[4];/************************************************************** ****************** 函数名 : delay* 函数功能 : 延时函数,i=1时,大约延时10us*************************************************************** ****************/void delay(u16 i){while(i--);}//定时器和外部中断1的初始化函数void InitSyetem(){//配置外部中断1:采集霍尔传感器触发下降沿IT1 = 1; //选择下降沿触发EX1 = 1; //打开外部中断1//定时器0,1工作方式1TMOD=0x11; //定时或者计数模式控制寄存器//定时器0配置:产生PWM波TH0=(65536-10)/256;//赋初值定时10usTL0=(65536-10)%256;//sET0=1;//开定时器0中断TR0=1;//启动定时器0//定时1:测速TH1=(65536-10000)/256;//赋初值定时10msTL1=(65536-10000)%256;ET1=1;//开定时器0中断TR1=1;//启动定时器0PX1=1;//设置优先级PT1=1;//设定定时器1为最高优先级EA=1;//开总中断}//外部1中断服务函数void Service_Int1() interrupt 2{jishu++; //霍尔下降沿一次就记一次数if(jishu == 100) //累加计数有100次,总时间为100 * 10ms = 1s{led^=led; //led闪烁}}//定时0处理函数产生PWM 调速原理———在PWM高电平时候驱动电机转动在PWM低电平时候让电机停止转动void Service_Timer0() interrupt 1{TR0=0;//赋初值时,关闭定时器TH0=(65536-10)/256;//赋初值定时TL0=(65536-10)%256;//0.01msTR0=1;time++; //计数变量if(time>=100) time= 0; //清零标志变量if(time<=count) //小于设定值,输出高电平{PWM = 1;}elsePWM = 0;}//定时器1中断处理显示转速void Service_Timer1() interrupt 3{TR1=0;//赋初值时,关闭定时器TH1=(65536 - 10000) / 256;TL1=(65536 - 10000) % 256;//定时10msTR1=1;flag++; //计数变量加if(flag==100) //计时到达1s 测量此时的转速{// led=~led; //led状态取反zhuansu = jishu; //监测霍尔传感器总共计数次数jishu=0; //转速置0flag=0; //清除计数变量}}//数码管处理函数void Deal_data(){Display_data[3]=smgduan[zhuansu/1000]; //数码管高位Display_data[2]=smgduan[zhuansu/100%10];//去第二位Display_data[1]=smgduan[zhuansu/10%10];Display_data[0]=smgduan[zhuansu%10]; //数码管低位}/************************************************************** ****************** 函数名 : DigDisplay* 函数功能 : 数码管动态扫描函数,循环扫描4个数码管显示*******************************************************************************/void DigDisplay(){u8 i;for(i=0;i<4;i++){switch(i) //位选,选择点亮的数码管,{case 0 : S1 = 0; S2 = 1; S3 = 1; S4 = 1;break; //点亮第一位数码管case 1 : S2 = 0; S1 = 1; S3 = 1; S4 = 1;break;case 2 : S3 = 0; S1 = 1; S2 = 1; S4 = 1;break;case 3 : S4 = 0; S1 = 1; S2 = 1; S3 = 1;break;}P1=Display_data[i];//发送段码delay(5); //间隔一段时间扫描时间越少,一起亮且显示越稳定;时间越多,是流水点亮P1=0x00;//消隐时间过快时,每个数码管将会有重影}}/************************************************************** ****************** 函数名 : keypros* 函数功能 : 按键处理函数,判断按键K1是否按下*************************************************************** ****************/void keypros(){if(k1==0) //检测按键K1是否按下{delay(100); //消除抖动一般大约10ms 时间的估算100*n=1(s) if(k1==0) //再次判断按键是否按下{led=~led; //led状态取反count+=10;if(count >= 90) //设置一个上限count+=90;}while(!k1); //检测按键是否松开为假时候说明按键没有释放}if(k2==0) //检测按键K1是否按下{delay(100); //消除抖动一般大约10msif(k2==0) //再次判断按键是否按下{led=~led; //led状态取反count-=10;if(count <= 10){count = 10;}}while(!k2); //检测按键是否松开}}/************************************************************** ****************** 函数名 : main* 函数功能 : 主函数* 输入 : 无* 输出 : 无*************************************************************** ****************/void main(){led = 0; //上电熄灭小灯P1 = 0x00; //上电初始化熄灭数码管InitSyetem();//定时器和外部中断1的初始化函数while(1){keypros(); //按键处理函数Deal_data(); //数据处理函数DigDisplay(); //数码管显示函数}}。

基于51单片机的红外遥控-自动避障-贴墙行走-人体感应智能小车机器人

基于51单片机的红外遥控-自动避障-贴墙行走-人体感应智能小车机器人

基于51单片机的红外遥控-自动避障-贴墙行走-人体感应智能小车机器人队员1姓名:周葛学院:仪器科学与电器工程学院专业:测控技术与仪器年级:大一教学号:65130109邮箱:zhouge94@队员2姓名:成妍学院:药学院专业:生物医学工程(再生医学)年级:大一教学号:73130430邮箱:lianyungangcheng@作品类别:基本电子技术应用类目录一、引言 (1)二、总体设计 (1)三、单元电路设计 (2)1)单片机最小驱动模块 (2)2)红外接收模块 (3)方案选择 (3)方案确定 (3)理论分析与方案论证 (3)3)电机驱动模块 (4)4)避障循迹贴墙模块 (5)方案选择 (5)方案确定 (5)理论分析与方案论证 (6)5)电源模块 (7)6)人体感应模块 (7)四、软件设计 (8)五、整体测试 (8)六、结论 (9)【参考文献】 (9)【附录】 (10)源程序 (10)一、引言以STC89C52单片机为核心,制作一款红外线遥控小车,小车具有自动驾驶、手动驾驶和循迹前进等功能。

自动驾驶时,小车在前进过程中可以自动躲避障碍物。

手动驾驶时,可以手动遥控小车前进、后退、左转、右转、加速等操作。

寻迹时小车可以按轨迹前进。

红外遥控的特点是利用红外线进行点对点通信的技术,不影响周边环境,不干扰其他电器设备。

室内近距离(小于10米),信号无干扰、传输准确度高、体积小、功率低的特点,遥控中得到了广泛的应用。

本系统采用成品红外发射遥控器,具有21个按键,采用NEC红外传输协议。

接收端使用1838一体化接受头,通过单片机中断程序处理红外信号。

二、总体设计本系统由硬件和软件两部分组成。

硬件部分由红外线接受电路,控制电路,直流电机驱动,障碍物检测电路,人体感应电路五部分组成,完成红外编码信号的接受,直流电机的驱动,障碍物检测、墙体检测、地面检测,人体感应检测等功能。

软件部分主要完成信号的检测和处理、直流电机的控制,障碍物的规避等功能。

基于51单片机红外测温的设计

基于51单片机红外测温的设计

基于51单⽚机红外测温的设计前⾔体温是⼈体⽣命活动的基本特征,也是观察⼈体机能是否正常的重要标志之⼀。

⽬前,⼈们使⽤最⼴泛的⽔银体温计是根据⽔银等随温度升降的热胀冷缩的性质,通过读取刻度值来判断温度值,它有诸多的缺陷:传统温度计在使⽤时要和被测量者接触,⽽且往往要等待较长的时间,以让其充分受热,当测量结束后还要将⽔银重新甩⼊⽔银泡中,由于⽔银泡是由很薄的玻璃制成的,极易破碎,⽽且其中的⽔银蒸汽对⼈体有极强的毒害作⽤,因此普通的温度计有⾮常严重的安全隐患。

红外测温为测量⼈体温度提供了快速,⾮接触测量⼿段,可⼴泛,有效的⽤于密集⼈群的体温测量。

⽽且可以以数字的⽅式显⽰出测量结果,使测量过程变得直观,⽽且耗时短,往往在⼏秒钟之内就能测得结果,⽽且寿命长,是较为理想的测温仪器。

红外测温的设计,其内容包含了电⼦技术,检测技术,单⽚机等多⽅⾯的内容,红外测温技术是⼀门很实⽤和前沿的技术,做此课题,有利于理论联系实际,更好的掌握这⼀⽅⾯的知识体系,是对学习内容的升华,特别是对单⽚机控制技术知识的深⼊理解,对于⾃⾝综合素质与⼯程能⼒的培养也有重要意义。

⽬录⼀.概述 (1)1.红外测温概况 (1)1.1红外测温的基础理论 (1)1.2红外测温的特点 (1)1.3设计的⽬的和意义 (2)⼆.设计的整体思路和框架 (2)2.1总体设计 (2)2.2系统总体结构框图 (3)三.AT89S52单⽚机简介 (3)四.红外传感器简介 (4)五.显⽰模块简介 (5)六.软硬件调试 (6)6.1 系统硬件调试 (6)6.2 系统软件调试 (6)七.总结 (7)⼋.参考⽂献 (8)⼀.概述1.红外测温概况1.1红外测温的基础理论红外线是电磁波谱的⼀个部分,这⼀波段位于可见光和微波之间,根据普朗克辐射定理,凡是绝对温度⼤于零度的物体都能辐射电磁能,物体的辐射强度与温度表⾯的辐射能⼒有关,辐射的光谱分布也与物体温度密切相关。

在电磁波谱中,我们把⼈眼可直接感知的0.4~0.75微⽶破段称为可见光波段,⽽把波长从0.75⾄1000微⽶的电磁波称为红外波段,红外波段的短波段与可见光红光相邻,长波端与微波相接。

基于51单片机的步进电机红外控制系统的设计

基于51单片机的步进电机红外控制系统的设计

文章标题:基于51单片机的步进电机红外控制系统的设计引言在现代科技发展迅速的时代,控制系统已经被广泛应用于各个领域。

其中,基于51单片机的步进电机红外控制系统的设计,不仅在工业领域有着重要的作用,同时也在家电领域、智能家居等方面得到了广泛的应用。

本文将从步进电机控制系统的设计原理、红外控制的基本概念以及基于51单片机的系统设计方案等方面展开深入探讨。

一、步进电机控制系统的设计原理步进电机是一种将电脉冲信号转换为机械位移的执行元件,其控制系统设计原理是核心。

以步进电机为执行元件的控制系统通常包括电脉冲发生电路、电流驱动电路、位置控制逻辑电路以及接口电路等模块。

在系统设计中,需要考虑步进电机的类型、工作方式、转动角度以及控制精度等因素,以选择合适的控制方案和相关元器件。

针对步进电机的控制系统设计,首先需要从硬件电路和软件控制两个方面进行综合考虑。

硬件方面需要设计合适的脉冲发生电路和驱动电路,并根据具体场景考虑相关的接口电路,以实现步进电机的控制和驱动。

而软件控制方面,则需要编写相应的控制程序,使得系统能够根据具体的控制要求进行精准的控制和调节。

二、红外控制的基本概念红外控制是一种常见的无线遥控技术,通过使用红外线传输信号来实现对设备的控制。

通常包括红外发射器和红外接收器两个部分,发射器将控制信号转换成红外信号发送出去,接收器接收红外信号并将其转换成电信号进行处理。

在实际应用中,红外控制技术已经被广泛应用于各种家电遥控器、智能家居系统以及工业自动化领域。

红外控制的基本原理是在发射器和接收器之间通过红外线进行双向通信,通过调制解调的方式进行信号的传输和解析。

设计基于红外控制的步进电机系统需要考虑红外信号的发射和接收过程,以及相关的解析算法和信号处理。

信号的稳定性、抗干扰能力以及传输距离等也是需要考虑的重要因素。

三、基于51单片机的系统设计方案在步进电机红外控制系统的设计中,选择合适的控制芯片和处理器是至关重要的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

光电传感器——基于红外反射式的测速机引言在工程实践中,经常会遇到各种需要测量转速的场合。

转速是电动机极为重要的一个状态参数,在很多运动系统的测控中,都需要对电机的转速进行测量,不论是直流调速系统还是交流调速系统,只有转速的高精度检测才能得到高精度的控制系统。

迄今为止,测速可分为两类:模拟电路测速和数字电路测速。

随着微电子技术的发展,计算机技术的广泛应用,出现了以计算机为核心的数字测速装置。

这样的速度测量装置测量范围宽、工作方式灵活多变、适应面广,具有普通数字测速装置不可比拟的快速性、精确性和优越性。

一:设计思路用一个红外发光二极管和一个接受红外光的二极管组成一套光电管。

当检测到物表面为黑色时,反射光很弱,接收端检测到的光线可以忽略,使接收端呈现一种状态,例如开关管截止;当被检测物表面为白色时,反射光强烈,发射端发射的红外线被接收端全部接收,使接收端呈现另一种相反的状态,例如开关管开通。

这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。

由此,我想到用一个比较器来比较两种接受到的信号,从而输出“0”“1”两种高低电平,并把两种信号传给单片机进行统计,然后利用设定算法进行计算,最后通过数码显示管显示计算结果。

二:所需模块本测速系统共有两个模块构成,一个为光电传感器部分,用于接收光信号并转换为电信号,即高低电平信号;另一个为单片机部分,用于接收高低电平信号并通过内部计算,然后再通过数码显示管显示测出的结果。

(一)光电传感器部分(1)LM339工作原理及管脚图:LM339类似于增益不可调的运算放大器。

每个比较器有两个输入端和一个输出端。

两个输入端中的一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。

当用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压,当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。

当“-”端电压高于“+”端时,输出管饱和,相当于输出端接高电位。

两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。

LM339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。

选不同阻值的上拉电阻会影响输出端高电位的值。

因为当输出晶体三极管截止时,它的集电极电压基本上取决于上拉电阻与负载的值。

下图(1a)给出了一个LM399的基本单限比较器。

输入信号Uin为待比较电压,把它加到同相输入端,在反相输入端接一个参考电压(门限电平)Ur。

当输。

图(1b)为其传输特性。

图(1c)为LM339入电压Uin>Ur时,输出为高电平UOH的管脚图。

(c)图(1)LM339工作原理图及管脚图(2)整体连线图:如下图(2)所示:图(2) 比较型光电传感器整体电路图在上图中, LED 灯相当于一个红外线发射管,JP1是红外线接收管,接收光强在上面转换成电流,在R 上成为电压信号。

当光线照射到白色面上时,光线反射强烈,光线照射到黑色面上时,光线反射较弱。

因此当光照在不同颜色面上时,阻值会发生明显的变化。

将阻值的变化值与RA1的标准值进行比较,就可以从LM339输出逻辑电平给单片机。

(二) 单片机部分(1)单片机外部连线图:如下图(3)所示AL E W R RD RXD T XD INT 0E A/VP 31X119X218RE SE T 9RD 17W R16INT 012INT 113T 014T 115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSE N29AL E /P 30T XD 11RXD 10VCC 40GND 20U189C52PSE NP10P11P12P13P14P15P16P17T 0T 1INT 1P00P01P02P03P04P05P06P07P 00P 01P 02P 03P 04P 05P 06P 07P20P21P22P23P24P25P26P27P 20P 21P 22P 23a b f cg deDPY117421105a b c d e fg 3d p d pa b f c g d ed pab fc gd ed pab fc g ded p C 06C 28C 39C 412LED DPY 4-L E D12345678161514131211109R 1KP 00P 01P 02P 03P 04P 05P 06P 075V图(3)单片机连线图在上接线图中,可在数码管与单片机之间接上一个分压电阻,起到保护作用。

单片机型号选89C51或89C52都行。

在试验板上把图(1)中的2管脚(逻辑电平输出管脚)和图(2)中的12管脚(中断输入管脚)连接,即可构成整个测速系统。

(2)单片机内部主程序流程图主程序是控制单片机系统按照预定的操作方式运转,它完成人机对话和各种控制功能,是单片机系统程序的框架。

主程序的主要任务是完成系统自检、初始化、处理键盘命令等功能。

在本实验中,未涉及到键盘命令。

本系统的主程序流程如下图(4)所示。

图(4)主程序流程图图(5)外部中断0 中断程序流程图在该测速系统的程序中,主程序执行的过程中共执行了3 个中断程序,即外部中断0 中断、外部脉冲计数0 中断和定时器1 中断。

图(5)所示为外部中断0 中断程序流程图。

外部中断0 中断程序主要用于测速起始。

当测速开始时,执行外部中断0 中断,外部脉冲计数加1,并判断T0、T1 是否开启,若没有开启则开启,再判断1S 定时到了没有,若1S 定时到计算转速,并关INT0、T0、T1 软件清零。

图(6)为T0 中断程序流程图。

T0 对内部时钟脉冲计数, T0 为8 位定时器,1S 定时的内部时钟脉冲超过了T0 上限,故采用软件延时计数。

图(7)为T1 中断程序流程图,T1 定时1S, 当一秒定时到,则置位标志位。

图(6)T0 中断程序流程图图(7)T1 中断程序流程图三:测速原理首先,选一小型直流电机,在其轴上固定一张圆形硬纸片,以此来代替被测物。

其次把此圆形纸片平均分成6等分,并把其中的三块涂黑(具体见实物)。

再次,用光电管正对圆形纸片。

最后,启动整个系统就可以进行测速了。

因为当红外线照到面黑色时,反射光很弱,接收端检测到的光线可以忽略,当照到白色面时,反射光强烈,发射端发射的红外线几乎被接收端全部接收,因此,检测到的信号经过比较电路输出后,会给单片机输入高低两种电平。

所以,在编程中,假定在1S时间内共检测到n个低电平信号,那么此电机的转速为。

四:整体电路图及实物图见附一图所示。

五:所需器件名称型号个数价格51单片机STC89C51RC 1件9元光电管1套5元四电压比较器LM339 1件 1.5元四位数码显示管12管脚1件5元1/4电阻0.47K,1K,3.3K,10K, 各10个(备用)0.8元电位器103(10K)2个1元瓷片电容22PF,104(100nF)各10个(备用)2元万用版1块3元电池盒1个1元PIC座20,40脚(2+1)个1元排针40PIN 2排1元晶振12M 1个1元复位开关1个0.1元LED灯5个0.5元共计:31.9元六:总结本设计的光电传感器测速机能够快速检测到电机横截面上的黑白相间的面,并通过单片机编写测速程序,用数码管显示。

但本设计的测速系统的整体性能只能满足一般小型电机和一些要求不高的测速,并且在其测速时,还需要在被测物上安装一个黑白相间的圆盘,这对某些被测物体来说是不太好实现的,即其是存在一定的局限性的。

除此之外,其精确度也不尽完美。

但整体来说,此测速系统还是具有可行性的。

当我们需要知道某电机的转速而又缺少测速装置时,就可以用此套系统来进行测速。

它的简单性,方便性和快捷性也是某些测速装置不可比拟的。

至于其缺点,由于设计者水平目前有限,暂不能完美解决,只待以后对此方面有较多理解后在解决,同时也希望对此精通的师生给予指点,从而进行改进测速方法,提高整个系统的测速性能。

附一:整体电路图附二:程序源代码#include<reg52.h>#define uint unsigned intuint temp,qian,bai,shi,ge,aa,n;sbit dula=P0;sbit wela=P1;sbit zd=P3^2;uint codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void display(uint qian,uint bai,uint shi,uint ge);void delay (uint z);void init();void main(){EA=1;//开总中断EX0=1;//开外部中断0init();//初始化子程序while(1){display(qian,bai,shi,ge);}}void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void display(uint qian,uint bai,uint shi,uint ge) {P0=table[qian];P1=0xf7;delay(1);P0=table[bai];P1=0xfb;delay(1);P0=table[shi];P1=0xfd;delay(1);P0=table[ge];P1=0xfe;delay(1);}void exter0() interrupt 0{n++;while(zd==0);}void init(){wela=0;dula=0;temp=0;TMOD=0x01;TCON|=0X04;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}timer0() interrupt 1 {TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;if(aa==20){aa=0;temp=20*n;n = 0;qian=temp/1000;bai=temp%1000/100;shi=temp%100/10;ge=temp%10;}}。

相关文档
最新文档