步进电机控制系统设计报告
- 格式:docx
- 大小:278.65 KB
- 文档页数:19
专业课程设计Ⅰ题目一步进电机控制系统设计院系:动化学院专业班级:智能0801班小组成员:指导教师:王曙光日期:2011.05.23-2011.06.03目录1课程设计描述 (2)2.课程设计具体要求 (3)3.主要元器件 (3)4.基本原理阐述 (3)4.1 步进电机的工作原理 (3)4.2 步进电机的启停控制 (3)4.3 步进电机的转向控制 (4)4.4 步进电机的速度控制 (4)4.5 步进电机的换向控制 (4)5.实验方案 (4)5.1 控制系统的硬件设计 (4)5.2 电路设计 (5)5.3 系统软件设计 (5)5.3.1主程序图 (5)5.3.2显示子程序 (6)5.3.3键盘扫描子程序 (7)5.4源程序 (7)6.设计中的问题分析 (11)7.参考资料 (12)8.实验总结 .................................... 错误!未定义书签。
1课程设计描述:设计一个以8051单片机作为主控制器的步进电机控制器,实现对步进电机的转速、转向的控制和显示。
2. 课程设计具体要求:(1)可通过按键设置步进电机的转向(正/反转)、转速(增/减速);(2)可通过按键设置步进电机的励磁方式(单/双相);(3)可通过数码管将步进电机的转速显示出来;(4)设计电路,编写程序,软件硬件仿真、调试。
3.主要元器件:实验板(中号)、STC89C51、电容(30pFⅹ2、10uFⅹ2)、数码管(共阳、四位一体)、晶振(12MHz)、小按键(5个)、步进电机(25BY)、ULN2003等4.基本原理阐述:4.1 步进电机的工作原理步进电机由定子和转子两部分组成,下面以两相反应式步进电机为例说明步进电机工作原理。
两相步进电机的定子上有两对磁极,按N、S、N、S分配,每两个相对的磁极组成一队。
每对磁极都缠有同一个绕组,形成一相。
转子是由软磁材料制成的,其外表面均匀分布着小齿,他们大小相同,间距相等。
开题报告电气工程及其自动化步进电机控制系统的设计一、课题研究意义及现状步进电机又称为阶跃电动机或脉冲电动机,它是基于最基本的电磁感应作用,是一种将电脉冲转化为角位移的执行机构,由于其具有的显著特点,使得它在电机的大家族中扮演着很重要的角色。
步进电机的原始模型起源于1830年至1860年,我国步进电机的研究及发展开始于上世纪50年代后期,最初主要是国家资助的高等院校和科研机构为研究一些装置开发的少量产品。
70年代开始大量生产和应用步进电机,至今,由于对步进电机精确模型做了大量研究工作,各种混合式步进电机及驱动器作为产品被广泛生产和应用。
现应用于工业自动控制、组合机床、数控机床、机器人、计算机外围设备、大型望远镜、卫星天线定位系统等等。
随着科技的发展、技术的进步和电子技术的更新,步进电机的应用领域变得更加的宽广,这样也对步进电机的运行性能提出了更加苛刻的要求。
虽然步进电机是一种数控元件,易于同数字电路接口。
但是,一般数字电路的信号远远不足以驱动步进电机,必须有一个与之匹配的驱动电路来驱动步进电机,步进电机和步进电机驱动电路两者组成步进电机系统。
随着电力电子技术、自动化控制技术以及计算机技术的发展,开始大量使用单片机、FPGA、CPLD、PLC等对步进电机进行控制和驱动,结果是缩短了驱动器的研发周期,明显提高了整机的性能和稳定性。
PSoC可编程片上系统比标准的固定功能的微控制器有明显的优势,采用一个微控制器,一个PSoC器件最多可集成100种外设功能,PSoC系统集成有MCU、FLASH及可编程模拟和数字模块,与上面提到的方案相比通过PSoC单片机控制步进电机,可以实现低成本,小体积,单芯片,高效率的开发,甚至可以在开发最后一刻根据突发状况而改变方案。
二、课题研究的主要内容和预期目标该课题主要分一下内容进行设计:(1)了解和研究步进电机的结构及其工作原理;(2)研究实现常用步进电机控制的方案。
(3)Cypress Designer5.0的学习和软件的操作使用(4)分析基于PSoC的步进电机控制的解决方案,确定系统设计中需要用到CY8C29466的内部结构、通用I/O数目、所需Flash及SRAM空间大小等参数;(5)系统的整体硬件结构设计,包括芯片规划和外围电路设计;(6)设计步进电机驱动模块电路、速度显示模块电路,并绘制原理图,制作PCB板;(7)应用C语言编写系统应用程序,进行硬件电路的调试。
无锡职业技术学院毕业设计说明书(论文)*******************毕业设计论文论文题目:基于单片机的步进电机控制电路板设计系部自动控制系专业电气自动化班级自动化20651班学生姓名王小梅学号 2010065125指导教师孙晓燕******************************无锡职业技术学院毕业设计说明书(论文)摘要随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。
研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。
步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。
采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。
软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。
本设计是采用AT89C51单片机对步进电机的控制,通过IO口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机;同时,用 4个按键来对电机的状态进行控制,并用数码管动态显示电机的转速。
系统由硬件设计和软件设计两部分组成。
其中,硬件设计包括AT89C51单片机的最小系统、电源模块、键盘控制模块、步进电机驱动(集成达林顿ULN2003)模块、数码显示(SM420361K数码管)模块、测速模块(含霍尔片UGN3020)6个功能模块的设计,以及各模块在电路板上的有机结合而实现。
软件设计包括键盘控制、步进电机脉冲、数码管动态显示以及转速信号采集模块的控制程序,最终实现对步进电机转动方向及转动速度的控制,并将步进电机的转动速度动态显示在LED数码管上,对速度进行实时监控显示。
软件采用在Keil软件环境下编辑的C语言。
本系统具有智能性、实用性及可靠性的特点。
步进电机的控制实验报告一、实验目的本实验旨在深入了解步进电机的工作原理,掌握其控制方法,并通过实际操作和测量,验证控制策略的有效性和准确性。
二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的开环控制电机。
它通过按一定顺序依次给电机的各相绕组通电,使电机转子逐步转动。
其转动的角度与输入的脉冲数成正比,转速与脉冲频率成正比。
常见的步进电机控制方式有全步驱动、半步驱动和细分驱动。
全步驱动时,每输入一个脉冲,电机转子转动一个固定的角度(通常为 18°或 09°);半步驱动时,电机转子转动的角度为全步驱动的一半;细分驱动则通过控制各相电流的大小和相位,实现更精细的角度控制。
三、实验设备1、步进电机一台2、驱动控制器3、电源4、示波器5、数字万用表6、计算机及控制软件四、实验步骤1、连接实验设备将步进电机与驱动控制器正确连接,注意相序的对应。
给驱动控制器和电机接通电源。
将示波器和数字万用表分别连接到合适的测量点,以监测电机的电流、电压和脉冲信号。
2、设定控制参数在计算机控制软件中,设置电机的运行模式(全步、半步或细分)、脉冲频率、转动方向等参数。
3、启动电机点击控制软件中的启动按钮,观察电机的转动情况。
4、测量电机性能使用示波器测量电机的驱动脉冲信号,观察其波形和频率。
用数字万用表测量电机的相电流和相电压,记录数据。
5、改变控制参数调整脉冲频率,观察电机转速的变化。
改变转动方向,验证电机转向控制的正确性。
6、重复实验多次改变控制参数,进行重复实验,以获取更准确和可靠的数据。
五、实验数据及分析1、全步驱动模式下脉冲频率为 100Hz 时,电机转速约为 60r/min,相电流平均值为_____A,相电压为_____V。
脉冲频率提高到 500Hz 时,电机转速约为 300r/min,相电流平均值增加到_____A,相电压基本不变。
分析:在全步驱动模式下,脉冲频率越高,电机转速越快,但相电流也会相应增加,可能导致电机发热加剧。
两相步进电机控制系统设计.综合课程设计题目两相步进电机学院计信学院专业10自动化班级2班学生姓名指导教师文远熔2012 年12 月28 日两相步进电机课程设计报告步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。
控制系统通过单片机存储器、I/O 接口、中断、键盘、LED 显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。
为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。
人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。
此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。
步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。
关键字: 步进电机单片机1 设计内容根据给定的任务要求选择合适的单片机和其他电子元件,进行系统硬件电路设计和软件编程,根据系统制作并调试电路板,使之实现任务要求。
两相步进电机,步距角为3度,编程实现下列功能:(1)按键,步进电机按一定速度正转。
步进电机驱动系统设计报告1. 引言步进电机是一种常用的控制设备,它能够以离散的步进角度旋转,并且能够保持稳定位置。
本报告旨在介绍我们设计的步进电机驱动系统,包括硬件设计、软件开发和性能测试。
2. 硬件设计步进电机驱动系统的硬件设计包括供电电路、控制电路和电机驱动电路。
2.1 供电电路供电电路负责为整个系统提供电源。
我们选择了12V直流电源作为系统的供电电源,以保证电机稳定运行。
2.2 控制电路控制电路用于接收用户的控制指令,并将其转化为电机驱动信号。
我们采用了微处理器进行控制电路的设计,利用其IO口和相关外围电路实现与电机驱动电路的连接。
2.3 电机驱动电路电机驱动电路通过给定特定的电流和方向信号,控制步进电机的转动。
我们采用了步进电机驱动芯片进行电机驱动电路的设计,驱动芯片能够根据输入信号的变化,控制电机按照给定的步进角度旋转。
3. 软件开发软件开发包括电机控制程序的编写和电机控制界面的设计。
3.1 电机控制程序电机控制程序根据用户的输入指令,通过控制电路向电机驱动电路发送正确的信号,从而控制电机转动。
我们采用了C语言进行程序编写,结合控制电路的IO 口进行控制信号的生成。
3.2 电机控制界面电机控制界面是用户与系统进行交互的接口。
我们设计了一个简单的图形用户界面,用户可以通过该界面设置电机的运行参数,包括步进角度、转速等。
4. 性能测试为了验证步进电机驱动系统的性能,我们进行了一系列的性能测试。
4.1 步进角度测试我们通过设置不同的旋转角度,测试步进电机在给定角度下的准确度。
测试结果显示,步进电机能够非常稳定地按照给定角度旋转。
4.2 转速测试转速测试用于检验步进电机在不同速度下的运行情况。
实验结果表明,步进电机能够在不同速度下保持平稳运行,并且具有较高的转速稳定性。
4.3 负载能力测试负载能力测试用于测试步进电机在不同负载情况下的运行情况。
我们通过增加外加负载,测试了步进电机在不同负载下的转速和转矩。
(封面)XXXXXXX学院微机原理课程设计实验报告题目:院(系):专业班级:学生姓名:指导老师:时间:年月日课题名:步进电机控制一、课题内容和提示:编程提示:(1)步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机做步进式旋转。
调节输入脉冲的频率可改变步进电机的转速。
(2)编写程序使步进电机按正转10圈,反转5圈,再正转10圈,再反转5圈的规律旋转。
(3)调整延时参数,使步进电机的转动速度为每秒5转。
二、报告要求:每秒5转对应的延时参数是多少?,这个数字与微机的速度有什么关系?为什么?三、设计思路:(1)前言:步进电机具有控制简便、定位准确等特点。
随着科学技术的发展,在许多领域将得到广泛的应用。
鉴于传统的脉冲系统移植性不好,本文提出微机控制系统代替脉冲发生器和脉冲分配器,用软件的方法产生控制脉冲,通过软件编程可以任意设定步进电机的转速、旋转角度、转动次数和控制步进电机的运行状态。
以简化控制电路,降低生产成本,提高系统的运行效率和灵活性。
在此基础上提出了双三拍步进电机程序控制的硬件接口电路、程序流程图和汇编程序。
步进电机是自动控制系统中常用的执行部件。
步进电机的输入信号为脉冲电流,它能将输入的脉冲信号转换为阶跃型的角位移或直线位移,因而步进电机可看作是一个串行的数/模转换器。
由于步进电机能够直接接受数字信号,而不需数/模转换,所以使用微机控制步进电机显得非常方便。
(2)步进电机有以下优点:(1)通常不需要反馈就能对位置和速度进行控制;(2)位置误差不会积累;(3)与数组设备兼容,能够直接接收数字信号;(4)可以快速启停。
(3)步进电机的工作原理:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
第1篇一、实验目的1. 理解步进电机的工作原理及控制方法。
2. 掌握单片机与步进电机驱动模块的接口连接方法。
3. 学习使用C语言编写程序,实现对步进电机的正反转、转速和定位控制。
4. 通过实验,加深对单片机控制系统的理解。
二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是控制精度高、响应速度快、定位准确。
步进电机控制实验主要涉及以下几个方面:1. 步进电机驱动模块:常用的驱动模块有ULN2003、A4988等,它们可以将单片机的数字信号转换为步进电机的控制信号。
2. 单片机:单片机是整个控制系统的核心,负责接收按键输入、处理数据、控制步进电机驱动模块等。
3. 步进电机:步进电机分为单相、双相和三相等类型,本实验使用的是双相四线步进电机。
三、实验设备1. 单片机开发板:例如STC89C52、STM32等。
2. 步进电机驱动模块:例如ULN2003、A4988等。
3. 双相四线步进电机。
4. 按键。
5. 数码管。
6. 电阻、电容等元件。
7. 电源。
四、实验步骤1. 硬件连接(1)将步进电机驱动模块的输入端(IN1、IN2、IN3、IN4)分别连接到单片机的P1.0、P1.1、P1.2、P1.3口。
(2)将按键的输入端连接到单片机的P3.0口。
(3)将数码管的段选端连接到单片机的P2口。
(4)将步进电机驱动模块的电源端连接到电源。
(5)将步进电机连接到驱动模块的输出端。
2. 编写程序(1)初始化单片机I/O端口,设置P1口为输出端口,P3.0口为输入端口,P2口为输出端口。
(2)编写按键扫描函数,用于读取按键状态。
(3)编写步进电机控制函数,实现正反转、转速和定位控制。
(4)编写主函数,实现以下功能:a. 初始化数码管显示;b. 读取按键状态;c. 根据按键状态调用步进电机控制函数;d. 更新数码管显示。
3. 调试程序(1)将程序烧写到单片机中;(2)打开电源,观察数码管显示和步进电机运行状态;(3)根据需要调整程序,实现不同的控制效果。
1、设计目的与要求1.1、设计目的(1)了解步进电机的结构和工作原理。
(2)进一步掌握步进电机的控制方法。
(3)进一步掌握单片机硬件和软件的综合设计方法。
(4)能够使用电路仿真软件进行电路调试。
1.2、设计要求实现功能(1)电机工作方式为四相八拍;(2)实现电机的启、停功能;(3)实现电机的正、反转功能;(4)实现电机的加、减速功能.2、、整体设计方案2.1 、系统总体方案此次系统设计是采用单片机实现对步进电机的手动控制。
由单片机产生的脉冲信号通过单片机传送到驱动电路,脉冲信号经过放大后输出到步进电机,功率放大后驱动步进电机的转动。
步进电机是纯粹的数字控制电机,能够将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度[4]。
此次设计以单片机为核心,通过软件和硬件的结合实现步进电机的启停、正转、反转、加速、减速功能,并且步进电机所处的状态用相应的发光二极管来显示,可以显示速度以及方向。
用数码管显示速度和驱动方式。
电路主要通过三大块来设计,包括驱动模块设计、显示模块设计和按键控制模块设计。
此次设计预期实现的功能简述如下几点:(1)、用按键来控制步机电机的工作状态;(2)、能够切换三种工作模式;(3)、在不同的工作模式下能通过按键控制其正转、反转、加速、减速并且在工作过程中能够切换驱动模式;(4)、显示器要实现在驱动选择时能显示电机在哪一种模式下工作,而且在速度加减时能显示其1-7个档位的速度,并在状态显示中可以见证速度的快慢;(5)、利用显示器显示电机的正反转情况。
具体操作方案:首先,先在查阅资料的基础上,进行总体的理论分析与设计;其次,根据预期达到期望功能的要求设计系统方框图;然后,结合系统框图设计画出一个硬件电路图,能实现工作模式选择、正反转、加减速等功能;最后,根据硬件电路设计,编写程序并运用KEIL软件编译调试,之后结合程序对所设计的控制电路在Proteus中选择好元器件连接好,检查无误之后进行仿真。
课程设计报告单片机课程设计课程设计题目:步进电机无级调速系统设计姓名:学号:专业:班级:指导教师:10年4月29 日目录摘要随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。
研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。
步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。
采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。
软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。
本设计是采用AT89C51单片机对步进电机的控制,通过IO口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机;同时,用 4个按键来对电机的状态进行控制,并用数码管动态显示电机的转速。
系统由硬件设计和软件设计两部分组成。
其中,硬件设计包括AT89C51单片机的最小系统、电源模块、键盘控制模块、步进电机驱动(集成达林顿ULN2003)模块、数码显示(SM420361K数码管)模块、测速模块(含霍尔片UGN3020)6个功能模块的设计,以及各模块在电路板上的有机结合而实现。
软件设计包括键盘控制、步进电机脉冲、数码管动态显示以及转速信号采集模块的控制程序,最终实现对步进电机转动方向及转动速度的控制,并将步进电机的转动速度动态显示在LED数码管上,对速度进行实时监控显示。
软件采用在Keil软件环境下编辑的C语言。
本系统具有智能性、实用性及可靠性的特点。
本控制系统的设计采用实验室中的试验箱单片机控制,通过人为按动各开关实现步进电机的开关,以及电机的加速及减速功能,另外还增加可设正反转的功能,具有灵活方便、适应范围广易懂的特点,能够满足实现自身实践动手能力提高的需求。
一、设计任务与要求本设计的目的是以单片机为核心设计出一个单片机控制步进电机的控制系统。
本系统采用8279作为控制单元,通过键盘实现对步进电机转动方向及转动速度的控制,并且将步进电机的转动速度动态显示在LED数码管上。
设计的步进电机控制系统应具有以下功能:1. 步进电机的启停控制;2.步进电机的正反转控制;3. 步进电机的加速控制;4. 步进电机的减速控制;5. 步进电机转速的动态显示。
二、硬件设计1、硬件电路框图图2.1 2、电路分析2.1单片机最小电路图2.1.1单片机最小电路由电源电路、复位电路、晶振电路组成:(1)电源电路(如图2.1.1)中C1(0.1uF的电容)、C2(47.uF的电容)起滤波作用,C1过滤高频信号,C2过滤低频信号。
图2.1.2(2)复位电路(如图2.1.2),当VCC上电时,C充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。
工作期间,K1闭合时,C放电;K1断开时,C又充电,在10K电阻上出现电压,使得单片机复位。
图2.1.3(3)在晶振电路(如图3.1.3)中,晶振采用12M的晶振,实现1us的机器周期。
图2.1.42.2步进电机驱动电路图2.2ULN2003A资料:ULN2003 的每一对达林顿都串联一个 2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。
它是双列16脚封装,NPN晶体管矩阵,最大驱动电压=50V,电流=500mA,输入电压=5V,适用于TTL COMS,由达林顿管组成驱动电路。
ULN是集成达林顿管IC,内部还集成了一个消线圈反电动势的二极管,它的输出端允许通过电流为200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。
用户输出口的外接负载可根据以上参数估算。
采用集电极开路输出,输出电流大,故可直接驱动继电器或固体继电器,也可直接驱动低压灯泡。
通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。
2.3键盘显示电路图2.38279特点:(1)可同时进行键盘扫描及文字显示;(2)键盘扫描模式;(3)传感器扫描模式;(4)激发输入模式;(5)8乘8键盘FIFO(先进先出);(6)具有接点消除抖动,2键锁定及N键依此读出模式;(7)双排8位数或双排16位数的显示器;(8)右边进入或左边进入。
16位字节显示存储器。
8279引脚说明<1>DB0~DB7:双向数据总线。
在CPU与8279间做数据与命令传送。
<2>CLK:8279的系统时钟,100KHz为最佳选择。
<3>RESET:复位输入线。
输入HI时可复位8279。
<4>CS:芯片选择信号线。
当这个输入引脚为低电平时,可将命令写入8279或读取8279的数据。
<5>A0:缓冲器地址选择线。
A0=0时,读写一般数据;A0=1时,读取状态标志位或写入命令。
<6>RD:读取控制线。
RD=0时,8279输送数据到外部总线。
<7>WR:写入控制线。
WR=0时,8279从外部总线接收数据。
<8>IRQ:中断请求。
平常IRQ为LO,在键盘模式下,每次读取FIFO/SENSOR RAM的数据时,IRQ变为HI,读取后转为LO;在传感器模式下,只要传感器一有变化,就会使IRQ变为HI,读取后转为LO。
<9>SL0~SL3:扫描按键开关或传感器矩阵及显示器,可以是编码模式(16对1)或解码模式(4对1)。
<10>RL0~RL7:键盘/传感器的返回线。
无按键被按时,返回线为HI;有按键被按时,该按键的返回线为LO。
在激发输入模式时,为8位的数据输入。
<11>SHIFT:在键盘扫描模式时,引脚的输入状态会与其它按键的状态一同储存(在BIT6),内部有上拉电阻,未按时为HI,按时为LO。
<12>CNTL/STB:在键盘扫描模式时,引脚的输入状态会与SHIFT以及其它按键的状态同一储存,内部有上拉电阻,未按时为HI,按时为LO。
在激发输入模式时,作为返回线8位数据的使能引脚。
<13>OUTA0~OUTA3:动态扫描显示的输出口(高4位)。
<14>OUTB0~OUTB3:动态扫描显示的输出口(低4位)。
<15>BD:消隐输出线。
一、电路原理图与说明图3.1四、软件设计流程图与源程序清单及注解4.1 软件设计流程图图4.1图4.2图4.34.2程序清单Z8279 EQU 8701H ;8279状态口地址D8279 EQU 8700H ;8279数据口地址PI EQU 8300HDIRE EQU 30H ;转的形式STAS EQU 31H ;相位SPED EQU 32H ;速度指针0~3SPEDED_VAL EQU 33HKEY_VAL EQU 34HDISPED_SBUF0 EQU 35HDISPED_SBUF1 EQU 36HDISPED_SBUF2 EQU 37HORG 0000HLJMP STARTORG 000BHLJMP INT0_PORG 001BHLJMP INT1_PORG 0100HSTART: MOV SP,#60HLCALL INTI8279LCALL INT_T0LCALL INT_T1MOV DIRE,#02HMOV SPED,#04HMOV STAS,#077HSETB EAINTI8279: MOV DPTR,#Z8279 ;MOV A,#0D3HMOVX @DPTR,AMOV DPTR,#Z8279;MOV A,#000H;MOVX @DPTR,AMOV DPTR,#Z8279;MOV A,#038;MOVX @DPTR,ANOPRETINT_T0: MOV TMOD,#011HMOV TH0,#0FFH;MOV TL0,#0FEHCLR PT0SETB ET0SETB TR0RETINT_T1: MOV TMOD,#011HMOV TH1,#04CH ;定时时间为50mSMOV TL1,#000HSETB PT1SETB ET1SETB TR1RETINT0_P: PUSH ACC ;堆栈LCALL LP0 ;步进电机控制程序EXIT0: MOV TH0,#0FFH ;重装定时初值MOV TL0,#0FEHPOP ACCRETILP0: MOV R7,SPEDED_VALLP1: LCALL DELAY ;延时决定速度DJNZ R7,LP1 ;相位转动MOV A,DIRECJNE A,#00H,LP2 ;顺时针转MOV A,STASRL AMOV STAS,AANL A,#0FHMOV P1,A ;相位输出LJMP LP5LP2: CJNE A,#01H,LP3 ;逆时针转MOV A,STASRR AMOV STAS,AANL A,#0FHMOV P1,A ;相位输出LJMP LP5LP3: CJNE A,#02H,LP5 ;停转LJMP LP5LP5: NOPRETDELAY: MOV R3,#20H ;延时子程序DELAY1: MOV R4,#04FHDJNZ R4,$DJNZ R3,DELAY1RETINT1_P: PUSH ACC ;堆栈LCALL KD_KB ;键盘扫描处理LCALL SBUF_DISPED0 ;LED灯显示LCALL LEDD_PROC0EXIT1: MOV TH1,#04CH ;重装定时初值MOV TL1,#000HPOP ACCRETIKD_KB: MOV DPTR,#Z8279 ;读状态字MOVX A,@DPTRANL A,#0FHJZ KD_KB1 ;表示有键按下MOV A,#40H ;读FIFO/传感器RAM命令MOVX @DPTR,AMOV DPTR,#D8279MOVX A,@DPTRANL A,#3FH ;键值最大为64,屏蔽不用位MOV KEY_VAL,ALCALL JP0KD_KB1: NOPRETKEY0: MOV A,KEY_VALUCJNE A,#0AH,KEY1LCALL KA0LJMP KEY8KEY1: CJNE A,#0BH,KEY2LCALL KEY0LJMP KEY8KEY2: CJNE A,#0CH,KEY8LCALL KEY0LJMP KEY8KEY8: NOPRETKA0: MOV A,DIRECJNE A,#00H,KA2 ;级数循环增加INC SPEDMOV A,SPEDCJNE A,#04H,KA1MOV SPED,#00HKA1: LCALL SPEDED_LOAD0LJMP KA5 ;切换转向KA2: MOV SPED,#00HMOV DIRE,#00HMOV SPEDED_VAL,#61HLJMP KA5KA5: NOPRETSPEDED_LOAD0: MOV A,SPEDCJNE A,#00H,SPEDED_LOAD1MOV SPEDED_VAL,#050HLJMP SPEDED_LOAD8SPEDED_LOAD1: CJNE A,#01H,SPEDED_LOAD2MOV SPEDED_VAL,#020HLJMP SPEDED_LOAD8SPEDED_LOAD2: CJNE A,#02H,SPEDED_LOAD3MOV SPEDED_VAL,#00AHLJMP SPEDED_LOAD8SPEDED_LOAD3: CJNE A,#03H,SPEDED_LOAD8MOV SPEDED_VAL,#005HLJMP SPEDED_LOAD8SPEDED_LOAD8: NOPRETKB0: MOV A,DIRECJNE A,#01H,KB2 ;级数循环增加INC SPEDMOV A,SPEDCJNE A,#04H,KB1MOV SPED,#00HKB1: LCALL SPEDED_LOAD0LJMP KB5 ;切换转向KB2: MOV SPED,#00HMOV DIRE,#01HMOV SPEDED_VAL,#61HLJMP KB5KB5: NOPRETKC0: MOV A,DIRECJNE A,#02H,KC1 ;重复LJMP KC5KC1: MOV DIRE,#02H ;切换转向MOV SPED,#04HLJMP KC5KC5: NOPRETSBUF_DISPED0: MOV A,SPEDMOV DPTR,#SPEDED_TABMOVC A,@A+DPTRMOV B,#100DIV ABMOV DISPED_SBUF0,AMOV A,BMOV B,#10DIV ABMOV DISPED_SBUF1,AMOV DISPED_SBUF2,BMOV DPTR,#Z8279 ;写显示命令:且数码管地址自动加1MOV A,#090HMOVX @DPTR,AMOV R0,#DISPED_SBUF2MOV R6,#03HSBUF_DISPED1: MOV DPTR,#LEDSEG_TABMOV A,@R0MOVC A,@A+DPTRMOV DPTR,#D8279MOVX @DPTR,ADEC R0DJNZ R6,SBUF_DISPED1SBUF_DISPED2: NOPRETLEDSEG_TAB: DB03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH ;'0,1,2,3,4,5,6,7,8,9'DB 0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H,0FFH,0EFH ; 加点的数值DB 000H;灭码SPEDED_TAB: DB 010H,050H,090H,0F0H,#000HEND五、心得体会经过这么长时间的努力终于将课程设计完成了,在这次设计中,我们的电路知识得到了很好的补充和巩固,还使我提高了将理论知识运用到实际中的能力。