1、沈阳航空航天大学课程设计(论文)题目数字式光电转速计的设计班级 94070301学号学09040703018学生姓名刘鹏指导教师刘利秋沈阳航空航天大学课程设计任务书课程名称专业基础课程设计B院(系)自动化学院专业运载器综合测试技术班级 94070301 学号2009040703018 姓名 刘鹏课程设计题目 数字式光电转速计的设计课程设计时间:2012年7月9日至2012年7月20日课程设计的内容及要求:1 .内容设计采用单片机、光电传感器的数字式光电转速计。实现转速的实 时测量和LED显示,键盘设定转速上限值,并能给出转速超标报警提 不。2 .技术指标(1)测量范围:050转/秒(r/s)。
2、(2) LED 显示:x x r/s。(3)键盘设定上限阈值。(4)能给出转速超标的声、光报警提示。3 .要求(1)制定设计方案,并绘制出系统工作框图。(2)绘制电路原理图,并将传感器、单片机试验箱、电源等硬件正 确可靠的连接。(3)用单片机实验箱进行程序设计与系统调试。(4)撰写一篇6000字到8000字的课程设计报告。指导教师 年月日负责教师 年_月 日学生签字 年月日0前言 11 总体方案设计 12 硬件电路设计 22.1 光电传感器 32.2 放大电路 32.3 单片机系统 42.4 LED 数码管显示 52.5 键盘和报警电路 63 软件设计 83.1 显示程序设计 93.2 键盘和
3、报警程序设计 93.3 频率测量 104 调试分析 115 结论及进一步设想 11参考文献 11课设体会 12附录1电路原理图 13附录2程序清单 14沈阳航空航天大学课程设计论文数字式光电转速计的设计数字式光电转速计的设计刘鹏 沈阳航空航天大学自动化学院摘要:本文设计了由单片机控制的数字式光电转速计,由光电传感器、单片机、键盘设置报警和LED数码显示组成,主要使用了、 LED主要器件,主要解决方案是利用光电传感 器、单片机学习板等设计一个由LED显示物体转速的转速计。此转速计具有测量精度高, 操作简单明了等优点。在选择设计方案时,除了要考虑能否实现测速性能,还要考虑价格以及测量精度问 题,通
4、过对转速测量资料的查阅还有我们的构思和设计,从而经过分析和比较,从实现 难度、对器材的熟悉程度、器件用量、价格等方面进行综合考虑,然后最终确定方案。 关键词:光电传感器;单片机;AT89C52 LED液晶显示。0前言在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、 卷扬 机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及 瞬时转速。目前国内外测量电机转速的方法有很多, 按照不同的理论方法,先后产生过模 拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得 卜同步测速法(如机 械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机
5、械式定时计数法和电 子式定时计数法。其中应用最广的是光电式, 光电式测系统具有低惯性、低噪声、高分辨 率和高精度的优点。加之激光光源、光栅、光学码盘、CCD器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关 等优点,具有广阔的应用前景。这次设计的内容包含了多个方面, 从脉冲信号的产生模块 (即光电传感器部分)、脉冲信号的处理模块和转速的显示模块三个模块入手,全面锻炼 了我们信号采集,处理和分析的工作能力。本次用AT89C52单片机的两个定时器/计数器来实现转速测量,
6、用单片机电子计数法 测量频率有测量频率法和测周期法两种方法。单片机具有体积小、价格低廉、可靠性高、 开发较为容易。测量频率主要是在单位定时时间里对被测信号脉冲进行计数。定时和计数功能最终都是通过计数来实现的, 若周期的事件源是周期固定的脉冲,则 可以实现定时功能,否则只能实现计数功能。1总体方案设计针对本课题的设计任务,进行分析得到:本次设计用光电传感器进行电压脉冲频率的 测量,将电压频率转化为模拟电信号,再用单片机学习板够成一个能显示转速的测量仪器。系统原理图如图1图1系统原理图整个电路的工作原理是用光电传感器将光电传感器产生的脉冲信号经单片机控制送 入LED数码显示,用键盘设置上限阈值,超
7、出设定值有报警电路LED灯和蜂鸣器报警。光电传感器测量方案整个测量系统的组成框图如图2所示。从图中可见,转子由一直流调速电机驱动,可实现大转速范围内的无级调速。 转速信号由光电传感器拾取,使用时 应先在转子上做好光电标记,具体办法可以是:将转子表面擦干净后用黑漆(或黑色胶布)全部涂黑,再将一块反光材料贴在其上作为光电标记,然后将光电传感器(光电头)固定在正对光电标记的某一适当距离处。光电头采用低功耗高亮度LED,光源为高可靠性可见红光,无论黑夜还是白天,或是背景光强有大范围改变都不影响接收效果。光电头包含有 前置电路,输出05V的脉冲信号。接到单片机89C52的相应管脚上,通过89C52内部
8、定时/计时器T0、T1及相应的程序设计,组成一个数字式转速测量系统。2硬件电路设计本设计通过单片机对LED显示、键盘、报警等电路控制将由光电测得的电信号转化为脉冲频率显示,以达到测量转速的目的。硬件原理框图如图3所示光 电 传 感 器放大电路单片机LED显示键盘和报警图3硬件原理框图2.1 光电传感器本设计中采用对射式光电传感器测量转速和采集信号。光电传感器采集信号,这种传感器是把旋转轴的转速变为相应频率的脉冲,然后用测量电路测出频率,由频率值就可知道所侧转素值。这种测量方法具有传感器结构简单、可靠、测量精度高的特点。是目前常用的一种测量转速的方法。从光源发出的光通过测速齿盘上的齿槽照射到光电
9、元件上,使光电元件感光。测速齿盘上有n个齿槽,当测速齿槽旋转一周,光敏元件就能感受与开 孔数相等次数的光次数。被测电机转动m-M转每秒,每转一周产生N个电脉冲信号,因此, 传感器输出波形的频率的大小为: m/nHzD FJI ?3,D TXDP3.1NT0F3.2TO P3.4 T1EJ.5 WJ FM 1DF3,加AL: V器ATSS501 VCCPL.0 priiPCI*: PLSP0.7EA,町 F ALEPPO rm: P:,7 Pi. 6 P2.5 * P2.3 F2/J P2.1 P2.0图6 89C52单片机2.4 LED数码管显示显示设计采用 LED七段数码管显示,本电路数码管
10、为共阴极接法。两个74HC573 数字锁存器分别对数码管的段选码、位选码锁存,由LE接口控制。单片机 P2.6接口控制段选,P2.7接口控制位选。LED数码管显示电路如图 7二 niDrrLrii0/Bi TW 9IBnla 比IHDrDbELGimDO Q0 m oiD: 0!Di O SDt 0*IT m a IF EL CjlTT-*HCr二三 TJif.EB SBTHC Tqooo。 EEErmrErhII 0lm 【ImDC一忸良.IT图7 LED数码管显示电路2.5 键盘和报警电路键盘按键采用独立式按键。当按键被按下或释放时,按键触电的弹性会产生一 种抖动现象。当按键按下时,触点不
11、会迅速可靠地接通;当按键释放时,触电也不 会立即断开,而是要经过一段时间的抖动才能稳定下来。而本次设计采用软件延时 法来消除键抖动现象。如图8,为独立式按键,P3.3 口用来设置报警上限值。超过上限值P1.5 口为低电平LED1灯亮报警。声光报警电路如图9所示U1MWipq a风口)CTL2FD-WADI fdADZRSTFD.tfADt 叩与凡 口白食帕 PQ T/AD71FSENPZISAaF2.WA&PUM 口 P2JfA11ALEF2.WA1Z中FZfA13P1DTTZ FH.IfTZK PINPZfifAI*-F2,7/A1SFIIVHXO“ 1iTTXPP32fWTDFOF1I.*
12、F3WTT P3.4/irnP1SPljfiP1.7BET:|二拿厂;tE*T-4-Tir常 ftf 一lolllzTFFF 一图8独立式键盘壬XTALi1XTALZRBTFETALE 包.LEM :AFinT2Pl.lfTZEXPINP13A-rass4fe I1:1fl附录2程序清单#include#include延时机器周期头文件#define uchar unsigned char#define uint unsigned intsbit feng=P2A3;sbit dula=P2A6;sbit wela=P2A7;sbit key1=P3A0;sbit key2=P3A1;sbit
13、 key3=P3A2;sbit key4=P3A3;sbit led1=P1A4;sbit led2=PW5;sbit adwr=P3A6;sbit adrd=P3A7;sbit weiz=P1A0;uchar n=0;uchar code table= /无小数点0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar A1,A2;uint f;uchar num1,num2;uint sheding1=40,sheding2=90;void delay(uint x)uint i,j;for(i=x;i0;i-)for(j=110;j0
14、;j-);void display(uchar num1,uchar num2)dula=1;P0=tablenum1;dula=0;P0=0xff;wela=1;P0=0x7e;wela=0;delay(5);dula=1;P0=tablenum2;dula=0;P0=0xff;wela=1;P0=0x7d;wela=0;delay(5);void queding1()if(key3=0)delay(10);if(key3=0)sheding1=(num1*10)+num2;while(!key3);/等待按键释放void queding2()if(key4=0)delay(10);if(k
15、ey4=0)sheding2=(num1*10)+num2;while(!key4);/等待按键释放void keyscan()if(key1=0)delay(10);if(key1=0)num1+;if(num1=10)num1=0;while(!key1);/等待按键释放if(key2=0)delay(10);/消除抖动if(key2=0)num2+;if(num2=10)num2=0;while(!key2);void pinlu()uint count,period,f;TMOD=0x01;TH0=0x00;TL0=0x00;ET0=1;EA=1;while(!weiz); / whi
16、le(weiz);TR0=1;/while(!weiz); / while(weiz);TR0=0;/检查周期上升沿启动定时器检查周期上升沿关闭定时器count=(n*65536+TH0*256+TL0);*/*取计数值period=1*count; /*Fosc=12M,1 f=1000000/period;void main() led1=1;led2=1;while(1)key3=1;key4=1;pinlu();A1=f/10;A2=f%10;display(A1,A2);微秒计数增1,周期值单位微秒*/while(!key3)num1=0;num2=0;while(!key3);ke
17、y3=1;while(key3)keyscan();display(num1,num2);queding1();while(!key3);key3=1;while(!key4)num1=5;num2=0;while(!key4);key4=1;while(key4)keyscan();display(num1,num2);queding2();while(!key4);key4=1;while(fsheding2|fsheding1)if(fsheding2)feng=0;led2=0;num1=sheding2/10;num2=sheding2%10; display(num1,num2); pinlu();led1=1;led2=1;feng=1;void TR() interrupt 1TH0=0;TL0=0;n+;