《微机原理课程设计》基于80x86的步进电机控制系统.doc
《《微机原理课程设计》基于80x86的步进电机控制系统.doc》由会员分享,可在线阅读,更多相关《《微机原理课程设计》基于80x86的步进电机控制系统.doc(25页珍藏版)》请在三一办公上搜索。
1、微机原理与接口技术课程设计姓名: 厉小洋 学号: 0945533117 班级: 09电气1班 专业: 电气工程及其自动化学院: 电气与信息工程学院江苏科技大学张家港校区2012年9月目录一 理论部分21课题要求与内容22 系统方案设计33 系统硬件的设计44 系统软件设计5二 实践部分61 系统硬件原理简介62 系统硬件调试中出现的问题及解决措施103 系统软件113.1 软件设计113.2软件调试中出现的问题及解决措施14三 附录15题目:基于80x86的步进电机控制系统第一章、 理论部分一 微机原理课程设计课题要求与内容内容要求:(1) 使用8255A控制步进电机的运转。(2) 使用数码管
2、LED显示速度的大小。(3) 使用8253定时器调节速度的大小。(4) 使用4个独立按键控制步进电机,即“正传”、“反转”、“停止”、“调速”。(5) 使用8259A产生中断控制按键;(6) 使用DAC0832显示速度的波形。拓展功能:(1) 按键部分可以增加“加速”、“减速”等功能;(2) 考虑可以加蜂鸣器来区分“正转”和“反转”;(3) 其他可以有自己特色的功能均可。二 系统方案设计80X86825582598254步进电机LED显示按键控制在课程要求的前提下,步进电机为四相八拍步进电机,这样可以用8255的一个端口控制电机的驱动,LED显示为十六位 图1系统流程图在8255中可用两个端口
3、控制,按键单元可与电机共用一个八位端口,由8254产生可编程脉冲,进入8259产生中断,反馈给80x86,控制8255。再执行到步进电机及其LED显示上,一个脉冲步进电机一拍。由按键读入系统状态。具体的系统设计如图1为系统概况流程图三 系统硬件设计在硬件设计中,主要是通过步进电机模块、8255模块、LED模块、8254模块。在8255芯片上用A,B口控制数码管的显示(A为位选B为段选),C口的高四位为四个按键单元,低四位作为输出,控制步进电机。片选CS接IOY2。在8259和8254上,采用一个脉冲一拍的方式。给8254一个1.8432MHZ在CLK2,OUT2输出给CLK0,由OUT0给82
4、59的INT,输出一个脉冲,经由IR0给80x86的中断口INTR。如图2为硬件连接图,如下 硬件连接:8254,8255,8259的CS分别接在IOY2,IOY0,IOY1 8255芯片连接:8255的A,B控制LED,A口接位选,B口接段选,将C口分为两段,高四位读取按键,低四位控制步进电机,按键分为四个如下表1所示 表1 K1K2K3 K4判断开关0开1关判断正反转0正1反0 0 速度11 0 速度20 1 速度31 1 速度4 8254:GATE2接电源+5v 给CLK2一个信号OUT2接CLK0将输出接8259的INT ,在用8259的IRO1连接到80X86的中断INTRXD0XD
5、7XIORXIOWXA2XA2INTRIOY0XD0XD7IOY1IORIOWIORIOWXA28086系统总线D0 PC0D7 PC3 A0 PC4A1 PC7 8255WR A口RDCS B口按键单元步进电机单元LED显示XD0XD7D0 D7 WRRD INTCS 8259 IR0A0D0 OUT0D7 CLK0WR OUT2RDCS CLK2 8254A0A1 GATE21.8432MHZ+5VIOY2图2硬件连接图四 系统软件设计开始系统初始化判断开关判断正反判断速度计数器装入初值判断是否进入中断LED显示判断是否八拍走完判断键盘是否有按键否否是是是否结束是否 图3软件系统工作流程图
6、 过8255读取按键的信号,来控制步进电机的开关,正转,反转,速度的大小。通过8254计数器工作在方式0的状态下来控制每拍运行的时间,步进电机速度不同,赋给8254的初始值不同,同时8255的PA,PB口向LED接口输出信号,LED数码管显示步进电机每分钟的转速。8254计数器每次运行结束,向8259发出一个高电平,8259IR0接口检测到高电平信号,即进入中断服务程序,在中断服务程序里,执行对下一拍给步进电机信号的赋值。在每次循环中,执行键盘按键检测程序,如有按键,退出程序,否则,反复循环。如图3为软件系统的工作流程图第二章 实践部分一 系统硬件原理简介 1.1步进电机的简介及其工作原理步进
7、电机的驱动原理是通过它每相线圈的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲来控制,所以调节脉冲的频率便可改变步进电机的转速,微控制器最适合控制步进电机。另外,由于电机的转动惯量的存在,其转动速度还受驱动功率的影响,当脉冲的频率大于某一值时,电机便不再转动。本次课程设计中电机共有四个相位(A,B,C,D),按转动步骤可分单4拍(A-B-C-D-A),双4拍(AB-BC-CD-DA-AB)和单双8拍(A-AB-B-BC-C-CD-D-DA-A).此模块的主要功能是通过接收8255的C口输入信号来控制步进电机的转动,A,B,C,D分别代表不同的四个相位,分别接入到PC0,PC1,PC2和PC
8、3实现转动控制相12345678A11000001B01110000C00011100D00000111表 2如上述表2所示,通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动,反之,则反向转动。1.2实验所用芯片的介绍及其控制方式 1.2.1 8254的简介 8254是Intel公司生产的课可编程定时器,8254芯片主要由四部分组成: 1 数据总线缓冲器 数据总线缓冲器是一个三态、双向8位寄存器主要作用是与CPU进行数据交换,8位数据线D7D0与CPU的系统数据总线连接,构成CPU和8254之间信息传送的通道,CPU通
9、过数据总线缓冲器向8254写入控制命令、计数初始值或读取计数值。 2 读写逻辑 读写逻辑是芯片的控制部分,编程人员通过控制信号的选择来选择芯片的工作方式。读/写控制逻辑用来接收CPU系统总线的读、写控制信号和端口选择信号,用于控制8254内部寄存器的读/写操作。 3 控制字寄存器 控制寄存器是一个只能写不能读的8位寄存器,系统通过指令将控制字写入控制寄存器,设定8254的不同工作方式。 4 计数器 8254内部有三个结构完全相同而又相互独立的16位减“1”计数器,每个计数器有六种工作方式,各自可按照编程设定的方式工作。1).有3个独立的16位计数器2).每个计数器可按十进制或二进制计数3).8
10、254每个计数器允许最高计数为10MHZ4).8254 有读回指令,还可以读出状态寄存器的内容5).每个计数器可编程工作于6中不同的方式6)计数脉冲可以是有规律的时钟信号,也可以是随机信号,计数初值公式为n=fclki/fouti(fclki是输入时钟脉冲的频率,fouti是输出波形的频率)工作方式的分类:1) 方式0:计数到0结束输出正跳跃信号方式2)方式1:硬件可重触发单稳方式3)方式2:频率发生器4)方式3:方波发生器5)方式4:软件触发选通方式6)方式5:硬件触发选通方式8254的控制字有两个:一个用来设置计数工作方式称为方式控制字。另一个用来设置读回命令,称为读回控制字。如下表3是控
11、制方式表格表3 8254的方式控制字格式D7D6D5D4D3D2D1D0计数器选择读/写工作方式选择计数码制选择00-计数器000-锁存计数值000-方式00-二进制数01-计数器101-读/写低8位001-方式11-十进制数10-计数器210-读/写高8位010-方式211-读出控制字标志11-先读/写低8位再读/写高8位011-方式3100-方式4101-方式58255的简介及其控制8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种
12、外设连接时的中间接口电路。 8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。8255可编程外围接口芯片是通用并行口芯片,具有A、B、C三个并行接口,有三种工方式。方式0基本的输入输出。方式1选通输入输出。方式2双选通工作方式表格2为控制字格式,如下图4 、图5分别为8255工作方式控制字格式和8255 C口按位置位/复位控制字格式。图4、 8255工作方式控制字格式图5 8255
13、C口按位置位/复位控制字格式8259的简介及其控制方式8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。 在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态,编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态。功能:就是在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将
14、此请求送到CPU的INTR端;当CPU响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。二 系统硬件调试中出现的问题及解决措施问题一 步进电机运转不流畅原因:分析后发现,程序执行中的中断无法连续执行,因为8254采用方式3发出的中断信号,脉冲时间太短,解决方法:在调整8254的计数器采用方式1后,一旦检测信号,重新将计数器装入初值问题二 数码管显示乱码原因:查看显示数据发现,当8255输出一个段码后,下一次出现的是上一次输出的值解决方法:在以后每次输出之后,都输出一个00A,以清除8255寄存器中的值,以达到清除乱码的效果问题三 程序执行中有计数器赋初值,所以每次计数
15、器都不能执行完发出中断原因:赋初值在循环当中解决方法:将计数器赋初值放到循环外面,引用FLAG来判断是否进入中断,如果进入,则重新将计数器赋初值问题四:读取按键混乱原因:用PC7-PC4来读取按键。读出的按键数值在高四位,于我们用低四位处理相冲突解决方法:将读出的数值右移四位三 系统软件3.1 软件设计3.1.1 8255控制模块如图6所示,8255主要负责不停的读取按键状态检测速度的大小PC6为00(关)初始化8259、82558255PC4口检测开关按键8255PC5口检测正反转按键1(开)8255PC6口检测速度8255PC7口检测速度8255PC7口检测速度PC6为1PC7为0PC7为
16、1PC7为0。口11(反转)口20(正转)PC7为1 如图6 8255流程图3.1.2 8254延时模块设置8254的控制字,通过8254设置延时,产生延时频率,最后再接入到8255控制步进电机的运转与停止,速度大小主要通过对8254装入初值的不同来控制,流程如下图7,与上图6衔接(图7分别于图6最后连接)否否是是8254装入初值8255PA.PB口输出LED显示速度判断是否运转八拍是否进入中断PC低四位控制步进电机进入图6的口1进入图6的口2 图7 8254模块流程3.1.3 LED显示模块LED模块的主要功能是前四位显示步进电机的转速(r/min)度的值。此模块用8255A、B口的控制LE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理课程设计 微机 原理 课程设计 基于 80 x86 步进 电机 控制系统
链接地址:https://www.31ppt.com/p-2881828.html