步进电机运行系统控制设计
- 格式:docx
- 大小:26.31 KB
- 文档页数:16
步进电机运动控制系统设计设计时考虑到CPU在执行指令时可能受到干扰的冲击,导致程序”跑飞”或者进入”死循环”,因此,设计了看门狗电路,使用的是MAXIM公司生产的微处理系统监控集成芯片MAXI813。
本文还详细地给出了相关的硬件框图和软件流程图,并编制了该汇编程序。
步进电机最早是在1920年由英国人所开发。
1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。
以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的系统中。
在生产过程中要求自动化、省、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微和技术的发展,步进电机的需求量与日俱增,在各个国民领域都有应用。
步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。
步进电机可以直接用数字信号驱动,使用非常方便。
一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。
步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。
在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。
因此非常适合于单片机控制。
步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。
步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。
传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。
步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。
一、设计题目步进电机控制系统的设计与仿真二、设计要求设计一个单片机四相步进电机控制系统,要求系统具有以下功能。
(1)用K0-K2作为通电方式选择键,K0为单四拍,K1为双四拍,K2为四相八拍。
(2)K3-K4作为启动和方向控制。
(3)正转时红色指示灯亮,反转时黄色指示灯亮,不转时绿灯亮。
(4)可通过键盘设定步进电机步数给定值。
(5)用三位LED数码管显示剩余工作步数三、系统总体框图与原理说明通过键盘模块设置步进电机的工作模式、步数以及正反转,同时用数码管模块显示剩余工作步数,用LED灯模块显示步进电机的工作状态。
4*4键盘模块:采用外部中断的方式实时扫描键盘,判别按下的键,并执行所按下的键相应的操作,即输入步数、选择工作模式、正/反转、调速以及启动/停止等,由于键数的限制,把一些键功能复用。
用线反转法扫描键盘,即先在P2口输出0xf0,二次确认有按键按下后,逐行输出低电平,确认按键所在的列,便可知道所按下的是哪个键,再返回对应的键值。
数码管显示模块:采用定时中断的方式定时扫描一次显示,从而实现数码管的动态显示,同时P0口需外接上拉电阻。
本设计采用共阴数码管,故0到9的段码为:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f四相步进电机模块:采用L298驱动芯片驱动电机,同时P1口驱动能力不够,需外接上拉电阻,通过四个LED灯接在P1.0到P1.3口来观察电机的拍子。
据分析可得到,四相单四拍:A->B->C->D;四相双四拍:AB->BC->CD->DA;四相八拍:A->AB->B->BC->C->CD->D->DALED灯模块:把红黄绿三个灯接在P3口上,在程序中通过置位复位来实现相应状态的转换。
图1为系统总体设计方框图,由单片机AT89C51,L298驱动芯片,四相步进电机,7段LED数码管等一些电路模块组成。
基于stm32的步进电机控制系统设计与实现基于STM32的步进电机控制系统设计与实现1. 概述步进电机是一种非常常见的电动机,在许多自动化系统和工控设备中得到广泛应用。
它们具有精准的定位能力和高效的控制性能。
本文将介绍如何使用STM32微控制器来设计和实现步进电机控制系统。
2. 硬件设计首先需要确定步进电机的规格和要求,包括步距角、相数、电流和电压等。
根据步进电机的规格,选择合适的驱动器芯片,常见的有L298N、DRV8825等。
接下来,将选定的驱动器芯片与STM32微控制器相连。
通常,步进电机的控制信号需要使用到微控制器的GPIO引脚,同时由于步进电机的工作电流比较大,需要使用到微控制器的PWM输出信号来调节驱动器芯片的电流限制。
除此之外,还需要一个电源电路来提供驱动器和步进电机所需的电源。
可以选择使用一个电源模块,也可以自行设计电源电路。
3. 软件设计软件设计是步进电机控制系统的核心部分,主要包括步进电机驱动代码的编写和控制算法的实现。
首先,需要在STM32的开发环境中编写步进电机驱动代码。
根据所选的驱动器芯片和步进电机规格,编写相应的GPIO控制代码和PWM输出代码。
同时,可以添加一些保护性的代码,例如过流保护和过热保护等。
接下来,需要设计和实现步进电机的控制算法。
步进电机的控制算法通常是基于位置控制或速度控制的。
对于位置控制,可以使用开环控制或闭环控制,闭环控制通常需要使用到步进电机的编码器。
对于开环控制,可以通过控制步进电机的脉冲数来控制位置。
通过控制脉冲的频率和方向,可以实现步进电机的转动和停止。
这种方法简单直接,但是定位精度有限。
对于闭环控制,可以使用PID控制算法或者更高级的控制算法来实现位置控制。
通过读取步进电机的编码器反馈信号,可以实时调整控制输出。
这种方法可以提高定位精度和抗干扰能力,但是算法实现相对复杂。
4. 系统实现在完成硬件设计和软件设计后,可以进行系统的调试和实现。
基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。
本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。
一、硬件设计步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。
1.51单片机选择由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。
本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。
2.外部电源步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。
电源电压和电流的大小需要根据具体的步进电机来确定。
3.步进电机驱动模块步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。
常用的步进电机驱动芯片有L297、ULN2003等。
4.其他辅助电路为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。
这些电路的设计需要根据具体的应用来确定。
二、软件设计1.系统初始化系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。
根据实际需求还可以进行其他模块的初始化设置。
2.步进电机驱动程序步进电机的驱动程序主要通过脉冲信号来控制电机的转动。
脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。
脉冲信号可以通过定时器产生,也可以通过外部中断产生。
3.运动控制算法步进电机的运动控制可以采用开环控制或闭环控制。
开环控制简单,但无法保证运动的准确性和稳定性;闭环控制通过对电机转动的反馈信号进行处理来调整脉冲信号的生成,从而实现精确的运动控制。
4.其他功能设计根据具体的应用需求,可以加入其他功能设计,如速度控制、位置控制、加速度控制等。
基于单片机的步进电机控制系统设计引言:步进电机是一种常用的电机类型,具有精准的位置控制、高效的能量转换等特点。
在许多自动化设备中广泛应用,如数控机床、3D打印机、机器人等。
本文将以基于单片机的步进电机控制系统设计为主题,介绍系统的硬件设计、软件设计以及实验验证。
一、硬件设计1.步进电机选型:根据实际应用需求,选择适当的步进电机。
包括步距角、转速范围、扭矩要求等等。
2.电源设计:步进电机需要驱动电压和电流,根据步进电机的额定电压和电流选用适当的电源。
3.驱动电路设计:步进电机通常需要驱动电路来控制电流和脉冲序列。
常见的驱动电路有全桥驱动器、半桥驱动器等。
4.信号发生器设计:步进电机通过脉冲信号来控制转动角度和速度,因此需要信号发生器来产生合适的脉冲序列。
常见的信号发生器有定时器、计数器等。
5.单片机接口设计:单片机作为步进电机控制系统的核心,需要与其他硬件进行通信。
因此需要设计合适的接口电路,将单片机的输出信号转换为驱动电路和信号发生器所需的电压和电流。
二、软件设计1.单片机程序框架设计:根据具体的单片机型号和开发环境,设计合适的程序框架。
包括初始化设置、主循环、中断处理等。
2.脉冲生成程序设计:根据步进电机的控制方式(如全步进、半步进、微步进等),设计脉冲生成程序。
通过适当的延时和输出信号控制,产生合适的脉冲序列。
3.运动控制程序设计:设计运动控制程序,实现步进电机的前进、后退、加速、减速等功能。
根据具体需求,可以设计不同的运动控制算法,如速度环控制、位置环控制等。
4.保护机制设计:为了保护步进电机和控制系统,设计合适的保护机制。
如过流保护、过压保护、过载保护等。
三、实验验证1.硬件连接:将步进电机、驱动电路和单片机按照设计进行连接。
2.软件调试:通过单片机编程,调试程序代码。
确保脉冲生成、运动控制等功能正常工作。
3.功能测试:对步进电机控制系统进行功能测试,包括正转、反转、加速、减速等功能。
通过观察步进电机的运动状态和测量相关参数来验证系统设计的正确性和性能。
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。
本设计运用了8086 CPU芯片以及74273芯片、8255A芯片和步进电机以及7位小功率驱动芯片ULN2003A、指示灯等辅助硬件电路,设计了步进电机正反转及调速系统。
绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。
该步进电机的正反转及调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速。
关键词:步进电机;正反转;调速控制;ULN2003A芯片;8086微机系统1、课程设计任务书1.1任务和目的 (4)1.2设计题目 (4)1.3内容和要求 (4)1.4列出使用元器件和设备清单 (4)2、绪论 (4)3、步进电机的总体方案 (6)4、步进电机的硬件设计 (7)4.1总体设计思路 (7)4.2电路原理图 (10)4.3线路连接图 (11)5、步进电机软件设计 (12)5. 1流程图 (12)5.2控制程序 (14)&调试说明 (19)6.1调试过程 (19)6.2调试缺陷 (19)7、总结收获 (19)8、参考文献 (20)附录:元器件及设计清单1. 课程设计任务书1.1任务和目的掌握微机硬件和软件综合设计的方法。
1.2设计题目步进电机控制系统设计1.3内容和要求1. 基本要求:控制步进电机转动,要求转速1步/1秒;设计实现接口驱动电路。
2. 提高要求:改善步进电机的控制性能,控制步进电机转/停;正转/反转;改变转速(至少3挡);1.4列出使用元器件和设备清单8086cpu可编程并行接口8255指示灯键盘74LS138译码器驱动模块步进电机2. 绪论步进电机又称脉冲电动机或阶跃电动机,国外一般称为Step motor或Steeping motor、Stepper servo Steppe,等等。
机电工程系基于PLC的步进电机运动控制系统设计专业:测控技术与仪器指导教师:xxx姓名: xxx _______________(2011年5月9日)目录一、步进电机工作原理 (1)1。
步进电机简介 (1)2。
步进电机的运转原理及结构 (1)3。
旋转 (1)4。
步进电动机的特征 (2)1)运转需要的三要素:控制器、驱动器、步进电动机 (2)2)运转量与脉冲数的比例关系 (2)3)运转速度与脉冲速度的比例关系 (2)二、西门子S7-200 CPU 224 XP CN (2)三、三相异步电动机DF3A驱动器 (3)1。
产品特点 (3)2。
主要技术参数 (3)四、PLC与步进电机驱动器接口原理图 (5)五、PLC控制实例的流程图及梯形图 (5)1.控制要求 (5)2。
流程图 (5)3.梯形图 (6)六、参考文献 (6)七、控制系统设计总结 (6)基于PLC的步进电机运动控制系统设计一、步进电机工作原理1.步进电机简介步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单2.步进电机的运转原理及结构电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3て、2/3て,即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A’与齿5相对齐,(A'就是A,齿5就是齿1)3.旋转如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力,以下均同)。
基于STM32的步进电机控制系统设计与实现1. 引言步进电机是一种常见的电动机类型,具有定位准确、结构简单、控制方便等优点,在自动化控制领域得到广泛应用。
本文将介绍基于STM32单片机的步进电机控制系统设计与实现,包括硬件设计、软件开发和系统测试等内容。
2. 硬件设计2.1 步进电机原理步进电机是一种将输入脉冲信号转换为角位移的设备。
其工作原理是通过改变相邻两相之间的电流顺序来实现转子旋转。
常见的步进电机有两相、三相和五相等不同类型。
2.2 STM32单片机选择在本设计中,我们选择了STM32系列单片机作为控制器。
STM32具有丰富的外设资源和强大的计算能力,非常适合用于步进电机控制系统。
2.3 步进电机驱动模块设计为了实现对步进电机的精确控制,我们需要设计一个步进电机驱动模块。
该模块主要包括功率放大器、驱动芯片和保护电路等部分。
2.4 电源供应设计步进电机控制系统需要稳定可靠的电源供应。
我们设计了一个电源模块,用于为整个系统提供稳定的直流电源。
3. 软件开发3.1 开发环境搭建在软件开发过程中,我们需要搭建相应的开发环境。
首先安装Keil MDK集成开发环境,并选择适合的STM32单片机系列进行配置。
3.2 步进电机控制算法步进电机控制算法是实现步进电机精确控制的关键。
我们可以采用脉冲计数法、速度闭环控制等方法来实现对步进电机的位置和速度控制。
3.3 驱动程序编写根据硬件设计和步进电机控制算法,我们编写相应的驱动程序。
该程序主要负责将控制信号转换为驱动模块所需的脉冲信号,并通过GPIO口输出。
3.4 系统调试与优化在完成软件编写后,我们需要对系统进行调试和优化。
通过调试工具和示波器等设备,对系统进行性能测试和功能验证,以确保系统工作正常。
4. 系统测试与评估在完成硬件设计和软件开发后,我们需要对系统进行全面的测试和评估。
主要包括功能测试、性能测试和稳定性测试等内容。
4.1 功能测试功能测试主要验证系统是否按照预期工作。
步进电机运行系统控制设计一、设计的性质与目的:性质:该设计是在学生学完《单片机原理与应用》和电子学相关课程的基础上,结合测控技术与仪器和机电工程专业的特点进行的具有一定难度和覆盖面的综合性实践环节。
目的:综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
二、设计内容与要求:1、根据设计任务,设计该单片机应用系统的硬件电路图,软件流程图并编制相应的软件,实现硬件和软件的调试。
2、按下不同的键,分别使步进电机实现顺时针和逆时针旋转一步,连续按键,不仅电机连续运转,显示器显示步进电机的状态。
3、按下不同的键作步进电机速度及转向的控制并显示步进电机的状态。
A) 电机正向或逆向运转的切换B) 电机加速运转C) 电机减速运转D) 电机按给定速度匀速运转三、实验注意事项:1、实验中所用仪器及设备均应按操作规程操作,实验前应仔细阅读指导书。
2、实验应独立思考,发现问题尽量自己解决。
3、实验结果需经老师检查后方算完成。
四、设计方案:1、步进电机工作原理及硬件连线图:步进电机驱动原理是通过对它每相线圈中的电流的顺序切换使电机作步进式旋转,驱动电路有脉冲信号来控制,所以调解脉冲信号的频率变可以改变步进电机的转速,因此微电脑控制步进电机最合适。
如下图所示,实验使用的不仅电机用直流+5V电压,每相电流为0.16A,电机线圈由4相组成。
即①1 (A);①2 (B);①3 (C);①4 (D);驱动方式为二相激磁方式各线圈通通电顺序如下表:相顺序 1 2 3 40 1 1 0 01 0 1 1 02 0 0 1 13 1 0 0 1二相激磁通电次序表中首先向①1线圈-①2线圈输入驱动电流,接着①2-①3,①3-①4,又返回到①1-①2,按这种顺序切换,点击按顺时针方向旋转。
这时的相序位0, 1,2,3;如果使电机逆时针方向旋转,相序为3, 2, 1, 0。
步进电机的驱动电路如右图所示, 微电脑向步进电机输入端传送 1 或0 信息,则可实现上述操作。
实验可通过不同长度的延时来得到不同频率的步进电机输入脉冲, 从而得到多种步进速度。
连线方式:A 74LS273的011-014分别接步进电机BA-BD 74LS273片选端CS2接08-1F.B) 步进电机插头接J8。
2、程序设计思路:根据题目要求,程序应具备以下几个功能:可通过键盘控制步进电机的转速,方向可通过LED数码管显示电机运行状态电机运转状态可以是正反转,加速减速,五种不同速度的各种组合3、硬件电路图:4、软件流程图:五、子程序调试:1 、显示子程序调试显示子程序清单:ORG 4000HMOV DPTR,#1B31H A,#0D3H @DPTR,A A,#2AH @DPTR,A A,#00H @DPTR,A A,#40H @DPTR,A A,#90H @DPTR,A 20H,#00H 21H,#00H 22H,#00H R0,#21H R2,#02H LCALL MANI MAIN MOV DPTR,#1B31H A,#90H @DPTR,A DPL,#30H MOV A,@R0 TABLE @DPTR,A R0 R2,MANI1LJMPORGREST:MOVMOVXMOVMOVXMOVMOVXMOVMOVXMOVMOVXMOVMOVMOVMOVMOVMAIN:LJMPMANI:MOVMOVXMOVMANI1:LCALLMOVXINCDJNZ REST 4200HMOV R0,#21HMOV R2,#02HRETTABLE: INC AMOVC A,@A+PCRETDB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71HDB 73HEND编译并运行该程序,LED上应显示"00"改变21H及22H中的值,LED上应该显示对应的符号。
2、键盘中断服务程序调试键盘中断服务程序清单:ORG 4000HLJMP RESTORG 4200HREST: MOV SP,#70HMOV DPTR,#1B31HMOV A,#0D3HMOVX @DPTR,AMOV A,#2AHMOVX @DPTR,AMOV A,#00HMOVX @DPTR,AMOV A,#40H@DPTR,A A,#90H@DPTR,A EX0 EA SJMP LPP PUSH ACC PSW DPL DPL,#30H A,@DPTR A,#3FH CJNE A,#02H,DECEL TR1 25H,#01H 21H,#0AH 23H,#00H TR1 OUTK CJNE A,#06H,BACK TR1 25H,#02H 21H,#0EH 23H,#0C0H TR1 OUTK CJNE A,#03H,FRONT 20H,#01H 22H,#0BHMOVXMOV MOVXSETBSETBLPP:KEY:PUSHPUSHMOVMOVXANLACCEL:CLRMOVMOVMOVSETBLJMPDECEL:CLRMOVMOVMOVSETBLJMPBACK:MOVMOVLJMP OUTKFRONT: CJNE A,#07H,STOP MOV 20H,#00HMOV 22H,#0FHLJMP OUTKSTOP: MOV 25H,#00H CJNE A,#08H,STEP1CLR TR1MOV 21H,#00HLJMP OUTKSTEP1: CJNE A,#09H,STEP2 CLR TR1MOV 21H,#01HMOV 23H,#00HSETB TR1LJMP OUTKSTEP2: CJNE A,#0AH,STEP3 CLR TR1MOV 21H,#02HMOV 23H,#3FHSETB TR1LJMP OUTKSTEP3: CJNE A,#0BH,STEP4 CLR TR1MOV 21H,#03HMOV 23H,#66HSETB TR1LJMP OUTKSTEP4: CJNE A,#0CH,STEP5CLR TR1MOV 21H,#04HMOV 23H,#7FHSETB TR1LJMP OUTKSREP5: CJNE A,#0DH,POINTCLR TR1MOV 21H,#05HMOV 23H,#0C0HSETB TR1LJMP OUTKPOINT: CJNE A,#05H,OUTKCLR TR1MOV 21H,#0DHLCALL DIRECOUTK: POP DPLPOP PSWPOP ACCRETIEND屬慫润厲钐瘗睞枥庑赖。
矚慫润厲钐瘗睞枥庑赖賃。
将8279的IRQ端接INT01。
编译并运行该程序,依次按下各键,的值会作对应的改变。
各键与20H-25H中的数值对应关系如下:聞創沟燴鐺險爱氇谴净祸。
键位地址0键1键2键3键4键5键B键F键A键20H -- -- -- -- -- -- #01H #00H -- -- -21H #00H #01H #02H #03H #04H #05H -- -- #0AH#0BH #0FH -- ----则20H-25 H 中聞創沟燴鐺險爱氇谴净。
E键D键22H23H #00H #3FH #66H #7FH #0C0H #00H #0C0H24H #00H #00H #00H #00H #00H #00H -- -- #01H @02H #00H 注:"--" 表示不作变动残骛楼諍锩瀨濟溆塹籟。
残骛楼諍锩瀨濟溆塹籟婭。
3、定时器中断服务程序调试定时器中断服务程序清单:ORG 001BHLJMP TINTORG 4000HLJMP RESTORG 4200HREST: MOV SP,#70HANL TMOD,#0F0HORL TMOD,#02HMOV TH0,#05HMOV TL0,#05HMOV 23H,#00HMOV 20H,#00HMOV 25H,#00HMOV R7,#33HMOV DPTR,#1B08HSETB ET1SETB EASETB TR1LPP: SJMP LPPTINT: PUSH ACCPUSH PSWPUSH DPLLCALL DIRECLCALL RELOUTT: POP DPLPOP PSWPOP ACCRETIDIREC: MOV DPL,#08HMOV R1,20HMOV A,R7CJNE R1,#00H,BACKD FRONTD:RR ALJMP OUTDBACKD: CJNE R1,#01H,OUTD RL AOUTD: MOVX @DPTR,A MOV R7,ARETREL: MOV R1,25HCJNE A,#01H,REL2 MOV A,23HCJNE A,#0C0H,REL1 MOV TH1,ARETREL1: MOV TH1,AINC AMOV 23H,ARETREL2: CJNE R1,#02H,REL0 MOV A,23HJNZ REL3MOV TH1,ARETREL3: MOV TH1,ADECMOV 23H,ARETREL0: MOV TH1,23HRETEND将273的011-018接LED0-LED7运行该程序,可看到LED从左至右闪动,将步进电机接入011-014 ,则步进电机会停止转动。
调试该程序时,最初始使用的是定时器T0,但其与键盘作联调时,会出现定时器中断无效的问题,经查德原因是中断冲突,后改用定时器T1 问题解决。
酽锕极額閉镇桧猪訣锥。
酽锕极額閉镇桧猪訣锥顧。
六、完整程序调试:ORG 0003HLJMP KEYORG 001BHLJMP TINTORG 4000HLJMP RESTORG 4200HREST: MOV SP,#70HANL TMOD,#0F0HORL TMOD,#02HMOV TH0,#05HMOV TL0,#05HMOVX @DPTR,AMOV DPTR,#1B31H MOV A,#0D3HMOVX @DPTR,AMOV A,#2AHMOVX @DPTR,AMOV A,#00HMOVX @DPTR,AMOV A,#40HMOVX @DPTR,AMOV A,#90HMOVX @DPTR,AMOV 20H,#00HMOV 21H,#00HMOV 22H,#00HMOV 23H,#00HMOV 24H,#0FFHMOV 25H,#00HMOV R0,#21HMOV R2,#02HMOV R7,#33HSETB EX0SETB ET1SETB EAMAIN: LCALL MANILJMP MAINMANI: MOV DPTR,#1B31H MOV A,#90HMOVX @DPTR,AMOV DPL,#30HMANI1: MOV A,@R0 LCALL TABLEMOVX @DPTR,AINC R0DJNZ R2,MANI1MOV R0,#21HMOV R2,#02HRETTABLE: INC AMOVC A,@A+PCRETDB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71HDB 73HKEY: PUSH ACCPUSH PSWPUSH DPLMOV DPL,#30HMOVX A,@DPTRANL A,#3FHACCEL: CJNE A,#02H,DECEL CLR TR1MOV 25H,#01HMOV 21H,#0AHMOV 23H,#00HSETB TR1LJMP OUTKDECEL: CJNE A,#06H,BACK CLR TR1MOV 25H,#02HMOV 21H,#0EHMOV 23H,#0C0HSETB TR1LJMP OUTKBACK: CJNE A,#03H,FRONT MOV 20H,#01HMOV 22H,#0BHLJMP OUTKFRONT: CJNE A,#07H,STOP MOV 20H,#00HMOV 22H,#0FHLJMP OUTKSTOP: MOV 25H,#00H CJNE A,#08H,STEP1CLR TR1MOV 21H,#00HLJMP OUTKSTEP1: CJNE A,#09H,STEP2 CLR TR1MOV 21H,#01HMOV 23H,#00HSETB TR1LJMP OUTKSTEP2: CJNE A,#0AH,STEP3 CLR TR1MOV 21H,#02H23H,#3FHTR1 OUTKCJNE A,#0BH,STEP4 TR1 21H,#03H 23H,#66HTR1 OUTKCJNE A,#0CH,STEP5TR1 21H,#04H 23H,#7FHTR1 OUTKCJNE A,#0DH,POINT TR121H,#05H 23H,#0C0HTR1 OUTKCJNE A,#05H,OUTKTR1 21H,#0DH DIREC POP DPL PSW ACCMOV SETB LJMP STEP3: CLR MOV MOV SETB LJMPSTEP4: CLR MOV MOV SETB LJMPSREP5: CLR MOV MOV SETB LJMP POINT: CLR MOV LCALL OUTK: POP POP RETITINT: PUSH ACCPUSH PSWPUSH DPLLCALL DIRECLCALL RELOUTT: POP DPLPOP PSWPOP ACCRETIDIREC: MOV DPL,#08H MOV R1,20HMOV A,R7CJNE R1,#00H,BACKD FRONTD: RR ALJMP OUTDBACKD: CJNE R1,#01H,OUTD RL AOUTD: MOVX @DPTR,A MOV R7,ARETREL: MOV R1,25H CJNE R1,#01H,REL2MOV A,23HCJNE A,#0C0H,REL1MOV TH1,ARETREL1: MOV TH1,AINC AMOV 23H,ARETREL2: CJNE R1,#02H,REL0MOV A,23HJNZ REL3MOV TH1,ARETREL3: MOV TH1,ADEC AMOV 23H,ARETREL0: MOV TH1,23HRETEND單贸摄尔霁毙攬砖卤庑。