基于8086的直流电机的控制.docx

上传人:b****6 文档编号:12665724 上传时间:2023-06-07 格式:DOCX 页数:12 大小:185.35KB
下载 相关 举报
基于8086的直流电机的控制.docx_第1页
第1页 / 共12页
基于8086的直流电机的控制.docx_第2页
第2页 / 共12页
基于8086的直流电机的控制.docx_第3页
第3页 / 共12页
基于8086的直流电机的控制.docx_第4页
第4页 / 共12页
基于8086的直流电机的控制.docx_第5页
第5页 / 共12页
基于8086的直流电机的控制.docx_第6页
第6页 / 共12页
基于8086的直流电机的控制.docx_第7页
第7页 / 共12页
基于8086的直流电机的控制.docx_第8页
第8页 / 共12页
基于8086的直流电机的控制.docx_第9页
第9页 / 共12页
基于8086的直流电机的控制.docx_第10页
第10页 / 共12页
基于8086的直流电机的控制.docx_第11页
第11页 / 共12页
基于8086的直流电机的控制.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于8086的直流电机的控制.docx

《基于8086的直流电机的控制.docx》由会员分享,可在线阅读,更多相关《基于8086的直流电机的控制.docx(12页珍藏版)》请在冰点文库上搜索。

基于8086的直流电机的控制.docx

基于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程序代码

CODESEGMENT'CODE'

ASSUMECS:

CODE,SS:

STACK,DS:

DATA;定义数据段

IOCONEQU8006H

IOAEQU8000H

IOBEQU8002H定义端口的地址

IOCEQU8004H

START:

MOVAX,DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVAX,TOP1

MOVSP,AX

MOVAL,90HA口为输入,B口为输出

MOVDX,IOCON控制字设置,AB端口为“0”方式下,控制字10010000B

OUTDX,AL

NOP

NOP

TEST_BU:

MOVDX,IOA

INAL,DX检测总线系统

MOVDX,IOA

INAL,DX

NOP

test_1:

TESTAL,01H

JEMOT1

test_2:

TESTAL,02H

JEMOT2

当等于04H时停止

test_3:

TESTAL,04H

JEMOT3

JMPTEST_BU

MOT1:

MOVAL,0FEH

MOVDX,IOB往B端口中输出11111110B=0FEH使电机顺时针旋转

OUTDX,AL

MOVDX,IOA

INAL,DX;从A口读入数据

TESTAL,02H;测试是否等于00000010即按下逆时针按钮

JEMOT2;如果是按下逆时针按钮,则跳转到MOT2

TESTAL,04H

JEMOT3

JMPMOT1

MOT2:

MOVAL,0FDH

MOVDX,IOB向B端口中输入11111101B=0FDH使电机逆时针旋转

OUTDX,AL

MOVDX,IOA

INAL,DX;从A口读入数据

TESTAL,01H测试A口数据是否为01H,若是则跳到

JEMOT1MOT1顺时针旋转模式

TESTAL,04H测试A口数据是否为04H,

JEMOT3若是则跳转到MOT3停止模式

JMPMOT2;否则跳转到MOT2逆时针旋转模式

MOT3:

MOVAL,0FFH

MOVDX,IOB向B端口输出11111111B=0FFH使电机停止

OUTDX,AL

从A口读出数据

MOVDX,IOA

INAL,DX

TESTAL,01H

JEMOT1

TESTAL,02H

JEMOT2

JMPMOT3

CODEENDS

STACKSEGMENT'STACK'

STADB100DUP(?

TOP1EQULENGTHSTA

STACKENDS

DATASEGMENT'DATA'

DATAENDS

输入信号真值表

ENDSTART

PA7

PA6

PA5

PA4

PA3

PA2

PA1

PA0

顺时针

1

1

1

1

1

1

1

0

逆时针

1

1

1

1

1

1

0

1

停止

1

1

1

1

1

0

1

1

四、项目体会

微机原理与接口技术的课程历时一个学期,通过自己编写、运行程序,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。

这次的课程设计,加深了我们对初学的汇编语言指令的熟悉和理解,汇编语言直接描述机器指令,比机器指令容易记忆和理解。

通过学习和使用汇编语言,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。

不仅巩固了书本所学的知识,还具有一定的灵活性,发挥了我们的创造才能。

实验是使用8086微处理器芯片及其外设接口8255A,74HC373(373为三态输出的8D透明锁存器)、74HC138(3线-8线译码器)加深了我们对硬件的熟悉,锻炼了动手能力,发挥创造才能。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在自己的思考以及和同学的讨论中,终于迎刃而解。

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2