- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51汇编中断控制步进电机程序
C51 汇编初学
功能:使用INT0 的中断服务程序控制步进电机正向步进;使用INT1 中断服务程
序控制步进电机反向步进。
电路:
设计思路:
① 主程序在完成对INT0 和INT1 的设置后,可进入死循环 (等待中断请求)。
② 为便于实验观察和操作,设INT0 和INT1 中断触发方式为边沿。
③ 步进电机的转动控制由外部中断的服务程序来实现。
④ 当前步进电机的相位通电状态信息可以使用片内 RAM 中的一个字节单元来
存储。
设计参考:
① 主程序需要设置的中断控制位如下:
IT0 和IT1 外部中断触发方式控制 0= 电平 1=边沿 (下降沿)
EX0 和EX1 外部中断允许控制 0=屏蔽 1=允许
PX0 和PX1 中断优先级级别控制 0=低级 1=高级
在同级别 (PX0=PX1)时INT0 的优先级高于INT1
EA 中断允许总控制 0=屏蔽 1=允许
② 外部中断服务程序的入口地址:
0003H 外部中断0
0013H 外部中断1
程序:
PHASE_OUT EQU 30H ;步进电机相位通电状态
VAR_END EQU 31H ;转动次数
STACK_INI EQU VAR_END+1
ORG 0000H ;复位入口
LJMP RESET
ORG 0003H ;外部中断0 服务程序入口
LJMP INT_EX0
ORG 000BH ;定时器/计数器0 溢出中断服务程序入口
RETI
ORG 0013H ;外部中断1 服务程序入口
LJMP INT_EX1
ORG 001BH ;定时器/计数器1 溢出中断服务程序入口
RETI
ORG 0023H ; 串行口中断服务程序入口
RETI
ORG 040H ;复位处理程序
RESET: MOV SP,#STACK_INI ;设置栈底指针
MAIN: SETB IT0
SETB IT1
SETB EX0
SETB EX1
SETB PX0
SETB PX1
MOV PHASE_OUT,#01H
MOV VAR_END,#03H ;转动次数为3
SETB EA
SJMP $
INT_EX0:
MOV R0,VAR_END ;转动次数
INTX0: MOV A,PHASE_OUT
RR A
CJNE A,#80H,I0
MOV A,#08H
I0: MOV PHASE_OUT,A
MOV P1,A
DELAY0: MOV R1,#5
LP
文档评论(0)