直流电机测速并显示

合集下载

基于C51单片机直流电机测速仪设计

基于C51单片机直流电机测速仪设计

基于C51单片机直流电机测速仪设计摘要:电机的转速是各类电机运行过程中的一个重要监测量,测速装置在电机调速系统中占有非常重要的地位,特别是数字式测速仪在工业电机测速方面有独到的优势。

本文介绍了一种基于C51单片机的光电传感器转速测量系统的设计。

系统采用对射式光电传感器产生与齿轮相对应的脉冲信号,使用AT89C51单片机采样脉冲信号并计算每分钟内脉冲信号的数目,即电机对应的转速值,最终系统通过LCD实时显示电机的转速值。

经过软硬件系统的搭建,分别通过Protues软件系统仿真实验和实际电路搭建检查实验。

仿真实验表明本系统满足设计要求,并且结构简单、实用。

整个直流电机测速系统在降低测速仪成本,提高测速稳定性及可靠性等方面有一定的应用价值。

关键词:转速测量;光电传感器;单片机Based On C51 SCM Single DC Motor Speedometer DesignABSTRACT:Motor speed is all kinds of motor operation is an important process to monitor the amount of speed measuring device in the motor control system occupies a very important position, Especially the digital speedometer in the industrial motor speed has unique advantage. This paper describes a photoelectric sensor 51 SCM-based speed measurement system design. System uses a beam photoelectric sensor generates a pulse signal corresponding to the gear, the use of a sampling pulse signal AT89C51 SCM and calculating the pulse per minute, the number of signals that the speed of the motor corresponding to the value of the final system time through the LCD display the motor speed value.After a hardware and software system structures, respectively, through Protues software system to build the actual circuit simulation and experimental examination. Simulation results show that the system meets the design requirements, and the structure is simple and practical. DC Motor Speed entire system in reducing speedometer costs, improve reliability, speed stability and a certain application value.Keywords: Speed measurement; Photoelectric; Single chip micyoco目录1 绪论 (1)1.1 数字式转速测量系统的发展背景 (1)1.2 转速测量在国民经济中的应用 (1)1.3主要研究内容 (2)1.4 设计的目的和意义 (2)2 转速测量系统的原理 (4)2.1 转速测量原理 (4)2.2 转速测量计算方法 (5)3转速测量系统设计方案 (7)3.1 直流电机转速测量方法 (7)3.2 设计任务及方案 (8)4 直流电机测速系统设计 (9)4.1 单片机AT89C51介绍 (9)4.2 转速信号采集 (14)4.2 转速信号处理电路设计 (16)4.4 最小系统的设计 (17)4.4.1复位电路 (17)4.4.2 晶振电路 (20)4.5 显示部分设计 (20)5 直流测速系统仿真 (24)5.1 直流测速系统仿真 (24)5.1.1单片机最小系统仿真 (25)5.1.2 数码管显示仿真 (25)5.2 主程序流程设计 (26)5.2.1 主程序流程设计 (26)5.2.2 定时器的初始化 (27)5.3 实际电路实验 (28)参考文献 (30)致谢 (31)1 绪论1.1 数字式转速测量系统的发展背景在现代工业自动化高度发展的时期,几乎所有的工业设备都离不开旋转设备,形形色色的电机在不同领域发挥着很重要的作用。

基于单片机的直流电机调速系统设计

基于单片机的直流电机调速系统设计

直流电机转速 :
根据基尔霍夫第二定律,得到电枢电压电动势平衡方程式 U=Ea+Ia(Ra+Rc)……………式1
式1中,Ra为电枢回路电阻,电枢回路串联保绕阻与电刷 接触电阻的总和;Rc是外接在电枢回路中的调节电阻
由此可得到直流电机的转速公式为:
n=(Ua-IR)/CeΦ ………………………式2
式2中, Ce为电动势常数, Φ是磁通量。 由1式和2式得
n=Ea/CeΦ ……………………………式3
由式3中可以看出, 对于一个已经制造好的电机, 当励磁电压和 负载转矩恒定时, 它的转速由回在电枢两端的电压Ea决定, 电 枢电压越高, 电机转速就越快, 电枢电压降低到0V时, 电机就 停止转动;改变电枢电压的极性, 电机就反转。
PWM脉宽调速
PWM(脉冲宽度调制)是通过控制固定电压的 直流电源开关频率, 改变负载两端的电压, 从 而达到控制要求的一种电压调整方法。在PWM 驱动控制的调整系统中, 按一个固定的频率 来接通和断开电源, 并且根据需要改变一个 周期内“接通”和“断开”时间的长短。通 过改变直流电机电枢上电压的“占空比”来 达到改变平均电压大小的目的, 从而来控制 电动机的转速。也正因为如此, PWM又被称为 “开关驱动装置”。
, 软件简单。但每个按键需要占用一个输入口线, 在 按键数量较多时, 需要较多的输入口线且电路结构复杂, 故此种键盘适用于按键较少或操作速度较高的场合。
数码管显示部分 本设计使用的是一种比较常用的是四位数码 管, 内部的4个数码管共用a~dp这8根数据线, 为使用提供了方便, 因为里面有4个数码管, 所以它有4个公共端, 加上a~dp, 共有12个引 脚, 下面便是一个共阴的四位数码管的内部 结构图(共阳的与之相反)

直流电机转速测量报告

直流电机转速测量报告

直流电机转速控制摘要……………………………………………………………一、系统总体设计…………………………………………....1.1系统总体方案.................................................................1.2系统总体框图.................................................................二、模块电路方案比较与论证………………………………2.1 电机驱动……………………………………………….2.2 转速检测……………………………………………….三、系统模块电路的设计……………………………………3.1 键盘…………………………………………………….3.2 显示部分……………………………………………....3.3 电机驱动………………………………………………3.4 转速检测………………………………………………四、软件设计…………………………………………………五、测试方案与测试结果……………………………………5.1 测试方案……………………………………………….5.2 测试结果……………………………………………….5.3 误差分析……………………………………………….六、总体结论…………………………………………………七、附录………………………………………………………八、参考文献…………………………………………………摘要:本作品以TI公司的超低功耗MSP430F149和光电传感器为主要部件,设计并制作了电机转速控制系统。

该系统用脉冲调制(PWM)控制驱动电路,从而改变电机转动,有效的降低了功率浪费和热耗散,降低了对电源的要求。

在测量部分使用光电传感器,有效地提高了测量的灵敏度与精度。

通过转速测量可以有效控制电机的运转。

关键字: MSP430F149 光电传感器脉冲调制(PWM)Abstract:this work by TI company MSP430F149 photoelectric sensor and low power consumption for main components, design and manufacture of the motor speed control system. This system by using a pulse modulation (PWM) control circuit, which drive motor rotation, effectively reduce the waste and heat dissipation power, reduced to power requirements. In some measure photoelectric sensor, effectively improve the accuracy of measurement and sensitivity. Through measurement can effectively control motor speed of operation.Key words: MSP430F149 photoelectric sensor pulse modulation (PWM)一、系统总体设计1.1系统总体方案根据题目要求,本系统总共分为六大部分:第一部分键盘输入信号控制了电机转速和显示。

基于proteus的直流电机测速系统仿真

基于proteus的直流电机测速系统仿真

第2期(总第189期)2015年04月机械工程与自动化MECHANICAL ENGINEERING & AUTOMATIONNo.2Apr.文章编号:1672‐6413(2015)02‐0214‐02基于Proteus的直流电机测速系统仿真张小石,郝秀平(中北大学机电工程学院,山西 太原 030051)摘要:介绍了由AT89C51、LCD和L256组成的直流电机测速系统,详细介绍了系统的设计框图,并通过Proteus软件实现仿真。

仿真结果表明该系统具有可控调速、显示直观等特点。

关键词:直流电机;Proteus;仿真;测速系统中图分类号:TP391畅9∶TM33 文献标识码:B收稿日期:2014‐05‐26;修订日期:2014‐12‐26作者简介:张小石(1987‐),男,山西阳泉人,在读硕士研究生,主要从事链式自动机驱动技术。

0 引言直流电机的测速系统通过LCD可视化地显示电机的转速,便于操作人员观察,使其能够更加有效地对电机进行控制。

Proteus软件提供了大量的单片机仿真元器件,相当于虚拟实验室,节省了直流电机的研制成本,缩短了研制周期。

从科学的研究角度来看,基于Proteus的直流电机仿真是必要的、合理的。

1 直流电机测速系统的硬件总体设计本设计实现的是通过LCD显示电机的转速信息。

系统采用AT89C51单片机,通过键盘控制电机并进行可控转速显示,该系统的总体结构框图如图1所示。

图1 直流电机测速系统结构框图2 直流电机测速系统的软件设计直流电机测速系统软件编程时采用了模块化的设计思想,主要功能模块被编成独立的函数,由主程序调用。

其主要的程序模块包括初始化程序、键盘信号采集及处理程序、液晶显示程序、可控调速程序、信息显示程序和超限报警程序。

系统的软件主要采用C语言编制,对单片机程序进行调试,最终实现仿真的相应功能。

3 仿真主要过程在keilc中编译程序并运行,运行结果说明程序调试成功。

程序调试图见图2。

4.1直流测速电动机

4.1直流测速电动机
目录
任务一 认识速度传感器
一、测速发电机传感器的要求
测速发电机(tachogenerator)是一种检测机械转速的电磁装置。就是
把转子转速转换为电压信号的机电式元件。它的输出电压与转速成正比关系, 即Ua=Kn。
如图4-1所示。
目录
任务一 认识速度传感器
测速发电机的输出电压能表征转速,因而可用来测量转速;测速发 电机的输出电压正比于转子转角对时间的微分,在解算装置中可以把 它作为微分或积分元件。
磁通反向, 因此合成磁场的磁通密度在半个极下是加强了, 在另外半个极
下是削弱了, 如图 (c)所示。 由于电枢磁场的存在, 气隙中的磁场发生畸变
, 这种现象称为电枢反应。
目录

如果电机的磁路不饱和(即磁路为线性), 磁场的合成就可以应用叠加
原理。 例如, N极右半个极下的合成磁通等于 1/2 主磁通与 1/2 电枢磁通之

4)电刷装置:电刷的作用是把转动的电枢绕组与静止的外电路相连接,
并与换向器相配合,起到整流或逆变器的作用。
• 转子部分:

转子称为电枢,包括电枢铁心、电枢绕组、换向器、风扇、轴和轴承等


1)电枢铁心:电机主磁路的一部分,用来嵌
• 放电枢绕组的,为了减少电枢旋转时电枢铁心中
目录
退出
返 回 上一页 下一页
磁场, 图 c是主磁场和电枢磁场的合成磁场。
目录
直流电机磁场
目录

磁场的分布在电机学中已作了分析,磁场的分布如图 (a)所示。电枢
电流所产生的磁场如图 (b)所示。由图 (b)可以看出, 在每个主磁极下面,
电枢磁场的磁通在半个极下由电枢指向磁极, 在另外半个极下则由磁极指

直流电机速度PID控制系统设计毕业论文(设计).doc.doc

直流电机速度PID控制系统设计毕业论文(设计).doc.doc

序号(学号〉: 161240303长春大学 毕业设计(论文)直流电机速度PID 控制系统设计李一丹国际教育学院自动化1612403曹福成2016 年 5 月 30 0姓 名 学 院 专 业 班 级 指导教师直流电机速度PID控制系统设计摘要:针对现有的直流电机控速难的问题,本文设计了一种基于ATmegal6L单片机的直流电机速度控制系统。

本系统以ATinegal6L单片机为主控制器,搭载了L298n为电机驱动,通过霍尔元件进行测速,通过按键控制电机的转动方向和转动速度,并配以温度传感器DS18B20对温度进行监测,通过PID算法调节PW\1 进行对速度控制。

该系统包括的模块主要有单片机为主体的控制模块、电机的驱动模块、对电机速度进行监测的模块、由LCD1602构成的显示ky r模块、电源模块和按键控制模块等。

本系统可以通过PID算法实现可编程脉宽波形对直流电机的速度进行控制,并且可以显示出当前电机的转速。

关键词:单片机;PID算法;直流电机The design of DC motor speed control system with PID Abstract: According to the existing DC motor speed control problem, this paper describes the design of a DC motor speed control system based on ATmegal6L MCU. To ATMEGA16L microcontroller as the main controller for the system, equipped with a L298n for motor drive, through the hall element of speed, through the buttons to control the motor rotation direction and the rotation speed, and the temperature sensor DS18B20 the temperature monitoring, PID algorithm is used to adjust the PWM control of the speed. The system includes the following modules display microprocessor control module, as the main body of the motor drive module, monitoring module, the speed of motor is composed of LCD1602 module, power supply module and key control module.This system can realize through PID algorithm to control the speed of the programming pulse waveforms of DC motor, and can display the current motor speed.Keywords: single chip microcomputer, PID algorithm, DC motor ky r戈ml ml ——II —In —In | * 11—I 1111 ml 1111目录Bit (1)l.i选题背景及意义 (1)1.2国内外研宄现状 (2)1.3木文主要研究的内容 (3)第2章总体方案论述 (4)ky r2.1系统主要传感器介绍 (4)2.1.1温度传感器 (4)2.1.2转速检测模块 (5)2.2系统总体功能及方案选择 (6)2.2.1系统所需模块及功能 (6)2.2.2主控制器选择 (8)第3章系统总体硬件设计 (10)3.1单片机最小系统 (10)3.1.1ATmegal6L单片机的引脚分布 (10)3.1.2最小系统的硬件电路 (13)3.2电机驱动电路 (14)3.3温度检测电路 (15)3.4光电管提示电路和按键控制电路 (15)3.5LCD1602 显示电路 (16)3.6电源电路 (17)3.7本章小节 (18)第4章系统软件设计 (19)4.1系统总体流程图 (19)4.2 PID算法简介 (19)4.2.1PID算法介绍 (20)4.2.2HD算法结果 (21)4.3系统调试步骤 (21)4.4误差分析即改进方法 (22)给论 (23)致谢 (24)参考文献 (25)隱 (26)附录I系统总体硬件电路图 (26)附录II系统中部分程序 (27)ky r In—ml ml ml ml | , I af—.第1章绪论1.1选题背景及意义电动机简称电机,俗称马达,在现实生活中,我们处处都可以见到电机的身影,小到小学生玩的电动四驱车,大到炼钢厂用的滚动罐,这些都是电机家族的成员。

基于光电传感器的直流电机转速测量系统设计-课设报告

基于光电传感器的直流电机转速测量系统设计-课设报告

北京信息科技大学测控综合实践课程设计报告题目:基于光电传感器的直流电机转速测量系统设计学院:仪器科学与光电工程学院专业:测控技术与仪器学生姓名:摘要摘要基于单片机的转速测量方法较多,本次设计主要针对于光电传感器测量直流电机转速的原理进行简单介绍,并说明它是如何对电机转速进行测量的。

通过实验得到结果并进行了数据分析。

本次设计应用了STC89C52RC单片机,采用光电传感器测量电机转速的方法,其中硬件系统包括脉冲信号的产生模块、脉冲信号的处理模块和转速的显示模块三个模块,采用C语言编程,结果表明该方法具有简单、精度高、稳定性好的优点。

关键词:直流电机;单片机;PWM调节;光电传感器Abstract目录摘要 (I)第一章概述 (1)1.1 课设目标 (1)1.2 内容 (1)第二章系统设计原理 (2)2.1 STC89C52单片机介绍 (2)2.2 STC89C52定时计数器 (4)2.3 STC89C52中断控制 (6)2.4 光电传感器 (6)2.5 数码管介绍 (7)第三章硬件系统设计 (10)3.1测速信号采集及其处理 (10)3.2 单片机处理电路设计 (11)3.3 显示电路 (12)3.4 PWM驱动电路 (13)第四章软件设计 (14)4.1语言选用 (14)4.2程序设计流程图 (14)4.3原程序代码 (15)第五章数据分析 (19)总结 (20)附件 (21)参考文献 (23)第一章概述在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。

目前国内外测量电机转速的方法有很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。

计数测速法又可分为机械式定时计数法和电子式定时计数法。

课程设计实验报告-直流电机测速 (1)

课程设计实验报告-直流电机测速 (1)

直流电机测速摘要设计一种直流电机调速系统,以STC89C52 为控制核心,通过ULN2003 驱动电机,使用ST151 测量转速,实现了按键输入、电机驱动、转速控制、转速显示等功能。

关键词:直流电机, 80C51, ULN2003, 转速控制第一章题目描述直流小电机调速系统:采用单片机、ul n2003 为主要器件,设计直流电机调速系统,实现电机速度开环可调。

要求:1、电机速度分30r /m、60r /m、100r /m共3 档;2、通过按选择速度;3、检测并显示各档速度。

所需器件:实验板(中号)、直流电机、STC89C52、电容(30pFⅹ2、10uF ⅹ2)、数码管(共阳、四位一体)、晶振(12M H z )、小按键(4 个)、ST151、电阻、发光二极管等。

第二章方案论述按照题给要求,我们最终设计了如下的解决方案:用户通过键盘键入控制指令(开关),微控制器在收到指令后改变输出的 PW M波,最终在 U LN2003 的驱动下电机转速发生改变。

通过 ST151 传感器测量电机扇叶的旋转情况,将转速显示在数码管上。

在程序主循环中实现按键扫描与转速显示,将定时器0 作为计数器,计数ST151 产生的下降沿,可算出转速,并送至数码管显示。

第三章硬件部分设计系统硬件部分包含输入模块、显示模块、控制模块、测速模块等。

在硬件搭建前,先通过Pr ot eus Pr o 7. 5 进行硬件仿真实现。

1. 时钟电路系统采用12M 晶振与两个30pF 电容组成震荡电路,接STC89C52 的 XTAL1 与 XTAL2 引脚,为微控制器提供时钟源2. 按键电路四个按键分别控制电机的不同转速,即控制 PW M波高电平的占空比,以实现电机的速度控制,采用开环控制方法,不是十分精确,但控制简单,易实现,代码编写简单3. 显示部分系统采用4 位共阴极数码管实现转速显示。

数码管的位选端1~4 分别接STC89C52 的P2. 0~P2. 3 管脚,端选段A~G与 D P分别接 STC89C52 的 P0. 0~P0. 7 管脚。

第2章 直流测速发电机

第2章 直流测速发电机
2011-12-23
If
R toC Rt
Nf Rf Lf
Uf
热敏电阻应具有负 的温度系数, 的温度系数,当温 度增加时, 度增加时,并联网 络电阻的减小补偿 了励磁绕组电阻R 了励磁绕组电阻 f 的增加,励磁回路 的增加, 总电阻基本不变。 总电阻基本不变。
16
第2章 直流测速发电机
(2)励磁回路串联较大的附加电阻 励磁回路串联较大的附加电阻R 励磁回路串联较大的附加电阻 If Uf Uf R >>Rf → If = ≈ R+Rf R Uf 当温度增加时,励磁回路总 当温度增加时 励磁回路总 变化甚微; 电阻(R+Rf)变化甚微; 电阻 变化甚微 R用温度系数很小的锰镍 用温度系数很小的锰镍 或镍铜合金制成。 或镍铜合金制成。 (3) 将磁路设计得比较饱和 H∝If ,电流变化较大时 ∝ 电流变化较大时, 磁通变化很小。 磁通变化很小。 o
n过高 ⇒ Ua大 ⇒ Ia大 过高 ② n一定 一定 RL过小 ⇒ Ia大 三、解决办法 和最小负载电阻值R 限制最高转速 nmax 和最小负载电阻值 Lmin。
2011-12-23
10
第2章 直流测速发电机
二、换向的电磁理论 1. 换向元件中的电动势: 换向元件中的电动势: 电抗电势e 电抗电势 L: 在换向周期 Tk内,换向元件电 流要从(+i 变到 变到(-i 所以, 流要从 a)变到 a),所以,换 向元件内有自感电动势: 向元件内有自感电动势: S 2Ia dia eL = −L = −L Tk dt 根据楞次定律自感电动势的方向与换向前电流方 向相同,即总是阻碍换向的。 向相同,即总是阻碍换向的。
2011-12-23
Φk 对主磁通起去磁作用。 对主磁通起去磁作用。

基于STM32的直流电动机测速系统设计

基于STM32的直流电动机测速系统设计

的发展,直流电机因其具有良好的启动、制动和调速性能,已经广泛运用于工业控制、机械制造、电力电子等领域。

在现代工业控制领域里,通常需要对电动机的转速进行准确有效的控制,而精确控制的前提是需要对电机转速进行准确的测量,目前对电机转速测量的主要方法有:接触式测量,需要把传感器安装在转轴上,测量不方便;光电非接触式测量,这种测量方法需要电机部分外露,对测量和安装带来极大的不便。

本系统采用非接触式直流电动机转速检测装置,无需对电机本身或内部进行改装固定,只需要在电机外部安装电磁感应探头,利用电机内磁场的变化就可以准确的测量电机的转速。

1 系统方案的设计本系统通过自制的电磁感应传感器采集电动机的转速,采集到的信号通过滤波电路、放大电路、比较电路整形之后,由STM32的计数器获取电机磁场变化频率,进而转化出电机的转速,由STM32处理后通过OLED显示电机的转速值等信息。

测量的线性和精度同样由硬件调试得到,软件作为精度补偿,通过STM32的线性算法和补偿算法来得到相当高的精度。

■1.1 主控器件的选择采用 STM32(STM32F103C8T6)作为核心控制,它具有多功能定时器、功耗低、速度高、稳定性强、性价比高等特点,既可以满足作品要求,同时也简化了外部电路。

具有最高72MHz 的 CPU 工作频率和很强的控制和运算能力,能够实现一些复杂的控制和运算功能,对与实现输出脉冲波有良好的周期精度,满足系统要求。

■1.2 显示屏的选择采用 OLED液晶屏。

此款液晶能使人机交互显得更加人性化,具有可触摸屏,功耗小,体积适中,非常适合于少感器难度大、但是采集精度高、对于任意电机的适用性强)。

传感器的信号随电机内磁场的变化而变化,所以感应电流和转速之间具有线性关系的,且容易通过硬件电路及程序算法进行校正。

(1)采用C型电感型探头(如图1)此传感器使用单一线圈对信号进行采集。

该电路的优点是采集信号的范围更广。

但是,当电机转速低时,电机供电电压低,电机产生的磁场弱,然而电路的噪声是一定的,此时C型探头接收到其他磁极的干扰也会增加,导致信号的信噪比不高,使后续电路的处理难度加大,且容易出现不稳定的触发。

单片机课程设计完整版《PWM直流电动机调速控制系统》

单片机课程设计完整版《PWM直流电动机调速控制系统》

单片机原理及应用课程设计报告设计题目:学院:专业:班级:学号:学生姓名:指导教师:年月日目录设计题目 (1)1 设计要求及主要技术指标: (1)1.1 设计要求 (1)1.2 主要技术指标 (2)2 设计过程 (2)2.1 题目分析 (4)2.2 整体构思 (4)2.3 具体实现 ................... 错误!未定义书签。

3 元件说明及相关计算 (5)3.1 元件说明 (5)3.2 相关计算 (6)4 调试过程 (6)4.1 调试过程 (6)4.2 遇到问题及解决措施 (7)5 心得体会 (7)参考文献 (8)附录一:电路原理图 (9)附录二:程序清单 (9)设计题目:PWM直流电机调速系统本文设计的PWM直流电机调速系统,主要由51单片机、电源、H桥驱动电路、LED 液晶显示器、霍尔测速电路以及独立按键组成的电子产品。

电源采用78系列芯片实现+5V、+15V对电机的调速采用PWM波方式,PWM是脉冲宽度调制,通过51单片机改变占空比实现。

通过独立按键实现对电机的启停、调速、转向的人工控制,LED实现对测量数据(速度)的显示。

电机转速利用霍尔传感器检测输出方波,通过51单片机对1秒内的方波脉冲个数进行计数,计算出电机的速度,实现了直流电机的反馈控制。

关键词:直流电机调速;定时中断;电动机;PWM波形;LED显示器;51单片机1 设计要求及主要技术指标:基于MCS-51系列单片机AT89C52,设计一个单片机控制的直流电动机PWM调速控制装置。

1.1 设计要求(1)在系统中扩展直流电动机控制驱动电路L298,驱动直流测速电动机。

(2)使用定时器产生可控的PWM波,通过按键改变PWM占空比,控制直流电动机的转速。

(3)设计一个4个按键的键盘。

K1:“启动/停止”。

K2:“正转/反转”。

K3:“加速”。

K4:“减速”。

(4)手动控制。

在键盘上设置两个按键----直流电动机加速和直流电动机减速键。

直流电机转速测量系统的设计

直流电机转速测量系统的设计

一、概述该课程设计是关于直流电动机转速的测量。

转速是电动机极为重要的一个状态参数,一般是指电机转子的每分钟转数,通常用r/min表示。

本次课程设计选用光电测速法,测量电路由光电转换电路,整形电路,晶体振荡电路,分频电路,倍频电路,时序控制电路和计数、译码、驱动、显示电路构成,电机转速的测量范围为600r/min~30000r/min,测量的相对误差<1%并用5位LED数码管显示出相应的电机转速。

本次课设需满足以下设计要求:1根据技术指标,设计各部分电路并确定元器件参数;2. 用5位LED数码管显示出相应的电机转速;3. 画出电路原理图(元器件标准化,电路图要规范化)。

二、方案论证本课程设计是设计电机转速测量系统,采用光电测速方案,将转速信号转化为脉冲信号,然后用数字系统内部的时钟来对脉冲信号的频率进行测量,方案中包括光电转换电路,整形电路,闸门电路,晶体振荡电路,分频电路,倍频电路,控制电路和计数、译码、驱动、显示电路。

原理方框图如图1所示:图1电机转速测量系统原理框图在电动机转轴上安装一个圆盘,在圆盘上打6个均匀小孔。

当电动机旋转时光源通过小孔投射到光敏三极管上,就产生了一序列的脉冲信号,光敏三极管产生的脉冲信号频率与电机转速成正比。

脉冲信号经过整形电路转变成方波,再用二倍频电路使整形后的信号频率变为原来的二倍。

再由晶体振荡电路输出的信号经过215分频电路,产生1Hz的基准信号,再经过10分频,便可产生一个0.1Hz的基准信号,该基准信号用来控制闸门电路,把经过倍频的光电转换后的信号计数并显示出来三、电路设计1.光电转换电路在该部分可以用发光元件作为光的发射部分,可以选择发光二极管作发光元件,接收部分则要选择光敏三级管作为接受部件。

其原理是用光敏三极管接收发光二极管通过小孔发射过来的光信号。

在电机的转轴上安装上已打好6个均匀小孔的圆盘,让发光二极管与光敏三极管通过小孔相对,这样电机每转动一周,光线就会相应通过小孔6次,因为光电转换器受光一次就会产生一个脉冲,所以说电机在每转一周后就会相应的产生了6个脉冲。

单片机控制直流电机并测速(电压AD、DA转换以及pwm按键调速正转反转)

单片机控制直流电机并测速(电压AD、DA转换以及pwm按键调速正转反转)

单片机原理及应用课程设计报告书题目:用单片机控制直流电动机并测量转速姓名:徐银浩学号:1110702225专业:电子信息工程指导老师:沈兆军设计时间:2014年 11月信息工程学院目录1. 引言 01.1 设计意义 01.2 系统功能要求 02. 方案设计 03. 硬件设计 (2)3.1 AT89C51最小系统 (3)3.2 按键电路 (4)3.3 A/D转换模块 (4)3.4. D/A转换模块 (6)3.5 电机转速测量电路 (7)3.6 显示电路 (8)3.7 总电路图 (10)4. 软件设计 (101)4.1 系统主程序设计 (12)4.2 按键扫描程序设计 (12)4.3 显示子程序 (12)4.4 定时中断处理程序 (12)4.5 A/D转换程序 (13)5. 系统调试 (14)6. 设计总结 (16)7. 参考文献 (17)8. 附录A;源程序 (18)9. 附录B;电路原理总图、作品实物图片 (23)用单片机控制直流电动机并测量转速1 引言1.1. 设计意义电动机作为最主要的动力源,在生产和生活中占有重要地位。

电动机的调速控制过去多用模拟法,随着计算机的产生和发展以及新型电力电子功率器件的不断涌现,电动机的控制也发生了深刻的变化,本系统利用直流电机的速度与施加电压成正比的原理,通过滑动变阻器向ADC0809输入控制电压信号,经AD后,输入到AT89C51中,AT89C51将此信号转发给DAC0832,通过功放电路放大后,驱动直流电机。

1.2.系统功能要求单片机扩展有A/D转换芯片ADC0809和D/A转换芯片DAC0832。

通过改变A/D输入端可变电阻来改变A/D的输入电压,D/A输入检测量大小,进而改变直流电动机的转速。

手动扩展。

在键盘上设置两个按键——直流电动机加速键和直流电动机减速减。

在手动状态下,每按一次键,电动机的转速按照约定的速率改变。

用显示器LED或LCD显示数码移动的速度,及时形象地跟踪直流电动机转速的变化情况。

步进电机实验报告(1)

步进电机实验报告(1)

步进电机控制实验一、实验目的步进电机作为一种数字控制电机,可以准确的控制角度和距离应用非常广泛,本实验利用SPCE061A单片机通过自己编写程序实现步进电机的控制使我们加深对步进电机的了解,同时学会使用步进电机的驱动芯片WZM-2H042M。

另外要求我们掌握单片机控制步进电机的硬件接口电路,以及熟悉步进电机的工作特性。

二、实验内容根据步进电机驱动电路,使用单片机驱动步进电机,控制步进电机正转、反转操作。

三、实验要求按实验内容编写程序,并在实验仪上调试和验证。

四、实验说明1.步进电动机有三线式、五线式、六线式三种,但其控制方式均相同,必须以脉冲电流来驱动。

若每旋转一圈以20个励磁信号来计算,则每个励磁信号前进18度,其旋转角度与脉冲数成正比,正、反转可由脉冲顺序来控制。

2.步进电动机的励磁方式可分为全部励磁及半步励磁,其中全步励磁又有1相励磁及2相励磁之分,而半步励磁又称1-2相励磁。

图为步进电动机的控制等效电路,适应控制A、B、/A、/B的励磁信号,即可控制步进电动机的转动。

每输出一个脉冲信号,步进电动机只走一步。

因此,依序不断送出脉冲信号,即可步进电动机连续转动。

a.1相励磁法:在每一瞬间只有一个线圈导通。

消耗电力小,精确度良好,但转矩小,振动较大,每送一励磁信号可走18度。

若欲以1相励磁法控制步进电动机正转,其励磁顺序如图所示。

若励磁信号反向传送,则步进电动机反转。

励磁顺序: A→B→C→D→AA B C DSTEP1 1 0 0 02 0 1 0 03 0 0 1 04 0 0 0 1b.2相励磁法:在每一瞬间会有二个线圈同时导通。

因其转矩大,振动小,故为目前使用最多的励磁方式,每送一励磁信号可走18度。

若以2相励磁法控制步进电动机正转,其励磁顺序如图所示。

若励磁信号反向传送,则步进电动机反转。

励磁顺序: AB→BC→CD→DA→ABSTEP A B C D1 1 1 0 02 0 1 1 03 0 0 1 14 1 0 0 1c.1-2相励磁法:为1相与2相轮流交替导通。

直流电机调速控制和测速系统设计

直流电机调速控制和测速系统设计

直流电机调速控制和测速系统设计摘要:直流型的电机得性能在电机结构中有着较好的优势,由于时代的持续进步,与直流电机相关的使用频率也变得更高。

然而,以往的直流电机工作性质与所面临得运转问题息息相关,怎样对转速进行合理管控就变成了直流电机发展和应用期间存在的困难。

而直流电机控制系统的产生,可以较好的处理该方面的情况,不仅能够增强直流电机的平稳程度和精准程度,还可以合理管控直流电机的运行速度,从而达到我国对相关设备的应用标准。

基于此,本文重点分析了直流电机调速控制的方式,进一步对测速系统进行设计,以供相关人员参考。

关键词:直流电机;调速控制;测速系统目前,直流发电机的应用非常广泛,在自动化装备领域中,其内蓄电池内部都配置有相应的直流发电机,保证在断电的情况下起到一定的发电机组的润滑作用。

而直流电动机在启动时,其所用的电流量会增大很多,造成一定的冲击力,这种冲击力会造成一定的影响,比如充电器出现损坏、短路等,这些故障的产生都会使得发电设备无法正常运转。

因此,为了解决我国在有关这方面的控制技术上存在的问题,需要对调速与测速系统进行控制与设计,以此来确保整个电机设备的稳定性与安全性。

1电机调速原理及其实现电机调速原理主要是指对电机两端所存在的电压进行数据上的更改,以此来完成对电机转速的调节工作,对于电机而言,当自身的电压方向出现改变,那么电机的旋转变化发生改变。

而PWM在调速原理方面则是以脉冲信号为主,利用脉冲信号的输出特性来进行传输,并改变原本存在于电机内部空间的脉冲信号,通过间接或速度按钮来完成有关电机电压的更改工作,从而来确保电机的转速能够因此发生改变。

在这一过程中,电机内部的脉冲占比越大,转速也就越慢。

整个电路主要是以H桥为主,为了确保整个驱动电机能够得到有效控制,将三极管进行单片机的引脚安装,将基极部分分别安装,从而来确保当电机处于运行状态时,能够利用垫片机来对其自身的转速内容进行控制。

当脉冲信号输送工作时,另一端会通过开展低电平的模式来进行应用,这时的直流电机会呈现为正转状态,反之亦然。

课程设计---直流电动机测速系统设计

课程设计---直流电动机测速系统设计

专业课程设计题目三直流电动机测速系统设计院系:专业班级:小组成员:指导教师:日期:前言1.题目要求设计题目:直流电动机测速系统设计描述:利用单片机设计直流电机测速系统具体要求: 8051 单片机作为主控制器、利用红外光传感器设计转速测量、检测直流电机速度,并显示。

元件: STC89C52、晶振(12MHz)、小按键、 ST151、数码管以及电阻电容等2.组内分工(1)负责软件及仿真调试:主要由完成(2)负责电路焊接:主要由完成(3)撰写报告:主要由完成3.总体设计方案总体设计方案的硬件部分详细框图如图一所示 :数码管显示按键控制单片机 PWM 电机驱动一、转速测量方法转速是指作圆周运动的物体在单位时间内所转过的圈数,其大小及变化往往意味着机器设备运转的正常与否,因此,转速测量一直是工业领域的一个重要问题。

按照不同的理论方法,先后产生过模拟测速法 (如离心式转速表) 、同步测速法(如机械式或闪光式频闪测速仪) 以及计数测速法。

计数测速法又可分为机械式定时计数法和电子式定时计数法。

本文介绍的采用单片机和光电传感器组成的高精度转速测量系统,其转速测量方法采用的就是电子式定时计数法。

对转速的测量实际上是对转子旋转引起的周期脉冲信号的频率进行测量。

在频率的工程测量中,电子式定时计数测量频率的方法一般有三种:①测频率法:在一定时间间隔t 内,计数被测信号的重复变化次数N ,则被测信号的频率fx 可表示为f x =Nt(1)②测周期法:在被测信号的一个周期内,计数时钟脉冲数m0 ,则被测信号频率fx = fc/ m0 ,其中, fc 为时钟脉冲信号频率。

③多周期测频法:在被测信号m1 个周期内, 计数时钟脉冲数m2 ,从而得到被测信号频率fx ,则fx 可以表示为fx =m1 fcm2, m1 由测量准确度确定。

电子式定时计数法测量频率时, 其测量准确度主要由两项误差来决定: 一项是时基误差 ; 另一项是量化± 1 误差。

直流电机测速实验

直流电机测速实验

实验三直流电机测速实验一实验目的(1)掌握8254的工作原理和编程方法;(2)了解光电开关,掌握用光电传感器测量电机转速的方法。

二实验内容光电测速的基本电路由光电传感器、计数器/定时器组成。

被测电机主轴上固定一个圆盘,圆盘的边缘上有小孔。

传感器的红外发射端和接收端装在圆盘的两侧,电机带动圆盘转到有孔的位置时,红外光通过,接收管导通,输出低电平。

红外光被挡住时,接收截止,输出高电平。

用计数器/定时器记录在一定时间内传感器发出的脉冲个数,就可以计算出电机的转速。

三线路连接线路连接如图所示。

8254计数器/定时器0和2作为定时器,确定测速时间,定时器0的CLK0引脚输入1MHz脉冲,输出OUT0引脚作为定时器2的输入,与CLK2引脚相连,输出引脚OUT2与8255的PA0端相连。

GA TE0和GA TE2均接+5V电源。

8254计数器/定时器1作为计数器,输入引脚CLK1与直流电机计数端连接,GA TE1与8255的PC0相连。

电机DJ端与+5V~0V模拟开关SW1相连。

四编程提示8254计数器/定时器1作为计数器,记录脉冲个数,计数器/定时器0和2作为定时器,组成10~60秒定时器,测量脉冲个数,以此计算出电机每份钟的转速,并显示在计算机屏幕上。

8255的PA0根据OUT2的开始和结束时间,通过PC0向8254计数器/定时器1发出开始和停止计数信号。

五程序流程图六参考程序DA TA SEGMENT ;数据段IOPORT EQU 0D880H-0280H ;8255端口基地址IO8255K EQU IOPORT+283H ;8255控制口地址IO8255A EQU IOPORT+280H ;8255 A口地址IO8255C EQU IOPORT+282H ;8255 C口地址IO8254K EQU IOPORT+28BH ;8254控制口地址IO82542 EQU IOPORT+28AH ;8254计数器2端口地址IO82541 EQU IOPORT+289H ;8254计数器1端口地址IO82540 EQU IOPORT+288H ;8254计数器0端口地址MESS DB 'STRIKE ANY KEY,RETURN TO DOS!',0AH,0DH,'$' ;提示信息COU DB 0 ;预留单元并清零COU1 DB 0COUNT1 DB 0COUNT2 DB 0COUNT3 DB 0COUNT4 DB 0DA TA ENDSCODE SEGMENT ;代码段ASSUME CS:CODE,DS:DA T AST ART:MOV AX,DA T A ;初始化,取段基址MOV DS,AXMOV DX,OFFSET MESS ;MESS首地址MOV AH,09H ;DOS 9号调用,INT 21H ;显示提示信息MOV DX,IO8254K ;DX←8254控制口地址MOV AL,36H ;AL=36H , 控制字OUT DX,AL ;设置计数器0,方式3,先读写低8位,再读写高8位MOV DX,IO82540 ;DX←8254计数器0端口地址MOV AX,50000 ;初始值为50000,输入时钟为1MHz,则输出时钟周期50msOUT DX,AL ;输出低8位NOP ;空操作NOPMOV AL,AH ;AL←AHOUT DX,AL ;输出高8位MOV DX,IO8255K ;DX←8255控制口地址MOV AL,90H, ;AL=90H,控制字OUT DX,AL ;A口方式0输入,PA0输入;C口方式0输出,PC0输出MOV DX,IO8255C ;DX←8255 端口C口地址,MOV AL,00 ;AL=0OUT DX,AL ;PC0=0,则GA TE1为低电平,定时器1禁止计数LL:MOV AH,01H;DOS 1号调用,判断是否有键按下?INT 16HJNZ QUIT1 ;ZF=0,有键按下,转到标号QUIT1MOV DX,IO8254K ;DX←8254控制口地址MOV AL,70H ;AL=70H,控制字OUT DX,AL ;设置计数器1,方式0,先读写低8位,再读写高8位MOV DX,IO82541 ;DX←8254计数器1地址MOV AL,0FFH ;定时常数,实际为FFFFHOUT DX,AL ;输出低8位NOP ;空操作NOPOUT DX,AL ;输出高8位,开始计数MOV DX,IO8254K ;DX←8254控制口地址MOV AL,90H ;AL=90H,控制字OUT DX,AL ;计数器2,方式0,只读写低8位MOV DX,IO82542 ;DX←8254计数器2地址MOV AL,100 ;AL=100,定时常数OUT DX,AL ;CLK2=50ms,定时常数为100,则OUT2定时时间即检测时间为5秒MOV DX,IO8255C ;DX←8255端口C地址MOV AL,01H ;AL=01HOUT DX,AL ;PC0输出1,即为高电平,定时器1开始计数JMP A0 ;无条件转移到标号A0QUIT1:JMP QUIT ;无条件转移到标号QUITA0:MOV DX,IO8255A ;DX←8255端口A地址A1:IN AL,DX ;读入PA0的值,进行检测AND AL,01H ;判断PA0是否为高电平1?JZ A1 ;ZF=1,即PA0=0,为低电平,转到标号A1,继续检测MOV DX,IO8255C ;ZF=0,即PA0=1,为高电平,定时器2定时5秒结束OUT2输出高电平MOV AL,00H ;AL=00HOUT DX,AL ;8255端口C输出0,定时器1停止计数MOV DX,IO8254K ;DX←8254控制口地址MOV AL,70H ;AL=70HOUT DX,AL ;设置计数器1,方式0,先读写低8位,再读写高8位MOV DX,IO82541 ;DX←8254计数器1地址IN AL,DX ;读入计数器1的内容MOV BL,AL ;BL←AL 先读入低8位IN AL,DX ;读入计数器1的内容MOV BH,AL ;BH←AL 后读高8位,16位计数值送BXMOV AX,0FFFFH ;AX=FFFFHSUB AX,BX ;AX-BX=计算脉冲个数CALL DISP ;调显示子程序MOV DL,0DH ;DL=0DH,“回车”的ASCII码MOV AH,02 ;DOS 2号调用INT 21HMOV DL,0AH ;DL=0AH,“换行”的ASCII码MOV AH,02 ;DOS 2号调用INT 21HJMP LL ;无条件转到标号LL ,继续检测DISP PROC NEAR ;十六进制数→BCD转换并显示子程序MOV DX,0000H ;DX=0MOV CX,03E8H ;CX=03E8H=1000DIV CX ;A X←DX ,AX÷1000商,D X←DX ,AX÷1000余数MOV COUNT1,AL ;COUNT1←AL,千位MOV AX,DX ;AX←DX余数MOV CL,64H ;CL=64H=100DIV CL ;AL←AX÷100商,AH←AX÷100余数MOV COUNT2,AL ;COUNT2←AL,百位MOV AL,AH ;AL←AH余数MOV AH,00H ;AH=0MOV CL,10 ;CL=10DIV CL ;AL←AX÷10商,AH←AX÷10余数MOV COUNT3,AL ;COUNT3←AL,十位MOV COUNT4,AH ;COUNT4←A L,个位MOV AL,COUNT1 ;AL← COUNT1CALL DISP1 ;调显示字符子程序MOV AL,COUNT2CALL DISP1MOV AL,COUNT3CALL DISP1MOV AL,COUNT4CALL DISP1RETDISP ENDPDISP1 PROC NEAR ;显示字符子程序AND AL,0FH ;“与”操作,屏蔽高4位,保留低4位CMP AL,09H ;AL与9比较JLE NUM ;AL≤9,转到标号NUMADD AL,07H ;D L>9,DL←DL+7NUM:ADD AL,30H ;AL←AL+30H,转换成ASCII码MOV DL,AL ;DL←ALMOV AH,02 ;DOS 2号调用INT 21H ;显示一个字符RETDISP1 ENDPQUIT:MOV AH,4CH ;返回DOS INT 21HCODE ENDSEND ST ART ;结束七上机操作相关数据截图八思考题关闭电机后,为什么8254计数不为零?。

直流电机的转速检测及电路设计

直流电机的转速检测及电路设计

摘要在电气时代的今天,电动机在工农业生产与人们日常生活中都起着十分重要的作用。

直流电机作为最常见的一种电机,具有非常优秀的线性机械特性、较宽的调速范围、良好的起动性以及简单的控制电路等优点,因此在社会的各个领域中都得到了十分广泛的应用。

系统主要功能是:AT89C51单片机接受霍尔传感器传来的脉冲信号,单片机根据外部中断,以及内部定时器进行计数计算出电机转速送到LED并显示,外部装有蜂鸣器电路,在超速或低俗过低都会停止电动机,蜂鸣器发音,显示器不显示,从实用角度看,评价一个系统实用价值的重要标准,就是这个系统对社会生活和科技观念有多大的贡献。

本设计以单片机为核心设计一个电动机转速测定及数据显示控制系统,要求对转速范围在0-3000r/min的直流调速电动机进行测量并显示,转速数据显示精度要达到转速个位数,有转速高、低限报警提示。

本设计使用6V直流电机。

将霍尔传感器产生的脉冲信号输入到单片机外部中断0口,单片机工作在内部定时器工作方式0,对周期信号进行计数,调用计算公式计算出转速,调用显示程序在LED上,其主要内容是单片机部分主要完成电机转速的测量,LED显示部分主要是把转速显示出来,显示范围在0-3000r/min之间。

本设计主要研究直流电机的控制和测量方法,效率高,电路简单,使用也比较广泛,测速系统采用集成霍尔传感器敏感速率信号,具有频率响应快、抗干扰能力强等特点。

从而对电机的控制精度、响应速度以及节约能源等都具有重要意义。

关键词:单片机霍尔IC传感器 , DAC0832 直流电动机转速流程图A/D 和D/A转换器目录摘要 (2)第一章:引言 (5)第二章:系统功能分析 (7)2.1 系统功能概述 (7)2.2 系统要求及主要内容 (7)2.3 系统技术指标 (7)第三章:系统总体设计 (8)3.1 硬件电路设计思路 (8)3.2 软件设计思路 (9)第四章:硬件电路设计 (8)4.1 单片机描述 (12)4.1.1 AT89C51引脚及作用 (12)4.1.2 ULN2003引脚图及功能 (13)4.2 外围电路设计 (14)4.2.1时钟电路 (14)4.2.2复位电路 (14)4.2.3测速电路 (15)4.2.4报警电路 (16)4.2.5显示电路 (16)4.2.6 74HC573引脚图及功能 (18)第五章:软件电路设计 (20)第六章:系统调试 (23)6.1 硬件调试 (23)6.2 软件调试 (24)6.3 综合调试 (24)6.4 故障分析与解决方案 (24)6.4.1 故障出现情况 (24)6.4.2 解决方案 (25)第七章:结论 (30)参考文献 (31)致谢 (28)附录 (29)第一章引言电子技术的高速发展,促使直流电机调速逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术进入到一个新的阶段。

直流电机测速代码

直流电机测速代码
end process;
process (s)
begin
case s is
when "000"=>lout4<=in6;
when "001"=>lout4<=in5;
when "010"=>lout4<=in4;
when "011"=>lout4<="0000";
when "100"=>lout4<=in3;
signal lout4:std_logic_vector(3 downto 0);
begin
process (clk)
begin
if (clk'event and clk='1')then
if (s="111") then
s<="000";
else s<=s+1;
end if;
end if;
sel<=s;
解决办法
通过学习了解了控制占空比就可以控制直流电机转速
五、 调试过程介绍
1、 调试过程 (1)
把程序下载到实验箱,观察实验现象,如果不对就修改程序,重复前面的操作,直到成功
2、
(1) 调试过程中出现的问题及其解决方法 问题一 数码管显示的速度跳动很大
解决方法
通过把占空比从100分频调到1000,这样占空比没变化1速度的变化
一、 设计要求
1. 用数码管显示直流电机转速 2. 控制直流电机转速
3. 控制直流电机保持在一个恒定值 二、 设计目的
a) 掌握直流电机的工作原理。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

可实现功能:1 可控制左右旋转2 可控制停止转动3 有测速功能,即时显示在液晶上4 有速度档位选择,分五个档次,但不能精确控速5 档位显示在液晶上用到的知识:1 用外部中断检测电机送来的下降沿,在一定时间里统计脉冲个数,进行算出转速。

2 通过改变占空比可改变电机速度,占空比的改变可以通过改变定时器的重装初值来实现。

3 要想精确控制速度,还需要用自动控制理论里的PID算法,但参数难以选定,故在此设计中没有涉及!#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit PW1=P1^0 ;sbit PW2=P1^1 ; //控制电机的两个输入sbit accelerate=P0^2 ; //调速按键sbit stop=P0^3 ; //停止按键sbit left=P0^4 ; //左转按键sbit right=P0^5 ; //右转按键sbit detect=P3^2; //检测脉冲sbit lcdrs=P0^0;sbit lcden=P0^1;#define Da P2uint temp; //保存检测到的电平数据以便比较uint count; //用于计数uint aa,bb; //用于计数uint speed; //用来计算转速uint a=25000;uint t0=25000,t1=25000; //初始时占空比为50%uchar flag=1; //此标志用于选择不同的装载初值uchar dflag; //左右转标志uchar sflag=1; //用来标志速度档位#define right_turn PW1=0;PW2=1 //顺时针转动#define left_turn PW1=1;PW2=0 //逆向转动#define end_turn PW1=1;PW2=1 //停转void keyscan(); //键盘扫描void delay(uchar z);void time_init(); //定时器的初始化void write_(uchar ); //液晶写指令void write_data(uchar date); //液晶写数据void lcd_init(); //液晶初始化void display(uint rate); //显赫速度void int0_init(); //定时器0初始化void keyscan(); //键盘扫描程序void judge_derection();void main(){time_init(); //定时器的初始化lcd_init(); //液晶初始化int0_init(); //定时器0初始化while(1){}}void time_init(){TMOD=0x11; //两个定时器都设定为工作方式1 十六位定时计数器EA=1; //开启总中断TH0=(65536-50000)/256;TL0=(65536-50000)%256;ET0=1;TR0=1;TH1=(65536-a)/256;TL1=(65536-a)%256;ET1=1;TR1=0;}void int0_init(){EX0=1;//外部中断源可以申请中断IT0=1;//外部中断源下降沿触发}void timer0() interrupt 1 using 0 {TH0=(65536-50000)/256;TL0=(65536-50000)%256; //装载初值keyscan(); //键盘扫描程序aa++;if(aa==5){temp=count*0.5*60*2*2*100/24; //计算转速,每分转多少圈count=0; //重新开始计数脉冲数display(temp); //把计算得的结果显示出来}}void timer1() interrupt 3 using 0{if(flag){flag=0;end_turn;a=t0; //t0的大小决定着低电平延续时间TH1=(65536-a)/256;TL1=(65536-a)%256; //重装载初值}elseflag=1; //这个标志起到交替输出高低电平的作用if(dflag==0){right_turn; //右转}else{left_turn; //左转}a=t1; //t1的大小决定着高电平延续时间TH1=(65536-a)/256;TL1=(65536-a)%256; //重装载初值}}/*******外部中断*******************/void _int0() interrupt 0count++; //来一个下降沿沿就计一个脉冲数}/*******显示函数***********/void display(uint rate){uchar wan,qian, bai,shi,ge;wan=rate/10000;qian=rate/1000%10;bai=rate/100%10;shi=rate/10%10;ge=rate%10;write_(0x80);write_data('0'+wan);write_data('0'+qian);write_data('0'+bai);write_data('.');write_data('0'+shi);write_data('0'+ge);/******延时函数********/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--) ;}/************写指令************/ void write_(uchar ){lcdrs=0;Da=;delay(1);lcden=1;delay(1);lcden=0;}/************写数据**********/void write_data(uchar date){lcdrs=1;Da=date;delay(1);lcden=1;delay(1);lcden=0;}/************液晶初始化**********/void lcd_init(){lcden=0;write_(0x38) ; //初始化write_(0x0c) ; //打开光标0x0c不显示光标0x0e光标不闪,0x0f光标闪write_(0x01) ; //清显示write_(0x80+0x40);write_data('0');write_data(' ');write_data('G');write_data('e');write_data('a');write_data('r');}/***********键盘扫描程序**********/void keyscan(){if(stop==0){TR1=0; //关闭定时器0 即可停止转动end_turn; // 停止供电write_(0x80+0x40);write_data('0');}if(left==0){TR1=1;dflag=1; //转向标志置位则左转write_(0x80+0x40);write_data('0'+sflag);}if(right==0){TR1=1;dflag=0; //转向标志复位则右转write_(0x80+0x40);write_data('0'+sflag);}if(accelerate==0){delay(10) ; //延时消抖if(accelerate==0){while(accelerate==0) ; //等待松手sflag++;if(sflag==2){t0=20000;t1=30000; //占空比为百分之60write_(0x80+0x40);write_data('2');}if(sflag==3){t0=15000;t1=35000; //占空比为百分之70write_(0x80+0x40);write_data('3');}if(sflag==4){t0=10000;t1=40000; //占空比为百分之80write_(0x80+0x40);write_data('4');}if(sflag==5){t0=5000;t1=45000; //占空比为百分之90write_(0x80+0x40);write_data('5');}if(sflag>=6){sflag=0;t0=25000;t1=25000;write_(0x80+0x40);write_data('1');}}}}。

相关文档
最新文档