四相单四拍步进电机控制系统设计

合集下载

大学毕业设计 C51程序控制步进电机

大学毕业设计 C51程序控制步进电机

题目:简易步进电机控制步进电机控制摘要:本设计采用ATMEL公司DIP-40封装的AT89S52单片机实现对四相步进电机的手动和按键控制。

由单片机产生的脉冲信号经过分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。

转速的调节和状态的改变由按键进行选择,此过程由程序直接进行控制。

通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。

电机转动的不同状态由液晶LCD1602显示出来。

而设计的扩展部分可以通过红外信号的发射由另一块单片机和红外线LED完成,用红外万能接收头接收红外信号,可以实现对电机的控制进行红外遥控。

关键字:四相步进电机单片机功率放大 LCD1602步进电机控制 (1)摘要 (1)关键字 (1)前言 (3)1系统总体方案设计及硬件设计 (4)1.1步进电机 (4)1.1.1 步进电机的种类 (4)1.1.2 步进电机的特点 (4)1.1.3 步进电机的原理 (5)1.2 控制系统电路设计 (7)1.3 液晶显示LCD1602 (7)1.4 AT89S52核心部件及系统SCH原理图 (9)1.5 LN2003A驱动 (10)2软件设计及调试 (13)2.1程序流程 (13)2.2软件设计及调试 (14)3 扩展功能说明 (15)4设计总结 (16)5 设计源程序 (16)6 附录 (21)参考文献 (22)附2:系统原理图及实物图 (23)步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。

目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。

分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。

步进电机控制系统的设计与仿真

步进电机控制系统的设计与仿真

一、设计题目步进电机控制系统的设计与仿真二、设计要求设计一个单片机四相步进电机控制系统,要求系统具有以下功能。

(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数码管等一些电路模块组成。

四相步进电机控制系统设计

四相步进电机控制系统设计

《单片机课程设计》设计报告设计题目:四相步进电机控制系统设计系专别:业:自动化工程系测控技术与仪器班级学号:5091016姓名:李建华指导教师:吕江涛张宝健设计时间:2011/12/29目录1 概述 (1)2 四项步进电机 (2)2.1 步进电机 (2)2.2 步进电机的控制 (2)2.3 步进电机的工作过程 (2)3 电路图设计 (4)3.1 AT89S52概述 (4)3.2 3.3 3.4 3.5最小系统 (4)复位电路 (5)拨码电路 (5)电机驱动电路 (6)4 程序设计 (7)4.1 4.2 4.3主程序框图 (7)步进电机速度控制程序框图 (8)拨码开关输入程序框图 (10)5 总结 (11)5.1 心得 (11)5.2 收获 (11)附录一附录二源程序 (12)电路原理图 (15)1 概述本实验旨在通过控制 AT89S52 芯片,实现对四相步进电机的转动控制。

具体功能主要是控制电机正转、反转、加速与减速。

具体工作过程是:给试验箱上电后,拨动启动开关,步进电机按照预 先设置的转速和转动方式转动。

调整正反转按钮,步进电机实现正反转切 换;拨动加速开关,步进电机转速加快,速度达到最大值,不再加速;拨 动减速开关时,电机减速转动,速度减到最小速度,停止减速。

系统控制框图实验具体用到的仪器:AT89S52(试验箱上为 89C58)芯片、拨码开关单 元、四项步进电机等硬件设备。

实验具体电路单元有:单片机最小系统、步进电机连接电路、拨码开 关连接电路。

步进电机 (驱动)AT89S52 单片机 独立按键键盘2 四项步进电机2.1 步进电机步进电机是一种将电脉冲转化为角位移的执行机构。

电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

2.2 步进电机的共组原理2.2 步进电机的控制1.换相顺序控制:通电换相这一过程称为脉冲分配。

四相步进电机驱动电路及驱动程序设计

四相步进电机驱动电路及驱动程序设计

四相步进电机驱动电路及驱动程序设计我们用一个单片机控制多个步进电机指挥跳舞机器人的双肩、双肘和双脚伴着音乐做出各种协调舒缓充满感情的动作,荣获一等奖。

电路采用74373锁存,74LS244和ULN2003作电压和电流驱动,单片机(Atc52)作脉冲序列信号发生器。

程序设计基于中断服务和总线分时利用方式,实时更新各个电机的速度、方向。

整个舞蹈由运动数据所决定的一截截动作无缝连接而成。

本文主要介绍一下这个机器人的四相五线制步进电机驱动电路及程序设计.1、步进电机简介步进电机根据内部线圈个数不同分为二相制、三相制、四相制等。

本文以四相制为例介绍其内部结构。

图1为四相五线制步进电机内部结构示意图。

2、四相五线制步进电机的驱动电路电路主要由单片机工作外围电路、信号锁存和放大电路组成。

我们利用了单片机的I/O端口,通过74373锁存,由74LS244驱动,ULN2003对信号进行放大。

8个电机共用4bit I/O端口作为数据总线,向电机传送步进脉冲。

每个电机分配1bit的I/O端口用作74373锁存信号,锁存步进电机四相脉冲,经ULN2003放大到12V驱动电机运转。

电路原理图(部分)如图2所示。

(1)Intel 8051系列单片机是一种8位的嵌入式控制器,可寻址64K字节,共有32个可编程双向I/O口,分别称为P0~P3。

该系列单片机上集成8K的ROM,128字节RAM可供使用。

(2)74LS244为三态控制芯片,目的是使单片机足以驱动ULN2003。

ULN2003是常用的达林顿管阵列,工作电压是12V,可以提供足够的电流以驱动步进电机。

关于这些芯片的详细介绍可参见它们各自的数据手册。

(3)74373是电平控制锁存器,它可使多个步进电机共用一组数据总线。

我们用P1.0~P1.7作为8个电机的锁存信号输出端,见表1。

这是一种基于总线分时复用的方式,以动态扫描的方式来发送控制信号,这和高级操作系统里的多任务进程调度的思想一致。

分析步进电动机四相单四拍运行过程

分析步进电动机四相单四拍运行过程

分析步进电动机四相单四拍运行过程步进电动机是一种将电脉冲信号转换为机械转动的电动机。

四相单四拍运行是其中一种常见的工作方式。

下面是对四相单四拍运行过程的简要分析:
1.步进电动机通常由两个以上的线圈组成,每个线圈连接一个相位(A、B、C、D)。

2.在四相单四拍运行中,通过依次给不同相位的线圈施加脉冲信号来实现转动。

假设初始状态下电机处于静止位置。

3.第一步骤:开始时,给A相线圈施加电脉冲信号,使得A相线圈激磁,产生磁场。

此时,电机会略微转动,使得齿轮或者转轴与其他组件对齐。

4.第二步骤:当A相线圈激磁的同时,给B相线圈施加电脉冲信号。

A相和B相线圈同时激磁,其磁场相互作用,电机继续转动一小步。

5.第三步骤:接着,给B相线圈保持激磁的同时,停止A相线圈的激磁。

这样,电机又会停下来,并使得齿轮或转轴与其他组件再次对齐。

6.第四步骤:最后,给C相线圈施加电脉冲信号,使得C相线圈激磁。

C相线圈激磁时与其他线圈不激磁,电机继续转动一小步。

7.之后,循环以上四个步骤,通过依次控制不同相位的线圈激磁和停止激磁,从而实现持续的转动。

单片机步进电动机控制系统设计

单片机步进电动机控制系统设计

前言单片机是一个单芯片形态、面向控制对象的嵌入式应用计算机系统。

它的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域。

从此,计算机技术在两个重要领域-—通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。

采用8031单片机控制步进电机,可实现步进电动机正反转控制和步进电动机的无级调速。

分析了步进电机的工作原理,讨论了系统硬件和软件的设计方法,并给出了步进电机的四相八拍单片机控制的具体实现方法。

该系统操作简单,降低了成本,提高了系统的可靠性。

步进电机具有控制方便和体积小等特点,因此在智能仪表和位置控制中得到了广泛的应用。

近年来大规模集成电路的发展以及各种单片机的迅速发展和普及,为设计功能强、价格低的步进电机控制驱动器提供了先进的技术和充足的资源.步进电动机是一种将电脉冲信号转换成相应角位移或线位移的电动机,它的运行需要专门的驱动电源,驱动电源的输出受外部的脉冲信号控制。

每一个脉冲信号可使步进电机旋转一个固定的角度,这个角度称为步距角。

脉冲的数量决定了旋转的总角度,脉冲的频率决定了电动机旋转的速度,改变绕组的通电顺序可以改变电机旋转的方向。

在数字控制系统中,它既可以用作驱动电动机,也可以用作伺服电动机.它在工业过程控制中得到广泛的应用,尤其在智能仪表和需要精确定位的场合应用更为广泛。

1 单片机的基本知识1。

1 概述单片微型计算机简称单片机,由于它的结构及功能均是按工业控制要求设计的,所以其确切的名称应是单片微控制器(Single Chip Microcontroller).它是把微型机算计的各个功能部件:中央处理器CPU、随机存储器RAM、只读存储器ROM、并行I/O接口、定时器/计数器及串行通信接口等集成在一块芯片上,构成一个完整的微型计算机系统,故又把它称为单片微型计算机系统(Single Chip Microcomputer).由于单片机面对的是测控对象,突出的是控制功能,所以它从功能和形态上来说都是应控制领域应用的要求而诞生的.随着单片机技术的发展,它在芯片内集成了许多面对测控对象的接口电路,如ADC、DAC、高速I/O口、PWM、WDT等。

05年电子设计大赛题论文——悬挂控制系统

05年电子设计大赛题论文——悬挂控制系统

作者:缑文博丁杰白博赛前辅导老师:刘远聪兰建平胡亚琦摘要本悬挂系统是以两个AT89C52为核心,用专用步进电机的驱动SJ-220驱动步进电机控制坐标图上的笔的位置,通过两个定滑轮配合步进电机,利用控制电机的转速的变化绘制出所需的图形。

利用LCD作为整个过程的显示部分,结合4×4的键盘输入,控制画图过程的输入。

一、设计方案和论证按照题意,控制系统能够通过键盘或其他方式任意设定坐标点参数;控制物体在80cm ×100cm的范围内做自行设定的运动,运动轨迹长度不小于100cm,物体在运动时能够在板上画出运动轨迹,限300s内完成;控制物体做圆心可任意设定、直径为50cm的圆周运动,限300s内完成;物体从左下角坐标原点出发,在150s内到达设定的一个坐标原点。

在此基础上,能够显示物体中画笔所在位置的坐标。

考虑到测量对象较多,如果使用一个单片机,系统资源将非常紧张,难以达到最佳的控制。

因此,采用两片单片机,合理分工,分别控制各模块的工作。

系统框图如图1所示。

对于各模块的设计,分别讨论如下。

1.电动机及其的选择(1)电动机的选择方案一:使用步进电机。

其优点在于速度易于控制,可以实现快速启停,且转动角度严格可控。

可以根据驱动脉冲电流的次数计算小车的行驶距离,省去距离测量这一环节。

步进电机的功率大,速度可调,转速稳定,可以达到精密控制。

方案二:使用直流电机,用脉冲宽度调节方法,对电机进行控制。

但此方案的缺点也很明显,直流电机动起来惯性大,转速不易控制,很难达到精确地控制,误差较大。

因此,选择方案一。

(2)电动机驱动模块所用电动机是四相电动机,需要放大4路驱动信号。

方案一:采用4路三极管放大电路驱动,该方案电路复杂,可靠性难以保证。

方案二:采用专用的步进电机驱动SJ—220, SJ-220驱动器驱动二相混合式步进电机,该驱动器采用原装进口模块,实现高频斩波,恒流驱动,具有很强的抗干扰性、高频性能好、起动频率高、控制信号与内部信号实现光电隔离、电流可选、结构简单、运行平稳、可靠性好、噪声小,带动2A以下所有的42BYG、57BYG、系列步进电机。

步进电机细分驱动控制系统设计

步进电机细分驱动控制系统设计

步进电机细分驱动控制系统设计姓名:张凯学号: 20104977指导老师:杨小平、杞宁组员:张凯 20104977 (组长)张明 20104991王涛 20104978合肥工业大学电子科学与应用物理学院电子科学与技术系概述步进电机在输入状态发生变化时会转过一定的角度,输入状态不变时不会转动,且在不细分输入情况下每次转过较大的角度,再细分情况下每次转过较小的角度。

本设计是利用 FPGA 实现四相步进电机细分驱动控制,并且系统既能实现步进电机的细分驱动又能实现不细分驱动,还能实现步进电机的正、反转控制。

设计方案与实现下图是通过Quartus Ⅱ综合产生的RTL级电路图。

整个电路共分为6大模块:32进制可加可减计数器(cnt32)、16进制(自加)计数器(cnt16)、4位输出选择器(dec2)、4个4位比较器(new_comp:moto5、moto6、moto7、moto8)、查找表(rom32)、4位输入4位输出2选1多路选择器(mux2to1)。

其中,u_d控制正反转,s选择细分和不细分,en控制停和转,y[3:0]接步进电机的4相输入,clk0和clk5为时钟,且clk5>>clk0(本课设选clk0=4Hz,clk5=32768Hz)。

设步进电机的4相输入分别为A、B、C、D。

细分: cnt32计数输出5位数据送rom32,rom32输出16位数据分别送new_comp:moto5、moto6、moto7、moto8的a[3:0]端口与cnt16计数送来的4位数据b[3:0]比较。

如果a>=b,则agb=1’b1;反之agb=1’b0。

由于clk5>>clk0,从而agb能输出一段占空比稳定的信号(只持续1个或多个clk0周期),即产生1/4、2/4、3/4信号。

再如果s为高电平,则就能实现步进电机的细分输入。

不细分:如果s为低电平,则mux2to1选通由dec2送来的非细分信号dataa[3:0],从而实现步进电机的非细分输入。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机控制综合实验课程设计说明书学生姓名:学号:学院: 信息与通信工程学院专业: 自动化题目: 四相单四拍步进电机控制系统设计指导老师职称2011 年12 月26 日课程设计任务书11/12学年第一学期学院:信息与通信工程学院专业:自动化学生姓名:学号:课程设计题目:四相单四拍步进电机控制系统设计起迄日期: 2011年12 月26日~2012年1 月6日课程设计地点:指导教师:系主任:下达任务书日期: 2011 年 12 月 26日1.设计目的:设计一个计算机步进电机程序控制系统,可以对步进电机的转速、转向以及位置进行控制。

通过设计,掌握步进电机的工作原理、掌握步进电机控制系统的设计原理、设计步骤,进一步提高综合运用知识的能力。

2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):(1)选择步进电机,设计接口电路和驱动电路,对步进电机进行控制。

(2)选择控制算法,编写控制程序,实现四相步进电机在单四拍工作方式下先正转90度,然后再反转60度,要求其速度可调,转向可控。

(3)写出设计说明书。

3. 设计工作任务及工作量的要求(包括课程设计计算说明书、图纸、实物样品等):(1)查阅资料,确定设计方案(2)选择器件,设计硬件电路,并画出原理图和PCB图(3)画出流程图,编写控制程序(4)撰写课程设计说明书4.主要参考文献:1 张艳兵,王忠庆。

计算机控制技术。

国防工业出版社2 顾德英,张健,马淑华.计算机控制技术【M】. 北京:北京邮电大学出版社,2006.3 华张家生. 电机原理与拖动基础【M】. 北京:北京邮电大学出版社,2006.成英,4张家生. 电机原理与拖动基础【M】. 北京:北京邮电大学出版社,2006.5.设计成果形式及要求:课程设计说明书1份原理图和PCB图各1份程序清单1份6.工作计划及进度:起迄日期工作内容11年12月26日~ 12月27 日 12月 28日~ 12月31日12年1月2日~ 1月3 日1月 3日~ 1月4 日1月 5日~ 1月6 日查阅资料,确定设计方案设计硬件电路画出流程图,编写控制程序撰写课程设计说明书课程设计答辩系主任审查意见:签字:年月日目录1 系统概述 (4)2 系统硬件设计 (5)2.1 系统硬件原理图 (5)2.2 各硬件单元功能说明及I/O口、功能键分配 (5)2.3 硬件连接图 (6)3 系统软件设计 (6)3.1 工作方式下的控制模型 (7)3.2 流程图 (9)4 结束语 (9)系统概述步进电动机是一种将电脉冲信号转换相应的角位移的特种电动机。

是工业过程控制及仪表中的主要控制元件之一。

步进电动机具有快速起动能力,而且精度高,在数字控制系统中可以直接接受来自计算机的数字信号,不需要进行数/模转换,所以步进电动机在定位场合得到了广泛应用。

本次课程设计通过键盘控制四相电动机的起动,单四拍、双四拍、四相八拍三种 工作方式及正反转的选择。

并通过七段数码管显示剩余工作步数。

从而达到手动控制与直观显示的结合。

本系统应用芯片8255,LED 显示单元,键盘模拟控制键,四相步进电动机及其驱动电路,接线较为简单。

软件编程采用的是汇编语言,程序中包括主程序,显示子程序,延时子程序。

系统硬件设计1.1 系统硬件原理图1.2 各硬件单元功能说明及I/O 口、功能键分配(1) 8255芯片:8255作为整个系统的主控单元,与系统总线连接,接受外部控制信息,并通过设定的I/O 口将控制信息输出到数码管显示单元,LED 显示单元及驱动电路。

系统设置8255工作方式0,A 、B 、C 口均为输出,PA0—PA7与数码管相连显示剩余工作步数,PB0—PB3连接电动机的A 、B 、C 、D 四相控制电动机的运转,PC0,PC1分别与LED0、LED1连接,PB4—PB7及PC3—PC7不用。

芯片8255数码管显示系 统 总 线驱动电路步进电机图1 系统硬件原理图LED 显示(2)键盘模拟功能键:“0”键控制起动,“1”键控制选择单四拍正转工作方式,“2”健控制选择单四拍反转工作方式,“3”键控制选择双四拍正转工作方式,“4”键控制选择双四拍反转工作方式,“5”键控制四相八拍正转工作方式,“6”键控制选择四相八拍反转工作方式,“7”键控制选择停止退出程序。

(3)驱动电路:驱动步进电机。

I/O及功能键分配表如表1所示表1 I/O及功能键分配表I/O口及功能键PA0—PA7PB0—PB3PC0 PC1 0键1键2键分配数码管控制接口步进电机驱动接口反转指示正转指示起动单四拍正转单四拍反转I/O口及功能键3键4键5键6键7键-- --分配双四拍正转双四拍反转四相八拍正转四相八拍反转退出-- --1.3 硬件连接图系统软件设计1.4 工作方式下的控制模型单四拍正转、单四拍反转、双四拍正转、双四拍反转、四相八拍正转及四相八拍反转六种工作方式下的控制模型分别如表2、3、4、5、6、7所示。

表2 单四拍正转控制数字模型步序D相C相B相A相字模PB3 PB2 PB1 PB01 0 0 0 1 01H2 0 0 1 0 02H3 0 1 0 0 04H4 1 0 0 0 08H表3 单四拍反转控制数字模型步序D相C相B相A相字模PB3 PB2 PB1 PB01 1 0 0 0 08H2 0 1 0 0 04H3 0 0 1 0 02H4 0 0 0 1 01H表4 双四拍正转控制模型D相C相B相A相字模步序PB3 PB2 PB1 PB01 0 0 1 1 03H2 0 1 1 0 06H3 1 1 0 0 0CH4 1 0 0 1 09H表5 双四拍反转控制模型步序D相C相B相A相字模PB3 PB2 PB1 PB01 1 0 0 1 09H2 1 1 0 0 0CH3 0 1 1 0 06H4 0 0 1 1 03H1.5流程图图 3 程序流程图结束语计算机控制技术的课程设计是一个综合运用知识的过程,它不仅需要计算机控制理论、程序设计方面的基础知识,而且还需要具备一定的生产工艺知识。

设计包括确定控制任务、系统总体方案设计、硬件系统设计、控制软件的设计等,以便使学生掌握计算机控制系统设计的总体思路和方法。

此次课程设计选作的是步进电机控制系统设计,设计要求1. 通电方式选择键三个,分别为单四拍、双四拍和四相八拍;2. 启动键和方向控制键;3. 正反转指示灯;4. 剩余工作步数LED显示。

此次课程设计经过前期查找资料,设计硬件电路,自编初步程序,设计期间在实验室调试程序,最终实现了以上基本功能,并且还实现了在不同工作方式之间的切换,屏幕显示剩余拍数两项功能,对步进电机的控制有了初步了解,同时也对芯片8255,数码管显示部分加强了运用。

通过此次设计,将所学的专业理论知识与实际开发实际结合起来,理论联系实际,提高了专业技能。

在设计过程中得到了同学的帮助,老师的指导,在此一并感谢!;源程序如下:;***************根据CHECK配置信息修改下列符号值******************* IOY0 EQU 9800H ;片选IOY0对应的端口始地址;***************************************************************** MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTK EQU 09H ;工作步数TABSHZ DB 03H,06H,0CH,09H ;双四拍正转模型TABSHF DB 09H,0CH,06H,03H ;双四拍反转模型TABLE1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段数码管字模DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV AL,80H ;初始化8255,工作方式0,A,、B、C口均为输出 MOV DX,MY8255_MODEOUT DX,ALWAIT1:MOV AH,08H ;等待启动键“0”按下INT 21HCMP AL,30HJE MAINJMP WAIT1MAIN: MOV AH,08H ;判断工作方式控制键是否按下INT 21H ;若键按下转到相应的程序,否则循环等待.CMP AL,33HJE SHUANGSI ;转双四拍正转CMP AL,34HJE SHUANGSI1;转双四拍反转CMP AL,35HJE QUIT1JMP MAIN;单四拍正转ZHENGSI:MOV AL,02H ;点亮正转指示灯MOV DX,MY8255_COUT DX,ALMOV CL,KZHENGSI0:LEA BX,TABLE1 ;数码管显示剩余步数MOV AL,CLXLATMOV DX,MY8255_AOUT DX,ALZHENGSI1: MOV BL,04H ;驱动电机MOV DX,MY8255_BLEA DI,TABSZZHENGSI2: MOV AH,0BH ;判断是否有按键切换工作方式INT 21H ;有按键跳回判断按键对应程序,否则继续执行程序INC ALJZ MAINCALL XIAN ;调用显示子程序,显示工作剩余拍数MOV AL,[DI]OUT DX,ALCALL DLY ;调用延时子程序INC DIDEC BL ;判断是否工作完所有拍数,有则退出等待重选工作方式,否则继续循环JNZ ZHENGSI2DEC CLJNZ ZHENGSI0JMP WAIT1;中间跳转SHUANGSI:JMP SHSIZHSHUANGSI1:JMP SHSIF;双四拍正转SHSIZH:MOV AL,02HMOV DX,MY8255_COUT DX,ALMOV CL,KSHSIZH0:LEA BX,TABLE1XLATMOV DX,MY8255_AOUT DX,ALSHSIZH1: MOV BL,08HMOV DX,MY8255_BLEA DI,TABSHZSHSIZH2: MOV AH,0BHINT 21HINC ALJZ MAIN1CALL XIANMOV AL,[DI]OUT DX,ALCALL DLYINC DIDEC BLJNZ SHSIZH2DEC CLJNZ SIBAZH0JMP WAIT1;中间跳转程序WAIT00:JMP WAIT1 ;双四拍反转SHSIF:MOV AL,01HMOV DX,MY8255_COUT DX,ALMOV CL,KSHSIF0:LEA BX,TABLE1MOV AL,CLXLATMOV DX,MY8255_AOUT DX,ALSHSIF1:MOV BL,4MOV DX,MY8255_BLEA DI,TABSHFSHSIF2: MOV AH,0BHINT 21HINC ALJZ MAIN1CALL XIANOUT DX,ALCALL DLYINC DIDEC BLJNZ SHSIF2DEC CLJNZ SHSIF0JMP WAIT00MAIN11:JMP MAIN1;四相八拍正转SIBAZH:MOV AL,02HMOV DX,MY8255_COUT DX,ALMOV CL,KSIBAZH0:LEA BX,TABLE1MOV AL,CLXLATMOV DX,MY8255_AOUT DX,ALSIBAZH1: MOV BL,08HMOV DX,MY8255_BLEA DI,TABBZSIBAZH2: MOV AH,0BHINT 21HINC ALJZ MAIN11CALL XIANMOV AL,[DI]OUT DX,ALCALL DLYINC DIDEC BLJNZ SIBAZH2DEC CLJNZ SIBAZH0JMP WAIT00QUIT:MOV DX,MY8255_A ;结束退出程序 MOV AL,00HOUT DX,ALMOV AX,4C00HINT 21H;软件延时子程序DLY PROC NEARPUSH CXPUSH AXMOV CX,0FFFFHD1:MOV AX,5FFFHD2:DEC AXJNZ D2LOOP D1POP AXPOP CXRETDLY ENDPXIAN PROC NEAR ;剩余拍数显示子程序PUSH DXMOV DL,BLADD DL,30HMOV AH,02HINT 21HMOV DL,20HMOV AH,02HINT 21HPOP DXRETXIAN ENDPCODE ENDSEND START。

相关文档
最新文档