直流电机正反转开关,为什么,需要加500ms才能实现,不加500ms延时只是顺时针转,不改变方向?

& & 本文来源于 天天CAD教程网(http://www.ttcad.com/)
& & 手机用户可以扫描以下二维码(左边)关注天天CAD微信公众号,可以扫描以下二维码(右边)访问天天CAD教程手机版和下载天天CAD教程手机APP:
&-&&-&&-&&-&(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&2次下载&&|&&总70页&&|
您的计算机尚未安装Flash,点击安装&
阅读已结束,如需下载到电脑,请使用积分()
下载:30积分
相关分类推荐
0人评价5页
0人评价24页
0人评价3页
0人评价7页
0人评价4页
所需积分:(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
文档内容侵权
已存在相同文档
不属于经济管理类文档
源文档损坏或加密
若此文档涉嫌侵害了您的权利,请参照说明。
我要评价:
价格:30积分VIP价:基于STM32的直流电机PID调速系统设计与实现 - 全文
直流调速系统广泛应用于低转速、高精度等各领域,如精密办公设备(喷墨打印机、激光打印机),自动售货机,家用电器、机器人和玩具设备等。其发展得力于微电子技术、电力电子技术、传感器技术、永磁材料技术、自动控制技术和微机应用技术的最新发展成就。顺应调速系统智能化、简单化的发展趋势,本设计采用一款性价比高、功耗低的基于ARMCortex?M3内核的STM32单片机为控制核心,结合PID控制技术,实现了直流电机范围大、精度高的调速性能。
1、系统的总体设计
该调速系统能够实现对电机的启动、制动、正反转调速、测速和数据上传等功能,可方便地实现直流电机的四象限运行。本系统的性能指标为:调速精度高达到1r/min;调速稳态误差不超过0.5%;调速范围为-500~500r/min;串口指令控制方式;驱动电路导通阻抗低,能耗少;运行稳定可靠。系统由电源、上位机、通信接口、控制电路、电机驱动电路、电机与负载和测速装置等模块组成,结构框图如图1所示。
图1 &系统结构框图
2、硬件设计
2.1、控制电路设计
控制电路负责接收控制指令,并产生相应的控制信号,同时返回电机速度数据和电机运行状态数据等。为了保证电路工作稳定可靠,控制电路应具有较高的运行速度、高度可靠的稳定性能、开发容易、高性价比,产生的PWM控制信号应具有死区延时、互补输出、紧急刹车等功能。STM32系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARMCortex?M3内核,本系统采用STM32F103作为核心控制器。控制电路以STM32F103为核心的最小系统包括STM32主芯片、时钟电路、复位电路、UART?USB转换电路、JTAG调试接口电路、电源等,其原理图如图2所示。
图2 &以STM32F103为核心的控制电路原理图
2.2、驱动电路设计
根据系统正反转的控制要求,采用H桥驱动电路,由MOS管构成的H桥驱动电路原理图如图3所示。
图3 由MOS管构成的H桥驱动电路原理图
MOSFET是电压控制型器件,具有开关速度快、输入阻抗高、驱动方便等优点[5]。本系统采用IRF9630和IRF630对管,组成H桥,上桥臂均使用PMOS,下桥臂均使用NMOS,两种MOS管基本特性如表1所示。
表1H桥MOSFET主要参数表
控制电路的输出信号为DC3.3V信号,需要与驱动电路隔离,采用了LTV352光电耦合隔离器。互补PWM输入信号经过光耦隔离作用到MOSFET栅极,从而控制OUTA,OUTB之间的电压。MOSFET中G,S两极之间使用了双向TVS管抑制瞬态电压,防止MOSFET损坏。由于采用了PMOS,NMOS对管电路,MOSFET栅极电压是由输入电压进行分压得到,因此不需要采用额外的高电压信号源。
互补PWM输入信号中,PWMA控制V1,V4桥臂,PWMB信号控制V2,V3桥臂。当占空比为50%的PWM输入信号时,OUTA,OUTB之间输出电压是0V,电机处于停止状态时,由于电机电枢中仍存在高频微震电流,从而消除了正反向转动时的静摩擦死区,起着动力润滑作用。
2.3、速度反馈装置设计
本系统采用高达888线AB相光电编码器,两相脉冲相差90&,通过测量某相的周期T可以得到电机运行速度,通过测量两相的上升沿时刻可以得到电机运行方向。
3、系统软件设计
系统的软件设计主要完成硬件和数据初始化功能,然后进入标志位循环扫描状态,一旦中断发生便处理中断程序,在中断程序中有相关标志位置位(包括上位机发送来的、通信异常处理、电机停转处理),有则处理,无则继续进行中断等待。系统软件主程序流程如图4所示。
图4 &主程序流程图
中断源分为USART中断、PWM刹车中断、EX、MER中断。
USART中断是由于与上位机的数据交换过程中产生的,在中断程序中需要对接收到的数据包进行解析,并更新通信超时计数器。
PWM刹车中断是由于PWM刹车输入信号产生的,代表电机控制现场产生了紧急停车的请求。
EX中断由AB相编码器产生的光电编码脉冲产生,需要在中断服务历程中计算电机运行速度和方向,同时更新测速超时计数器。
MER中断为1ms定时中断,这个中断源的存在是为了系统通信超时检测、电机停转检测使用,在中断中需要对通信超时计数器和测速超时计数器进行自减处理,如果到零则发出响应信号通知系统。
由于中断源的多样性,STM32自带有可嵌套的中断向量控制器(NVIC),因此中断处理程序实际上是相互独立的。
3.1、PID算法设计
PID控制器将给定转速和反馈测得转速相比较后,经计算得出一个输出信号,将此输出信号量化为PWM的占空比,最终作用在电机的驱动电路上来控制电机。本系统中采用增量式PID算法[9?10],增量式数字PID表达式为:
KP为比例系数;TI为积分项积分时间常数;TD为微分时间常数。由上式可以得出增量式PID算法程序如下:
#defineKP0.15
#defineTI0.95
#defineTD0
#defineT0.001
#defineEMIN0.01
#defineA(KP*(1+T/TI+TD/T))
#defineB(KP*(1+2*TD/T))
#defineC(KP*TD/T)
floatPIDCompute(floatr,floaty)
{staticfloate0=0.0;
staticfloate1=0.0;
floate=0.0;
delta=A*e-B*e1+C*e0;
3.2、测速软件设计
测速软件需要完成测量电机转速与测量电机运行方向两部分内容。光电测速编码器输出的888线AB相脉冲分别连接到STM32的PA0,PA1上。
测速在STM32上的编程实现过程如下:
(1)配置EXTI1上升沿、下降沿均触发中断;
(2)配置端口与TIM2,TIM3;
(3)开启中断;
(4)EXTI中断程序中读取TIM2CNT中的数据并记录,清空TIM2CNT寄存器中的数据并重新启动计数;
(5)根据记录的数据进行瞬时速度计算;
(6)当若干个时基中断发生且期间无测速中断请求则宣告电机转速为0。
将A相信号输入至PA0(EXTI0)之上,编程使得EXTI0上升沿中断。在中断例程里读取B相信号,根据AB相脉冲时序可以判断电机转动方向,即B=1,电机反转;B=0,电机正转。
4、系统验证
本系统经过原理图和PCB设计、焊接制板、硬件测试、模块程序编写、模块程序功能测试、连接各个子模块程序、PID参数整定,最后通过反复的调试,系统完全满足预期要求,能够实现-500~500r/min之间任意速度控制(以顺时针方向为正方向),控制精度达1r/min,稳态误差不超过0.5%。在正常工作环境下,电机空载运行时,此时系统测试参数见表2,上位机界面如图5所示。
图5 &上位机界面
表2 &系统特性参数表
本文设计了一种基于ARMCortex?M3内核的STM32微控制器的直流电机PID调速系统。实验结果表明,该系统具有稳态误差小,控制精度高,响应速度快,能耗低、效率高等优点,对上肢康复机器人的研究具有一定的借鉴价值。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
单通道选择:有16个多路通道。可以把转换分成两组:规则的和注入的。在任意多个通道上以任意顺序进行的一...
本连载将以STM32F103为例为学习嵌入式系统开发搭建一个基础知识框架。 初识单片机系列将会介绍单...
随着现代科学技术的不断发展,生活用品的智能化程度也越来越普及,人们对一些家居物品的人性化、智能化设计...
STM32F103ZET6:共144个引脚,7组IO口,每组16个IO口7*16=112个IO口(这...
为解决当前大部分家庭服务机器人不具备行走功能或只具有简单的避障能力等问题,本文设计一种基于STM32...
伺服压力机的基本结构及对控制系统的要求与传统压力机比较,伺服压力机取消了原有压力机的飞轮和离合器,保...
STM32的串口中断配置,也是很简单的. 首先是配置UART的GPIO口 首先是配置UART的GPI...
传统的数字微镜显示技术的信号输入端是由DVI接口提供图像信号和行场同步信号,由MSP430单片机对D...
(1)程序的下载地址改到RAM空间中
(2)程序的debug之前要设定SP,PC指针到R...
数字PDA系统整体由硬件电路和软件系统2部分组成,硬件电路由低功耗ARM微控制器STM32ZET6控...
X-CUBE-AVS扩展套件包含一组用于STM32F7系列微控制器的库和应用示例,充当支持Alexa...
要求系统按如下方式进入和退出睡眠模式:在系统启动2秒后,将RTC在3秒钟之后配置为产生一个报警事件,...
采用定时器2的通道2,使PA1输出频率1K,占空比40的PWM波形,用PA8随意延时取反led灯,指...
如输出到称为HCLK、FCLK的时钟,还直接输出到SDIO外设的SDIOCLK时钟、存储器控制器FS...
RT-Thread是一个高度可配置的嵌入式实时操作系统,配置文件是rtconfig.h。Nano就是...
内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。假如我只修改了...
 和app中分别放置两套中断向量表,当iap代码中将app烧写到flash中之后,跳转到app的中断...
这个是MDK编译之后能够得到的每个段的大小,也就能得到占用相应的FLASH和RAM的大小,但是还有两...
本文主要介绍了基于stm32的pwm呼吸灯设计与实现。使用定时器来控制I/O口输出PWM波形,从而驱...
最小系统:考虑到小车的主控板可以作为今后做四轴或其他更高级的机器人的基础电路,所以主控选择了STM3...
本文主要介绍了升压斩波电路PI和PID调节器的优化设计。对于升压斩波电路而言,其主电路可分为输入滤波...
到此问题毫无进展,只好求助ST芯片设计人员做进一步确认,看看芯片是否真的坏了。同时,又请客户的硬件工...
存储器映射是指把芯片中或芯片外的FLASH,RAM,外设,BOOT,BLOCK等进行统一编址。
玩转西门子S7-300系列PLC的PID
FWLib-用来存放所需固件库的头文件;2).StartUp-用来存放STM32的启动代码,添加co...
积分环节的意义就相当于你增加了一个水龙头,这个水龙头的开关规则是水位比预定高度低就一直往大了拧,比预...
设计人员可以使用LMG1020EVM-006和LMG1210EVM-012评估模块和SPICE模型快...
在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器是应用最为广泛的一种自...
本文首先针对电机控制简要介绍了Cypress最新推出的PSoC4产品的主要特性和有传感器BLDC电机...
/*************定义全局变量*****************/uchar Kp,TI,...
本文详细介绍了使用STM32测量频率和占空比的几种方法。
在内存复制过程中,面对大数据量的转移时利用DMA。所以,我们使用输入捕获事件触发DMA来搬运寄存器而...
最近买了个数字罗盘模块,调通后发现很不错,非常灵敏,测试的时候精度在1°以内。连续测量模式下,最快测...
意法半导体的新STM32探索套件简化移动网至云端连接,并提供免费试用的第三方服务,让物联网设备能够通...
CPU最重要的工作室进行数据运算,从加减乘除到一些高级的运算,包括浮点、积分、微分、FFT等。CPU...
增量式PID控制,数字PID控制算法的一种基本形式,是通过对控制量的增量(本次控制量和上次控制量的差...
PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积...
本文主要介绍位置式PID算法的C语言代码以及它的写法,具体的一起来了解一下。
直流电机是指能将直流电能转换成机械能(直流电动机)或将机械能转换成直流电能(直流发电机)的旋转电机。...
高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定...
介绍了以TL494为核心,采用PWM技术的直流电机控制系统。基于TL494的H桥直流电机控制系统可简...
这次学习STM32花了很长时间,一个礼拜多,也有颇多收获,学习过程也有颇多曲折。这次的任务是:用ST...
PID控制是最早发展起来的控制策略之一,具有算法简单、易于实现、鲁棒性好且可靠性高等优点,是一种最通...
目的:基础PWM输出,以及中断配合应用。输出选用PB1,配置为TIM3_CH4,是目标板的LED6控...
文中以某火炮随动系统的研制为背景,为了进一步提高系统精度,首先介绍了复合控制系统模型及分区PID算法...
按键的一端与STM32的GPIO(PH15)相连,另外一端接地,且PH15外接一个1K电流大小的上拉...
新系列采用LQFP64、LQFP100和LFBGA100三种封装,不同的封装保持引脚排列一致性,结合...
STM32F0 系列产品基于超低功耗的 ARM Cortex-M0 处理器内核,整合增强的技术和功能...
随着现代工业的高速发展,气体设备逐渐应用到化工、电子、钢铁等行业中;传统的手动配气装置已经达不到后续...
变频空调因其节能受到越来越多用户青睐,但因其开机后快速降温幅度过大给用户带来的体验感极差,使市场一直...
为什么PID应用如此广泛、又长久不衰? 因为PID解决了自动控制理论所要解决的最基本问题,既系统的稳...
本实验通过STM32的三个GPIO口驱动三色LED的三个通道,将GPIO设置为推挽输出模式,采用灌电...
* =======直流电机的PWM速度控制程序======== */ /*晶振采用11.0592M,...
GForce-200系列PLC能够进行PID控制,其CPU最多可支持8个PID控制回路。PID是闭环...
机器人学代表了当今集成度高、具有代表性的高技术领域,它综合了多门学科。其中包括机械工程学、计算机技术...
调节系统投自动:往往在控制方案确定好且判断出调节器的正/反作用后,最关键的是P、I、D参数如何整定,...
串口通信指串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用...
语音识别是机器通过识别和理解过程把人类的语音信号转变为相应文本或命令的技术,其根本目的是研究出一种具...
设计选用STM32单片机作控制器,设计温度单反馈的控制系统,对电加热水器内水的温度进行控制。通过PT...
 电子秤(英文名:electronic balance)是衡器的一种,是利用胡克定律或力的杠杆平衡原...
很多同学都不清楚PID是个什么东西,因为很多不是自动化的学生。他们开口就要资料,要程序。这是明显的学...
无人飞行器自主飞行技术多年来一直是航空领域研究的热点,并且在实际应用中存在大量的需求,主要优点包括:...
晶振不起振原因分析:
(1) PCB板布线错误;
(2) 单片机质量有问题;
在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定,SDA的高或低电平状态只有在SCL 线的时...
本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通...
温控仪-仪表面板温控仪是调控一体化智能温度控制仪表,它采用了全数字化集成设计,具有温度曲线可编程或定...
电路得名于“H桥驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横...
1STM32中断分组STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 ...
测控系统是水动力实验中的重要测试设备。在实验中有压力、拉力、加速度等物理量通过传感器转换成电压值,需...
在嵌入式产品中有时候需要实现对外部的模拟量进行采样处理和记录,而这就需要使用到ADC功能,将外部的模...
30年代末期,发电机-电动机系统的出现才使调速性能优异的直流电动机得到广泛应用。这种控制方法可获得较...
直流电动机与交流电动机相比,具有结构复杂,维护困难,价格比较贵等缺点,应用不如交流电动机广泛。但由于...
如今ST推出了新的高集成度编程工具软件STM32CubeProgrammer,以后就不用这么麻烦了,...
在使用过程中发现DMA1无法把GPIO的IDR数据传输到内存,调试过程中出现DMA1的数据流传输错误...
AliOS Things 是 AliOS 家族旗下的、面向 IoT 领域的、轻量级物联网嵌入式操作系...
根据公式,就可以编出计算output的arduino程序如下:
注:程序源码可以在原文上复制。 ...
本文主要对STM32调试SP3485技术总结。使用的STM32芯片是STM32F103RB,使用的资...
STM32支持JTAG和SWD两种调试方式,且默认状态下这两种调试功能都是开启的。
本文主要介绍了stm32控制4位共阳数码管输出计数程序设计和stm32控制共阴数码管程序设计。首先我...
STM32是一种功能比较强大的32位单片机,广泛应用于各种嵌入式设备中,由于它的普及性及丰富的资源,...
本文主要介绍了max7219驱动数码管:STM32硬件SPImax7219驱动8位数码管显示模块程序...
这下明白了吧,STM32在启动的时候,RAM首先分配给使用到的全局变量,还有调用库占用的一些数据(不...
初学STM32,我这个地方卡了很久,现在终于有些明白了,现在把我的理解写下与大家共享,如果有不对的地...
本文主要介绍了stm32看门狗复位技巧,包括三个方面:判断是否需要使用、保证看门狗工作正常、保证看门...
在番茄的各个生长期,弱光环境都会对番茄的生长造成很大影响,所以需要对番茄的各个生长期进行补光,至于怎...
MS5611气压传感器是集合SPI和I?C(高达20 MHz)总线接口的高分辨率气压传感器,分辨率可...
BMP280对温度和气压的测量是通过一堆补偿数据然后根据自己的算法算出来的,要注意这些数据是什么类型...
GPIO即通用输入/输出 (General Purpose Input Output)
STM32(Cortex-M3)中有两个优先级的概念——抢占式优先级和响应优先级,有人把响应优先级称...
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-这张电路图是电机正反转的电路图,是不是要先按停止按钮,才能按反转启动按钮让电机反转?_百度知道
这张电路图是电机正反转的电路图,是不是要先按停止按钮,才能按反转启动按钮让电机反转?
我有更好的答案
你好、该电路的启动按扭没有互锁电路,因为接触器是互锁电路,因此必须先按停止按扭,待正在工作的接触器释放(km1、km2)恢复后,反向开关才有效。另外若要减少操作上的麻烦,把正、反按扭开关也接成互锁电路,操作时就不用在按停止开关了。
采纳率:67%
电路带有防撞相保护,如果设备惯性大的,最好先按停止,如果惯性不大,可直接正反转使用
对,不仃止急速反转,会在强磁场力下烧毁线包
突然按急停………会烧电机?
最好点停后少待片刻再按急停
惯性力不可轻视
只有一个停止按钮
按下SB2后再按SB3会有什么反应?
点它一下就好,有的是一个按纽两个功能,点一下仃再按住急停
按图没有刹车按键,短时同连续按两个开关线包会发热,转子两头轴承承受很大张力易损坏轴承连续电机扫膛
应该是先按停止,稍后再按反转按键
在电机仃止叶再反转
停止按钮是SB1,如果你按了的话整个电路就断了,电机会停转
如果按SB2,kM1的常闭触点是不是断开?那么,再按SB3的时候,怎么能接通?
这张图可以直接按反转按钮吧
嗯,第二张可以。至于第一张……我也没想明白(&_&)
第一张需要先停止,再启动
嗯,应该是吧,那就只能先停止再反转了
其他1条回答
为您推荐:
其他类似问题
电路图的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。已解决问题
求按下转动方向就相反??
求按下转动方向就相反??
浏览次数:1453
用手机阿里扫一扫
最满意答案
步进电机的动作,动作要有正、反方向转动;单步;连续;快慢等动作。&目录&1系统设计原理&&&&&&&&&&&&&&&&&&&&&..2&1.1总体方案&设计&&&&&&&&&&&&&&&&&&&&2&2主要模块设计&&&&&&&&&&&&&&&&&&&&&....3&2.1红外遥控及LED模块&&&&&&&&&&&&&&&&&.3&2.11红外遥控编解码原理&&&&&&&&&&&&&.&&&&3&2.12&LED部分&&&&&&&&&&&&&&&&&&&..&...6&2.2&步进脉冲产生模块&&&&&&&&&&&&&&&&..&...7&2.2.1步进电机工作原理&&&&&&&&&&&&&&&&&....7&2.2.2步进电机的调速&&&&&&&&&&&&&&&&&.&9&3系统硬件线路设计&&&&&&&&&&&&&&&&&&..&.11&4系统软件设计&&&&&&&&&&&&&&&&&&&&..&.12&5系统分配表&&&&&&&&&&&&&&&&&&&&&&...13&6源程序&&&&&&&&&&&&&&&&&&&&&&&&...14&7仿真分析&&&&&&&&&&&&&&&&&&&&&&&&14&8性能分析&&&&&&&&&&&&&&&&&&&&&&&&16&9心得及体会&&&&&&&&&&&&&&&&&&&&&&&17&10参考文献&&&&&&&&&&&&&&&&&&&&&&&..19&1&系统设计原理:&利用红外遥控器控制步进电机其实和用键盘控制步进电机原理类似,只不过按键是用导线传递键是否按下的gear&box&stepping&motor,而红外则是利用LED发射红外线传递按键信息。由于红外采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms&的组合表示二进制的&0&;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms&的组合表示二进制的&1&,在解码时通过判断高低电平持续时间的长短来识别发送的键值。&控制步进电机正、反方向转动、单步、连续、快慢等动作,原理其实并不困难。步进电机将电脉冲行星减速器转换成角位移,即给一个脉冲,步进电机就转动一个角度,转动的角度大小与施加的脉冲数成正比,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。每按一次单步键就是给电机一个脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的。&单片机的晶振为12MHz,单周期指令执行时间为1MHz,由于机械动作需要一定时间来完成,如果以这么快的速度来给脉冲,电机是不会转动的,因此,在两个脉冲之间必须要有一定时间差,电机才有时间来执行动作。电机转动的速度与脉冲频率成正比,控制脉冲间隔时间就相当于控制了步进电机的转动角频率即快慢。&步进电机的转动需要向电机以一定的顺序分配驱动脉冲。如四相单四拍,其脉冲分配的方式和顺序为A-B-C-D-A,如此周而复始,即可转动。转动方向与脉冲顺序有关,如果给相反脉冲,那么电机就会反转。&1.1总体方案设计:&根据该系统设计要求,需要通过红外遥控器按下按键和显示器来改变步进电机的运动状态以及显示,只需要红外遥控器中6个按键就可满足需求,外加8位LED数码显示管即可。由于实验箱上只有8个连体数码管,因此需要动态扫描。通过从键盘上输入正、反转命令,按键数值显示在数码管上,CPU再读取正、反转命令,加减速后执行。经键盘可完成启动、停止、正转、反转、速度设置控制微型减速箱。&按下红外遥控器上的相关按钮电机执行相关动作,同时数码管上显示按键的数值,系统大部分都是软件实现的,整个设计框图如下:&LED显示&单片机&步进电机&红外遥控按键&红外接收&2主要模块设计:&2.1红外遥控及LED模块:&本模块应完成对红外遥控器有无键按下进行确认,当有键按下时,确定按键值,并根据所得键值进行处理(包括所按键是不是停止键还是执行键。如是停止键,不断扫描键盘程序,等待执行键按下,20BY;如是执行键就启动产生步进电机控制gmp45-770pm&程序)。显示模块主要是完成在进行键盘按下时,显示输入的数据值(转矩数、转动方向、转动速率及运行方式)。&2.1.1红外遥控编解码原理:&红外遥控系统由发射和接收两大部份组成,应用编/解码专用集成电路芯片来进行控制操作,如图1&所示。发射部份包括键盘矩阵、编码调制、LED红外发送器;接收部份包括光、电转换放大器、解调、解码电路。由于采用不同芯片其发送和接受的过程是不一样的,我们用的实验箱采用的是HT6221红外编码芯片,因此以HT6221为例来说明红外遥控器编码和解码原理。&1&HT6221&键码的形成&当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms&的组合表示二进制的&0&;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms&的组合表示二进制的&1&。&当一个键按下超过36ms&振荡器使芯片激活如果这个键按下且延迟大约108ms,这&108ms&发射代码由一个起始码9ms&,一个结果码4.5ms&,低&8&位地址码9ms~18ms&,高&8&位地址码9ms~18ms&,8&位数据码9ms~18ms&和这&8&位数据的反码9ms~18ms&组成&如果键按下超过108ms&仍未松开接下来发射的代码&连发代码将仅由起始码9ms&和结束码2.5ms&组成。1.12ms为0,2.24ms&为1,如下图:&每发送一个码,HT6221&会先送出一个9ms&的头码和4.5ms&的间隙,然后依次送出16&位的地址码(18ms~36ms)、8&位数据码(9ms~18ms)和8&位数据反码,如下图:&注:&代码宽度算法:16&位地址码的最短宽度:1.12&*16=18ms&16&位地址码的最长宽度2.24ms&*16=36ms&易知&8&位数据代码及其8&位反代码的宽度和不变:(1.12ms+2.24ms)*&8=27ms&32&位代码的宽度为18ms+27ms&~(36ms+27ms)&2&代码格式(以接收代码为准,接收代码与发射代码反向)&位定义&单发代码格式&连发代码格式&3解码方法&1.&解码的关键是如何识别0&和&1&从位的定义我们可以发现0&1&均以&0.56ms&的低电平开始不同的是高电平的宽度不同0&为&0.56ms,&1&为&1.68ms,所以&必须根据高电平的宽度区别0&和&1&如果从&0.56ms&低电平过后开始延时&0.56ms&以后&若读到的电平为低说明该位为0&反之则为1&为了可靠起&见&延时必须比0.56ms&长些&但又不能超过1.12ms,否则如果该位为0&读到的&已是下一位的高电平因此取1.12ms+0.56ms&/2=0.84ms&最为可靠一般取0.84ms&2.&根据码的格式应该等待9ms&的起始码和4.5ms&的结果码完成后才能读码左右均可&这样接收到的仅仅是普通的代码要得到标准的键值还必须进行代码识别和代码&转换&2.1.2LED部分:&共阳接法:低电平亮,高电平灭&数码管部分&JP5(控制数码管的8段)&JP8(输入高电平选中相应的数码管)&数码管实际上是由7个发光管组成的8字形构成的,加上小数点就是8个。分别把它命名为ABCDEFGH,由于接法是共阳接法,所以低电平是亮,高电平是灭。例如,要显示一个数字2则是C、F、H(小数点)不亮,P0.0-P0.7控制数码管的8段,0为亮,1为灭,从高往低排列,P0.0-P0.7写成二进制为,把它转化为十六进制数为A2H,当然在此之前,还必须指定哪一个数码管亮。&原理图中把所有数码管的a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受IO线控制。CPU向字段输出口送出字形码,所有显示器接收到相同的字形码,由8个PNP的三极管,来控制这8位哪位工作如果要选中第一位,只需将该位清零即可。&所有数码管的8个笔划段a-h同名端连在一起,在这种接法中同一瞬间所有的数码管显示都是相同的,不能显示不同的数字。在单片机里,首先显示一个数,然后关掉,然后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每个显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会由闪烁感。&特别说明:实验箱采用的数码管较为特殊,和一般的共阴、共阳数码管都不一样,在Proteus中共阳数码管给高电平才表示选中,而实验箱采用低电平选中,各字段表也不一样。如一般共阳给&C0H&表示&0&,但实验箱需要给&28H&,为了仿真的需要,后面的程序均采用的是一般共阳数码管写法,在实验箱上调试程序时进行了变更!&2.2步进脉冲产生模块:&2.2.1步进电机工作原理:&步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲小电机,它就驱动步进电机按设定的方向转动一个固定的角度(称为&步距角&),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。&现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。&该电机定子上有8个凸齿,相距180&的两个凸齿构成一相,每一相上的线圈反相连接,这样8个齿就构成四相,AA1、BB1、CC1、DD1,因此称为四相步进电机。当有一相绕组被励磁时,磁通从正相齿,经过软铁芯的转子,并以最短的路径流向负相齿,而其他的六个凸齿并无磁通。为使磁通路径最短,在磁场力的作用下,转子被迫转动,使最近的一对齿与被励磁的一相对准。&在图1的a图中B相被励磁,转子与B相对准。在这个位置上,再对A相进行励磁,则转子在磁场作用下顺时针转过15&,如图1的b图所示,这样步进电机就转过了一个步距角。继续对C相进行励磁,转子在磁场的作用下进一步顺时针转过15&,到达c图所示的位置,又转过了一个步距角。再对D相进行励磁,又产生了一个新的磁场,在磁力的作用下转子又转过一个步距角15&。这样步进电机的四相完成一个通电循环,若要继续转动,就继续顺次励磁,即步进电机按照A&B&C&D&A&&顺序顺次励磁,那么电机就不停地转动。&一般对步进电机采用半步驱动,即四相八拍工作方式,使步进电机每次励磁转过1/2的步距角,即每次改变励磁方式步进电机转过7.5&,它的励磁方式是A&AB&B&BC&C&CD&D&DA&A&&,若要反转也是只需改变励磁方式即可,即按照A&AD&D&DC&C&CB&B&BA&A&&,采用八拍工作方式使得电机的转动更加稳定,也进一步增强了步进电机的控制精度。&实验箱中使用的是四相步进电动机,步进电机的控制有三个问题需要解决,下面分别阐述:&(1)控制其转动&按照一定的顺序向步进电动机的各相分配驱动脉冲。就四相步进电机而言,如果采用但四拍方式,其脉冲分配的方式和顺序是A-B-C-D-A&,如果采用单双八拍的方式,其脉冲分配的方式和顺序为:A-AB-B-BC-C-CD-D-DA-A.四相步进电动机的励磁工作方式如下表所示:&编码结果(十六进制)&A&B&C&D&07&0&1&1&1&03&0&0&1&1&0B&1&0&1&1&09&1&0&0&1&0D&1&1&0&1&0C&1&1&0&0&0E&1&1&1&0&06&0&1&1&0&表2&四相步进电动机励磁工作方式示例&(2)控制其转动方向&控制其转动方向,其实只需考虑在脉冲分配的过程中注意一定得顺序即可解决。就四相步进电机而言,如果采用单四拍方式,其脉冲分配的方式和顺序是A-B-C-D-A,为正转;则其反转的脉冲分配方式和顺序是D-C-B-A-D。&如果采用单双八拍方式,其反转的脉冲分配方式和顺序是D-DC-C-CB-B-BA-A-AD-D。&(3)控制其转动速度&解决的方法是在脉冲分配的过程中,控制在每两个相邻脉冲输出中的间隔时间即可解决速度问题。&图2.2.1&单片机与步进电机的连接&2.2.2步进电机的调速&步进电机的速度由单片机发送的脉冲频率决定,而脉冲频率可以通过软件延时和硬件定时两种方式实现。通过调用标准延时子程序产生脉冲的方法称软件延时,该法首先设置两个字节作为延时程序的入口地址,再根据需要延时的时间长短给这两个字节赋值,则单片机就会按照设置的延时时间不断地产生脉冲pgm-57fp&控制步进电机转动。软件延时的方法程序简单、思路清晰,而且不占用单片机的硬件资源,但是在延时过程中一直占用着单片机的CPU的宝贵时间,CPU不能处理来自外部传感器的各种事件。&通过使用单片机的定时/计数器T0或T1,定时产生脉冲的方法称为硬件定时,该法首先根据定时的时间长短设定定时器的工作模式,然后输入定时器的定时常数,则定时器就会定时溢出,单片机就会每溢出一次就产生一个脉冲planetary&gear&reducers控制步进电机转动。硬件定时的方法既需要硬件(定时/计数器T0或T1),又需要软件来产生所需频率的脉冲planetary&gear&reducers,是一种软硬结合的方法,虽然占用了一个定时器,但是提高了CPU的利用率,CPU在定时器没产生溢出时运行其它程序。&用定时中断方式来控制电动机变速时,实际上是不断改变定时器装载值的大小。在程序中,每按一次加减速键,程序中speed都会加减1,最后通过查表的方法改变定时计数器初值,达到加减速的目的。&至于步进电机的正反转则是公用一个键,按下转动方向就相反,正反转的实现是通过判断20号单元的第2位即20H.1是0还是1,若是0则去查反转的表否则去查正转的表,实行起来比较方便。&电机的加减速控制,只需控制好脉冲频率即可,可以采用中断计时的方法,内部定时器中断主要是利用单片机的内部定时器的方式1(16位计数方式)产生不同周期的定时tgp02d-a130&,每次中断都给步进电机三个绕组一次脉冲,使得步进电机转动一个节拍。因此步进电机的转速是由单片机内部定时器的中断频率决定的,不断改变定时器的装载初值就可改变电机的运转速度。&不论步进电机处于何种状态,只要按下复位键,马上跳转到主程序,停止给脉冲,电机停止运转&3系统硬件线路设计图&4系统软件设计:&系统的软件设计通常采用模块化结构,软件系统总体框架一般包括三部分:&主程序、中断服务子程序以及其他相应的辅助子程序(包括正转子程序、反转子&程序、LED显示子程序、红外键盘子程序)&No&Yes&No&Yes&图4.1&主程序&图4.2&中断子程序&图4.3&脉冲子程序&总流程图采用模块化结构,分微型减速箱模块结构,可实现无扰动重入.软件模块按微型减速箱划分,是以子程序的形式设计的,程序分别对各个微型减速箱进行调用,各个模块微型减速箱清晰明了.本次设计采用单极性直流电源供电,只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动.按键子程序中包括按键扫描、按键去抖动、按键的键后处理.按键扫描采用单个按键的扫描,分别对不同微型减速箱的按键扫描并存放不同的按键标志.按键去抖动采用延时去抖法.根据按键扫描后的按键标志位结果来处理相应的子程序.显示模块采用传统的LED数码管显示数字,程序编译容易,资源占用少.使用八位数码管,动态扫描显示的方式.总程序流程框图见图1.&5资源分配表:&在上面的仿真图中,由于Proteus中没有红外模块,只能用普通按键键盘代替,下面的说明为实际在试验箱上的实验情况&1.&P0.0一P0l.7输出字形码到LED数码管,用于显示按下的键值。。&2.&P3.4一P3l.6:显示动态扫描位选线,即选中哪个数码管。&3.P1.7:红外接收high&voltage&dc&motor口,红外遥控器发出的high&voltage&dc&motor经过接收器接收后通过P1.7进行动态扫描和键值处理.。&4.P2.0、P2.1、P2.2、P2.3:步进电机控制脉冲输出口,通过控制给脉冲的频率和数量达到加减速和单步、连续的目的。&详细接线见系统硬件连接图。&6源程序:&见附录&7仿真分析:&1.运行模式设定:在停机状态下按模式键进行运行模式切换,当七段LED显示数值时为预置步数模式,灭时为连续运行模式或可以进行单步运行。&2.方向设定:在停机或运行状态下按方向键进行选择。开始默认为反向。电机的运行正反向表示的是顺时针还是逆时针是由操作者在接步进电机时的相序决定的,按下反转键后数码管会有相应显示。&3.步数设定:在设定为连续模式后,GM48-500,按UP键可以加速:按下Down键为减速。当加到35时,再按UP键,速度不变;当减到25时,再按一下DOWN键,速度也不变。&4.单步运行模式:电机以设定的运行方式正向运行一步;按&P1.1键一下,电机以设定的运行方式反向运行一步。单步运行时,与方向键设定的运行方向无关。&5.连续模式运行:按下连续键后,电机以设定的方式和方向连续运行,同时七段LED显示当前按键值。在运行时,按加速键一下,速度上升一档;按减速键,速度下降一档,七段LED会相应的显示数值。在运行时,按方向键可以进行方向切换。再次按下启停键后,电机停止运行。&6.强行复位:按下P1.5键即可。&图7.1按下单步键的情况&从上图中可以看出,按下单步键后,数码管显示0,提示用户按键有效,同时从示波器波形可以看到按下有一个脉冲,电机会转动一次。&图7.2按下连续键的情况&从图形上我们可以看到,单片机给步进电机的脉冲为连续的,有很多个,因此,电机的运转也应是连续的,于此同时数码管显示1,提示用户按的是连续键。&图7.3按下加速键的情况&图7.4按下减速键的情况&对比上面两张图形,就可以看到加速和减速的效果了,加速后脉冲频率明显变高,减速后脉冲变稀疏,说明步进电机加减速有效,数码管显示相应的按键值,表明用户按键有相应.&图7.5按下减速键的情况&当数码管显示5时表明系统已经启动,可以相应用户的需求,按下按键后就可以执行相应的动作。&8性能分析:&因为电机步进角为7.5&,一圈需要360/7.5=48个脉冲。电机转速为1/(T*48),其中T为定时计数器中断时间,开始时电机以最小速度运行,即查表中第一个数据,HT0=15H,TL0=A0H,通过计算为60ms,因为单片机给48个脉冲步进电机才转一圈,因此电机的速度为0.35转/s。表中各种值对应的速度如下表:&转速(r/s)&中断时间(ms)&TH0&TL0&0.35&60&15H&A0H&0.38&55&29H&28H&0.42&50&3CH&B0H&0.46&45&50H&38H&0.52&40&63H&C0H&0.60&35&77H&48H&0.69&30&8AH&D0H&0.83&25&9EH&58H&1.04&20&B1H&E0H&1.39&15&C5H&68H&电机单步运行:7.5&/次&电机连续运行:0.35&r/s~1.39r/s&数码管显示:红外按键值0~5&可能程序还有不足的地方,按下加减速,可以感到电机有加速和减速的情况,但和原来设计初衷有点出入。在加到最大速度时,即每秒1.39圈,在Proteus中仿真明显感到电机有强烈的摇晃感,每转一下。感觉都要向后退一下,在试验箱上根本就不会转。&9心得及体会:&这次课程设计做得比较长,开始感觉应该比较简单,但做起来确实有点幸苦。不过这其中还是有不少乐趣。&开始连步进电机都不知道,只知道直流电机,虽然很多有关单片机的书籍中都有步进电机的设计,但大多要么用C写,要么写得非常复杂,加了液晶显示,加了键盘,可以由用户随意输入电机的转速,以目前的时间来说,我肯定是搞不定了。在设计前,我设想有单步、连续、启停、正反转这些按键,写程序时遇到了不小麻烦,开始我想撇开红外遥控着部分,因为比较复杂,有现成的驱动可用,我只需写好其它部分就行,而且Proteus中也没有红外模块,不能进行仿真,所以写程序时用键盘代替,按下一个键执行一个动作。&开始完全是自己设计,没和别人商量,因此也走了不少弯路。我在设计没弄清按键的含义,想着在每个子程序在扫描键盘时,都要将这几个键扫描进去,按下就跳转。后来程序实在写不下去了,每个子程序跳到哪我自己都搞不清楚了,跳来跳去我自己也晕了头。后来一个组的几个人谈了下思路,我觉得原来设计的键有很多是多余的,比如:启动键可以不要,即使你按了启动键,没按单步和连续,它也是不转的。因此,我把整个按键分为两大部分:单步和连续。它们共有一个动作:正反转和停止,在连续时有加速和减速。确定好思路后,写代码就非常简单了。&在做的过程中,确实受到了不少诱惑,比如说有的书本中介绍这种方法,有的介绍那种,一时不好说哪种好。应该说实现的方法有很多,只能选一种。比如说控制电机的转速,有的采取按下加速键一次,就多调用一次延时;有的按下一次就给不同的延时子程序中的计数值;也有用中断计时的,按一次就给定时计数器不同的计数初值&最终我选择了用中断方式,因为这可以给主程序更多自由,不受延时程序执行时主程序漫长的等待,应该说还是比较科学和人性化的。每按一次加减速键,就利用查表方法,查出计数器初值。&困难总是有的,在程序编译没有问题后,在Proteus中仿真的结果与实际差距很大,比如按下单步时根本就没有动,按下停止也没有停&有的问题在于粗心,像停止键写程序时用P2.5.结果接线时用P2.6。有的问题自己看了好半天都没有解决,后来把四班的同学叫来,也看了半天,终于解决了,永磁直流电机。至于加减速按键,我实在不好意思再去麻烦别人,自己认认真真看程序,由于按下减速键后电机反转,很奇怪,因为不论如何都不可能出现这种情况。后来一想,我利用的是psw中的Cy来进行正反转控制,按一次,Cy就取反,最终通过Cy的不同查询不同的表来实现步进电机的正反转。莫非按下加减速后Cy的值变了?仔细看了后终于明白,在进行判断时用了CJNE语句,它实际上是利用两数相减后是正负来判断大小,结果肯定会影响Cy,找到原因后我想再找一个可以位操作的符号,平时很多符号都有特定用处,实在找不到了,就改用20号单元的第一位进行位操作,修改之后,仿真一切正常,真是太过瘾了!&有时我也不想亲自动手写程序,在别人程序基础上进行修改轻松不少,但想想如果自己实力不行,以后这也可能是自己的饭碗,不提高点实力拿什么和别人竞争啊!&10参考文献:&[1]韩全立。单片机控制技术及应用。北京:brushless&dc&planetary&gear&motors工业出版社,2004&[2]求是科技。单片机典型模块设计实例导航。北京:人民邮电出版社,2004&[3]胡汉才。单片机原理及系统设计。北京:清华大学出版社,2002&[4]王晓明。电动机的单片机控制。北京:北京航天航空大学出版社,2002&[5]汪道辉。单片机系统设计与实践。&北京:brushless&motor&工业出版社&,2006&附录一:键盘控制电机程序&Minspd&EQU&25&Maxspd&EQU&35&Speed&DATA&23H&ORG&0000H&AJMP&start&ORG&000BH&JMP&DJZD&ORG&0030H&start:&SETB&20H.1&MOV&P3,#0FFH&MOV&R0,#00H&MOV&TMOD,#01H&MOV&TH0,#115&MOV&TL0,#96&SETB&EA&SETB&ET0&CLR&TR0&MOV&P2,#0ffH&main:&MOV&Speed,#Minspd&MOV&P3,#01H&CALL&DELAY&MOV&P0,#92H&JB&P1.2,Q1&MOV&P3,#01H&CALL&DELAY&MOV&P0,#0A4H&JNB&P1.2,$&CPL&20H.1&Q1:&JNB&P1.0,Danbu&JNB&P1.1,Lianxu&AJMP&main&Danbu:&MOV&P3,#01H&CALL&DELAY&MOV&P0,#0C0H&JNB&P1.0,$&CALL&ZF&JMP&main&Lianxu:&SETB&TR0&MOV&P3,#01H&CALL&DELAY&MOV&P0,#0F9H&CALL&KEY&JMP&Lianxu&KEY:&JNB&P1.5,main&KY2:&JNB&P1.0,Danbu&KY4:&JB&P1.2,KY6&MOV&P3,#01H&CALL&DELAY&MOV&P0,#0A4H&JNB&P1.2,$&CPL&20H.1&KY6:&JB&P1.3,&KY7&MOV&P3,#01H&CALL&DELAY&MOV&P0,#0B0H&JNB&P1.3,$&JMP&Upspd&KY7&:&JB&P1.4,K1&MOV&P3,#01H&CALL&DELAY&MOV&P0,#99H&JNB&P1.4,$&JMP&Dowspd&Upspd:&INC&Speed&MOV&A,Speed&CJNE&A,#Maxspd,K1&DEC&Speed&JMP&K1&Dowspd:&DEC&Speed&MOV&A,Speed&CJNE&A,#Minspd,K1&MOV&Speed,#Minspd&K1:&RET&DJZD:&CALL&ZF&CLR&TR0&MOV&A,Speed&PUSH&PSW&SUBB&A,#Minspd&POP&PSW&MOV&R1,A&MOV&DPTR,#DjH&MOVC&A,@A+DPTR&MOV&TH0,A&MOV&A,R1&MOV&DPTR,#DjL&MOVC&A,@A+DPTR&MOV&TL0,A&RETI&ZF:&JNB&20H.1&,Fanzhuan&Zhengzhuan:MOV&A,R0&MOV&DPTR,#TABLE&MOVc&A,@A+DPTR&JNZ&K3&MOV&R0,#00H&AJMP&Zhengzhuan&Fanzhuan:MOV&A,R0&MOV&DPTR,#TABLE1&MOVc&A,@A+DPTR&JNZ&K3&MOV&R0,#00H&AJMP&Fanzhuan&K3:&MOV&P2,A&INC&R0&RET&DELAY:MOV&R7,#60H&DJNZ&R7,$&RET&DjH:&DB&15H,29H,3CH,50H,63H,77H,8AH,9EH,0B1H,0C5H&DjL:&DB&0A0H,28H,0B0H,38H,0C0H,48H,0D0H,58H,0E0H,68H&TABLE:&db&07H,03h,0BH,09h,0DH,0ch,0EH,06h&;正转表&db&00h&;正转结束&TABLE1:&db&06h,0Eh,0CH,0Dh,09h,0BH,03H,07H&;反转&db&00h&;反转结束&END&附录二:红外驱动部分&org&00h&ORG&30H&MOV&P1,#0FFH&MOV&P2,#0FFH&MOV&P3,#0FFH&START:&JB&P3.7,$&;等待遥控gm13-050sk&出现&SB:&MOV&R4,#8&;8&毫秒为高电平错误&SBA:&MOV&R5,#250&SBB:&JB&P3.7,SXB1&DJNZ&R5,SBB&DJNZ&R4,SBA&MOV&R4,#2&JMP&SBC&SXB1:&MOV&R5,#5&SXB2:&;去掉20US&的尖峰干扰tgpp16-050&JNB&P3.7,SBB&DJNZ&R5,SXB2&JMP&START&SBC:&MOV&R5,#250&SB1:&JB&P3.7,SB2&;2MS&内不为高电平错误&DJNZ&R5,SB1&DJNZ&R4,SBC&JMP&START&SB2:&;去掉20US&的尖峰干扰tgp02d-a130&MOV&R5,#5&SB2_A:&JNB&P3.7,SB1&DJNZ&R5,SB2_A&MOV&R4,#3&SB2_1:&MOV&R5,#250&SB3:&;监测4.5MS&高电平,如3MS&内出现低电平错误&JNB&P3.7,SXC&DJNZ&R5,SB3&DJNZ&R4,SB2_1&MOV&R4,#2&JMP&SB3_1&SXC:&;去掉20US的尖峰干扰dc&gear&motor&MOV&R5,#5&SXC1:&JB&P3.7,SB3&DJNZ&R5,SXC1&JMP&START&SB3_1:;监测4.5MS&高电平,gearmotor,如5MS&内不为低错误&MOV&R5,#250&SB3_2:&JNB&P3.7,SB4&DJNZ&R5,SB3_2&DJNZ&R4,SB3_1&JMP&START&SB4:&;去掉20US&的尖峰干扰pgm-60fp&MOV&R5,#5&SB4_1:&JB&P3.7,SB3_2&DJNZ&R5,SB4_1&MOV&R1,#1AH&;设定1AH&为起始RAM&区&MOV&R2,#4&PP:&MOV&R3,#8&JJJJ:&MOV&R5,#250&JJJJ2:&;1MS&内不为低电平错误&JB&P3.7,JJJJ3&DJNZ&R5,JJJJ2&JMP&START&JJJJ3:&LCALL&YS1&;高电平开始后用882&微秒的&时间尺去判断精密减速机此时的高低电平状态&MOV&C,P3.7&;将P3.7&状态0&或1&存入C&中&JNC&UUU&;如果为0&就跳转到UUU&MOV&R5,#250&JJJJ4:&JNB&P3.7,UUU&NOP&DJNZ&R5,JJJJ4&JMP&START&UUU:&MOV&A,@R1&;将R1&中地址的给A&RRC&A&;将C&中的值移入A&中的最低位&MOV&@R1,A&;将A&中的数暂存在R1&中&DJNZ&R3,JJJJ&;接收地址码的高8&位&INC&R1&;对R1&加1,换成下一个RAM&DJNZ&R2,PP&;&;以下对代码是否正确和定义进行识别&MOV&A,1AH&;比较高8&位地址码&XRL&A,#B&;判断1AH&的值是否等于&,相等的话A&为0&JNZ&EXIT&;如果不等解码失败退出&MOV&A,1BH&;比较低8&位地址&XRL&A,#B&;再判高8&位地址是否正确&JNZ&EXIT&;如果不相等说明解码失败退出&LCALL&YS3&MOV&A,1CH&;比较数据码和数据反码是否正确?&CPL&A&XRL&A,1DH&;将1CH的值取反后和1DH比较&不同则无效丢弃,核对数据是否准确&JNZ&EXIT&;如果不相等说明解码失败退出&LCALL&YS3&CLR&P2.6&;选中数码管&CLR&P3.3&;解码成功喇叭响?&AJMP&BIJIAO&;判断在118&毫秒内是否有连发码&AA:&MOV&R1,#25&XX:&ACALL&YS2&JNB&P3.7,HH&;跳转到HH&DJNZ&R1,XX&EXIT:&;对所有端口清零&AJMP&START&;连发码判断程序段-----------&HH:&MOV&R6,#4&S:&ACALL&YS1&;调用882&微秒延时子程序&JB&P3.7,EXIT&;延时882&微秒后判断P3.7&脚&是否出现高电平如果有就退出解码程序&DJNZ&R6,&S&;重复4次,机器人马达,目的是确认&谭先生TT&Motor&(HK)&Industrial&Co.,&LtdTel:86-755-Fax:86-755-[email&protected]http://www.ttmotor.com相关的主题文章:步进减速电机、11.25&deg循迹小车一般采用两只微型直流启动频率与负载惯量有关
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok}

我要回帖

更多关于 直流电机正反转电路 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信