机电系统课程设计说明书单片机控制步进电机正反转

上传人:痛*** 文档编号:141559650 上传时间:2022-08-24 格式:DOC 页数:26 大小:452.50KB
返回 下载 相关 举报
机电系统课程设计说明书单片机控制步进电机正反转_第1页
第1页 / 共26页
机电系统课程设计说明书单片机控制步进电机正反转_第2页
第2页 / 共26页
机电系统课程设计说明书单片机控制步进电机正反转_第3页
第3页 / 共26页
点击查看更多>>
资源描述
机电系统课程设计说明书题目 单片机控制步进电机正反转 年 级 10 专 业 班 级 学 号 学生姓名 设计时间 2011.11.072011.11.25 指导教师 机械工程学院机电工程系常熟理工学院机械工程学院课程设计成绩评定课程名称: 机电系统课程设计 学生姓名: 周旭涛 班级 YZ02101 学号: 45 答辩记录表答辩教师答辩时间答辩情况记录成绩评定表要求评分比例%得分平时成绩遵守纪律,刻苦钻研,虚心好学20说明书质量条理清楚,内容全面,重点突出30图纸质量图样正确规范,结构合理20答辩成绩表达清楚,具有设计分析能力30评语:总评成绩: 指导教师签名: 常熟理工学院机械工程学院机电系统课程设计任务书姓名 班级 学号 设计题目 单片机控制步进电机(软件设计) 设计任务:(1)开始通电时,步进电机停止转动。(2) 单片机分别接有按钮开关K1、K2和K3用来控制步进电机的转向,要求如下: 当按下K1时,步进电机正转; 当按下K2时,步进电机反转; 当按下K3时,步进电机停止转动。(3)正转采用1相激磁方式,反转采用12相激磁方式。设计工作量:(1)算法的确定(2)画程序工作流程度(3)时序表的绘制(4)汇编程序的编写指导教师封士彩 蒋晓梅设计时2011年11月7日2011年11月25日目 录第1章绪论51.1 单片机的发展及应用1.2 电动机的基础知识1.3 汇编语言的介绍及应用第2章 硬件电路描述122.1 确定元器件的型号 2.1.1 AT89C51单片机 2.1.2 ULN2003芯片2.2 步进电机2.2.1 永磁式步进电机2.2.2 步进电机原理以及原理图第3章 程序设计163.1 编程3.2 流程图3.3 详细程序 3.3.1代码注解 3.3.2程序分析致谢.22参考文献.23附录.24第1章 绪论1.1单片机的发展及应用1.1.1单片机的简介 单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。 早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!.它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。 可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。1.1.2单片机的应用目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域1.1.3单片机的程序语言和软件1机器语言(Machine Language)2汇编语言 (Assemble)3高级语言 (High Level Language)机器语言: 单片机应用系统只使用机器语言(指令的二进制代码,又称指令代码)。机器语言指令组成的程序称目标程序。 MCS-51两个寄存器相加的机器语言指令:00101000汇编语言: 与机器语言指令一一对应的英文单词缩写,称为指令助记符。汇编语言编写的程序称为汇编语言程序。 MCS-51两个寄存器相加汇编语言指令:ADD A,R0高级语言: 高级语言源程序C-51、C、PL/M51等。简单控制程序不太长。复杂多种多样的控制对象,少有现成程序借鉴。简单系统不含管理和开发功能。复杂系统实时系统,需要监控系统 (甚至实时多任务操作系统)。1.2 电动机的基础知识1.2.1 电动机的简介电动机(Motors)是把电能转换成机械能的一种设备。它是利用通电线圈(也就是定子绕组)产生旋转磁场并作用于转子鼠笼式式闭合铝框形成磁电动力旋转扭矩。电动机按使用电源不同分为直流电动机和交流电动机,电力系统中的电动机大部分是交流电机,可以是同步电机或者是异步电机(电机定子磁场转速与转子旋转转速不保持同步速)。电动机主要由定子与转子组成,通电导线在磁场中受力运动的方向跟电流方向和磁感线(磁场方向)方向有关。电动机工作原理是磁场对电流受力的作用,使电动机转动。1.2.2 电动机的分类1.按工作电源分类 根据电动机工作电源的不同,可分为直流电动机和交流电动机。其中交流电动机还分为单相电动机和三相电动机。2.按结构及工作原理分类 电动机按结构及工作原理可分为直流电动机,异步电动机和同步电动机。同步电动机还可分为永磁同步电动机、磁阻同步电动机和磁滞同布电动机。异步电动机可分为感应电动机和交流换向器电动机。感应电动机又分为三相异步电动机、单相异步电动机和罩极异步电动机等。交流换向器电动机又分为单相串励电动机、交直流两用电动机和推斥电动机。3.按启动与运行方式分类 电动机按起动与运行方式可分为电容起动式单相异步电动机、电容运转式单相异步电动机、电容起动运转式单相异步电动机和分相式单相异步电动机。1.2 步进电机的分类及应用1.2.1 步进电机的分类步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器 虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。 步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 步进电机分三种:永磁式(PM) ,反应式(VR)和混合式(HB)永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。 永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度; 永磁式步进电动机输出力矩大,动态性能好,但步距角大。 反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。 反应式步进电动机结构简单,生产成本低,步距角小,但动态性能差。 混合式步进电动机综合了反应式、永磁式步进电动机两者的优点,它的步距角小,出力大,动态性能好,是目前性能最高的步进电动机。它有时也称作永磁感应子式步进电动机。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。1.2.2 步进电动机的应用步进电动机多用于数控车床和机器人系统中。在现代工业,特别是航空、航天、电子等领域中,要求完成的工作量大,任务复杂,精度高,利用人工操作不仅劳动强度大,生产效率低,且难以达到所要求的精度,还有一些工作环境是对人体健康有害的或人类无法到达的,这就需要数控机床和机器人来完成这些工作。另外,在计算机外设和办公室自动化设备中也大量运用步进电机,如磁盘驱动、打印机、绘图仪和复印机等1.3汇编语言简介及应用1.3.1汇编语言简介汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语 汇编语言言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM等等为我们写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。 循环组织方式1.3.2汇编语言应用汇编语言作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它 语言所无法完成的功能。就拿Linux内核来讲,虽然绝大部分代码是用C语言编写的,但仍然不可避免地在某些关键地方使用了汇编代码,其中主要是在Linux的启动部分。由于这部分代码与硬件的关系非常密切,即使是C语言也会有些力不从心,而汇编语言则能够很好扬长避短,最大限度地发挥硬件的性能。 1.70%以上的系统软件是用汇编语言编写的。 2.某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。 3.某些高级绘图程序、视频游戏程序是用汇编语言编写的。 汇编语言是理解整个计算机系统的最佳起点和最有效途径,人们经常认为汇编语言的应用范围很小,而忽视它的重要性。其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。汇编语言直接描述机器指令,比机器指令容易记忆和理解。通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点。第2章 硬件电路描述2.1确定元器件的型号2.1.1 AT89C51 单片机 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。图2.1 AT89C51单片机2.1.2 ULN2003芯片单片机的输出电流太小,不能直接连接步进电机,需要加驱动电路。对于电流小于0.5A的步进电机,可以采用ULN2003类的驱动IC.如图2.2所示为ULN2003系列驱动器引脚图,图左边1-7引脚为输入端,接单片机输入端,引脚8接地;右侧10-16引脚为输入端,接步进电机,引脚9接电源+5V,该驱动器可提供最高0.5A的电流。图2.2 ULN20032.2 步进电机2.2.1 永磁式步进电机选取35BY48S03型步进电机,内部接线图如下: 从图2.4中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。要使用步进电机转动,只要轮流给各引出端通电即可。将COM端标识为C,只要AC、C、BC、 C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、B、轮流接地。图2.4 永磁型步进电机结构原理图2.2.2 步进电机原理以及原理图 图2.2所示。K1、K2和K3按钮开关分别接在单片机的P3.2P3.4引脚上,作为控制信号的输入端,输入端直接采用ULN2003驱动电路控制步进电机的转向。图2.2 ULN2003第3章 程序设计设计目的本程序通过K1、K2和K3三个按钮开关控制步进电机转动和改变转向,电动机使用1-2相激磁,我将通过汇编语言,编写程序以实现步进电机的实验目的,编程时采用制表的方法。正转和反转的脉冲信号频率是相通的故,正转使用1相激磁法,但由于使用激磁方式不一样,反转使用了1-2相激磁法,故反转速度为正转的一半。从而来控制步进电机接受一定的脉冲信号,实现连续的正转或反转运动。编程的步骤 (一)分析问题 (二)确定算法 (三)画程序流程图 (四)编写程序 (五)上机调试 3.1 编程编程采用制表的方法,步进电机正转采用1相激磁方式,时序如表所示表3-1 1相激磁方式正转时序步进P0.3P0.2P0.1P0.00FCH110000F9H201000F3H300010F6H40010步进电机反转采用1-2相激磁方式,时序如表表3-2 1-2相激磁反转时序步进P0.3P0.2P0.1P0.00F7H101110F3H200110FBH310110F9H410010FDH511010FCH611000FEH711100F6H801103.2 流程图汇编语言程序具有4种结构形式,即顺序结构、分支结构、循环结构和子程序结构。 根据本次设计课题,选用分支结构: 程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断,满足条件则进行程序转移,不满足条件就顺序执行程序。程序设计流程如图所示:开始按键扫描按K1正转按K2反转按K3停止读取表格输出结束输出3.3 详细程序01 K1 EQU P3.2 ;设定P3.2以K1表示02 K2 EQU P3.3 ;设定P3.3以K2表示03 K3 EQU P3.4 ;设定P3.4以K3表示04 05 STOP: MOV P0,#OFFH ;步进电机停止06 LOOP: JNB K1,Z_M2 ;是否按K1,是则正传07 JNB K2,F_M2 ;是否按K2,是则反转08 JNB K3,STOP1 ;是否按K3,是则停止09 JMP LOOP ;跳转至LOOP处1011 STOP1: ACALL DELAY ;按K3的消除抖动12 JNB K3,$ ;K3放开否13 ACALL DELAY ;放开消除抖动14 JMP STOP ;电机停止1516 Z_M2: ACALL DELAY ;按K1的消除抖动17 JNB K1,$ ;K1放开否18 ACALL DELAY ;放开消除抖动19 JMP Z_M ;转至Z_M处2021 F_M2: ACALL DELAY ;按K2的消除抖动 22 JNB K2,$ ;K2放开否23 ACALL DELAY ;放开消除抖动24 JMP F_M ;转至F_M处,循环25 ;正转子程序 26 Z_M: MOV R0,#00H ;正转到TABLE取码指针初值27 Z_M1: MOV A,R0 ;到TABLE取码28 MOV DPTR,#TABLE ;存表29 MOVC A,A+DPTR ;取表代码30 JZ Z_M ;是否取到结束码?31 MOV P0,A ;输出至P0,正转32 JNB K3,STOP1 ;是否按K3,是则停止运转 33 JNB K2,F_M2 ;是否按K2,是则反转34 ACALL DELAY ;步进电机转速35 INC R0 ;取下一个码36 JMP Z_M1 ;转至Z_M处,循环37 RET38 ;反转子程序39 F_M: MOV R0,#05 ;反转到TABLE取码指针初值40 F_M1: MOV A,R0 ;到TABLE取码41 MOV DPTR,#TABLE ;存表42 MOVC A,A+DPTR ;取表代码43 JZ F_M ;是否取到结束码?44 MOV P0,A ;输出至P0,反转45 JNB K3,STOP1 ;是否按K3,是则停止运转46 JNB K1,Z_M2 ;是否按K1,是则正转47 ACALL DELAY ;步进电机转速48 INC R0 ;取下一个码49 JMP F_M1 ;转至F_M1处,循环50 RET5152 DELAY: MOV R6,#40 ;延时时间20ms53 D1: MOV R7,#24854 DJNZ R7,$55 DJNZ R6,D156 RET57 ;控制码表58 TABLE59 DB 0FCH, OF9H, 0F3H, 0F6H ;正转60 DB 00H ;正转结束码61 DB 0F7H, 0F3H, 0FBH, 0F9H ;反转62 DB 0FDH, 0FCH, 0FEH, 0F6H63 DB 00H ;反转结束码6465 END ;程序结束3.3.1 代码注解 主要标号说明LOOP: 按键扫描STOP1: K3键消除抖动Z_M2: K1键消除抖动F_M2: K2键消除抖动Z_M: 反转子程序F_M: 正转子程序DELAY: 延时子程序TABLE: 控制码表3.3.2 程序分析0103: 将P3.2、P3.3、P3.4引脚分别用K1、K2、K3表示。05: 使步进电机停止转动。0609: 对按键扫描。当按键开关未按下时,相应引脚为高电平;当开关按下时,相应引脚为低电平。所以通过循环检测按键开关所连接的引脚电平的高低,就可以判断出开关状态。11: 按K3时,调延时子程序,延时一小段时间来消除按键时的抖动。12: 按键未开放时,程序将在此等待,只有按键开放后,程序才会向下运行。13:按键放开时,调延时子程序,延时一小段时间来消除按键放开时的抖动。14: 当确定K3按键被按下又被放开后,才认定是一次有效按键,程序将跳转到STOP处,执行停机语句,使电机停止转动。1619: 与上述11-14行语句原理相同,是对K1键按下和放开时消除抖动的处理,并跳转到Z_M处,执行正传子程序。2124: 对按K2键时消除抖动的处理,并跳转到Z_M处,执行反转子程序。26: 正转子程序开始,将R0赋值为0,使取表指针指向表TABLE的第一个码位置。27: 将R0值送入累加器A。28: 将编制的电机控制码表TABLE存入特殊寄存器DPTR。29: 从特殊寄存器DPTR中取出第一个控制码。30: 检查是否取到结束码,结束码为00H。如果取到结束码00H,JZ指令会使程序跳转到标号Z_M处,从第一个码开始读取;如果取到的不是结束码00H,程序向下运行。31: 将取到的数据由P0端输出。32: 检查是否按K3,是则停止运转。33: 检查是否按K2,是则反转。34: 调用延时子程序。此处调用延时子程序与前边调用的不同,前边调用延时子程序是为了消除按键的抖动。 此处调用延时子程序是电机运转两步之间的间隔时间,决定电机的转速,延时时间长,送入电机的脉冲信号频率低,电机转速慢;延时时间短,送入电机的脉冲信号频率高,电机转速快。所以在此处改变延时时间就可以改变电机转速。35: 使R0的值为1,取下一个码。36:跳转到Z_M处,开始新的循环。37:正转子程序返回。3950:反转子程序。其中,第39行语句将R0赋值为5,是为了取码时从反转控制码中第一个码开始读取。5256:延时子程序,延时的时间为20ms。5863:步进电机激磁信号编码表。其中第59行为电机正转一相激磁码;第60行为正转结束码;第61、62行为反转1-2激磁码;第63行为反转结束码。65:程序结束。 参考文献单片机应用技术 北京理工大学出版社 倪志莲 单片机实训教程 北京大学出版社 张营辉、贡雪梅单片机原理与应用设计 电子工业出版社 张毅刚、彭喜元基于Proteus的单片机应用技术 电子工业出版社 江世明51单片机开发入门与典型实例 人民邮电出版社 王守中、聂元铭开发技术实例单片机 机械工业出版社 张元良 王建军 单片机设计案例时间教程 北京邮电大学出版社 王庆利 袁建敏汇编语言程序设计 清华大学出版社 王爽致谢词在本文完成之际,无论我的设计是否能够真的投入使用,这里面每一个控件的绘制,每一行语句的调试,每一段文本的输入之中都有我辛勤的汗水。半年的设计时间虽然短暂,我却从中学到了很多的东西。我由衷地感谢关怀、教诲、帮助、支持和鼓励我完成学业的老师、朋友和亲人.。在这次课程设计的撰写过程中,我得到了许多人的帮助。课程设计是对我们知识运用能力的一次全面的考核,也是对我们进行科学研究基本功的训练,培养我们综合运用所学知识独立地分析问题和解决问题的能力,为以后撰写专业学术论文和工作打下良好的基础。 特别感谢我的导师封士彩老师,蒋晓梅老师,三个星期以来他在学习、科研上一直对我悉心指导,严格要求、热情鼓励,为我创造了很多锻炼提高的机会。X老师洞察全局、高屋建瓴,为我的课程设计的顺利完成指出了很好的方向,老师们渊博的知识、宽广无私的胸怀、夜以继日的工作态度、对事业的执著追求、诲人不倦的教师风范和对问题的敏锐观察力,都将使我毕生受益。 在此我谨向我的导师以及在毕业设计过程中给予我很大帮助的老师、同学们致以最诚挚的谢意!附录(汇编语言常用指令)数据传送指令集 MOV功能: 把源操作数送给目的操作数语法: MOV 目的操作数,源操作数格式: MOV r1,r2MOV r,mMOV m,rMOV r,data位运算指令集 AND,OR,XOR,NOT,TEST功能: 执行BIT与BIT之间的逻辑运算语法: AND r/m,r/m/data OR r/m,r/m/data XOR r/m,r/m/data TEST r/m,r/m/data NOT r/m影响标志: C,O,P,Z,S(其中C与O两个标志会被设为0) NOT指令不影响任何标志位JMP功能: 跳往指定地址执行语法: JMP 地址LOOP功能: 循环指令集语法: LOOP 地址LOOPE(Z)地址 LOOPNE(Z) 地址标志位: 无CALL,RET功能: 子程序调用,返回指令语法: CALL 地址 RET RET n标志位: 无REP,REPE,REPNE功能: 重复前缀指令集语法: REP 指令S REPE 指令S REPNE 指令S标志位: 依指令S而定 5)控制转移指令:用来控制程序的执行流程。 控制转移指令类型 指 令 说 明无条件转移指令 JMP(段间和段内转移)条件转移指令 JZ(结果为0(或相等)则转移)、JS(结果为负则转移)、JNS(结果为正则转移)、JO(溢出则转移)、JNO(不溢出则转移)、JP(奇偶位为1则转移)、JNP(奇偶位为0则转移)循环指令 LOOP(循环指令)、LOOPPZ/LOOPE(当为0或相等时循环指令)、LOOPNZ/LOOPNE(当不为0或不相等时循环指令)子程序指令 CALL(调用指令)、RET(返回指令)中断指令 INT(中断)、INTO(如溢出则中断)、RIET(从中断返回)
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!