基于51单片机直流电机驱动论文
基于MCS-51单片机直流电机调速控制器的设计

D/A转换、DAC外围放大电路
• 采用DAC0832作为D/A转换、DAC外围放大电路, DAC0832是一个八位并行的D/A转换器。其作用 是将单片机输出的数字信号转换为模拟量输出, 并将电流信号转化为电压信号输出,实现对电机 的电枢电压的控制。 • DAC0832直接与单片机相连,其内部没有运算放 大器使用时需要外接运算放大器,但这也提供了 设计的灵活性. • 此系统采用内部时钟方式,其原理图如图所示。 MCS-51单片机允许的晶振可在1.2~12MHz之间 选择,此系统选12MHz。则一个机器周期为1μs 。 C大小为30pF。
sbit S1=P2^6; sbit S2=P2^7; //按键 sbit J0=P1^0; sbit J1=P1^1; sbit J2=P1^2; sbit J3=P1^3; //74HC164与单片机的接口 sbit DA=P3^6; sbit CLK=P3^7; //共阴极数码管段码表 uchar code led_7seg[10]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; //8,9 //延时 void Delay(uchar i) { uchar j;
图3霍尔元件测速原理图一
图二
2.5 直流电动机转速控制系统硬件设 计
• 通过自制5V电源来确保工作电压正常,由霍 尔元件及外围器件组成的测速电路将电动 机转速转换成脉冲信号,送至单片机的计 数器T1,由T1测出电动机的实际转速,并 与设定值比较形成偏差。根据比较结果, 使DAC0832输出控制电压增大或减小。功 放电路将DAC0832输出的模拟电压转换成 具有一定输出功率的电动机控制电压。
· 关键词:直流电机 单片机 转速控 制 圈数控制 PWM
基于51单片机的直流减速电机驱动电路的设计

基于51单片机的直流减速电机驱动电路的设计下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基于51单片机的直流减速电机驱动电路的设计引言直流减速电机在各种应用中广泛使用,其驱动电路设计直接影响到电机的性能和稳定性。
基于单片机的直流电机控制系统设计毕业设计论文

毕业设计(论文)说明书课题名称:基于单片机的直流电机控制系统设计院系专业班级学号姓名指导教师2012 年 5 月 20 日摘要电动机作为最主要的机电能量转换装置,其应用范围已遍及国民经济的各个领域和人们的日常生活。
无论是在工农业生产、国防、医疗卫生、交通运输和办公设备中,还是在日常生活的家用电器和消费电子产品中,都大量使用着各种各样的电动机。
电动机的调速控制一般采用模拟法,对电动机的简单控制应用比较多。
本设计实现了对电动机的简单控制,也就是指对电动机进行启动、制动和正反转控制。
本设计采用了单片机STC89C52与PC串行实现通信,由于单片机输入、输出电平是TTL 电平,而PC机配置的是RS232标准串行接口,两者的电气规范不一致,因此要完成单片机与PC机的数据通信,必须对单片机输出的TTL电平进行电平转换。
采用的转换电平芯片为MAX232。
设计中采用STC89C52微处理器及其RS232通信接口、键盘、12864液晶显示器等外围电路,构成一台直流电机开环在线控制系统。
设计中采用PWM调制技术,实现对直流电机速度的调制,并通过串口实现上位机的在线控制。
系统实现了在线调速、正转、反转、加速、减速、停止等多种功能,并能实时显示、键盘设置等,具有一定的实际应用价值。
关键词:单片机电平转换直流电机在线控制PWM调制AbstractMotor as the main electromechanical energy conversion device, its application has been throughout all areas of the national economy and people's daily life.Both in industrial and agricultural production, national defense, medical and health, transportation and office equipment, or in the daily life of household appliances and consumer electronics products, extensive use of various motor.Motor speed control using simulation method, the motor control application more simple.The design and implementation of simple controlling motor, also refers to the motor starting, braking and reverse control.The design introduced AT89C51 single-chip serial communication with the PC method, as the single-chip input and output level is TTL level, and PC-standard configuration is a RS232 serial interface, both the electrical specifications are inconsistent, Therefore to complete PC-SCM and data communications, the need for single-chip output TTL level to level translators. Used in chip-level conversion for the MAX232. Applied to the design of STC89C52 microprocessor and RS232 communication interface, keyboard, 12864 LCD peripheral circuit, constitute a dc motor control system online.Applied to the design of PWM technology to realize the dc motor speed regulation, and through a serial port realize PC online control. The online speed regulation system, are turning, inversion, accelerate, slowing down, stop and other functions, and can real-time display, keyboard Settings, it has certain practical application value.Keywords: single-chip serial communication Level Translators Dc motor Online control PWM technology目录摘要 (I)ABSTRACT (II)1 绪论............................................................... - 1 -1.1直流电机概述 (1)1.2单片机概述 (1)1.3脉宽调制(PWM)技术 (2)1.4课题任务及工作内容 (3)2 单片机直流电机控制系统总体设计方案................................. - 4 -2.1设计思路 (4)2.2方案论证与比较 (4)2.3系统组成 (5)3 单片机直流电机控制系统硬件设计..................................... - 6 -3.1系统硬件结构 (6)3.2系统单元电路设计 (6)3.2.1 单片机最小系统电路........................................ - 6 -3.2.2 独立式键盘电路............................................ - 7 -3.2.3液晶显示模块.............................................. - 7 -3.2.4 蜂鸣器电路................................................ - 8 -3.2.5 电源电路.................................................. - 8 -3.2.6 串口通信电路.............................................. - 9 -3.2.7 电机驱动电路............................................. - 10 -4 单片机直流电机控制系统软件设计.................................... - 11 -4.1软件总体结构 (11)4.2系统模块程序设计 (12)4.2.1初始化模块程序........................................... - 12 -4.2.2键盘扫描模块程序......................................... - 13 -4.2.3液晶显示模块程序......................................... - 15 -4.2.4串口通信模块程序......................................... - 15 -4.2.5电机调速模块程序......................................... - 17 -5 系统测试.......................................................... - 18 -5.1测试准备 (18)5.1.1 硬件环境................................................. - 18 -5.1.2 软件环境................................................. - 18 -5.1.3 测试项目................................................. - 18 -5.2测试过程 (18)5.3测试结果 (19)结束语............................................................... - 21 - 致谢................................................................. - 22 - 参考文献............................................................. - 23 - 附录................................................................. - 24 -1 绪论1.1 直流电机概述在现代工业中,电动机作为电能转换的传动装置被广泛应用于机械、冶金、石油化学、国防等工业部门中,随着对生产工艺、产品质量的要求不断提高和产量的增长,越来越多的生产机械要求能实现自动调速。
基于AT89C51单片机控制的无刷直流电机设计毕业论文

摘要随着科学技术的发展,现代工业的需要,无刷直流电动机迅速发展,取代传统电动机。
无刷直流电动机的效率高、精度准确、速度快,广泛应用于各种电噐领域。
本设计中的电动自行车的电机使用的是无刷直流电动机,控制噐选择AT89C51单片机,通过霍尔位置传感噐反映电机转子的位置的信息,单片机编写程序操控无刷直流电机。
分析系统中的无刷直流电动机、单片机、驱动芯片、数码管、键盘的功能以及工作原理。
讨论了无刷直流电动机的几种运行特性,得出相应结论。
根据无刷直流电动机的特性,采用PWM技术对电机进行调速,霍尔传感噐测量的转速通过单片机显示在数码管上。
通过技术分析,软件以及硬件设计,达到了预期的结果。
关键词:无刷直流电动机;单片机;霍尔位置传感噐AbstractWith the development of science and technology, should now industrial needs, brushless DC motor to develop rapidly to replace the traditional motor. Brushless DC motor with high efficiency, accurate accuracy, speed, widely used in a variety of electrical fields.The design of the electric bicycle motor is a brushless DC motor, select the AT89C51 microcontroller as a controller, capture the comparison level and Hall position sensor feedback signal, through the software programming control brushless DC motor. Analysis of the system in the brushless DC motor, microcontroller, driver chip, digital tube, keyboard function and working principle. The working characteristics of brushless DC motor are discussed. According to the characteristics of brushless DC motor, PWM motor is used to speed the motor. Hall sensor measurement speed through the microcontroller shown in the digital tube, by looking for information, hardware and software design, and ultimately to achieve the system requirements. Key words: brushless dc motor;the microcontroller;hall position sensor目录1前言 (2)2无刷直流电动机的介绍 (4)2.1无刷直流电动机的概念 (4)2.2无刷直流电动机的研究意义 (4)2.3无刷直流电动机以及有刷直流电动机的对比 (5)3无刷直流动电机的结构原理以及工作特性 (7)3.1无刷直流电动机的结构 (7)3.1.1电机本体 (7)3.1.2转子位置传感噐 (7)3.1.3电子换向噐 (8)3.2无刷直流电机的原理 (8)3.3无刷直流电动机的运行特性 (10)3.3.1机械特性 (10)3.3.2调节特性 (11)3.3.3工作特性 (12)4无刷直流电动机控制噐的选型与设计 (13)4.1无刷直流电动机控制噐设计 (13)4.1.1设计方案比较与选择 (13)4.1.2无刷直流电动机系统结构框图 (14)4.2控制噐的组成及原理 (15)4.3脉宽调制(PWM)技术 (15)5 AT89C51单片机的结构以及工作原理 (17)5.1 AT89C51单片机的硬件结构 (17)5.2 AT89C51单片机的引脚功能介绍 (18)5.3 AT89C51单片机的工作方式 (19)5.4 AT89C51单片机的最小应用系统 (21)5.5 AT89C51单片机的指令系统 (22)6硬件电路以及软件的设计 (23)6.1硬件电路设计 (23)6.1.1单片机与按键键盘电路设计 (23)6.1.2单片机与数码管的电路设计 (25)6.1.3逆変电路与驱动电路设计 (26)6.1.4限流保护电路 (29)6.2软件设计 (29)6.2.1控制噐软件设计 (29)6.2.2程序流程图 (31)7技术经济分析 (34)8结论 (35)致谢 ............................................................................................ 错误!未定义书签。
基于51单片机的直流电机控制系统设计

摘要本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。
控制系统主要是以8051单片机为核心组成的控制系统,本系统中的电机转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此,由MCU内部的可编程计数器阵列输出PWM波,以调整电机两端电压与控制波形的占空比,从而实现调速。
目录第一章:设计任务 (1)第二章:总体设计方案 (2)第三章系统硬件电路设计 (2)第四章系统的软件设计 (3)第五章:程序 (5)第六章:PCB图 (5)第七章:元件清单 (5)第八章:参考文献 (5)第九章:心得体会 (6)第一章:设计任务任务: 单片机为控制核心的直流电机PWM调速控制系统设计的主要内容以及技术参数:功能主要包括:1)直流电机的正转;2)直流电机的反转;3)直流电机的加速;4)直流电机的减速;5)直流电机的转速在数码管上显示;6)直流电机的启动;7)直流电机的停止;第二章:总体设计方案总体设计方案的硬件部分详细框图如图一所示。
键盘向单片机输入相应控制指令,由单片机通过P1.0与P1.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过ULN2003芯片控制电路,实现电动机转向与转速的控制。
电动机的运转状态通过数码管显示出来。
电动机所处速度级以速度档级数显示。
正转时最高位显示“三”,其它三位为电机转速;反转时最高位显示“F”,其它三位为电机转速。
每次电动机启动后开始显示,停止时数码管显示出“0000”。
第三章系统硬件电路设计整体框图如下本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和数码管显示等部分的设计。
单片机资源分配如下表:①PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:/*****************延时函数*************************/delays(){uchar i;for(i=5000;i>0;i--);}②键盘中断处理子程序:采用中断方式,按下键,完成延时去抖动、键码识别、按键功能执行。
(完整版)基于单片机的直流电机调速系统毕业设计论文

论文题目:基于单片机的直流电机调速系统设计学生姓名:所在院系:所学专业:导师姓名:完成时间:摘要本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。
文章中采用了专门的芯片组成了PWM信号的发生系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。
此外,本文中还采用了芯片IR2110作为直流电机正转调速功率放大电路的驱动模块,并且把它与延时电路相结合完成了在主电路中对直流电机的控制。
另外,本系统中使用了测速发电机对直流电机的转速进行测量,经过滤波电路后,将测量值送到AD转换器,并且最终作为反馈值输入到单片机进行PI运算,从而实现了对直流电机速度的控制。
在软件方面,文章中详细介绍了PI运算程序,初始化程序等的编写思路和具体的程序实现。
关键词:PWM信号,测速发电机,PI运算The Design of Direct Current Motor speedRegulation System Based On SCMChenliSchool of Information and EngineeringAbstractThis article mainly introduces the method to generate the PWM signal by using MCS-51 single-chip computer to control the speed of a D.C. motor. It also clarifies the principles of PWM and the way to adjust the duty cycle of PWM signal. In addition, IR2110 used as an actuating device of the power amplifier circuit which controls the speed of rotation of D.C. motor. What’s more, tachogenerator is used in this system to measure the speed of D.C. motor. The result of the measurement is sent to AD converter after passing the filtering circuit, and finally the feedback single is stored in the single-chip computer and participates in a PI calculation. As for the software, this article introduces in detail the idea of the programming and目录1. 引言 (1)1.1开发背景 (1)1.2选题的目的和意义 (1)1.3研究方法 (2)2. 总体设计概述 (2)2.1总体硬件电路设计 (2)2.1.1系统总体设计框图 (2)2.1.2 8051单片机简介 (3)2.1.3单片机系统中所用其他芯片选型 (4)2.2PWM信号发生电路设计 (7)2.2.1 PWM的基本原理 (7)2.2.2 PWM信号发生电路设计 (8)2.2.3 PWM发生电路主要芯片的工作原理 (9)2.3功率放大驱动电路设计 (10)2.3.1芯片IR2110性能及特点 (10)2.3.2 IR2110的引脚图以及功能 (11)2.4主电路设计 (11)2.4.1 延时保护电路 (11)2.4.2 主电路 (11)2.4.3 输出电压波形 (13)2.4.4系统总体电路图 (14)2.5测速发电机 (15)2.6滤波电路 (15)2.7AD转换 (15)2.7.1芯片选型 (15)2.7.2 ADC0809的引脚及其功能 (16)3.系统软件部分的设计 (16)3.1PI 转速调节器原理图及参数计算 (16)3.2系统中的部分程序设计 (17)3.2.1主程序设计 (17)3.2.2 PI控制算法子程序设计 (18)4. 系统调试 (19)4.1软件调试 (19)4.2系统仿真 (20)结论 (21)致谢 (21)参考文献 (22)附录 (23)1. 引言1.1开发背景现代工业生产中,电动机是主要的驱动设备,目前在直流电动机拖动系统中已大量采用晶闸管(即可控硅)装置向电动机供电的KZ—D拖动系统,取代了笨重的发电动一电动机的F—D系统,又伴随着电子技术的高度发展,促使直流电机调速逐步从模拟化向数字化转变,特别是单片机技术的应用,使直流电机调速技术又进入到一个新的阶段,智能化、高可靠性已成为它发展的趋势。
基于51单片机驱动L289直流电机步进电机控制Protues仿真设计

51单片机L298N直流电机步进电机驱动
采用专用芯片L298N作为电机驱动芯片。
L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
且由L298N结合单片机可实现对小车速度的精确控制。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用L298N控制直流电机。
电机驱动芯片采用L298N,是一款承受高压大电流的全桥型直流/步进电压驱动器,如下图
电机控制芯片L298N的引脚排列
L298N内部原理图
电机驱动A/B的控制逻辑如下表所示
电机驱动A/B的工作原理
电机控制逻辑如下:以电机A为例,当使能端A为高电平是,如果输入端M1 Direction 引脚为高电平,三极管导通,输入引脚1为低电平而输入引脚2为高电平,电机A反转;如果输入端M1 Direction引脚为底电平,三极管截止,输入引脚1为高电平而输入引脚2为低电平,电机A正转。
基于51单片机的直流电机控制

基于51单片机的直流电机控制一、试验器件选择1、控制芯片的作用主要是与L289相连接驱动直流电机,以及与八位数码管相连显示。
(1)、AT89C51是一种带4K自己FLASH存储器的低压、高性能CMOS8为微处理器。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失真存储制造技术制造,与工业标准的MCS-51指令集和输出关键相兼容。
由于将多功能8位CPU和闪存组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性奥高且廉价的方案。
(2)、AT89C51引脚图如下:2、电机驱动芯片(1)、电机驱动芯片选择L298。
其主要功能是作为单片机与直流电机中间的过度链接,单片机输出的信号通过L298加载到直流电机上驱动直流电机运行。
其引脚图如下:(2)、主要工作原理:1、15脚分别是两个H桥的电流反馈脚,不用时可以直接接地;2、3为一对输出端口,13、14为一对输出端口;4为驱动电压输入,最小值必须比输入的低电平高2;5、7一对输入端口,10、12一对输入端口,TTL电平兼容6、11使能端,低电平禁止输出;8、9分别为接地和逻辑电源3、直流电机。
在protues中选择motor-encoder直流电机,引脚图如下:上方左右的两个引脚在点击运转时输出频率相同的方波,但是在相位上相差90 ,而4、74HC74。
当D触发器的D和CLK输入端分别接电机上方的左右两个输出端口时可以根据D触发器的输出情况判断点击的转速。
5、八位数码管。
用以显示。
二、系统硬件设计连接1、系统的器件连接图如下:2、单片机与数码管通过P0口和P2口相连,其中P2口选择点亮哪一个数码管,P0口则控制被点亮的数码管显示的数据。
3、单片通过P1^0和P1^1和L298的第一对输入端IN1和IN2相连,然后又L298的第一对输出端OUT1和OUT2与直流电机相连,已达到控制直流电机的目的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于51单片机的直流电机驱动
中图分类号:tp 文献标识码:a 文章编号:1007-0745(2011)10-0052-02
摘要:利用at89c51设计一个直流电机的软件模拟pwm驱动及测速系统。
单片机读取键盘值来设定转速和正反转,并且通过红外对管来测量转速。
本系统具有精度高,成本低,使用方便等优点。
关键词:at89c51pwm测速
引言
随着社会的发展,各种智能化的产品日益走入寻常百姓家。
为了实现产品的便携性、低成品以及对电源的限制,小型直流电机应用相当广泛。
对直流电机的速度调节,我们可以采用多种办法,本文给出一种用单片机软件实现pwm调速的方法及红外对管测转速。
一、直流电机调速
知道通过调节直流电机的电压可以改变电机的转速,但是一般我们设计的电源大都是固定的电压,而且模拟可调电源不易于单片机控制,数字可调电源设计麻烦。
所以这里用脉宽调制(pwm)来实现调速。
方波的有效电压跟电压幅值和占空比有关,我们可以通过站空比实现改变有效电压。
一般用软件模拟pwm可以有延时和定时两种方法,延时方法占用大量的cpu,所以这里采用定时方法。
二、直流电机旋转方向
一般利用h桥电路来实现调速。
h桥驱动电路:图4.12中所示为一个典型的直流电机控制电路。
电路得名于“h桥驱动电路”是
因为它的形状酷似字母h。
4个三极管组成h的4条垂直腿,而电机就是h中的横杠(注意:图4.12及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。
如图所示,h桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
图4.12 h桥驱动电路
要使电机运转,必须使对角线上的一对三极管导通。
例如,如图4.13所示,当q1管和q4管导通时,电流就从电源正极经q1从左至右穿过电机,然后再经q4回到电源负极。
按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。
当三极管q1和q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
图4.13 h桥电路驱动电机顺时针转动
图4.14所示为另一对三极管q2和q3导通的情况,电流将从右至左流过电机。
当三极管q2和q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
图4.14 h桥驱动电机逆时针转动
可以把q1跟q4接在一起,q3跟q2接在一起,这样只要两个单片机i/o口就行。
下面的程序中lun1、lun2就表单片机的两个i/o
口。
这个桥式电路图只用来说明原理,实际应用还要看电机的额定电压、电流。
也可以用l293、l298直流的集成芯片。
三、pwm程序
void timer0() interrupt 1
{
if(temp)
{th0=time_h_0;tl0=time_l_0;//设置低电平时间temp=0;
}
else
{
th0=time_h_1;
tl0=time_l_1;//设置高电平时间,可以通过键盘设定来达到调速功能。
temp=1;
t0_count++ ;//作测速定时用
}//这样定时在两个时间里变化起到类似两个定时器的作用
// qianjin从键盘读取
if(qianjin==1) //正转
{
lun1=temp;
lun2=1;//低电平有效}
else if(qianjin==2)//反转
{
lun1=1;
lun2=temp;
}
else if(qianjin==3) //停止
{
lun1=1;
lun2=1;
}
}
这样就可以实现直流电机正反转和调速。
当然键盘程序比较简单,篇幅所限,不详细给出
四、测速
通过红外对管来测量轮子转速,电路图如下:
测速可以分3种:测频法、测周法和测频侧周混合法。
这里我只介绍测频法,因为已经用了一个定时器,可以在这个定时器基础上设定时间,程序中t0_count就是时间变量。
若要用侧周法,会有一个误差,主要来自定时器的误差。
时间定了后接下来要测脉冲数,可以用计数器或者外部中断,采用计数器比较方便。
程序
if(t0_count>=125)
{
tr1 =0; //关闭计数器
t0_count =0;
int_h =th1; //t1计数缓冲单元
int_l =tl1;
th1 =0; //清计数器
tl1 =0;
t1_count =0;
tr1 =1; //开启计数器
}
// time1中断服务函数
// 对t1溢出产生中断的次数进行计数
// 计满65535,产生一次溢出中断
void timer1() interrupt 3
{
//因为电机转速实际测量中电机转速并不超过65536的计数,所以不会进入中断。
不然可以
//用一个变量来计数
}
显然转速=(int_h*256+ int_l)/ 125*pwm脉冲周期。
这里有一个误差需要修正,因为进入定时中断需要进行进行压栈等工作所以会有一定误差。
摘取进入定时器中断的反汇编程序:78: void timer0() interrupt 1
79: {
80:
c:0x0250 c0e0 push acc(0xe0)
c:0x0252 c0d0 push psw(0xd0)
81: if(temp) c:0x0254 30.000a jnb temp(0x20.0), c:0261
82: {
83: th0=time_h_0;
c:0x0257 85088c mov th0(0x8c),time_h_0(0x08) 84: tl0=time_l_0;
c:0x025a 850a8a mov tl0(0x8a),time_l_0(0x0a) 85: temp=0;
c:0x025d c200 clr temp(0x20.0)
86:}
87: else c:0x025f 800a sjmp c:026b
88: {
89: th0=time_h_1;
c:0x0261 85098c mov th0(0x8c),time_h_1(0x09) 90: tl0=time_l_1;
c:0x0264 850b8a mov tl0(0x8a),time_l_1(0x0b) 91: temp=1;
c:0x0267 d200 setb temp(0x20.0)
92: t0_count++ ;
c:0x0269 050c inc t0_count(0x0c)
93:}
显然在进入中断后首先要进行acc和psw压栈,这里需要4个机器周期。
接着要判断是否temp==1,用到jnb指令需要2个机器周期。
另外还有两个mov指令。
把这些时间算进去后,精度就会比较高。
估计在4000hz情况下测到的是4006hz左右,这里的误差可能是中断响应需要一定时间,可以通过加上7、8个机器周期来修正。
最后能得到4000hz以内误差只在1hz。
五、结论
本系统实现了直流电机的转速、方向的设定和转速的测量,而且测速精度非常高。
参考文献:
[1]古欣朱岩王智涌喻巧群原瑞花,自动寻迹小车
[2]/dodo_1863@126/blog/static/11505 8766200931515547335/等。