基于光电传感器的直流电机转速测量系统设计-课设报告_第1页
基于光电传感器的直流电机转速测量系统设计-课设报告_第2页
基于光电传感器的直流电机转速测量系统设计-课设报告_第3页
基于光电传感器的直流电机转速测量系统设计-课设报告_第4页
基于光电传感器的直流电机转速测量系统设计-课设报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京信息科技大学测控综合实践课程设计报告题 目: 基于光电传感器的直流电机转速测量系统设计 学 院: 仪器科学与光电工程学院 专 业: 测控技术与仪器 学生姓名: 摘 要 基于单片机的转速测量方法较多,本次设计主要针对于光电传感器测量直流电机转速的原理进行简单介绍,并说明它是如何对电机转速进行测量的。通过实验得到结果并进行了数据分析。本次设计应用了STC89C52RC单片机,采用光电传感器测量电机转速的方法,其中硬件系统包括脉冲信号的产生模块、脉冲信号的处理模块和转速的显示模块三个模块,采用C语言编程,结果表明该方法具有简单、精度高、稳定性好的优点。关键词:直流电机;单片机;PWM调节;光电传

2、感器目 录摘要 I第一章 概述 1 1.1 课设目标 1 1.2 内容 1第二章 系统设计原理 2 2.1 STC89C52单片机介绍 2 2.2 STC89C52定时计数器 4 2.3 STC89C52中断控制62.4 光电传感器 62.5 数码管介绍 7第三章 硬件系统设计 10 3.1 测速信号采集及其处理 10 3.2 单片机处理电路设计 11 3.3 显示电路 12 3.4 PWM驱动电路 13第四章软件设计 144.1 语言选用 144.2 程序设计流程图 144.3 原程序代码 15第五章 数据分析 19总结 20附件 21 参考文献 23 第一章 概述在工程实践中,经常会遇到各

3、种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。目前国内外测量电机转速的方法有很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。计数测速法又可分为机械式定时计数法和电子式定时计数法。其中应用最广的是光电式,光电式测系统具有低惯性、低噪声、高分辨率和高精度的优点。加之激光光源、光栅、光学码盘、CCD器件、光导纤维等的相继出现和成功应用,使得光电传感器在检测和控制领域得到了广泛的应用。而采用光电传感器的

4、电机转速测量系统测量准确度高、采样速度快、测量范围宽和测量精度与被测转速无关等优点,具有广阔的应用前景。这次设计的内容包含了多个方面,从脉冲信号的产生模块、脉冲信号的处理模块和转速的显示模块三个模块入手,全面锻炼了我们信号采集,处理和分析的工作能力。1.1 课设目标通过51单片机进行PWM驱动直流电机转动,然后使用对射式红外光电传感器通过检测直流电机上的光电码盘进行脉冲测量,单片机处理脉冲最后数码管显示实际转速。1.2 内容1.2.1 总体方案本文针对电机的转速进行测量,以单片机为核心对光电开关产生的数字信号进行运算,从而测得电机的转速,然后用数码管把电机的转速显示出来。即通过光电开关将电机的

5、转数转换成0,1的数字量,只要转轴每旋转一周,产生一个或固定的多个脉冲,并将脉冲送入单片机中进行计数和计算,就可获得转速的信息。系统主要由STC89C52单片机处理系统、电机、传感器检测单元、信号处理单元和显示系统等几个部分组成,如图1.1: 单片机STC89C52PWM驱动直流电机光电传感器测量脉冲数码管显示转速图1.1 第二章 系统设计原理2.1 STC89C52单片机介绍2.1.1 STC89C52主要功能及PDIP封装STC89C52是由深圳宏晶科技公司生产的与工业标准MCS-51指令集和输出管脚相兼容的单片机。STC89C52主要功能如表2.1所示,其PDIP封装如图2.1所示主要功

6、能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能表2.1 STC89C52主要功能2.1.2 STC89C52引脚介绍 主电源引脚(2根)VCC(Pin40):电源输入,接5V电源GND(Pin20):接地线外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端控制引脚(4根)RST/VPP(Pin9)

7、:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(Pin39Pin32):8位双向I/O口线,名称为P0.0P0.7P1口(Pin1Pin8):8位准双向I/O口线,名称为P1.0P1.7 P2口(Pin21Pin28):

8、8位准双向I/O口线,名称为P2.0P2.7 P3口(Pin10Pin17):8位准双向I/O口线,名称为P3.0P3.7图2.1 STC89C52 PDIP封装图2.1.3 STC89C52最小系统 最小系统是指能进行正常工作的最简单电路。STC89C52最小应用系统电路如图2.2所示。它包含五个电路部分:电源电路、时钟电路、复位电路、片内外程序存储器选择电路、输入/输出接口电路。其中电源电路、时钟电路、复位电路是 保证单片机系统能够正常工作的最基本的三部分电路,缺一不可。电源电路 芯片引脚VCC一般接上直流稳压电源+5V,引脚GND接电源+5V的负极,电源电压范围在45.5之间,可保证单片

9、机系统能正常工作。为提高电路的抗干扰性能,通常在引角Vcc与GND之间接上一个10uF的电解电容和一个0.1uF陶片电容,这样可抑制杂波串扰,从而有效确保电路稳定性。时钟电路 单片机引脚18和引脚19外接晶振及电容, STC89C52芯片的工作频率可在233MHz范围之间选,单片机工作频率取决于晶振XT的频率,通常选用11.0592MHz晶振。两个小电容通常取值3pF,以保证振荡器电路的稳定性及快速性。复位电路 一般若在引脚RST上保持24个工作主频周期的高电平,单片机就可以完成复位,但为了保证系统可靠地复位,复位电路应使引脚RST保持10ms以上的高电平。如图复位电路带有上电自动复位功能,当

10、电路上电时,由于C1电容两端电压值不能突变,电源+5V会通过电容向RST提供充电电流,因此在RST引脚上产生一高电平,使单片机进入复位状态。随着电容C1充电,它两端电压上升使得RST电位下降,最终使单片机退出复位状态。正常运行时,可按复位按钮对单片机复位图2.2 STC89C52最小系统原理图2.2 STC89C52定时计数器2.2.1定时/计数器的结构和工作原理51系列单片机有2个16位定时/计数器:T0和T1 ;2个定时器都有定时或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合;定时/计数器实际上是16位加1计数器。T0由2个8位持殊功能寄存器TH0和TL0构成,T1由2

11、个8位持殊功能寄存器TH1和TL1构成。T0和T1都可由软件设置为定时或计数工作方式;T0和T1受2个特殊功能寄存器TMOD和TCON控制。 图2.3定时/计数器T0(或T1)的内部结构和控制信号S开关: S打向上,定时; S 打向下,计数。 计数满,标志置位,产生中断。K开关: GATE=0时,TR0=1,定时/计数器启动工作;GATE=1时,INT0和TR0 同时为1时,启动工作。2.2.2 定时/计数器的寄存器寄存器有2个:控制寄存器TCON(88H)和工作方式寄存器TMOD(89H)1.工作方式寄存器TMOD工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用

12、于T1。其格式如下:GATE:门控位。GATE0时,以运行控制位TRX(X=0,1)来启动定时/计数器运行;GATA1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作;C/T计数器模式和定时器模式选择位C/T=1时,选择计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲计数;C/T=0时,选择定时器模式。M1M0:工作方式设置位。定时/计数器有四种工作方式,由M1M0进行设置。2.控制寄存器TCONTCON的低4位用于控制外部中断,已在前面介绍。TCON的高4位用于控制定时/计数器的启动和中断申请。其格式如下:TF1(TCON

13、.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。T1工作时,CPU可随时查询TF1的状态。所以,TF1可用作查询测试的标志。TF1也可以用软件置1或清0,同硬件置1或清0的效果一样。TR1(TCON.6):T1运行控制位。TR1置1时,T1开始工作;TR1置0时,T1停止工作。TR1由软件置1或清0。所以,用软件可控制定时/计数器的启动与停止。TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0运行控制位,其功能与TR1类同。2.2.3 定时器的四种工作方式1.方式0 M1M0=00T0(或

14、T1)工作于13位定时、计数方式。16位寄存器(THX+TLX)只用13位,TLX的高3位未用。2.方式1 M1M0=01 (与方式0类似)16位定时计数方式,寄存器THx和TLx以16位参与操作。 最大计数 21665536(个外部脉冲) 3.方式2 M1M0=10 8位的可自动重装载的定时/计数方式。 16位的计数器被拆成两个8位,其中TLx用作8位计数器, THx用以保持计数初值。 当TLx计数溢出,置位TFx,THx中的初值自动装入TLx,继续计数,循环重复计数。4.方式3 M1M0=11 (仅适用于T0)TL0和TH0被分成为两个互相独立的8位计数器。TL0可作为定时或计数方式。占用

15、定时器0的各控制位、引脚和中断源。TH0只能用作定时功能,占用定时器1的控制位TR1和中断标志位TF1,其启动和关闭仅受TRl的控制。这种情况下,T1仍可工作于方式0、1、2,但不能使用中断方式。只有将T1用做串行口的波特率发生器时,T0才工作在方式3,以便增加一个定时器。 2.3 STC89C52中断控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。EX0(IE.0),外部中断0允许位;ET0(IE.1),定时/计数器T0中断允许位;EX1(IE.2),外部中断0允许位;ET1(IE.3),定时/计数器T1中断允许位;ES(IE.4),串行口中断允许位;EA

16、 (IE.7),CPU中断允许(总允许)位。2.4光电传感器目前,光电开关已被用作物位检测、液位控制、产品计数、宽度判别、速度检测、定长剪切、孔洞识别、信号延时、自动门传感、色标检出、冲床和剪切机以及安全防护等诸多领域。此外,利用红外线的隐蔽性,还可在银行、仓库、商店、办公室以及其它需要的场合作为防盗警戒之用。光电开关把发射端和接收端之间光的强弱变化转化为电流的变化以达到探测的目的。由于光电开关输出回路和输入回路是电隔离的(即电缘绝),所以它可以在许多场合得到应用。光电传感器具有线性度好、分辨率高、噪音小和精度高、无触点、无机械碰撞、响应快、控制精度高,而且能识别色标等优点,在此我们选择光电转

17、速传感器来进行转速的检测。2.4.1光电开关的工作原理本课题中使用的光电开关是根据光敏二极管工作原理制造的一种感应接收光强度变化的器件,当它发出的光被目标反射或阻断时,则接收器感应出相应的电信号。它包含调制光源,由光敏元件等组成的光学系统、放大器、开关或模拟量输出装置,其工作原理如图2.3所示。光电式传感器由独立且相对放置的光发射器和收光器组成。当目标通过光发射器和收光器之间并阻断光线时,传感器输出信号。它是效率最高、最可靠的检测装置。槽形(U形)光电开关是对射式的变形,其优点是无须调整光轴。图2.3光电传感器的原理图2.4.2光电开关的分类(1)漫反射式光电开关:它是一种集发射器和接收器于一

18、体的传感器,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式(2)镜反射式光电开关:它亦集发射器与接收器于一体,光电开关发射器发出的光线经过反射镜反射回接收器,当被检测物体经过且完全阻断光线时,光电开关就产生了检测开关信号。(3)对射式光电开关:它包含了在结构上相互分离且光轴相对放置的发射器和接收器,发射器发出的光线直接进入接收器,当被检测物体经过发射器和接收器之间且阻断光线时,光电开关就产生了开关信号。当检测物体为不透明时,对射式光电开关是最合适的检测装置(4)槽

19、式光电开关:它通常采用标准的U字型结构,其发射器和接收器分别位于U型槽的两边,并形成一光轴,当被检测物体经过U型槽且阻断光轴时,光电开关就产生了开关量信号。槽式光电开关比较适合检测高速运动的物体,并且它能分辨透明与半透明物体,使用安全可靠(5)光纤式光电开关:它采用塑料或玻璃光纤传感器来引导光线,可以对距离远的被检测物体进行检测。通常光纤传感器分为对射式和漫反射式。2.4.3光电开关的特点MGK系列光电开关是现代微电子技术发展的产物,是HGK系列红外光电开关的升级换代产品。与以往的光电开关相比具有自己显著的特点:(1) 具有自诊断稳定工作区指示功能,可及时告知工作状态是否可靠;(2) 对射式、

20、反射式、镜面反射式光电开关都有防止相互干扰功能,安装方便;(3)对ES外同步(外诊断)控制端的进行设置可在运行前预检光电开关是否正常工作。并可随时接受计算机或可编程控制器的中断或检测指令,外诊断与自诊断的适当组合可使光电开关智能化;(4)响应速度快,高速光电开关的响应速度可达到0.1ms,每分钟可进行30万次检测操作,能检出高速移动的微小物体;(5)采用专用集成电路和先进的SMT表面安装工艺,具有很高的可靠性;(6)体积小(最小仅203112mm)、重量轻,安装调试简单,并具有短路保护功能。2.5数码管的介绍LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加

21、一个小数点)而作为一个引脚,就叫共阳的,相反的,就叫共阴的,那么应用时这个脚就分别的接VCC和GND。再把多个这样的8字装在一起就成了多位的数码管了。实物如下图所示:图2.4 数码管共阳型(图2.5)就是八个发光管的正极都连在一起,作为一条引线AG段用于显示数字,字符的笔画,(dp显示小数点),每一段控制AGdp的亮与来。 内部结构:图2.5 共阳型LCD共阴型(图2.6)就是七个发光管的负极都连在一起 ,作为一条引线。AG段用于显示数字,字符的笔画,(dp显示小数点),每一段控制AGdp的亮与来.内部结构:图2.6 共阴型LCD数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示

22、出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g

23、,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪

24、烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。LED段码表如下表所示:显示字符共阴极段选码共阳极段选码显示字符共阴极段选码共阳极段选码012343FH06H5BH4FH66HC0HF9HA4HB0H99H567896DH7DH07H7BH6FH92H82HF8H80H90H表1 LED段码表第3章 硬件系统设计(本部分由本组成员吴辉负责)根据系统设计要求本系统分为PWM直流电机驱动模块,测速信号采集与处理模块,单片机模块以及显示模块四大部分。3.1.1测速信号采集及其处理 本设计中采用对射式光电传感器如图3.1(b)测量电机转速。使用专用的光电编码盘如图3.1

25、(a)所示,安装在电机转轴上, 图:3.1(a) 图:3.1(b)3.1.2检测装置安装此检测装置按照发动机上传感器的实际安装位置进行安装。如图3.2,将码盘固定在电动机转轴上,光电转速传感器正对着码盘。光电转速传感器接有3根导线,红线接+5V,黑线连接GND,蓝线为脉冲信号输出口。图:3.23.2单片机处理电路设计如下图所示,采用11.0592MHz的晶振,9口为复位接口,通过开关控制。如图3.3所示:图3.33.2.1时钟电路单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。本设计中此采

26、用内部时钟方式,如图3.4所示,以石英晶体振荡器和两个片电容组成外部振荡源。片内的高增益反相放大器通过XTAL1、XTAL2外接,作为反馈元件的片外晶体振荡器与电容组成的并联谐振回路构成一个自激振荡器,向内部时钟电路提供振荡时钟。振荡器的频率取决于晶振的振荡频率,振荡频率范围为1.212MHz。工程应用时通常采用6MHz或12MHz。图中X1为11.0592MHz,电容C2、C4为33pF,它们一起构成此单片机的自激振荡器。图:3.43.2.2复位电路单片机的RST引脚为复位(Reset)端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的低电平,就可以实现系统复位,使单片机回到初始状态。

27、如图3.5所示,本设计采用手动复位,用一个电容与一个10K电阻串联组成,电阻接VCC,电容接地,RESET脚接在它们中间,RC选择10uF,按键与200R电阻串联,在电容两端并联,就成了按键复位电路,未上电时,RST端为高电平,只要按下这个按键,RST端转换为低电平,经过两个机器周期后,单片机就能复位。图:3.53.3显示部分LED静态显示的亮度高,占用CPU的时间短,但它的成本高。为了简化硬件电路,降低成本,在单片机应用系统中常采用动态扫描的方法,解决多位LED显示的问题。动态扫描显示的硬件接口简单,只需一个公共的七段码输出口(字形口),即所有显示位的段选线并联在一起,由一个8位I/O口控制

28、。一个选择显示为的数位选择口(字位口),由其它的I/O口控制。显示时,从左到右轮流点亮每位显示器,由于视觉的暂留,只要保证扫描周期不超过一定的限度(一般在20ms以下),即每一时刻位选只选通一个显示位,同时段选控制口输出显示字符对应的段选码,使该位显示的字符,一定时间后,再选其他显示位,如此循环,使每个显示器件显示该位相应的字符。则可达到“同时”显示各位不同的数字或字符的目的。如下图所示为四连数码管,其中A、B、C、D、E、F、G、DP分别对应数码管的8段,连接单片机的I/O口(P0口)。使用两个锁存器,一个控制数码管的段选,一个控制 4位数码管的位选。通过单片机P2.0P2.1口控制锁存器的

29、锁存。图3.63.4 PWM驱动电路图3.7第4章软件设计4.1语言的选用本设计中采用的处理器是STC89C52单片机,由此可采用面向MCS-51的程序设计语言,包括ASM51汇编语言和C51高级语言,这两种语言各有特点。汇编语言更接近机器语言,常用来编制与系统硬件相关的程序,如访问I/O端口、中断处理程序、实时控制程序、实时通信程序等;而数学运算程序则适合用C51高级语言编写,因为用高级语言编写运算程序可提高编程效率和应用程序的可靠性。C语言是一种通用的计算机程序设计语言,在国际上十分流行,它即可用来编写计算机系统程序,也可以用来编写一般的应用程序。以前计算机的系统软件主要是用汇编语言编写的

30、,对于单片机应用系统来说更是如此。由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用程序的周期长,而且调试和排错也比较困难。C语言具有很好的可移植性和硬件控制能力,表达和运算能力也较强。它具有以下特点:1语言简洁,使用方便灵活。2可移植性好。3表达能力强。4表达方式灵活。5可进行架构化程序设计。6可以直接操作计算机硬件。7生成的目标代码质量高。为了提高编制计算机系统和应用程序的效率,改善程序的可读性和可移植性,在此采用高级语言编程。4.2程序设计流程图本系统用外部中断程序采集信号脉冲,用定时器产生PWM脉冲,每1秒就计算一次转速并对数码管刷新和缓冲区数据进行更新,辅以数码管进

31、行显示。程序流程如图4.1。图4.1当开始工作时,单片机通过控制P2.4口输出PWM波,经过驱动电路,直流单机开始转动。光电传感器通过检测直流电机的光栅通断,产生输出高低电平,输入单片机P3.2口。用于测量转速的脉冲通过P3.2输入单片机,用STC89C52的外部中断INT0对脉冲信号进行计数(负边沿触发),用定时计数器T0进行定时,定时0.5ms,产生2000个中断后(即1s),进行一次转速处理,再通过单片机对INT0的脉冲数进行运算转换后,最后用四连数码管显示电机的转速。4.3原程序代码#includetypedef unsigned int u16;typedef unsigned ch

32、ar u8;sbit key1=P11;/独立按键sbit key2=P12;/独立按键sbit p20=P20;/数码管显示sbit p21=P21;/数码管位选sbit p22=P24;/pwm控制直流电机sbit p32=P32;/接受传感器数字信号u8 code tab1=0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e;/数字u8 code tab2=0x08,0x04,0x02,0x01, ;/位选u16 counter1=0,tmp=0,counter2,flag=

33、0;void delay(u16 num)u16 x,y;for(x=num;x0;x-) for(y=110;y0;y-) ;/10us左右void display(u8 wei,u8 num)p21 = 1;/D7.0 = Q7.0P0 = tab2wei-1;p21 = 0;p20 = 1;P0 = tab1num;p20 = 0;void timer_init()TMOD = 0x01;/设置tmod工作在定时模式TCON |=0x01;/设置外部中断0,为负边沿触发 TH0 = (65535-461)/256;/计算初值TL0 = (65535-461)%256;/计算初值ET0 =

34、 1;/开放定时器0的溢出中断EA = 1;/开放总中断EX0 = 1;/开放TF0 = 0;/清除溢出TR0 = 1;/打开定时计数器T0PT0 = 1;/将定时器0设为最高优先级void jishu()if(counter1=2000)counter2 = tmp/100;tmp = 0;counter1 = 0;void display2(u16 num)u16 wan,qian,bai,shi,ge;wan = num/10000;qian = num%10000/1000;bai = num%1000/100;shi = num%100/10;ge = num%10;display(

35、4,qian);delay(2);display(3,bai);delay(2);display(2,shi);delay(2);display(1,ge);delay(2);void main(void)timer_init();P0 = 0xff;P1 = 0xff;/端口初始化p20 = 0;p21 = 0;/LE禁止锁存while(1)jishu();display2(counter2);if(key1 = 0) delay(5);/消除抖动 if(key1 = 0) flag=1; while(!key1);/松键检测if(key2 = 0) delay(5);/消除抖动 if(ke

36、y2 = 0) flag=2; while(!key1);/松键检测void t0(void) interrupt 1TH0 = (65535-461)/256;/计算初值0.5ms周期1ms/真实是0.542msTL0 = (65535-461)%256;/计算初值counter1+;if(flag=1)if(p22=1)TH0 = (65535-681)/256;/计算初值 /低电平时间TL0 = (65535-681)%256;/计算初值p22 = 0;elseTH0 = (65535-231)/256;/计算初值/高电平时间TL0 = (65535-231)%256;/计算初值p22

37、= 1;else if(flag=2)if(p22=1)TH0 = (65535-231)/256;/计算初值 /低电平时间TL0 = (65535-231)%256;/计算初值p22 = 0;elseTH0 = (65535-681)/256;/计算初值/高电平时间TL0 = (65535-681)%256;/计算初值p22 = 1;elseif(p22=1)TH0 = (65535-461)/256;/计算初值 /低电平时间TL0 = (65535-461)%256;/计算初值p22 = 0;elseTH0 = (65535-461)/256;/计算初值/高电平时间TL0 = (65535-461)%256;/计算初值p22 = 1;void into(void) interrupt 0tmp+;第五章 数据分析实验数据记录:PWM占空比10%25%40%50%60%75%100%电机转速r/s53107164206242297395通过实验证明电机转速与PWM占空比基本呈线性,转速误差为4% r/s,可以实现对高转速的测量。总结:设计采用光电开关测速法,利用对射式光电开关采集转速信号,通过信号处理电路得到适合的脉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论