《嵌入式系统及应用》课程设计报告---步进电机控制

合集下载

嵌入式控制系统工程设计课程设计

嵌入式控制系统工程设计课程设计

目录1.引言 (2)2.基本原理 (2)2.1步进电机概况 (2)2.2步进电机工作原理 (4)2.3步进电机分类 (6)3.硬件系统选择 (7)3.1核心处理器选择 (7)3.2元器件选择及接口设置 (8)4.硬件原理结构框图 (12)5.任务划分及程序大框图 (13)6.PCB设计及成本估算 (15)7.总结 (17)参考文献 (19)1.引言步进电机是一种控制电机,由于不使用反馈电路就能进行速度控制及定位控制,既所谓的电机开环控制,故越来越多的被应用于现代工业控制系统中。

其应用主要以处理办公业务能力很强的OA(Office Automation,办公自动化)机器和FA(Factory Automation,工厂自动化)机器为核心,并广泛应用于医疗器械、计量仪器、汽车、游戏机等[1]。

传统工业中的步进电机控制系统大多数采用的是8位单片机如89C51系列作为控制内核,其设计简单、价格低廉且能满足一般的控制要求,但是由于单片机本身存储空间小,外设资源较少,往往需要与PC机联机控制才能实现更高级的功能,这就带来了实时性能较差,人际交互较为复杂,操作麻烦等问题[2]。

如果采用功能强大的32位ARM处理器作为核心,集成电源、电机控制板、步进电机和人机界面于一体,形成一个完整的嵌入式一体化工业控制机,可以使得控制系统对步进电机的控制具有更高的实时性和可靠性、更友好的人机界面、更高的可操作性、更低的总成本和更高的控制精度。

本文基于这样一种设想,采用ARM7内核的LPC2131处理器为核心,设计了一个具有实时操作性和人机界面的步进电机控制器。

2.基本原理2.1步进电机概况[1]步进电机属于DC驱动的同步电机,但无法直接用DC或AC电源来驱动,需配备驱动器才能使用,所以步进电机的运行需要驱动电路。

步进电机驱动电路的任务,是按顺序指令切换DC电源的电流流入步进电机的各相线圈。

图2.1为三相VR型步进电机的绕组外加电源示意图,其中驱动电路用开关来表示。

《嵌入式系统及应用》步进电机控制设计

《嵌入式系统及应用》步进电机控制设计

《嵌入式系统及应用》步进电机控制设计目录一、设计任务 (1)二、工作原理 (1)1、步进电机电路工作原理 (1)2、LED显示电路 (2)3、键盘电路原理图 (2)三、设计原理及步骤 (2)四、内存使用分配表 (3)五、设计说明及流程 (3)1、数码管显示字形 (3)2、键盘输入模块 (4)3、步进电机控制模块 (4)六、程序清单 (5)七、设计心得 (11)一、设计任务1)从键盘上输入步进电机正、反转命令,转速参数(16级)和转动步数显示在LED显示器上。

显示器上显示:第一位为0表示正转,为1表示反转;第二位0~F为转速等级,第三到第六位设定步数。

2)单片机依显示器上显示的正、反转命令,转速级数和转动步数进相应动作,转动步数减为零时停止转动。

测量步进电机绕组两端电压,并在显示器上显示。

二、工作原理1、步进电机电路工作原理步进电动机是一种将电脉冲信号转换成相应角位移或线位移的电动机,它的运行需要专门的驱动电源,驱动电源的输出受外部的脉冲信号控制。

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

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

在数字控制系统中,它既可以用作驱动电动机,也可以用作伺服电动机。

它在工业过程控制中得到广泛的应用,尤其在智能仪表和需要精确定位的场合应用更为广泛。

如图2.1,当有一相绕组被通电激励时,磁通从正相齿,经过软铁芯的转子,并以最短路径流向负相齿,为使磁通路径最短,在磁场力的作用下,转子被迫移动,使最近的一对齿与被激励的一相对准。

那么,通过对它每相线圈中电流的顺序切换可使电机作步进式旋转。

图2.1步进电机工作原理图2.2 步进电机控制电路2、LED显示电路LED显示电路工作原理如图2.3。

图2.3 LED显示电路工作原理3、键盘电路原理图键盘电路原理如图2.4。

图2.4 键盘电路原理三、设计原理及步骤系统中使用24BYJ-48(四相八拍)型号步进电机,它使用+5V直流电源,步距角为5.625度,电机线圈由A、B、C、D四相组成。

嵌入式系统课程设计报告

嵌入式系统课程设计报告

NORTH CHINA UNIVERSITY OF SCIENCE AND TECHNOLOGY 嵌入式系统课程设计报告学生姓名:学号:学院:专业班级:指导教师:同组成员:2016年12 月26 日一、课程设计目的本课程设计是在《嵌入式系统原理与应用》课程的基础上,通过软件编程及仿真调试的实践,进一步掌握嵌入式系统的原理和应用方法,是毕业设计前的一次重要实践,为今后从事嵌入式系统相关工作岗位打下良好的基础。

二、设计题目及要求2.1 设计题目:基于STM32和uC/OS-II的多任务设计2.2 功能实现:使用uC/OS-II的任务管理函数和STM32库函数控制相应的寄存器,完成一个多任务设计。

整个设计共有4个任务,驱动一个LED指示灯闪烁、由3个LED指示灯组成的流水灯、驱动蜂鸣器和利用swd方式进行printf输出。

2.3 设计要求:理解和熟练使用KEIL软件、STM32寄存器、STM32库函数和uC/OS-II 任务管理函数,用KEIL软件完成编程和调试,下载到开发板中实现4个设定的任务,并完成课程设计报告。

四个任务分别为:(1)驱动1个LED指示灯闪烁、(2)由3个LED指示灯组成流水灯(3)驱动蜂鸣器发出响声。

(4)利用swd方式进行printf输出。

三、设计原理说明3.1 硬件说明本次课程设计主要使用的是STM32 神舟IV 号开发板为基础进行课程设计的,本节将详细介绍神舟IV号开发板的各部分硬件原理与实现。

(1)开发板资源图(2)MCU开发板的处理器是STM32F107VCT6,该处理器基于ARM V7 架构的Cortex-M3 内核,主频72Mhz,内部含有256K字节的FLASH 和64K字节的SRAM,LQFP100 封装。

(3)蜂鸣器开发板板载一个无源蜂鸣器,用于产品告警或声音提醒。

蜂鸣器连接到了处理器的PA3管脚,当处理器的PA3管脚输出低电平时蜂鸣器开始鸣响,反之处理器的PA3管脚输出高电平时蜂鸣器停止鸣响.(4)指示灯开发板提供了1个电源指示灯和4路通用LED指示灯。

嵌入式应用实验报告,实验三 步进电机实验信科10级cumt

嵌入式应用实验报告,实验三 步进电机实验信科10级cumt

实验三步进电机实验一、步进电机简介:单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。

多相步进电动机有多相方波脉冲驱动,用途很广。

使用多相步进电动机时,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各项绕组。

每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。

正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。

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

常用的步进电机:反应式步进电动机(VR):结构简单,生产成本低,步距角可以做的相当小,但动态性能相对较差。

永磁式步进电动机(PM):出力大,动态性能好;但步距角一般比较大。

混合步进电动机(HB):综合了反映式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机。

二、实验原理:本实验采用四相步进电机(故只介绍其原理):使用四相式步进电机,工作模式为两相四拍。

系统中采用一路I/O 进行脉冲输出,通过CPLD控制器进行脉冲分配,在通过功率放大后,进入步进电机的各相绕组。

电机有两种工作模式:半步模式,整步模式。

整步模式下的步距角为18o,半步模式则为9o,(1)半步模式脉冲信号图:脉冲分配信号(2)整步模式:脉冲信号图:脉冲分配信号实验原理图:实验系统中的步进电机的四相由0x28000006的bit0~bit3控制,bit0对应于MOTOR_A,bit1对应于MOTOR_B,bit2对应于MOTOR_C,bit3对应于MOTOR_D。

通过编制脉冲分配表表控制步进电机。

驱动方法我们驱动步进电机的话有好几种方法,个人觉得比较简单也比较常用的还是下面这两种,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.,第一:AB高,CD低,电流则如下图黄色线所示方向流动,产生的磁场使得电机转子顺时针转动90度,转过90度之后就停在那里了;第二:BC高,AD低,电流如下图所示,同样道理,电机转子转过90度;第三,CD高,AB低,如下图:第四,DA高,BC低,如下图:如此一循环之后,电机转子就转过了一周,如果这样循环这样一个动作的话,那电机就会转起来了!现在大家应该明白了什么是四相四拍了吧!同理,四相八拍也是一样的道理.三、实验基本步骤:1.将仿真器及usb线,com串行线,S3C2410实验板与电脑连接好。

嵌入式系统原理及运用课程设计

嵌入式系统原理及运用课程设计

摘要嵌入式系统开始于20世纪80年代单片机的使用。

嵌入式技术已经渗透到各个领域,且与人们的日常生活密不可分,给人们生活和工业生产带来极大方便。

本文论述了嵌入式系统概念、嵌入式处理器、嵌入操作系统和嵌入软件开发环境,解释了嵌入式系统组成中的各个部分。

嵌入式操作系统具有良好的可移植性,能够用在根据应用要求选择的微处理器中。

嵌入式系统设计带来了与传统系统设计全然不同的挑战。

嵌入式系统已成为计算机领域的一个重要组成部分。

广泛讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。

嵌入式系统可以通过各种无线形式和有线形式的网络连接方式实现它们之间的相互连接。

因此,在网络通信市场上极具生命力。

关键词嵌入式系统,嵌入式操作系统,μC/OS-ⅡABSTRACTThe Embedded system commenced with the use of SCM in 1980’s. The embedded technology has penetrated in every field. It’s inseparable with our daily life and it brings great convenience to people’s life and the industry.This paper discusses the concept of the embedded system, the embedded processor, the embedded operating system and the embedded software developing environment, explains the components of the embedded system.The embedded system has great compatibility. It can be used in MPU selected according to the application. The design of the embedded system brings the challenge witch is different with the traditional design.The embedded system has been an important component of the computer field. Universally speaking, all the private soft-hardware systems with MPU can be named with embedded system. The embedded systems can connect with each other through wireless and cable connecting way. Therefore, it is animate in the market of the communication networks.KEY WORDS Embedded system, Embedded operating system,μC/OS-Ⅱ目录第一章嵌入式系统概述 (1)1.1 嵌入式系统简介 (1)1.2 嵌入式系统的分类 (3)1.3 嵌入式系统设计的特点 (3)第二章嵌入式处理器 (5)2.1 嵌入式处理器简介 (5)2.2 常用嵌入式处理器 (6)第三章嵌入式操作系统 (7)3.1 嵌入式操作系统简介 (7)3.1.1 嵌入式操作系统的机制 (8)3.1.2 嵌入式操作系统的特点: (9)3.1.3 嵌入式操作系统的分类 (10)3.2 μC/OS-Ⅱ嵌入式操作系统 (10)3.2.1 μC/OS-Ⅱ实时操作系统结构 (11)3.2.2 μC/OS-Ⅱ嵌入式操作系统的特点 (11)3.2.3 μC/OS-Ⅱ的移植 (13)第四章嵌入式系统编程语言 (15)4.1 嵌入式系统的高级语言特点 (15)4.2 嵌入式系统高级语言开发过程 (15)4.3 嵌入式系统编程与系统硬件 (17)4.3.1 存储器映射 (17)4.3.2 I/O映射 (18)结束语 (19)参考文献 (20)第一章嵌入式系统概述1.1 嵌入式系统简介何谓嵌入式系统?根据英国电机工程师协会的定义所做的翻译,“嵌入式系统为控制、监视或辅助设备、机器或甚至工厂操作的装置”。

步进电机控制课程设计报告

步进电机控制课程设计报告

(封面)XXXXXXX学院微机原理课程设计实验报告题目:院(系):专业班级:学生姓名:指导老师:时间:年月日课题名:步进电机控制一、课题内容和提示:编程提示:(1)步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机做步进式旋转。

调节输入脉冲的频率可改变步进电机的转速。

(2)编写程序使步进电机按正转10圈,反转5圈,再正转10圈,再反转5圈的规律旋转。

(3)调整延时参数,使步进电机的转动速度为每秒5转。

二、报告要求:每秒5转对应的延时参数是多少?,这个数字与微机的速度有什么关系?为什么?三、设计思路:(1)前言:步进电机具有控制简便、定位准确等特点。

随着科学技术的发展,在许多领域将得到广泛的应用。

鉴于传统的脉冲系统移植性不好,本文提出微机控制系统代替脉冲发生器和脉冲分配器,用软件的方法产生控制脉冲,通过软件编程可以任意设定步进电机的转速、旋转角度、转动次数和控制步进电机的运行状态。

以简化控制电路,降低生产成本,提高系统的运行效率和灵活性。

在此基础上提出了双三拍步进电机程序控制的硬件接口电路、程序流程图和汇编程序。

步进电机是自动控制系统中常用的执行部件。

步进电机的输入信号为脉冲电流,它能将输入的脉冲信号转换为阶跃型的角位移或直线位移,因而步进电机可看作是一个串行的数/模转换器。

由于步进电机能够直接接受数字信号,而不需数/模转换,所以使用微机控制步进电机显得非常方便。

(2)步进电机有以下优点:(1)通常不需要反馈就能对位置和速度进行控制;(2)位置误差不会积累;(3)与数组设备兼容,能够直接接收数字信号;(4)可以快速启停。

(3)步进电机的工作原理:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

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

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

嵌入式步进电机控制系统

嵌入式步进电机控制系统

步进电机控制系统步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。

此设计主要控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。

一、硬件设计(一)、控制方式分析和原理图设计由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用信号发生装置来对它进行控制,而实现这一任务的主要器件就是单片机,此设计主要是解决步进电机的启停、换向、转速控制三方面:1、步进电机的换向控制如果给定工作方式正序换相通电,步进电机正转。

若步进电机的励磁方式为三相六拍,即A→AB→B→BC→C→CA→A。

如果按反序通电换相,即A→AC→C→CB→B→BA→A,则电机就反转。

其他方式情况类似。

2、步进电机的速度控制如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。

两个脉冲的间隔越短,步进电机就转得越快。

调整送给步进电机的脉冲频率,就可以对步进电机进行调试。

3、步进电机的起停控制步进电机由于其电气特性,运转时会有步进感。

为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,跳过电机运行的平稳性。

在步进电机停转时,为了防止因惯性而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机转轴不能自由转动。

4、从所要实现的目标来看,就不难设计它的硬件连接部分,其具体硬件设计原理图如下图所示:(二)、电路的设计本设计的硬件电路包括控制电路、最小系统、驱动电路、显示电路四大部分。

嵌入式系统原理与应用课程设计报告书

嵌入式系统原理与应用课程设计报告书

嵌入式系统原理及应用课程设计报告题g: 电子时钟的设计与实现班级:文专电0931姓名:阳学号:3试验台号:10 ____________________指导老师:邱秀芹______________程序成绩:____________________报告成绩:____________________ 总成绩:优良中及格不及格2012年2月25日一.课程设计目的通过该课程设计将嵌入式系统原理及应用课程中所学的处理器和接口等技术应用于实际设计中。

通过中断、PWM定时器、串口、SIO、GPIO等技术在实验平台上进行综合设计,在理论和实验的基础上进一步提高综合设计能力。

二.课程设计容及功能要求1.通过一个PWM定时计数器,釆用定时中断的功能,设计能够在LED±进行时分秒显示的时钟;2.通过键盘实现对钟的功能;3.实现闹钟的功能,闹钟的时间由键盘输入进行设定;4.将时钟在超级终端上显示;时间的设定可以通过超级终端实现;三.功能实现1・总体功能框图2•详细设计:(将所设计的各部分的功能程序框图及相关程序代码进行详细的描述)①.#include M uhal.h H#mclude H myuart.h n#mclude H KeyBoaid.h H#mclude H Tuner.h n#mclude H Isr.h n#include H44b.h H#mclude ”Zlg7289.1T#mclude n def.h n#mclude H lcd320.h Hmt T iiner3 INT C ou nt=O;iiit hour = 0 ;iiit minute = 0 ;#pragnia uupoil(_use_no_senuliostmg_swi) // ensuie no functions that use senuliostmg mt maiii(void)iiit clock Ji = 23 ;iiit clock_m = 59 ;iiit clock_s = 0 ;iiit kev ;J 7iiit val=0;ARMTaigetlnitQ; 〃开发版初始化Zlg7289_Reset();Iiut_Tmier3(l 00,16.40000,20000);INTS_OFFQ;//Disable intemipt ill PSRSetISR_In 忙mipt(INT_TIMER3_OFFSEI;Timei3_ISR,0);Open_INT_GLOBAL();Open_INT(EIT_TIMER3);INTS_ONQ;//Enable intemipt ill PSRStail_Timer3();key=Zlg7289_ReadKey();Stop_Timei30 ;Delay(100); 〃按键值赋给key o〃防止中断影if( key = 18)〃秒设置,键盘3按卜•时扫描值为18 〃延时让数码管频率显示可见。

嵌入式PWM课程设计报告

嵌入式PWM课程设计报告

《嵌入式系统》课程设计说明书基于S3C2410X PWM步进电机控制应用开发系、部:计算机与信息科学系组成员:李传颂、李佳文潘应成、马永光指导教师:秦辉职称:讲师专业:计算机科学与技术班级:计本0803班完成时间:2011年12月12日目录1、前言 (3)1.1 课题研究背景 (3)1.2 课程研究目的和意义 (3)2、开发环境及系统结构 (4)2.1 开发环境 (4)2.2 ARM2440实验箱介绍 (4)2.2.1 2440核心板规格: (5)2.2.2 2440实验箱底板规格: (5)2.3系统结构 (6)3、基于S3C2410X PWM步进电机控制应用开发 (7)3.1 PWM介绍 (7)3.1.1 PWM简介.................................. 错误!未定义书签。

3.1.2 S3C2410X定时器特性 (7)3.1.3 PWM控制寄存器 (7)3.2 基于S3C2410X PWM步进电机的硬件开发 (9)3.2.1 系统设计要求与方案确定 (9)3.2.2 PWM步进电机驱动电路设计 (9)3.3 基于S3C2410X PWM步进电机的软件开发 (11)3.3.1程序流程图 (11)3.3.2 应用程序设计 (12)3.3.3 功能测试 (17)4、总结 (19)参考文献 (20)1、前言1.1 课题研究背景随着3C融合进程和我国传统产业结构升级的加速,人们对设备越来越高的应用需要已经无法满足当前和未来高性能的应用与发展需求。

显然,嵌入式系统的软、硬件技术和开发手段,正日益受到重视,成为各领域技术创新的重要基础。

目前,嵌入式系统是近年来发展很快的计算机方面的学科方向,并迅速渗透到控制、自动化、仪器仪表等学科。

嵌入式方向包括了软硬件协同设计、嵌入式体系结构、实时操作系统、嵌入式产品设计等方面的知识,大于当代大学生,更需要掌握嵌入式系统设计的典型开发工具和开发核心技术。

嵌入式系统设计与应用课程设计报告

嵌入式系统设计与应用课程设计报告
if(send(sockfd,"Hello! I am Client.",100,0)==-1)
{
perror("send");
exit(1);
}
//接受从服务器返回的信息
if((numbytes = recv(sockfd,buf,100,0))==-1)
{
perror("recv");
exit(1);
(3)、把server.o下载到开发板中
(4)、在开发板上运行服务器端程序
#./server.o
socket success! Sockfd=3;
bind success;
Listening...
Hello!I amClient.
(5)、在PC机上运行客户端程序
#./client.o 192.168.0.50
(2) 硬件设备:PXA270开发板,PC机。
三、设计任务及要求
设计一套可远程调用求和函数并返回客户端的程序。
四、实现过程
4.1
1.程序sum.h
int sum();
2.程序sum.c
#includei=1,sum=0;
while(i<=100){
sum=sum+i;
#include <netinet/in.h>
#include <sys/socket.h>
int main(int argc,char *argv[])
{
int sockfd,numbytes;
char buf[100];
struct hostent *he;
struct sockaddr_in their_addr;

嵌入式原理与应用课程报告(步进电机)

嵌入式原理与应用课程报告(步进电机)

嵌入式系统原理与应用课程报告步进电机实验姓名:朱彦杰班级:11电子1学号:1115102061任课教师:李国刚一、设计目的1、了解直流电机和步进电机的工作原理。

2、学会 Linux 下用软件的方法实现步进电机的脉冲分配,用软件的方法代替硬件的脉冲分配器。

二、设计内容学习步进电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。

学习ARM 知识,要掌握I/O 的控制方法。

Linux 下编程实现ARM 的四路I/O 通道实现环形脉冲分配用于控制步进电机的转动。

三、实验设备及工具硬件:UP-NETARM2410-S 嵌入式实验平台、PC 机。

软件:PC 机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX 开发环境四、实验原理1.相关基础知识(1)、步进电机概述步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。

单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。

多相步进电动机有多相方波脉冲驱动,用途很广。

使用多相步进电动机时,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组。

每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。

正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。

由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。

(2)、步进电机的种类目前常用的步进电机有三类:①反应式步进电动机(VR)。

它的结构简单,生产成本低,步距角可以做的相当小,但动态性能相对较差。

②永磁式步进电动机(PM)。

它的出力大,动态性能好;但步距角一般比较大。

③混合步进电动机(HB)。

它综合了反应式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机。

嵌入式步进电机课程设计

嵌入式步进电机课程设计

嵌入式步进电机课程设计一、课程目标知识目标:1. 学生能理解步进电机的原理、结构和功能,掌握嵌入式系统中步进电机的控制方法。

2. 学生能描述步进电机与嵌入式系统之间的接口技术,了解相关参数的计算与调整方法。

3. 学生了解步进电机在嵌入式系统中的应用场景,如自动化控制、机器人等领域。

技能目标:1. 学生能够运用所学知识,完成步进电机的选型,并进行基本的参数计算。

2. 学生能够设计简单的嵌入式系统步进电机控制程序,实现步进电机的启停、转速控制和方向控制。

3. 学生能够分析步进电机控制过程中可能出现的问题,并学会调试和解决问题。

情感态度价值观目标:1. 学生通过本课程的学习,培养对嵌入式系统及步进电机控制技术的兴趣,提高学习的积极性和主动性。

2. 学生能够认识到步进电机在现实生活中的广泛应用,增强对所学知识实用性的认识,激发创新意识。

3. 学生在团队协作中培养沟通能力、协作精神和责任感,提高解决问题的能力。

本课程针对高中年级学生,结合学科特点,注重理论与实践相结合,旨在提高学生的动手操作能力和实际问题解决能力。

课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,进行有针对性的教学设计和评估。

二、教学内容1. 步进电机原理与结构:讲解步进电机的分类、工作原理、主要结构及其功能,使学生了解步进电机的基本知识。

- 教材章节:第三章第二节- 内容列举:步进电机原理、步进电机结构、步进电机分类2. 嵌入式系统与步进电机接口技术:介绍嵌入式系统与步进电机之间的接口电路设计,包括驱动电路、信号传输等。

- 教材章节:第四章第一节- 内容列举:接口电路设计、驱动电路、信号传输3. 步进电机参数计算与调整:讲解步进电机参数的计算方法,如步距角、转速、扭矩等,并介绍如何根据实际需求进行调整。

- 教材章节:第四章第二节- 内容列举:步进电机参数计算、参数调整4. 步进电机控制程序设计:学习嵌入式系统步进电机控制程序设计,包括启停、转速、方向控制等。

基于stm32的步进电机控制系统嵌入式课程设计

基于stm32的步进电机控制系统嵌入式课程设计

课程设计报告书题目: 基于stm32的步进电机控制系统课程:嵌入式系统课程设计专业:电子信息科学与技术2016年 4 月 15 日课程设计任务书信息工程学院课程设计成绩评定表摘要本文的主要工作是基于STM32步进电机控制系统的设计。

随着越来越多的高科技产品逐渐融入了日常生活中,步进电机控制系统发生了巨大的变化。

单片机、C语言等前沿学科的技术的日趋成熟与实用化,使得步进电机的控制系统有了新的的研究方向与意义。

本文描述了一个由STM32微处理器、步进电机、LCD显示器、键盘等模块构成的,提供基于STM32的PWM细分技术的步进电机控制系统。

该系统采用STM32微处理器为核心,在MDK的环境下进行编程,根据键盘的输入,使STM32产生周期性PWM信号,用此信号对步进电机的速度及转动方向进行控制,并且通过LCD显示出数据。

结果表明该系统具有结构简单、工作可靠、精度高等特点.关键词:STM32微处理器;步进电机;LCD显示;PWM信号;目录1 任务提出与方案论证 (5)1.1 任务提出 (5)1.2 方案论证 (5)2 总体设计 (6)2.1系统的硬件设计 (6)2.2控制系统软件设计 (6)3 详细设计及仿真 (8)3.1设计主要程序部分 (8)3.2调试与仿真 (9)4 总结 (10)5 实物图和仿真图 (11)1 任务提出与方案论证步进电机控制系统的整个设计中最重要的部分是利用PWM细分实现步进电机调速的处理,虽然PWM调速很早就开始研究应用,但如何用PWM细分调速的快速性和准确性至今仍是生产和科研的课题。

随着微电子技术的发展与普及,更多高性能的单片机应用使得PWM细分实现步进电机PWM调速的快速性和准确性都有了极大的提高。

1.1 任务提出总体方案根据课题要求,本设计采用STM32cortex-M3处理器,由SPGT62C19B 电机控制模块作为直流电机的驱动芯片,由ADC输入电位器产生调速命令,用TFT彩色LCD作为显示模块。

步进电机控制设计课设报告

步进电机控制设计课设报告

步进电机控制设计课设报告引言步进电机是一种电动机根据控制信号的脉冲数进行角度移动的设备。

它具有精准的位置控制、高转矩和低功耗等优点,被广泛应用于各个领域。

本次课设旨在设计一套步进电机控制系统,通过编程控制步进电机的转动角度,实现不同工作环境下步进电机的精确控制。

设计方案我们基于`Arduino`开发板和`EasyDriver`驱动板来搭建步进电机控制系统。

材料准备1. Arduino开发板2. EasyDriver驱动板3. 步进电机4. 电源5. 连接线硬件连接1. 首先,将Arduino开发板与EasyDriver驱动板通过引脚连接线连接好。

其中,Arduino的数字引脚9、10、11分别连接到EasyDriver驱动板的Step、Dir、EN引脚,GND与GND相连,以及VCC与5V相连。

2. 将EasyDriver驱动板与步进电机连接。

EasyDriver的A和B引脚分别与步进电机的两个相连接。

软件编写1. 首先,在Arduino开发环境中创建一个新的项目。

然后,导入`AccelStepper`库,该库提供了进行步进电机控制的相关功能。

2. 在代码中初始化步进电机对象,并设置电机类型为`FULL3WIRE`,也就是设置步进电机的引脚数为3。

3. 设置步进电机的速度和加速度等参数。

这些参数可以根据实际需求进行调整。

4. 在主循环中,通过调用步进电机对象的`runSpeedToPosition`函数来控制电机的转动角度。

参数为目标位置的步数。

如果希望电机一直转动,则可以将参数设置为`NAN`。

5. 最后,上传代码到Arduino开发板中运行。

实验过程及结果我们将步进电机控制系统连接好后,通过编写相应的代码进行控制。

首先,我们进行了简单的步进电机测试,调整电机的速度和加速度参数,分别观察电机的转动情况。

通过调整参数,我们成功实现了不同速度和加速度下电机的转动控制。

接着,我们设计了一个简单的应用场景来测试步进电机的精确控制能力。

《嵌入式系统及应用》步进电机控制设计

《嵌入式系统及应用》步进电机控制设计

《嵌入式系统及应用》步进电机控制设计嵌入式系统及应用是一门涉及嵌入式系统设计与应用的专业课程,在该课程中,步进电机控制设计是非常重要的内容之一、步进电机是一种常见的直流电机,它通过进行一定的步进控制可以实现精确的位置和速度控制。

在本文中,将从步进电机的原理、步进电机的控制方式、步进电机控制的设计流程、相关硬件电路和软件编程等方面进行详细的论述。

一、步进电机的原理步进电机由定子和转子组成,定子上有若干对电磁线圈,转子上有磁极。

当线圈通电时,定子会产生磁场,磁极会受到磁力的作用转动。

步进电机可以通过控制线圈通电的方式实现精确的角度控制。

步进电机的主要参数有步距角、转动速度、转动方向、扭距等。

二、步进电机的控制方式步进电机的控制方式主要包括单相励磁方式、双相励磁方式和四相励磁方式。

单相励磁方式是最简单的步进电机控制方式,只需使用一个电磁线圈来控制步进电机的转动。

双相励磁方式通过两个电磁线圈来控制步进电机的转动,可以提高步进电机的扭距和精度。

四相励磁方式是最常见的控制方式,通过四个电磁线圈交替通电,可以实现更加精确的控制。

三、步进电机控制的设计流程步进电机控制的设计流程主要包括选择步进电机型号、确定控制方式、设计驱动电路、编写控制程序等。

首先需要根据实际应用需求选择合适的步进电机型号,考虑到转动角度、转动速度和扭距等参数。

然后确定控制方式,根据控制方式选择合适的驱动电路方案,设计电路原理图并制作相应的电路板。

最后,根据驱动电路的要求编写相应的控制程序,实现步进电机的精确控制。

四、相关硬件电路步进电机控制所需要的硬件电路包括电源电路、驱动电路和控制电路。

电源电路主要用于供电,驱动电路用于提供电流和控制步进电机的转动方向,控制电路用于接收指令和发送控制信号。

电源电路一般使用直流电源,可以根据步进电机的额定电压和电流选择合适的电源。

驱动电路一般采用MOSFET、功率放大器等元器件来实现对步进电机的驱动,其中包括两相驱动、四相驱动等方式。

嵌入式系统的多路步进电机控制系统的设计

嵌入式系统的多路步进电机控制系统的设计

嵌入式系统的多路步进电机控制系统的设计摘要:随着我国科学技术的不断发展,嵌入式单片机被逐渐应用在各个行业中,其应用属于计算机技术的范围,将其应用在多路步进电机控制中可以构建嵌入式智能化系统,使多路步进电机控制更加完善。

本文对嵌入式系统的多路步进电机控制系统的设计进行探讨,分析了步进电机的工作原理,以嵌入式为创新渠道,对硬件电路设计、下位机软件设计、上位机系统设计展开研究,仅供参考。

关键词:嵌入式系统;多路步进电机;控制系统设计前言:我国科学技术的不断完善带动了步进电机的发展,且在实际应用中不断创新,比较传统电机发生了较大的变化,这样的革新也是步进电机的必然趋势。

本人从2016年11月份起直到目前在广州市极越电子有限公司从电子设备研发设计工作,一直担任高级嵌入式硬件工程师岗位,主要负责电子设备硬件设计工作,电子设备嵌入式软件开发工作,下面将对嵌入式系统的多路步进电机控制系统的设计展开论述。

一、步进电机工作的原理步进电机设计需要借助步进的转动,将脉冲电信号变成角位移动,有时也会这样可以给予电机的脉冲信号,相关技术人员设计的步进电机脉冲数需要符合实际需求。

步进电机的速度与脉冲频率成正比,且运行速度、运转位置都与脉冲数值哟管,且不会受到负载变化的影响。

步进电机在运行时,不可以直流电源工作,需要按照步进电机控制器设计进脉冲的方向,每当电动机发射一个脉冲,步进电机就相当于向前走近了一段距离,启动或停止都完全取决于脉冲的有无或频率的高低。

在通常情况下,步进电机会由多个部分组成,只要收到脉冲信号数,便会按照提前设置的电机运行方式进行运作[1]。

1.硬件电路设计(一)总体设计控芯片通过嵌入式以太网控制器w5500与上位机通信,通过SPI通信将上位机命令发送给主控制端STM32,得到驱动电机的脉冲数量,从而控制各路步进电机,在实际应用中需要采用ST公司的STM32F407系列微控制器,按照指令所需的频率精确达到目的位置,电机驱动芯片采用A4984SLPTR-T芯片,并选择混合式步进电机,如图1.所示。

嵌入式系统中的电机驱动与控制技术

嵌入式系统中的电机驱动与控制技术

嵌入式系统中的电机驱动与控制技术嵌入式系统是一种特殊的计算机系统,它通常被嵌入到其他设备或系统中,用于控制和管理各种电子设备。

在嵌入式系统中,电机驱动与控制技术起到了至关重要的作用。

电机驱动与控制技术是指通过电机驱动器和相关控制算法来对电机进行驱动和控制的技术。

本文将介绍嵌入式系统中的电机驱动与控制技术的基本原理及应用。

一、电机驱动技术1. 直流电机驱动技术直流电机是嵌入式系统中常用的电机类型之一。

直流电机驱动技术主要涉及到直流电机的供电和控制。

在直流电机驱动中,常用的供电方式有直流电源供电和交流电源供电两种。

直流电源供电方式简单可靠,适用于某些特定环境下;而交流电源供电方式则更为常见,通常需要通过整流电路将交流电转换为直流电供给电机。

控制方面,直流电机驱动通常采用脉宽调制(PWM)技术,通过改变占空比来控制电机的转速和转向。

2. 步进电机驱动技术步进电机是另一种常见的电机类型,其驱动方式与直流电机有所不同。

步进电机驱动技术通过控制每一步的电流和脉冲频率来控制电机的旋转角度和速度。

通常,步进电机驱动电路包括电流放大器和脉冲发生器两部分。

电流放大器负责控制电机的电流,而脉冲发生器则负责产生相应的脉冲信号来驱动电机。

步进电机的控制方式比较灵活,可实现高精度的定位和速度控制,广泛应用于工业自动化和机器人领域。

二、电机控制技术1. 闭环控制技术在嵌入式系统中,电机控制通常需要实现闭环控制。

闭环控制是指通过反馈信号来调整控制系统的输出,以实现期望的控制效果。

对于电机控制而言,通常需要测量电机的转速、位置或电流作为反馈信号。

以转速控制为例,通过测量电机的转速来与期望转速进行比较,然后根据比较结果进行调整,使得电机的转速尽可能接近期望值。

闭环控制能够提高系统的稳定性和精度,对于高要求的应用尤为重要。

2. 传感器技术传感器是电机控制中的重要组成部分,它们用于测量电机的转速、位置、电流等物理量,并将其转化为电信号输入到控制系统中。

嵌入式实验报告_电机转动控制实验

嵌入式实验报告_电机转动控制实验

贵州大学实验报告学院:专业:班级:姓名学号实验组实验时间05.06 指导教师余佩嘉成绩实验项目名称电机转动控制实验实验目的1.熟悉 ARM 本身自带的六路即三对 PWM,掌握相应寄存器的配置。

2.编程实现 ARM 系统的 PWM 输出和 I/O 输出,前者用于控制直流电机,后者用于控制步进电机。

3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

4.掌握带有 PWM 和 I/O 的 CPU 编程实现其相应功能的主要方法。

实验原理1.直流电机1)直流电动机的 PWM 电路原理晶体管的导通时间也被称为导通角а,若改变调制晶体管的开与关的时间,也就是说通过改变导通角а的大小,如图 6-1 所示,来改变加在负载上的平均电压的大小,以实现对电动机的变速控制,称为脉宽调制 (PWM)变速控制。

在 PWM 变速控制中,系统采用直流电源,放大器的频率是固定,变速控制通过调节脉宽来实现。

构成 PWM 的功率转换电路或者采用"H"桥式驱动,或者采用 "T"式驱动。

由于"T"式电路要求双电源供电,而且功率晶体管承受的反向电压为电源电压的两倍。

因此只适用于小功率低电压的电动机系统。

而"H"桥式驱动电路只需一个电源,功率晶体管的耐压相对要求也低些,所以应用得较广泛,尤其用在耐高压的电动机系统中。

2)直流电动机的 PWM 等效电路如图 7-2-a 所示:是一个直流电动机的 PWM 控制电路的等效电路。

在这个等效电路中,传送到负载 (电动机)上的功率值决定于开关频率、导通角度及负载电感的大小。

开关频率的大小主要和所用功率器件的种类有关,对于双极结型晶体管(GTR),一般为lkHz 至 5kHz,小功率时(100W,5A 以下)可以取高些,这决定于晶体管的特性。

对于绝缘栅双极晶体管(IGBT),一般为5kHz至l2kHz;对于场效应晶体管(MOSFET),频率可高达2OkHz。

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

《嵌入式系统及应用》课程设计报告---步进电机控制一、设计任务1)从键盘上输入步进电机正、反转命令,转速参数(16级)和转动步数显示在LED显示器上。

显示器上显示:第一位为0表示正转,为1表示反转;第二位0~F为转速等级,第三到第六位设定步数。

2)单片机依显示器上显示的正、反转命令,转速级数和转动步数进相应动作,转动步数减为零时停止转动。

测量步进电机绕组两端电压,并在显示器上显示。

二、工作原理1、步进电机电路工作原理步进电动机是一种将电脉冲信号转换成相应角位移或线位移的电动机,它的运行需要专门的驱动电源,驱动电源的输出受外部的脉冲信号控制。

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

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

在数字控制系统中,它既可以用作驱动电动机,也可以用作伺服电动机。

它在工业过程控制中得到广泛的应用,尤其在智能仪表和需要精确定位的场合应用更为广泛。

如图2.1,当有一相绕组被通电激励时,磁通从正相齿,经过软铁芯的转子,并以最短路径流向负相齿,为使磁通路径最短,在磁场力的作用下,转子被迫移动,使最近的一对齿与被激励的一相对准。

那么,通过对它每相线圈中电流的顺序切换可使电机作步进式旋转。

图2.1步进电机工作原理图2.2 步进电机控制电路2、LED显示电路LED显示电路工作原理如图2.3。

图2.3 LED显示电路工作原理3、键盘电路原理图键盘电路原理如图2.4。

图2.4 键盘电路原理三、设计原理及步骤系统中使用24BYJ-48(四相八拍)型号步进电机,它使用+5V直流电源,步距角为5.625度,电机线圈由A、B、C、D四相组成。

步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

HA、HB、HC、HD即为脉冲信号输入插孔,驱动器输出A、B、C、D接步进电机。

所需模块:单片机通用CPU板、Mon51K CPU卡、键盘显示板、电机音响继电器板。

设计步骤:1.检查设置:关闭实验仪电源,把MON51K 卡上跳线帽分别短接至“MON”、“片内”、“FOSC”、“总线”侧;CPU板跳线帽短接至“总线”;键盘显示板的“JK”置系统。

2.连线:①CPU板的 USB口→计算机USB口;②CPU板和键盘显示板:IOW→IOW,IOR→IOR,JD→JD,A0→A0,A1→A1,RST→RST,FF20→CS-8255K;③ CPU板和电机音响继电器板:Pl.0~P1.3→HA~HD 。

3联机调试1)开启实验箱电源,启动Keil软件,新建工程,创建文件,添加文件到工程,编译。

2)右键点击选择①设置晶振:实验箱用11.0592MHz;②选择硬件仿真;③选择通信端口。

3)点击编译下载、开始调试、全速运行程序后,全速运行程序后,通过键盘设置输入正、反转命令(0、1),转动参数(0~F),转动步数后,步进电机开始转动,步数逐渐减小到零时步进电机停止转动。

四、内存使用分配表内存使用分配表如表4.1表4.1 内存使用分配表五、设计说明及流程1、数码管显示字形LED显示器是由发光二极管构成的字段组成的显示器。

采用动态显示方式,即一位一位地轮流点亮(扫描)6位显示器。

在8032RAM存储器中设置六个显示缓冲区单元7EH-79H,分别存放6位显示器的显示数据(从高到低)。

显示子程序程序框图如图5.1。

图5.1 显示子程序程序框图2、键盘输入模块实验系统有4×8的键盘结构(见键扫显示原理图)。

键盘的行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和列线都断开,行线都为高电平。

当键盘上某一键闭合时,则该键所对应的行线和列线都短路。

CPU逐行逐列地检查键盘的状态,可判断键盘上有无键闭合。

CPU对键盘上闭合键的键号确定,可根据行线和列线的状态计算求得,也可以根据行线和列线的状态查表求得。

键输入程序框图如图5.2。

图5.2 键输入程序框图3、步进电机控制模块四相四拍运行方式即AB-BC-CD-DA-AB或A-B-C-D-A,激励一相即对该相置“ 1”,控制每一拍的间隔时间用延时子程序实现。

步进电机控制程序框图如图5.3。

图5.3 步进电机控制程序框图六、程序清单ORG 0000HAJMP MAINORG 0050HMAIN:MOV DPTR,#0FF23H ;主程序MOV A,#10000001BMOVX @DPTR,AMOV 79H,#00HMOV 7AH,#00HMOV 7BH,#00HMOV 7CH,#00HMOV 7DH,#00HMOV 7EH,#00HMOV R1,#7EH ;取显示内存缓充区的第一位START:ACALL KEY1 ;调用按键程序MOV @R1,A ;获得的值存放到7EH中CJNE R1,#78H,KS ;是否到78H,不到转KSCJNE A,#16H,AGAIN ;是否按下EXEC键,若是则跳转到RUN LJMP RUN ;调转到步进电机控制部分AGAIN:LJMP MAINKS:DEC R1LJMP STARTRUN:MOV A,7EH ;取当前所存JZ ZHENG ;跳转到正转JNZ FAN ;跳转到反转SJMP $ZHENG:MOV P1,#03H ;给AB两相脉冲ACALL DELAY ;调用延时子程序MOV P1,#06H ;给BC两相脉冲ACALL DELAY ;调用延时子程序MOV P1,#0CH ;给CD两相脉冲ACALL DELAY ;调用延时子程序MOV P1,#09H ;给DA两相脉冲ACALL DELAY ;调用延时子程序ANL 79H,#0FH ;取7EH低四位ANL 7AH,#0FH ;取7DH低四位ANL 7BH,#0FH ;取7CH低四位ANL 7CH,#0FH ;取7BH低四位LCALL DIR ;调用显示子程序MOV R5,79H ;步数由设定值降至0停止 CJNE R5,#0,Z1MOV 79H,#0FHDEC 79HMOV R5,7AHCJNE R5,#0,Z2MOV 7AH,#0FHDEC 7AHMOV R5,7BHCJNE R5,#0,Z3MOV 7BH,#0FHDEC 7BHMOV R5,7CHCJNE R5,#0,Z4LJMP MAINZ1:DEC 79HLJMP ZHENGZ2:DEC 7AHLJMP ZHENGZ3:DEC 7BHLJMP ZHENGZ4:DEC 7CHLJMP ZHENGFAN:MOV P1,#09H ;给AD相脉冲ACALL DELAY ;调用延时子程序MOV P1,#0CH ;给DC相脉冲ACALL DELAY ;调用延时子程序 MOV P1,#06H ;给CB相脉冲ACALL DELAY ;调用延时子程序 MOV P1,#03H ;给BA相脉冲ACALL DELAY ;调用延时子程序 ANL 79H,#0FH ;取7EH低四位 ANL 7AH,#0FH ;取7DH低四位 ANL 7BH,#0FH ;取7CH低四位 ANL 7CH,#0FH ;取7BH低四位 LCALL DIRMOV R5,79H ;步数自减部分 CJNE R5,#0,F1DEC 79HMOV R5,7AHCJNE R5,#0,F2DEC 7AHMOV R5,7BHCJNE R5,#0,F3DEC 7BHMOV R5,7CHCJNE R5,#0,F4LJMP MAINF1:DEC 79HLJMP FANF2:DEC 7AHLJMP FANF3:DEC 7BHLJMP FANF4:DEC 7CHLJMP FANDELAY:MOV A,#10H ;延时调速部分SUBB A,7DHMOV R1,ADELAY10:ACALL DIRDELAY13:DJNZ R1,DELAY10RETDIR:MOV R0,#79HMOV R3,#0FEHLD0:MOV DPTR,#SEG ;扫描值送到SEG MOV A,@R0MOVC A,@A+DPTR ;查表CPL A ;取反MOV DPTR,#0FF21H ;扫描值送到PB口MOVX @DPTR,AMOV A,R3 ;显示字位MOV DPTR,#0FF20HMOVX @DPTR,A ;扫描方式8255口ACALL DL1 ;延时INC R0 ;缓冲区地址加1MOV A,R3JNB ACC.5,LD1 ;判断是否扫描到第六个显示位 RL AMOV R3,AAJMP LD0LD1:RETSEG:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H, ;显示字码段DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H,73HDL1:MOV R7,#02H ;延时子程序DL:MOV R6,#0FFHDLA:DJNZ R6,DLADJNZ R7,DLRETKEY1:ACALL KS1 ;调用判断有无键按下子程序JNZ LK1 ;有键按下,转消颤延时ACALL DIR ;无键按下,调用显示子程序AJMP KEY1 ;返回KEY1,继续等待LK1:ACALL DIR ;调用显示子程序ACALL T12ms ;调用12ms延时子程序ACALL KS1 ;调用判断有无键按下子程序,确认按键真实性 JNZ LK2 ;有键按下转逐列扫描子程序AJMP KEY1 ;否则返回KEY1,继续等待LK2:MOV R2,#0FEH ;首列扫描字入R2MOV R4,#00H ;首列号入R4LK4:MOV DPTR,#0FF20H ;列扫面字送至键扫口MOV A,R2 ;第一次列扫描MOVX @DPTR,A ;使第0列线为0MOV DPTR,#0FF22H ;指向键入口MOVX A,@DPTR ;键入口读入行状态JB ACC.0,LONE ;第0行无键按下,转查第1行MOV A,#00H ;第0行有键按下,该行首键号#00HAJMP LKPLONE:JB ACC.1,LTOW ;第1行无键按下,转查第2行MOV A,#08H ;第1行有键按下,该行首键号#08HAJMP LKPLTOW:JB ACC.2,LTHR ;第2行无键按下,转查第3行MOV A,#10H ;第2行有键按下,该行首键号#10HAJMP LKPLTHR:JB ACC.3,NEXT ;第3行无键按下,转查下一列MOV A,#18H ;第3行有键按下,该行首键号#18H LKP:ADD A,R4 ;求原理图上的键号=行首键号+列号MOV DPTR,#TAB ;查找TAB1,将实际键号赋给AMOVC A,@A+DPTRPUSH ACC ;将键号压入堆栈LK3:ACALL DIR ;调用显示子程序ACALL KS1 ;等待键释放JNZ LK3 ;未释放,等待POP ACC ;键释放,键号 ARET ;键扫描结束,出口状态(A)=实际键号NEXT:INC R4 ;指向下一列,列号加1MOV A,R2 ;判断8列是否扫描完JNB ACC.7,KND ;8列扫描完,返回RL A ;扫描字左移一位,转变为下一列扫描字MOV R2,A ;扫描字入R2AJMP LK4 ;转下一列扫描KND:AJMP KEY1KS1:MOV DPTR,#0FF20H ;指向键扫口MOV A,#00H ;全扫描字#0HMOVX @DPTR,A ;全扫描字入键扫口MOV DPTR,#0FF22H ;指向键入口MOVX A,@DPTR ;读键入口行状态CPL A ;变正逻辑,以高电平表示有键按下ANL A,#0FH ;屏蔽高4位RET ;出口状态,(A)=1时有键按下T12ms:MOV R7,#18H ;延时12ms子程序TM:MOV R6,#0FFHDJNZ R6,$DJNZ R7,TMRETTAB:DB 07H,04H,08H,05H,09H,06H,0AH,0BH,01H,00H,02H, ;键表DB 0FH,03H,0EH,0CH,0DH,00H,00H,00H,00H,00H,00H,16HEND七、设计心得通过四天的学习和设计,让我将课上学习到的知识与实践更好的结合起来,通过单片机来实行简单或复杂的控制不再陌生。

相关文档
最新文档