微机接口课程设计本地步进电机综合控制.docx
- 文档编号:543954
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:19
- 大小:132.89KB
微机接口课程设计本地步进电机综合控制.docx
《微机接口课程设计本地步进电机综合控制.docx》由会员分享,可在线阅读,更多相关《微机接口课程设计本地步进电机综合控制.docx(19页珍藏版)》请在冰豆网上搜索。
微机接口课程设计本地步进电机综合控制
微机接口课程设计
题目:
本地步进电机综合控制
姓名:
xx
班级:
xx
学号:
xx
指导老师:
xx
完成日期:
2012年1月4日
一、任务要求
实现外接步进电机模块的“启动”、“正反转”功能,同时,电机的当前转速显示在数码管上。
通过小键盘按键结束整个程序的运行,显示相应的标志。
数码管和键盘的功能由74系列器件实现。
转速显示格式:
##转/分,表示顺时针每分钟##转
—##转/分,表示逆时针每分钟##转
自定义键:
显示在数码管上,结束整个程序运行。
二、硬件架构(连线)
1.实验设置
步进电机模块;8253A定时模块;8259A中断控制器;计数分频电路74LS393;74系列模块;4片8255A;小键盘和数码管等
2.硬件连线
74系列模块………………控制键盘输入;
前两片8255A……………显示正反转停止及转速信息;
第三片8255A……………显示步速信息;
第四片8255A……………驱动步进电机;
8253A……………………产生步进电机驱动的定时信号;
8259A……………………接收并处理来自8253A的定时中断请求;
具体连接如下
试验仪中部的地址输出端CS-1~CS-4分别连接到8255模块下方的CS-1~CS-4;8253的片选CS连接地址输出端CS1(300H),8253的A0、A1分别连地址总线A2、A3,8253的GATE0连+5V,8253的CLK0连74LS393分频输出的47K输出端,8253的OUT0连接到8259的IRQ0;8259的片选CS-1连地址输出CS6(3A0),8259的INT1连接总线输入INTR,8259的模块的INT-A连总线的INTA,8259的SP/1连+5V;75LS393的片选CS2连接地址输出CS4(360),片选CS1连接地址输出CS3(340)
如按以上连线,则8255的A口、B口,C口和控制口的地址依次为200H、204H、208H和20CH;8253的T0、T1、T2及控制口的地址分别为300H、304H、308H和30CH;8259的基地址是3A8H,偶地址为3A0H。
三、流程图
本程序主要包括以下几部分:
1、主程序;2、输入子程序;
3、延时子程序;4、中断服务程序。
以下为流程图:
主程序流程图
输入子程序流程图
中断服务程序流程图
延时子程序流程图略
四、代码实现
.486p
PORT1EQU340H;(cs1)数码管段码端口
PORT2EQU360H;(cs2)数码管位选端口,键盘矩阵的行列端口
DATASEGMENTAT0USE16
ORG1000H
FLAGDB?
BAIWEIDB?
SHIWEIDB?
GEWEIDB?
NUMDW?
STOPNDB?
DATAENDS
CODESEGMENTUSE16
ASSUMEDS:
DATA,CS:
CODE
ORG1500H
BEG:
JMPSTART
SEVENCODDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
KEYCODDB0EEH,0DEH,0BEH,0EDH,0DDH,0BDH;前两行按键的键码
DB0EBH,0DBH,0BBH,0E7H,0D7H,0B7H;在此处添加后两行键的键码
KEYVALDB0,1,2,3,4,5,6,7,8,9,0AH,0BH;12个按键的键值
TENDB10
RNUMDB10001000B
STEPDB0
START:
CLI
MOVEAX,60000000H
MOVCR0,EAX
;装载DS
MOVAX,DATA
MOVDS,AX
;初始化8255
MOVAL,80H
MOVDX,20CH
OUTDX,AL
MOVAL,80H
MOVDX,20DH
OUTDX,AL
MOVAL,80H
MOVDX,20EH
OUTDX,AL
;A
MOVAL,0FFH
MOVDX,200H
OUTDX,AL
MOVAL,0FFH
MOVDX,201H
OUTDX,AL
MOVAL,0FFH
MOVDX,202H
OUTDX,AL
;B
MOVAL,0FFH
MOVDX,204H
OUTDX,AL
MOVAL,0FFH
MOVDX,205H
OUTDX,AL
MOVAL,0FFH
MOVDX,206H
OUTDX,AL
;最右边8255
MOVAL,80H
MOVDX,20FH
OUTDX,AL
;初始化8259
;初始化8259ICW1,ICW2
MOVAL,00010011B
MOVDX,3A0H
OUTDX,AL
MOVAL,70H
MOVDX,3A8H
OUTDX,AL
MOVAL,00000001b;ICW4非自动中断
OUTDX,AL
;中断屏蔽字
MOVAL,11111110B
MOVDX,3A8H
OUTDX,AL
;设置中断向量
MOVAX,0
MOVES,AX
MOVBX,70H*4
MOVAX,OFFSETRUN
MOVES:
[BX],AX
MOVAX,SEGRUN
MOVES:
[BX+2],AX
MOVSTOPN,-1
AG1:
LEABX,SEVENCOD
CALLINPUT
CMPAL,00H
JZST1
CMPAL,01H
JZZZ
CMPAL,02H
JZFZ
JMPAG1
;开始停止键
ST1:
NEGSTOPN
CMPSTOPN,1;判断是否需要启动设备
JNZBQIDONG
JMPS1
BQIDONG:
MOVDX,200H
MOVAL,92H
OUTDX,AL
CLI
JMPAG1
;设置默认值100
S1:
MOVDX,200H
MOVAL,0FFH
OUTDX,AL
MOVAL,1
MOVBAIWEI,AL
XLAT
MOVDX,204H
OUTDX,AL
MOVAL,0
MOVSHIWEI,AL
XLAT
MOVDX,201H
OUTDX,AL
MOVAL,0
MOVGEWEI,AL
XLAT
MOVDX,205H
OUTDX,AL
MOVFLAG,0
JMPEXIT
;正转
ZZ:
MOVDX,200H
MOVAL,0FFH
OUTDX,AL
A1:
CALLINPUT
CMPAL,03H
JBA1
SUBAL,3
MOVBAIWEI,AL
XLAT
MOVDX,204H
OUTDX,AL
CALLINPUT
SUBAL,3
MOVSHIWEI,AL
XLAT
MOVDX,201H
OUTDX,AL
CALLINPUT
SUBAL,3
MOVGEWEI,AL
XLAT
MOVDX,205H
OUTDX,AL
MOVFLAG,0;设置正反转标志位
MOVSTOPN,1
JMPEXIT
;反转
FZ:
MOVDX,200H;反转
MOVAL,0BFH
OUTDX,AL
A2:
CALLINPUT
CMPAL,03H
JBA2
SUBAL,3
MOVBAIWEI,AL
XLAT
MOVDX,204H
OUTDX,AL
SUBAL,3
MOVSHIWEI,AL
XLAT
MOVDX,201H
OUTDX,AL
CALLINPUT
SUBAL,3
MOVGEWEI,AL
XLAT
MOVDX,205H
OUTDX,AL
MOVFLAG,1
MOVSTOPN,1
JMPEXIT
;计算数值
EXIT:
MOVAL,BAIWEI
MULTEN
MOVBL,SHIWEI
ADDAL,BL
MULTEN
MOVBL,GEWEI
ADDAL,BL
MOVAH,0
MOVNUM,AX;输入的值放在num中
MOVDX,0
MOVAX,58750
DIVNUM
MOVNUM,AX;转换为计数初值
MOVAL,00110110B;8254方式3BCD码
MOVDX,30CH
OUTDX,AL
MOVDX,300H
MOVAX,NUM
OUTDX,AL
MOVAL,AH
OUTDX,AL
STI
JMPAG1
;通过行扫描法,将键值存储到al中
INPUTPROC
PUSHDX
PUSHBX
PUSHSI
PUSHDI
WT:
MOVAL,00H;00H为不显示任何信息时对应的七段代码
MOVDX,PORT1
OUTDX,AL
MOVAL,00000000B
MOVDX,PORT2
OUTDX,AL;使数码管全灭,并使3根列线输出全0
NOP
NOP
MOVDX,PORT2
INAL,DX;(粗扫描)若无键按下转至WT执行,否则顺序执行
ANDAL,0FH
CMPAL,0FH
JZWT
CALLDELAY
MOVDX,PORT2;再次确认是否有键按下
INAL,DX
ANDAL,0FH
CMPAL,0FH
JZWT
MOVCX,3;(细扫描)开始对每一列进行逐列扫描
MOVBL,0FEH
NEXT:
MOVAL,BL;在横线上添加一条语句
MOVDX,PORT2
OUTDX,AL
NOP
NOP
INAL,DX
ANDAL,0FH
CMPAL,0FH
JNZKEY
ROLBL,1;在横线上添加一条语句
LOOPNEXT
JMPWT;按键过早释放,可能导致无法识别
KEY:
SHLBL,4;8088/8086指令集中该指令格式错误!
ORAL,BL;字节键码信息存入AL,高4位为列信息低4位为行信息
LEASI,KEYCOD
LEADI,KEYVAL
MOVCX,12
NEXT1:
CMPAL,[SI]
JZFIND
INCSI
INCDI
LOOPNEXT1
JMPWT;本程序不支持多个按键同时按下
FIND:
MOVAL,[DI];AL中内容为所按键的键面值
PUSHAX
MOVAL,00000000B
MOVDX,PORT2
OUTDX,AL;使数码管全灭,并使3根列线输出全0
NOP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 课程设计 本地 步进 电机 综合 控制