基于8086步进电机课程设计
基于8086的步进电机控制系统设计2说明书内容
目录一、电路总体设计 (2)1.1系统功能与实现方式 (2)1.2系统的总体组成 (2)二、各部分电路原理图设计 (3)2.1 8086最小方式系统 (3)2.2存储器的设计 (4)2.3步进电机控制电路 (6)2.4键盘和显示电路 (8)三、设计心得与总结 (9)四、参考资料 (9)一、电路总体设计1.1系统功能与实现方式该系统采用8086最小方式,用8255作为接口芯片,用于连接控制步进电机的变频控制器,芯片62256和2764分别作为数据存储扩展芯片和程序存储扩展芯片,步进电机的工作时间控制由82C54芯片来确定,步进电机的工作方式由按键板块接收操作信号,然后由程序判定并执行操作。
1.2系统的总体组成1)处理器芯片选用8086,当8086的MN/MX引脚接+5V电压时,8086工作在最小方式下:时钟发生器采用82C54芯片主微处理器CPU选用8086芯片数据收发器用来对数据进行缓冲和驱动,并控制数据发送和接收方向,向CPU传送I/O的数据或向IO传送CPU提供的数据。
同样由于8086中数据线只有8条,所以数据收发器只要一个8286就可以了。
地址译码器用74LS138,用地址线直接控制。
在最小方式下,8086CPU会直接产生全部总线控制信号。
2)只读存储器采用ROM芯片2764,随机存储器62256。
3)8255和82C54去控制步进电机4)键盘控电路5)时钟电路、加电复位和复位电路。
6)地址分配:8255: 00100---001FF2764: 01000---01FFF62256: 04000---07FFF键盘相关:100H—103H显示相关:140H—141H步进电机相关:200H—207H功能描述:在最小方式下,8086CPU产生全部总线控制信号,由2764和62256构成了8k的ROM和32KB 的RAM,在此基础上,分别实现接口逻辑。
本系统采用8086位处理器工作在最小方式系统下,采用8282、8286、8284构成了最小系统,形成总线逻辑。
微机原理课程设计基于8086
学号:HEBEI UNITED UNIVERSITY微机原理课程设计说明书设计题目:八路竞赛抢答器学生姓名:专业班级:学院:指导教师:2012年11月22日成绩评定表摘要现在很多地方都可能会有各种智力竞赛,当遇到抢答环节时,如果要求主持人自己去用肉眼观察哪一个选手抢答的速度最快无疑会对比赛结果造成很大的影响,同时使比赛失去了公平和公正性,这时候我们想到了抢答记分器是必要设备。
数字抢答器由主体电路与扩展电路组成。
用我们刚刚学过的汇编语言编写程序模拟分析了竞赛中抢答系统的运用,结合竞赛的实际情况阐述了抢答系统的工作原理,给出了一种简单实用的多路抢答系统的硬件、软件电路设计方案。
该系统适用于竞赛中的抢答环节。
现假定竞赛中共有八名选手,主持人宣布抢答开始后,进入倒计时,倒计时间为10秒,10秒内若有选手按下抢答按钮,则倒计时结束,屏幕显示最先抢答选手的号码;若10秒内无人抢答,则该轮抢答结束。
当主持人按下复位按钮时,屏幕显示清零,等待下一轮抢答。
本课题设计了一种采用8255芯片和汇编语言制作的多功能抢答器,实验箱中的开关区和数码显示区共同完成。
主要功能:1.倒计时10秒 2.用LED数码管显示1-8号选手先按下键者的号码。
它除了具有基本的抢答功能之外,和数显的功能,当抢答开始后,系统会自动倒计时,并且时间是可以预设的,期间有人抢答的话系统会停止计时,如果期间没人抢答,系统自动锁存直到主持人按下复位键。
AbstractNow many places may have a variety of intellectual competition responder, when link, if ask themselves to see with the unaided eye which one contestant vies to answer first the fastest will undoubtedly have great impact on the outcome of the game, the game lost fair and justice, at that time we thought the answer scoring apparatus is necessary equipment. The figure vies for the answering device extended from the main circuit and the circuit. We have just learned with the assembly language program to simulate and analyze the race responder system used, combined with the actual situation of competition elaborated vies to answer first the working principle of the system, this paper presents a simple and practical the responder system hardware, software design. The system is applicable to contest Responder link. It is assumed that the race a total of eight players, the host announced the answer after the start, entered the countdown, countdown time of 10 seconds, 10 seconds if the contestant to answer in the button pressed, the end of the countdown, the screen display first player answer number; if nobody answer the question within 10 seconds, the wheel the answer in the end. When the host press the reset button, the screen display clear, waiting for the answer in the next round.The task of designing a method using 8255 chip and assembly language produced by multi-functional responder, the experimental box switch region and digital display area together. Main function: 1 countdown 10 seconds 2 with LED digital tube display 1-8 player to press the number keys. It has a basic responder function, and digital display function, when the answer after the start, the system will automatically countdown, and the time can be preset, during the answer words system will stop the clock period, if no answer, the system automatically latched until the host press the reset button.目录前言 (6)第一章八路竞赛抢答器的设计要求与设计案 (7)1.1 八路竞赛抢答器方案的选择与比较 (7)1.2 八路竞赛抢答器的元件选择 (7)第二章八路竞赛抢答器的硬件设计 (9)2.1 八路竞赛抢答器的硬件框图 (9)2.2 显示电路设计 (9)2.3 抢答电路设计 (9)2.4 开始、复位开关控制电路设计 (10)2.5 可编程并行接口8255及其引脚说明 (11)2.6 8086及引脚说明 (13)第三章八路竞赛抢答器的软件设计 (21)3.1 主程序流程图 (21)3.2 显示模块程序设计 (21)3.3 延时模块程序设计 (22)3.4 开始模块程序设计 (22)3.5 复位模块程序设计 (23)第四章设计体会与小结 (24)4.1 总结设计体会与心得 (24)第五章参考文献 (25)附录一 (26)附录二 (27)前言微机接口课程设计是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
8086的课程设计
8086的课程设计一、课程目标知识目标:1. 让学生掌握8086微处理器的结构、工作原理及主要性能特点。
2. 使学生了解8086指令系统,能正确运用汇编语言编写简单的程序。
3. 帮助学生理解内存管理、中断处理和I/O操作等基础知识。
技能目标:1. 培养学生运用汇编语言进行程序设计和调试的能力。
2. 使学生能够分析并解决8086微处理器在实际应用中遇到的问题。
3. 提高学生的动手实践能力,能独立完成基于8086的硬件系统搭建和编程。
情感态度价值观目标:1. 培养学生对计算机硬件和汇编语言的兴趣,激发学习热情。
2. 培养学生具备良好的团队合作精神和沟通能力,增强解决问题的信心。
3. 引导学生认识到计算机技术对社会发展的作用,树立正确的科技观。
课程性质:本课程为计算机硬件基础课程,以理论教学和实践操作相结合的方式展开。
学生特点:学生已具备一定的计算机基础知识和编程能力,但对硬件和汇编语言了解较少。
教学要求:结合学生实际情况,注重理论与实践相结合,强调实践操作,提高学生的实际动手能力。
通过本课程的学习,使学生能够掌握8086微处理器的基本知识,为后续相关课程打下坚实基础。
同时,注重培养学生的团队合作精神和沟通能力,提高学生的综合素质。
二、教学内容1. 8086微处理器概述:介绍8086微处理器的结构、工作原理及性能特点,对应教材第一章。
- 8086内部结构- 工作原理与性能参数- 8086的发展历程及其在计算机硬件中的应用2. 8086指令系统:学习8086指令的分类、格式及功能,对应教材第二章。
- 指令分类及格式- 常用指令介绍与示例- 汇编语言编程基础3. 内存管理:讲解内存的组织结构、地址空间分配及管理方法,对应教材第三章。
- 内存组织结构- 地址空间分配- 内存管理方法4. 中断处理:分析中断的类型、处理过程及中断向量表,对应教材第四章。
- 中断类型及处理过程- 中断向量表- 中断编程实例5. I/O操作:介绍I/O端口地址分配、编程方法及其应用,对应教材第五章。
微机原理课程基于80x86的步进电机控制系统
微机原理课程基于80x86的步进电机控制系统《微机原理与接口技术》课程设计姓名:厉小洋学号:0945533117班级:09电气1班专业:电气工程及其自动化学院:电气与信息工程学院江苏科技大学张家港校区2012年9月目录一理论部分 (2)1课题要求与内容 (2)2 系统方案设计 (3)3 系统硬件的设计 (4)4 系统软件设计 (5)二实践部分 (6)1 系统硬件原理简介 (6)2 系统硬件调试中出现的问题及解决措施 (10)3 系统软件 (11)3.1 软件设计 (11)3.2软件调试中出现的问题及解决措施 (14)三附录 (15)题目:《基于80x86的步进电机控制系统》第一章、理论部分一微机原理课程设计课题要求与内容内容要求:(1)使用8255A控制步进电机的运转。
(2)使用数码管LED显示速度的大小。
(3)使用8253定时器调节速度的大小。
(4)使用4个独立按键控制步进电机,即“正传”、“反转”、“停止”、“调速”。
(5)使用8259A产生中断控制按键;(6)使用DAC0832显示速度的波形。
拓展功能:(1)按键部分可以增加“加速”、“减速”等功能;(2)考虑可以加蜂鸣器来区分“正转”和“反转”;(3)其他可以有自己特色的功能均可。
二系统方案设计在课程要求的前提下,步进电机为四相八拍步进电机,这样可以用8255的一个端口控制电机的驱动,LED显示为十六位图1系统流程图在8255中可用两个端口控制,按键单元可与电机共用一个八位端口,由8254产生可编程脉冲,进入8259产生中断,反馈给80x86,控制8255。
再执行到步进电机及其LED显示上,一个脉冲步进电机一拍。
由按键读入系统状态。
具体的系统设计如图1为系统概况流程图三系统硬件设计在硬件设计中,主要是通过步进电机模块、8255模块、LED模块、8254模块。
在8255芯片上用A,B口控制数码管的显示(A为位选B为段选),C口的高四位为四个按键单元,低四位作为输出,控制步进电机。
基于8086的步进电机控制课程设计论文
目录1 课程设计的目的 (1)2课程设计的任务与要求 (1)3设计方案与论证 (1)4 设计原理及功能说明 (2)4.1励磁线圈及其励磁顺序 (3)4.2工作原理 (3)4.3 8086 CPU (5)4.4 8255工作方式选择 (6)4.5 ULN2003A (6)4.6 74LS273 (6)4.7 74LS138 (6)5单元电路的设计(计算与说明) (8)6硬件的制作与调试 (10)7总结 (11)参考文献 (12)附录1:总体电路原理图 (13)附录2:元器件清单 (13)附录3:源程序代码 (14)1 课程设计的目的培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。
要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。
让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。
通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,了解步进电机控制的基本原理,掌握控制步进电机转动的编程方法,进一步熟练掌握8255A并行I/O口的工作方式以及编程方法,熟练应用8086以及汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
体会系统整体设计的流程与方法,为以后系统级设计积累经验。
培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。
2 课程设计的任务与要求01.通过开关K1实现步进电机的开始与停止;02. 通过开关K2来选择步进电机的正转与反转;03. 通过开关K3,K4组成(2-4译码)四档电机转速选择;04. 对每只开关的选择情况同时通过4位8段数码管来显示;05. 扩展设计:可以在以上功能基础上,增加控制步进电机单步转动的开关;增加控制电机加速转动的开关;增加控制电机减速的开关。
基于8086步进电机课程设计
皖西学院本科课程设计步进电机电机控制设计摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface,PPI),它是为Intel系列微处理器设计的配套电路,也可以用于其他微处理系统中。
通过它进行编程,芯片可工作于不同的工作方式。
在微型计算机系统中,用8255A作为接口是时,通长常不需要附加外部逻辑电路就可直接为CPU与外设之间提供数据通道,因此它得到了极为广泛的应用。
其次步进电机具有快速启动和停止的能力,它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件如:温度、气压、冲击和振动等影响,仅与脉冲频率有关。
它每转一周都有固定的步数,在不丢失步的情况下运行,其步矩误差不会长期累积。
正因为步进电机具有快速启动、精确步进以及能直接接收数字量的特点,所以在定位场合中得到了广泛的应用。
比如在打印机中,数控车床、自动记录仪表、数模交换装置和计算机等数字控制系统中。
随着微机的发展,步进电机的使用领域将更加广阔。
本次设计正是利用并介绍了可编程并行I/O接口芯片8255A为8086CPU与步进电机之间提供数据通道,通过芯片的A口输入,B口输出的方式来实现控制步进电机的停转、快慢及正反转。
关键词:可编程并行I/O接口芯片8255A;8086CPU;ULN2003A驱动芯片;步进电机目录1 课程设计题目及课题分析 --------------------------------------------------------------------------- 11.1课程设计题目----------------------------------------------------------------------------------- 11.2步进电机介绍----------------------------------------------------------------------------------- 11.4软硬件运行环境及开发工具----------------------------------------------------------------- 12 步进电机控制系统各部件功能原理介绍--------------------------------------------------------- 22.1设计原理及实现方法-------------------------------------------------------------------------- 22.1.1 步进电机控制原理-------------------------------------------------------------------- 22.1.2微机步进电机控制系统原理图 ----------------------------------------------------- 22.1.3 运行方式与方向的控制——循环查表法 ---------------------------------------- 32.1.4步进电机的停转及快慢控制——设置开关 -------------------------------------- 42.2步进电机控制设计流程图-------------------------------------------------------------------- 53 步进电机控制系统软件编写与仿真 --------------------------------------------------------------- 63.1 硬件设计与实现 ------------------------------------------------------------------------------- 63.2仿真结果----------------------------------------------------------------------------------------- 63.2.1 并行接口I/O芯片8255A ----------------------------------------------------------- 63.2.2 驱动部分与步进电机----------------------------------------------------------------- 73.2.3步进电机与外部开关 ----------------------------------------------------------------- 83.2.4 仿真结果-------------------------------------------------------------------------------- 83.3软件设计----------------------------------------------------------------------------------------- 93.3.1正向慢转子程序 ----------------------------------------------------------------------- 93.3.2正向快转子程序 ----------------------------------------------------------------------- 93.3.3反向慢转子程序 ---------------------------------------------------------------------- 103.3.4反向快转子程序 ---------------------------------------------------------------------- 103.3.5长延时子程序-------------------------------------------------------------------------- 103.3.6短延时子程序-------------------------------------------------------------------------- 114 系统调试与操作说明 -------------------------------------------------------------------------------- 124.1系统调试---------------------------------------------------------------------------------------- 124.2 操作说明 --------------------------------------------------------------------------------------- 125 课程设计总结与体会 -------------------------------------------------------------------------------- 13 致谢------------------------------------------------------------------------------------------------------ 14 参考文件献 ----------------------------------------------------------------------------------------------- 15 附录步进电机控制系统源程序---------------------------------------------------------------------- 16皖西学院本科课程设计1 课程设计题目及课题分析1.1课程设计题目步进电机控制设计,运用汇编语言编写程序对8255A控制,通过emu8086编译成.com文件并载入8086CPU中并用74LS373、74LS130、ULN2003A等一些列芯片通过连接实现对步进电机的控制。
8086微机课程设计
8086微机课程设计一、教学目标本课程的教学目标是让学生掌握8086微机的原理、接口技术及其应用,培养学生具备微机系统设计和调试的能力。
具体分为以下三个层面:1.知识目标:使学生了解8086微机的硬件结构、指令系统、寄存器、中断处理等基本知识;掌握微机接口技术,包括并行接口、串行接口、AD/DA转换等;了解微机在现代工业控制系统中的应用。
2.技能目标:培养学生具备8086微机程序设计能力,能熟练使用汇编语言和C语言进行程序设计;培养学生具备微机系统硬件调试能力,能使用常用的调试工具进行硬件调试。
3.情感态度价值观目标:培养学生对微机技术的兴趣,认识微机技术在现代社会中的重要性,培养学生创新意识和团队合作精神。
二、教学内容本课程的教学内容主要包括以下几个部分:1.8086微机的基本原理:介绍8086微机的硬件结构、指令系统、寄存器等基本知识。
2.微机接口技术:包括并行接口、串行接口、AD/DA转换等,以及这些接口在实际应用中的设计方法。
3.微机程序设计:介绍汇编语言和C语言在8086微机程序设计中的应用,包括程序设计方法、调试技巧等。
4.微机系统设计:介绍微机系统的设计方法,包括硬件选型、电路设计、系统集成等。
5.实践环节:安排一定的实验课时,使学生在实际操作中掌握微机原理和接口技术。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:用于讲解基本原理、概念和知识点。
2.案例分析法:通过分析实际案例,使学生更好地理解微机原理和接口技术。
3.实验法:安排实验课时,让学生亲自动手进行实验,提高实际操作能力。
4.讨论法:学生进行课堂讨论,促进学生之间的交流与合作。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的多媒体课件,提高课堂教学效果。
微机原理课程设计-步进电机的正反转及调速控制
课程设计报告题目步进电机正反转及调速控制系统的设计课程名称微机原理及应用院部名称机电工程学院专业电气工程及其自动化班级10电气1班学生姓名管志成学号**********课程设计地点C304课程设计学时20指导教师李国利金陵科技学院教务处制成绩步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,具有快速启动能力,定位精度高,能够直接接受数字量,因此被广泛地应用于数字控制系统中,如数模转换装置、精确定位、计算机外围设备等,在现代控制领域起着非常重要的作用。
本设计基于Proteus 7.8设计环境,运用了8086 CPU芯片以及74273芯片、74244芯片和步进电机以及7位小功率驱动芯片ULN2003A、按钮、指示灯等辅助硬件电路,设计了步进电机正反转及调速系统。
绘制软件流程图,进行了软件设计并编写了源程序,最后对软硬件系统进行联合调试。
该步进电机的正反转及调速系统具有控制步进电机正反转的功能,还可以对步进电机进行调速,不同的按钮对应不同的速度,并且在没有速度按钮按下的时候,步进电机自动切换到停止状态。
关键词:步进电机;正反转;调速控制;ULN2003A芯片;8086微机系统一、概述1.1 课程设计的目的 (4)1.2课程设计的要求 (4)二、总体设计方案及说明2.1 系统总体设计方案 (5)2.2系统工作框图 (5)三、系统硬件电路设计3.1 Intel 8086 微处理器的简介 (6)3.2 步进电机的原理 (7)3.3 ULN2003A的简介 (8)3.4 74154芯片简介 (9)3.5 74LS273芯片简介 (10)3.6 8086最小系统的设计 (11)3.7 步进电机及其驱动电路的设计 (12)3.8 电机状态显示电路的设计 (12)3.9 输入采样电路的设计 (13)3.10系统总电路图 (14)四、系统软件部分设计4.1 系统流程图 (15)4.2 系统软件源程序 (16)4.2.1电机绕组通电顺序设定 (16)4.2.2 延时子程序设计 (16)4.2.3 汇编源程序及说明 (16)五、总结5.1 系统软硬件的联合调试 (21)5.2 问题分析和解决方案 (23)5.3 心得与体会 (23)六、参考文献 (23)附录:总电路图 (25)一、概述1.1 课程设计的目的通过本课程设计,使学生掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法。
利用8086课程设计
利用8086课程设计一、课程目标知识目标:1. 理解8086微处理器的内部结构、工作原理及其指令系统;2. 掌握8086汇编语言的基本语法和使用方法;3. 学会使用8086汇编语言进行程序设计和调试;4. 了解8086微处理器在计算机系统中的应用。
技能目标:1. 能够独立编写简单的8086汇编语言程序;2. 能够运用汇编语言进行基本的输入输出操作;3. 能够分析并解决简单的计算机硬件与软件问题;4. 能够利用8086汇编语言进行简单的系统编程。
情感态度价值观目标:1. 培养学生对计算机硬件与软件的兴趣和热情,激发他们的探究欲望;2. 培养学生的团队合作意识,使他们学会在项目中进行有效沟通与协作;3. 培养学生的创新精神和实践能力,使他们能够在实际应用中发挥所学知识;4. 引导学生树立正确的价值观,认识到技术对社会发展的积极影响。
本课程针对高中年级学生,结合学科特点和教学要求,注重理论与实践相结合,培养学生的动手操作能力和实际问题解决能力。
课程目标具体、可衡量,旨在帮助学生全面掌握8086课程内容,为后续计算机专业学习打下坚实基础。
二、教学内容本章节教学内容主要包括以下几部分:1. 8086微处理器概述- 了解8086微处理器的内部结构及其工作原理;- 掌握8086微处理器的寄存器组、存储器组织、中断系统等基本组成部分。
2. 8086汇编语言基础- 学习汇编语言的基本语法、指令系统及其使用方法;- 掌握汇编语言的数据定义、数据传送、算术运算、逻辑运算等基本指令。
3. 8086程序设计- 学会编写简单的汇编程序,包括顺序结构、分支结构、循环结构等;- 了解汇编程序中的子程序设计、宏指令使用等方法。
4. 8086输入输出操作- 掌握汇编语言进行输入输出操作的方法;- 学习使用中断调用、直接内存访问等输入输出方式。
5. 8086系统编程- 学习8086汇编语言在系统编程中的应用;- 掌握系统初始化、中断处理、设备驱动等编程方法。
基于80C86步进电机控制系统设计与实现
在 控 制 工 作模 式 中要 启 动 1 控 制 定 时 中断 , 个 定 时 中 断 的 个 这 优 先 权 级 别设 置 为 最 高 , 制 定 时 中 断 的 频 率 由 软 件 编程 设 置 , 控 满
足 步 进 电 机 A、 、 、 相 的相 位 要 求 。控 制定 时 中断 选 用 可 编程 计 B CD 数 器 完成 ; 数器 器 件 选 用 I E S 计 NT R I L公 司 的 8C 4 它 是 l 位 计 数 2 5, 6
I量 总 墼 线
驱 动 及 泽
L I —
线 图 和 对 力 矩 的要 求 , 波 发 生 器 的 频 率 为 2 z 3 H 方 KH ~ K z并 且 占
空 比可 调 , 占空 比可 调 范 围 是 2 ~ 5 , 功 能 用 2个 1 5 O 此 6位 计
8C6H 型-路 08 缝 码 R 塑 电
步 进 电机 是 机 电控 制 中 一 种 常 用 的 执 行 元 件 , 接 利 用 脉 冲 直 信号控制其转动 , 具有 快 速 起 停 特 性 、 位 精 度 高 、 复 性 好 、 止 定 重 停
时具有恒定力矩等特点 , 目前 已经 广 泛 应 用 在 各 类 自动 控 制 场 合 。 但 是 受 机 械 加 工 等 多 方 面 因 素 影 响 , 较 低 成 本 下 很 难 将 电 机 步 在 距角减少 , 因此 用 一 般 步进 电 机 驱 动 器 驱 动 步 进 电 机 , 易 导 致 步 容 进 电机 失 步 和 低 频 震 荡 。为 了克 服 上述 缺 点 本 文 设 计 出 了一 种 新
基于 8 C 6步进 电机控制 系统设 计与实现 08
步进电机课程设计
步进电机控制设计摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
步进电机控制系统以8086作为控制的核心元件,利用8255的C口控制步进电机,同时获取控制转动方向(即正转和反转),A口连接键盘,以选取不同档的移动速度,B口连接LED显示器,以显示当前的速度档,8253作为定时器,提供必要的时钟信号。
本课程设计报告通过步进电机的基本介绍、系统的软硬件设计(包括最小系统介绍、接口电路设计、延时程序设计、步进电机的驱动程序设计等几个主要模块)、完整的汇编语言程序等,我们完成了对步进电机系统的设计,并完成了相应的任务,如正转、反转、显示步数及设定速度等,使我们进一步掌握了汇编语言,也使我们能很好的把书本上的知识与实践相结合,大大提高了我们的动手能力。
关键词:步进电机,脉冲信号,方向控制,时钟信号目录1 绪论 (1)1.1课题描述 (1)1.2步进电机控制工作原理 (1)2 步进电机系统的总体设计 (2)2.1系统设计方框图 (2)2.2方框图的描述 (3)3 步进电机的软件设计 (7)3.1主程序流程图 (7)3.2中断子程序流程图 (7)3.3步进电机系统程序 (7)4 步进电机系统的总原理图及元器件清单 (9)4.1系统总原理图 (9)4.2元器件清单 (11)总结 (12)致谢 (13)参考文献 (14)1 绪论1.1 课题描述步进电机将脉冲信号转换成的机械角位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成比例,通过改变电脉冲频率,可在大范围内调速,同时,该电机还能快速起动、制动、反转.此外,步进电机易于实现与单片机机或其它数字元件接口,适用于数字控制系统,并可取得较高的控制精度,系统硬件实施比较简单。
这次数控原理的课程设计方案是基于单片机的步进电机运行控制系统。
微机原理课程设计 太阳能热水器控制 8086
J I A N G S U U N I V E R S I T Y微机系统与接口技术课程设计说明书题目:太阳能热水器的数显控制学院名称:机械工程学院专业班级:测控1401姓名学号:指导教师:2016 年12 月目录引言 (1)一、结构设计 (1)1.1温度传感器 (1)1.1.1 DS18B20数字温度传感器 (1)1.1.2 AD590温度传感器 (2)1.2水位传感器 (3)1.2.1开关式液位传感器 (3)二、硬件设计 (4)2.1功能分析 (4)2.1.1温度读取与显示 (4)2.1.2水位的读取与显示 (6)2.1.3低温保护功能 (6)2.1.4手动注水功能 (7)2.2存储器 (7)2.3总体接线 (8)三、程序设计 (9)3.1.2 手动注水子程序 (11)四、功能测试 (12)4.1低温保护功能测试 (12)4.2水位显示和手动注水功能测试 (14)五、总结 (17)参考文献 (18)原件清单 (19)微机系统与接口技术课程设计任务书一、设计目的:1、建立微机系统概念,加深对微机系统的理解和认识,提高微机系统的应用能力。
2、进一步学习和掌握微机程序设计方法,通过应用程序的编写和调试,学习程序的调试方法。
3、进一步熟悉违纪典型接口芯片的使用,接口及外部设备与系统的连接方法,二、题目:微机系统与接口技术应用系统的设计-------------太阳能热水器数显控制器三、设计要求:1、以8086(8088)CPU为主控单元,构建微机应用系统。
2、应用系统的硬件设计,画出电路原理图和线路连接图。
3、应用系统的软件设计,画出软件流程图,写出主要程序。
4、根据实验条件,进行微机应用系统的部分模拟调试工作,写出调试说明。
5、整理设计说明书,列出参考文献清单。
6、列出使用的元件和设备清单引言目前,中国已成为世界上最大的太阳能热水器生产国,年产量约为世界各国之和。
但是与之相配套的太阳能热水器控制器却一直处在研究与开发阶段。
基于8086的小型直流电机闭环调速系统PID控制设计
微机原理课设报告目录一、需求分析与解决方案 (4)1.1 需求分析 (4)1.1.1实验题目 (4)1.1.2 实验题目问题分析 (4)1.2 解决问题的思路 (4)1.2.1 总体思路 (4)1.2.2 硬件设计器件选择 (4)1.2.3 软件整体思路 (6)二、硬件设计详解 (6)2.1 片选模块 (6)2.2 中断定时模块 (8)2.3 PWM发生模块 (9)2.4 调速模块 (10)2.5 测速模块 (11)2.6 参数显示模块 (11)2.7 电机驱动模块 (12)2.8 参数调整模块 (12)2.9串口通信模块 (13)三、软件设计详解 (13)3.1 下位机程序流程图 (13)3.2 下位机程序清单 (14)3.2.1宏定义 (14)3.2.2全局变量声明 (14)3.2.3 系统初始化 (15)3.2.4 主函数 (15)3.2.5 中断服务子程序 (16)3.2.6 显示子程序 (16)3.3 PID简介 (16)3.4 labview上位机制作 (17)3.5 辅助软件选择 (18)四、实验条件 (18)五、模块调试 (18)5.1 片选模块调试 (18)5.2 中断定时模块调试 (18)5.3 PWM发生模块调试 (19)5.4 调速模块调试 (20)5.5 测速模块调试 (20)5.6 参数显示模块调试 (21)5.7 电机驱动模块调试 (21)5.8 参数调整模块调试 (21)5.9 串口通信模块调试 (22)5.10 labview上位机的调试 (22)六、实验结果讨论及改进措施 (23)6.1实验结果讨论 (23)6.2 改进措施 (23)七、实验心得体会 (24)八、参考文献 (24)九、附录一(硬件电路图) (25)十、附录二(软件源代码) (25)小型直流电机闭环调速系统PID控制设计一、需求分析与解决方案1.1 需求分析1.1.1实验题目(1)、设计基于80x86微机接口控制电路;(2)、分别用C语言或汇编语言或VC++编程完成硬件接口功能设计;(3)、程序功能要求:电机速度由按键分段给定或电位器连续给定,计算机屏幕和数码管同步跟踪显示当前给定速度和电机实际运行速度,实现PID参数在线显示和修改。
微机原理步进电机控制课程设计报告
河北科技大学课程设计报告学生姓名:学号:专业班级:课程名称:学年学期: 2 0 —2 0 学年第学期指导教师:2 0 年月课程设计成绩评定表目录一、设计题目……………………………………………………………….二、设计目的……………………………………………………………….三、设计原理及方案……………………………………………………….四、实现方法……………………………………………………………….五、实施结果……………………………………………………………….六、改进意见及建议……………………………………………………….七、设计体会……………………………………………………………….、一、设计题目编程实现步进电机的控制二、设计目的1.了解步进电机控制的基本原理2.掌握控制步进电机转动的编程方法3.了解8086控制外部设备的常用电路4.掌握8255的使用方法三、设计原理及方案设计原理步进电机驱动原理是通过对每相线圈中的电流的顺序切换实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化,来使电机作步进式旋转;驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速;利用 8255对四相步进电机进行控制;当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动;每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度一个步距角;当通电状态的改变完成一个循环时,转子转过一个齿距;四相步进电机可以在不同的通电方式下运行,常见的通电方式有单单相绕组通电四拍A-B-C-D-A…,双双相绕组通电四拍AB-BC-CD-DA-AB…,八拍A-AB-B-BC-C-CD-D-DA-A…等;通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动;硬件连接图四.实现方法.步进电机控制程序流图.程序代码ASTEPEQU01H BSTEPEQU02H CSTEPEQU04H DSTEPEQU08H CODESEGMENT ASSUMECS:CODESTART:MOVDX,8003H;8255控制口地址MOVAL,82H;PA口输出,B口输入OUTDX,AL;写控制字K0:MOVDX,8000H;PA口地址MOVAL,0;输出低电平OUTDX,AL;电机停止转动MOVDX,8001H;PB口地址INAL,DX;读开关状态TESTAL,01H;PB0位K0=0吗JNZK1;不是零转K1JMPSTEP8;是零转单/双八拍工作方式K1:INAL,DX;读开关状态TESTAL,02H;PB1位K1=0吗JNZK2;不是零转K2JMPSTEP4;是零转双四拍工作方式K2:INAL,DX;读开关状态TESTAL,04H;PB2位K2=0吗JZSTEP41;是零转单四拍反转工作方式JMPK0;循环;单/双八拍工作方式:A→AB→B→BC→C→CD→D→DA→A STEP8:MOVBX,9000H;设置初始延时时间MOVDX,8000H;PA口地址MOVAL,ASTEPOUTDX,ALCALLDELAYMOVAL,ASTEP+BSTEPOUTDX,ALCALLDELAYMOVAL,BSTEPOUTDX,ALCALLDELAYMOVAL,BSTEP+CSTEPOUTDX,ALCALLDELAYMOVAL,CSTEPOUTDX,ALCALLDELAYMOVAL,CSTEP+DSTEPOUTDX,ALCALLDELAYMOVAL,DSTEPOUTDX,ALCALLDELAYMOVAL,DSTEP+ASTEPOUTDX,ALCALLDELAYJMPK0;双四拍工作方式:AB→BC→CD→DA→AB STEP4:MOVBX,5000H;设置延时时间MOVDX,8000H;PA口地址MOVAL,ASTEP+BSTEP;PA0PA1AB相输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,BSTEP+CSTEP;BC输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,CSTEP+DSTEP;CD输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,DSTEP+ASTEP;DA输出高电平OUTDX,ALCALLDELAY;调延时JMPK0;单四拍反转工作方式:D→C→B→A→D STEP41:MOVBX,1000H;设置延时时间MOVDX,8000H;PA口地址MOVAL,DSTEP;D输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,CSTEP;C输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,BSTEP;B;输出高电平OUTDX,ALCALLDELAY;调延时MOVAL,ASTEP;A输出高电平OUTDX,ALCALLDELAY;调延时JMPK0DELAYPROCNEAR;延时子程序PUSHCXMOVCX,BXDD1:NOPLOOPDD1POPCXRETDELAYENDP;延时子程序结束CODEENDS;代码段结束ENDSTART五.实施结果.操作步骤1、硬件测试WINXP步进电机2、在硬件测试通过后,要注意三个相一致1PNP地址和数据段中的端口地址;2控制字和接线;3代码段中的端口地址和接线;3、把程序代码烧进写实验箱中.运行结果1K0扳下表示启动,步进电机转动;K0扳下表示停止,步进电机停止;2K1扳下表示顺时针转,速度慢;3K2扳下表示逆时针,即倒转,速度快;六.改进意见及建议程序设计没有实现加速和减速,在步进电机的转动函数里,每次循环都改变延时的大小即可实现变速;延时时间依次变长则步进电机减速,延时时间依次变短则步进电机加速;再配合开关即可实现加速减速的任意控制;七.设计体会这次做的实验是一个比较综合的实验,实验中主要是微机原理的编程,但还涉及到步进电机的有关知识以及一些专业基础课的知识,所以要做好这次实验我们需要做的有很多;首先,在查找资料的过程中,我更加理解了8255在微型计算机中的重要作用,理解了8255的基本的编程结构和基本控制字的设计方法,也锻炼了自己的动手能力和创新意识;其次,在编写汇编程序过程中,由于早先对汇编语言学习的不扎实,我们遇到了很大的困难,但是随着对问题理解的逐渐深入,这些问题最终都一一化解了;通过这次步进电机控制代码的编写,让我有了一个更深刻的认识:要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的;在这个过程中,不仅提高了实际动手操作能力,培养了治学严谨的态度,激发了我学习此专业课程的兴趣,而且让我们深刻的体验到理论知识与实践经验的密切联系,要成为一个高技术人才,必须理论与实践两手都要硬;在设计时,对不同方案的构思、分析、比较到最后的方案确定,这些工作,可以增强了我们分析、解决问题的能力,培养了我们的创新意识;。
基于8086和proteus课程设计
基于8086和proteus课程设计一、课程目标知识目标:1. 理解8086微处理器的内部结构、工作原理及其指令系统;2. 掌握使用Proteus软件进行8086微处理器电路设计与仿真;3. 学会分析并设计简单的微处理器控制系统。
技能目标:1. 能够运用8086微处理器的指令集进行基本的编程;2. 能够利用Proteus软件绘制8086微处理器电路图,并进行仿真测试;3. 能够通过课程学习,提高动手实践能力和问题解决能力。
情感态度价值观目标:1. 培养学生对微处理器技术的兴趣,激发学习热情;2. 培养学生团队协作意识,提高沟通与协作能力;3. 引导学生认识到微处理器在现代科技领域的重要地位,树立正确的科技观。
课程性质:本课程为电子信息类专业的实践性课程,注重理论知识与实践操作的结合。
学生特点:学生具备一定的电子技术基础和编程能力,对微处理器技术有一定了解。
教学要求:结合学生特点,课程目标分解为具体学习成果,强调实践操作,注重培养学生的动手能力和问题解决能力。
在教学过程中,教师应引导学生主动探索,激发学习兴趣,提高课程教学效果。
二、教学内容1. 8086微处理器基础知识:包括8086内部结构、工作原理、寄存器组、指令系统等;- 教材章节:第3章“8086微处理器结构及其工作原理”,第4章“8086指令系统”;- 进度安排:2课时。
2. Proteus软件使用:介绍Proteus软件的基本操作、电路图绘制、仿真测试等;- 教材章节:第5章“Proteus软件及其应用”;- 进度安排:2课时。
3. 8086微处理器电路设计与仿真:结合实例,讲解如何使用Proteus软件进行8086微处理器电路设计与仿真;- 教材章节:第6章“基于Proteus的微处理器电路设计与仿真”;- 进度安排:4课时。
4. 基于微处理器的控制系统设计:分析并设计简单的微处理器控制系统;- 教材章节:第7章“微处理器控制系统设计”;- 进度安排:4课时。
微机原理课设 步进电机设计
学号:0120911360218课程设计题目步进电机学院自动化学院专业自动化班级自动化0902班姓名指导教师徐小强2012 年 1 月12 日课程设计任务书学生姓名:专业班级:自动化0902指导教师:徐小强工作单位:自动化学院题目:步进电机初始条件:用汇编语言设计一个步进电机的控制,在Proteus仿真环境下完成,功能上实现步进电机的基本功能。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 通过键盘控制步进电机的启动和停止,正转和反转;2. 编制完整的程序并调试;3.撰写符合学校要求的课程设计说明书,内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:1. 1月04日----1月05日查阅资料及方案设计2.1月06日----1月08日编程3.1月09日----1月10日调试程序4.1月11日----1月12日撰写课程设计报告5.1月13日上午准备答辩,下午正式答辩指导教师签名:年月日系主任(或责任教师)签名:年月日摘要步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
其种类比较多,分为机电式、磁电式及直线式三种基本类型。
磁电式步进电动机主要有永磁式、反应式和永磁感应子式3种形式。
它主要用于数字控制系统中,精度高,且运行可靠。
步进电动机目前已广泛地应用于数字控制系统中,如数模转换装置、数控机床、计算机外围设备、自动记录仪、钟表等之中,另外在工业自动化生产线、印刷设备等中亦有应用。
因此可知,步进电机在现代控制领域中起着非常重要的作用。
本次设计中,要求使用8086CPU作为主控制器,通过与外部接口芯片的配合工作,以实现控制步进电机的启动、停止、正转、反转等功能。
设计要求为,通过编写正确的汇编程序,并使用仿真软件PROTEUS进行该控制系统的仿真。
基于8086的直流电机的控制
目录一、直流电机控制的设计思路: (2)二、直流电机控制的硬件框图: (2)2.1并行I\O口输入、输出 (3)2.2输出锁存 (3)2.3电机驱动模块 (4)2.4仿真模拟图 (5)三、软件设计 (6)3.1程序流程图 (6)3.2程序代码 (7)四、项目体会 (9)一、直流电机控制的设计思路:1)通过按键改变电动机的启动与停止,当启动后再由按键选择工作方式。
2)通过改变pwm的极性从而改变电机的转向,实现正反转。
3)可实现顺、逆旋转的直接切换,不用按下停止后再启动反向运转。
二、直流电机控制的硬件框图:通过按钮来控制电机的顺、逆时针转,并且可以实现顺、逆旋转直接切换,无需中间停顿。
2.1并行I\O口输入、输出采用8255A作为信号的输入与输出接口,使用前需设置芯片的控制字来确定其工作方式,以及端口的使用。
本次采用的控制字为90H,即A组工作在方式0,作为输入接口,连接按钮,B组工作在方式0,作为输出接口连接电机驱动模块。
8255AI\O接口使用2.2输出锁存使用常见的74HC373芯片来实现输出锁存,由于按钮具有复位功能,当按钮按下后的一瞬间才产生输入,所以需要输出锁存来保持电机的连续运转,本次采用两块74HC373,一块与8255A的A0、A1口连接作为电机运行信号的控制,另一块与3-8译码器74H138相连,接入8255A的片选信号输入端,选中8255A运行。
74H373接口使用2.3电机驱动模块通过对IN1、IN2的状态改变来控制L293D芯片的输出,从而实现电机的顺、逆时针转动电机驱动模块2.4仿真模拟图三、软件设计3.1程序流程图当按下按键时,检测A口是否为01H,若是即跳转到子程序MOT1,实现电机顺时针旋转,否则检测A口是否为02H,若是即跳转到子程序MOT2,实现电机逆时针旋转,否则检测A口是否为04H,若是即跳转到子程序MOT3,使电机停止转动。
再进入循环。
3.2程序代码CODE SEGMENT 'CODE'ASSUME CS:CODE,SS:STACK,DS:DATA ;定义数据段IOCON EQU 8006HIOA EQU 8000HIOBEQU 8002H 定义端口的地址 IOC EQU 8004HSTART:MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AXMOV AX, TOP1MOV SP, AXMOV AL,90H A 口为输入,B 口为输出 MOV DX,IOCON 控制字设置,AB 端口为“0”方式下,控制字10010000B OUT DX,AL NOP NOP TEST_BU:MOV DX,IOA IN AL,DX 检测总线系统 MOV DX,IOA IN AL,DX NOP test_1: TEST AL,01HJE MOT1 test_2: TEST AL,02HJE MOT2 test_3: TEST AL,04HJE MOT3 JMP TEST_BU MOT1:MOV AL,0FEHMOV DX,IOB 往B 端口中输出1111 1110B=0FEH 使电机顺时针旋转OUT DX,AL MOV DX,IOA IN AL,DX ;从A 口读入数据 TEST AL,02H ;测试是否等于0000 0010即按下逆时针按钮 JE MOT2 ;如果是按下逆时针按钮,则跳转到MOT2 TEST AL,04H JE MOT3 JMP MOT1 MOT2:MOV AL,0FDHMOV DX,IOB向B 端口中输入1111 1101B=0FDH使电机逆时针旋转 OUT DX,AL MOV DX,IOA IN AL,DX ;从A 口读入数据 TEST AL,01H 测试A 口数据是否为01H ,若是则跳到 JE MOT1 MOT1顺时针旋转模式 TEST AL,04H 测试A 口数据是否为04H,JE MOT3 若是则跳转到MOT3停止模式JMP MOT2 ;否则跳转到MOT2逆时针旋转模式 MOT3:MOV AL,0FFHMOV DX,IOB 向B 端口输出11111111B=0FFH 使电机停止 OUT DX,AL MOV DX,IOAIN AL,DX TEST AL,01H JE MOT1TEST AL,02H JE MOT2JMP MOT3CODE ENDSSTACK SEGMENT 'STACK' STA DB 100 DUP(?) TOP1 EQU LENGTH STA STACK ENDS DATA SEGMENT 'DATA' DATA ENDSEND START四、项目体会微机原理与接口技术的课程历时一个学期,通过自己编写、运行程序,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
基于8086的计算机+步进电机控制
课程设计课程名称题目名称步进电机的角度控制(1)学生学院专业班级学号学生姓名指导教师2009年 6 月25日题目1:按要求控制步进电机,使步进电机每转360度停5秒;程序如下:#include<conio.h>#define CON 0x63#define PA 0x60#define PB 0x61#define PC 0x62#define uchar unsigned char#define uint unsigned intuchar step[]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90};void delay(uint zz){uint x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}void main(){int,I,j;outp(CON,0x81);while(1){for(j=0;j<12;j++){for(i=0;i<8;i++){outp(PC,step[i]);delay(5);}delay(200);}delay(5000);}}题目2:按要求实现键盘显示程序设计的程序如下:#include<conio.h>#define CON 0x63#define PA 0x60#define PB 0x61#define PC 0x62#define uchar unsigned char#define uint unsigned intuchar table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xfb}; uchar xuan[]={0x7f,0xbf,0xdf,0xef};uchar temp,flag,num,key;uchar jiou;uchar a1,a2,a3,a4;void delay(uint zz);void display(uchar w4,uchar w3,uchar w2,uchar w1);uchar keyscan();void main(){flag=0;jiou=0;outp(CON,0x81);while(1){display(a4,a3,a2,a1);key=keyscan();if(flag==1){flag=0;a4=a2;a3=a2;a2=a1;a1=key;}}}void display(uchar w4,uchar w3,uchar w2,uchar w1) {outp(PA,table[w1]);outp(PB,xuan[0]);delay(5);outp(PA,table[w2]);outp(PB,xuan[1]);delay(5);outp(PA,table[w3]);outp(PB,xuan[1]);delay(5);outp(PA,table[w4]);outp(PB,xuan[1]);delay(5);}uchar keyscan(){outp(PB,0xef);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){flag=1;temp=inp(PC);temp=temp&0x03;switch(temp){case 0x02:num=9;break;case 0x01:num=5;break;}while(temp!=0x03){outp(PB,0xef);temp=inp(PC);temp=temp&0x03;display(a4,a3,a2,a1);}}}outp(PB,0xdf);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){flag=1;temp=inp(PC);temp=temp&0x03;switch(temp){case 0x02:num=0;break;case 0x01:num=6;break;}while(temp!=0x03){outp(PB,0xdf);temp=inp(PC);temp=temp&0x03;display(a4,a3,a2,a1);}}}outp(PB,0xbf);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){flag=1;temp=inp(PC);temp=temp&0x03;switch(temp){case 0x02:num=1;break;case 0x01:num=7;break;}while(temp!=0x03){outp(PB,0xbf);temp=inp(PC);temp=temp&0x03;display(a4,a3,a2,a1);}}}outp(PB,0x7f);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){flag=1;temp=inp(PC);temp=temp&0x03;switch(temp){case 0x02:num=2;break;case 0x01:num=8;break;}while(temp!=0x03){outp(PB,0x7f);temp=inp(PC);temp=temp&0x03;display(a4,a3,a2,a1);}}}return num;}void delay(uint zz){uint x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}题目3:测试AD转换器的性能程序如下:#include<conio.h>#define CON 0x63#define PA 0x60#define PB 0x61#define PC 0x62#define uchar unsigned char#define uint unsigned intuchar table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xfb}; uchar xuan[]={0x7f,0xbf,0xdf,0xef};uchar temp,flag,num,key;uchar jiou;uchar a1,a2,a3,a4;void delay(uint zz);void display(uchar w4,uchar w3,uchar w2,uchar w1);void main(){outp(CON,0x81);while(1){uint dat;outp(0x00,0x0d);dat=inp(0x00);a3=dat/16;a4=dat%16;display(0,0,a3,a4);dat=inp(0x00);}}void display(uchar w4,uchar w3,uchar w2,uchar w1){outp(PA,table[w1]);outp(PB,xuan[0]);delay(5);outp(PA,table[w2]);outp(PB,xuan[1]);delay(5);outp(PA,table[w3]);outp(PB,xuan[1]);delay(5);outp(PA,table[w4]);outp(PB,xuan[1]);delay(5);}void delay(uint zz){uint x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--); }题目四:步进电机的角度控制(1)设计的程序如下:#include<conio.h>#define CON 0x63#define PA 0x60#define PB 0x61#define PC 0x62#define uchar unsigned char#define uint unsigned intuchar step[]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90};uchar table[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xfb}; uchar xuan[]={0x7f,0xbf,0xdf,0xef};uchar temp,num,key;uchar jiou;int max;uchar set,clr,start;uchar ge,shi,bai;int ge1,shi1,bai1;int xianshi;int adc();void clear();void dianji(int degree);void delay(uint zz);void display(uchar w4,uchar w3,uchar w2,uchar w1);void keyscan();void main(){int tt,kk,chazhi;max=0;xianshi=0;tt=0;kk=0;chazhi=0;xianshi=0;jiou=0;ge=0;shi=0;bai=0;ge1=0;shi1=0;bai1=0;outp(CON,0x81);while(1){keyscan();if(set==1){ge=0;shi=0;bai=0;while(1){display(0,bai,shi,ge);keyscan();if(clr==1){clear();break;}if(start==1)break;}if(start==1){max=bai*100+shi*10+ge;while(clr!=1){kk=max/15*(adc())/0xff; //下一次的角度;tt=kk-(xianshi/15);//和上一次相差的度數;if(tt!=0)dianji(tt);keyscan();}clear();}}display(0,0,0,0);}}void display(uchar w4,uchar w3,uchar w2,uchar w1){bai1=xianshi/100;shi1=xianshi%100/10;ge1=xianshi%10;outp(PA,table[w1]);outp(PB,xuan[0]);delay(5);outp(PA,table[w2]);outp(PB,xuan[1]);delay(5);outp(PA,table[w3]);outp(PB,xuan[1]);delay(5);outp(PA,table[w4]);outp(PB,xuan[1]);delay(5);}void keyscan(){outp(PB,0xef);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){temp=inp(PC);temp=temp&0x03;switch(temp){case 0x02:set=1;break;case 0x01:break;}while(temp!=0x03){outp(PB,0xef);temp=inp(PC);temp=temp&0x03;display(0,bai,shi,ge);}}}outp(PB,0xdf);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){temp=inp(PC);temp=temp&0x03;if(set==1){switch(temp){case 0x02:clr=1;break;case 0x01:if(start==0){shi++;if(shi>9)shi=0;}break;}}while(temp!=0x03){outp(PB,0xdf);temp=inp(PC);temp=temp&0x03;display(0,bai,shi,ge);}}}outp(PB,0xbf);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){temp=inp(PC);temp=temp&0x03;if(set==1){switch(temp){case 0x02:if(start==0){ge++;if(ge>9)ge=0;}break;case 0x01:start=1;break;}}while(temp!=0x03){outp(PB,0xbf);temp=inp(PC);temp=temp&0x03;display(0,bai,shi,ge);}}}outp(PB,0x7f);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){delay(5);temp=inp(PC);temp=temp&0x03;while(temp!=0x03){temp=inp(PC);temp=temp&0x03;if(set==1){switch(temp){case 0x02:break;case 0x01:if(start==0){bai++;if(bai>9)bai=0;}break;}}while(temp!=0x03){outp(PB,0x7f);temp=inp(PC);temp=temp&0x03;display(0,bai,shi,ge);}}}}void dianji(int degree) //电机程序,精度为15度{int i,j,k,l;if(degree>0){for(i=degree;i>0;i--){if(jiou==0){for(j=0;j<4;j++){outp(PC,step[j]);display(0,bai1,shi1,ge1);}jiou=1;goto loop_1;}if(jiou==1){for(k=4;k<8;k++){outp(PC,step[k]);display(0,bai1,shi1,ge1);}jiou=0;goto loop_1;}loop_1: xianshi=xianshi+15;display(0,bai1,shi1,ge1);}}if(degree<0){for(i=-(degree);i>0;i--){if(jiou==0){for(j=7;j>3;j--){outp(PC,step[j]);display(0,bai1,shi1,ge1);}jiou=1;goto loop_2;}if(jiou==1){for(k=3;k>-1;k--){outp(PC,step[k]);display(0,bai1,shi1,ge1);}jiou=0;goto loop_2;}loop_2: xianshi=xianshi-15;display(0,bai1,shi1,ge1);}}}void clear(){int huiwei;huiwei=-xianshi;huiwei=huiwei/15;if(huiwei!=0)dianji(huiwei);ge=0;bai=0;shi=0;xianshi=0;start=0;set=0;clr=0;}int adc() //ad转换函数{uint dat;outp(0x00,0x0d);dat=inp(0x00);display(0,bai1,shi1,ge1);dat=inp(0x00);return dat;}void delay(uint zz){uint x,y;for(x=zz;x>0;x--)for(y=110;y>0;y--);}系统设计说明:此系统运行后,如果没有按set键,按其他键不起任何作用;当按下set后,可以由相应的个位键、十位键、百位键,以每按一次加一的形式输入任意三位数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
皖西学院本科课程设计步进电机电机控制设计摘要:8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface,PPI),它是为Intel系列微处理器设计的配套电路,也可以用于其他微处理系统中。
通过它进行编程,芯片可工作于不同的工作方式。
在微型计算机系统中,用8255A作为接口是时,通长常不需要附加外部逻辑电路就可直接为CPU与外设之间提供数据通道,因此它得到了极为广泛的应用。
其次步进电机具有快速启动和停止的能力,它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件如:温度、气压、冲击和振动等影响,仅与脉冲频率有关。
它每转一周都有固定的步数,在不丢失步的情况下运行,其步矩误差不会长期累积。
正因为步进电机具有快速启动、精确步进以及能直接接收数字量的特点,所以在定位场合中得到了广泛的应用。
比如在打印机中,数控车床、自动记录仪表、数模交换装置和计算机等数字控制系统中。
随着微机的发展,步进电机的使用领域将更加广阔。
本次设计正是利用并介绍了可编程并行I/O接口芯片8255A为8086CPU与步进电机之间提供数据通道,通过芯片的A口输入,B口输出的方式来实现控制步进电机的停转、快慢及正反转。
关键词:可编程并行I/O接口芯片8255A;8086CPU;ULN2003A驱动芯片;步进电机目录1 课程设计题目及课题分析 --------------------------------------------------------------------------- 11.1课程设计题目----------------------------------------------------------------------------------- 11.2步进电机介绍----------------------------------------------------------------------------------- 11.4软硬件运行环境及开发工具----------------------------------------------------------------- 12 步进电机控制系统各部件功能原理介绍--------------------------------------------------------- 22.1设计原理及实现方法-------------------------------------------------------------------------- 22.1.1 步进电机控制原理-------------------------------------------------------------------- 22.1.2微机步进电机控制系统原理图 ----------------------------------------------------- 22.1.3 运行方式与方向的控制——循环查表法 ---------------------------------------- 32.1.4步进电机的停转及快慢控制——设置开关 -------------------------------------- 42.2步进电机控制设计流程图-------------------------------------------------------------------- 53 步进电机控制系统软件编写与仿真 --------------------------------------------------------------- 63.1 硬件设计与实现 ------------------------------------------------------------------------------- 63.2仿真结果----------------------------------------------------------------------------------------- 63.2.1 并行接口I/O芯片8255A ----------------------------------------------------------- 63.2.2 驱动部分与步进电机----------------------------------------------------------------- 73.2.3步进电机与外部开关 ----------------------------------------------------------------- 83.2.4 仿真结果-------------------------------------------------------------------------------- 83.3软件设计----------------------------------------------------------------------------------------- 93.3.1正向慢转子程序 ----------------------------------------------------------------------- 93.3.2正向快转子程序 ----------------------------------------------------------------------- 93.3.3反向慢转子程序 ---------------------------------------------------------------------- 103.3.4反向快转子程序 ---------------------------------------------------------------------- 103.3.5长延时子程序-------------------------------------------------------------------------- 103.3.6短延时子程序-------------------------------------------------------------------------- 114 系统调试与操作说明 -------------------------------------------------------------------------------- 124.1系统调试---------------------------------------------------------------------------------------- 124.2 操作说明 --------------------------------------------------------------------------------------- 125 课程设计总结与体会 -------------------------------------------------------------------------------- 13 致谢------------------------------------------------------------------------------------------------------ 14 参考文件献 ----------------------------------------------------------------------------------------------- 15 附录步进电机控制系统源程序---------------------------------------------------------------------- 16皖西学院本科课程设计1 课程设计题目及课题分析1.1课程设计题目步进电机控制设计,运用汇编语言编写程序对8255A控制,通过emu8086编译成.com文件并载入8086CPU中并用74LS373、74LS130、ULN2003A等一些列芯片通过连接实现对步进电机的控制。
1.2步进电机介绍步进电机又称脉冲电动机,是按专用的脉冲电源的脉冲信号二一步一步的移动的。
电源每输入一个脉冲,电动机就会转过一定的角度。
因此,步进电机的角位移与输入的脉冲数成正比,相应的转速与脉冲的频率成正比。
步进电机有反应式(磁阻式)、永磁式、和永磁感应式的数种,此外,步进电机还可以做成直线型和平面型两种。
步进电机的定子可以有很多个磁极,两个相对的磁极为一相,定子按照一定顺序通电,转子则会按一定顺序一步一步地的旋转。
由一种通电状态变换到另一种通电状态叫一“拍”,每一拍转子转过的角度叫步矩角,如果每次有两相通电,则称为双拍。
本次设计中用的是双八拍。
步进电机具有快速启动和停止的能力,它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件如:温度、气压、冲击和振动等影响,仅与脉冲频率有关。
它每转一周都有固定的步数,在不丢失步的情况下运行,其步矩误差不会长期累积。
除此之外其体积小,重量轻、耗电少外,还必须具有高可靠性、高精度、快速性。
正因为步进电机具有快速启动、精确步进以及能直接接收数字量的特点,所以在定位场合中得到了广泛的应用。
日益广泛应用于数控车床、自动记录仪表、数模交换装置和计算机等数字控制系统中。
随着微机的发展,步进电机的使用领域将更加广阔。
1.3课程设计任务及要求任务:控制四相步进电机按双八拍的运行方式运行。
将开关K2置高电平时启动步进电机,将K2键置低电平时,停止工作。
步进电机的加电采用循环查表法,用软件来实现脉冲循环分配器的功能对步进电机绕组轮流加电。
要求:要使电机能通过控制实现四项功能:快速顺时针旋转,慢速顺时针旋转,快速逆时针旋转和慢速逆时针旋转,进行步进电机控制系统硬件电路设计,画出电路原理图、元器件布线图、实验电路图;绘制程序流程图,进行步进电机控制程序设计(采用汇编语言)。
1.4软硬件运行环境及开发工具硬件:PC机一台软件:能够仿真调试8086的Proteus软件、emu8086开发语言:汇编语言2 步进电机控制系统各部件功能原理介绍2.1设计原理及实现方法2.1.1 步进电机控制原理步进电机是将电脉冲信号转换成角位移的一种机电式数模转换器。