单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc

上传人:b****1 文档编号:13165484 上传时间:2022-10-07 格式:DOC 页数:8 大小:1.20MB
下载 相关 举报
单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc_第1页
第1页 / 共8页
单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc_第2页
第2页 / 共8页
单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc_第3页
第3页 / 共8页
单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc_第4页
第4页 / 共8页
单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc

《单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc(8页珍藏版)》请在冰豆网上搜索。

单片机实验P输入P1口输出和步进电机控制实验Word文档下载推荐.doc

DELAY1:

MOVR7,#80H

DJNZR7,$

DJNZR6,DELAY1

查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:

((80+1)×

256+1)×

(12÷

6000000)=132.1ms。

Y

N

R6设初值FFH

R7设初值FFH

R7-1=0否?

R6-1=0否?

返回

延时子程序

延时

P3.3真的高吗?

P3.3为低吗?

开始

A+1送P1口

循环

P3.3为高吗?

图1P3.3输入、P1口输出实验程序框图

图2实验电路原理图

2、步进电机控制实验

1)从键盘上输入正、反转命令,转速参数和转动步数显示在显示器上,CPU再读取显示器上显示的正、反转命令,转速级数(16级)和转动步数后执行。

转动步数减为零时停止转动。

2)步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。

执行键是否按下?

从键盘输入数据,数码管显示

(7D)内容计算延时

步距数-1,送显示缓冲区

步距数为0吗?

停止

顺时针转动一步

停止

显示缓冲区(7E)=1吗?

逆时针转动一部

根据显示缓冲区(7D)内容计算延时

步距数-1,送显示缓冲区

步距数为0吗?

图3步进电机控制实验程序框图

图4实验电路原理图

三、实验步骤及操作结果

(1)P3.3用插针连至K1,P1.0—P1.7用插针连至L1—L8。

(2)从起始地址0540H开始连续运行程序(输入0540后按EXEC键)。

(3)开关K1每拨动一次,L1—L8发光二极管按16进制方式加一点亮。

P3、P1口应用程序(源文件名:

H51S.ASM)。

汇编程序代码如下:

RG0540h

HA1S:

MOVA,#00H

HA1S1:

JBP3.3,HA1S1

判P3.3为低电平否

MOVR2,#20H

LCALLDELAY

调延时子程序

JBP3.3,HA1S1

再判P3.3为低电平否

HA1S2:

JNBP3.3,HA1S2

LCALLDELAY

JNBP3.3,HA1S2

判P3.3为高电平否

INCA;

加1

PUSHACC

CPLA

取反后送P1显示

MOVP1,A

POPACC

AJMPHA1S1;

DELAY:

PUSH02H;

DELAY1:

PUSH02H

DELAY2:

DELAY3:

DJNZR2,DELAY3

POP02H

DJNZR2,DELAY2

POP02H

DJNZR2,DELAY1

DJNZR2,DELAY

RET

END

2、步进电机控制实验

(1)步进电机插头插到实验系统J3插座中,P1.0—P1.3接到BA—BD插孔。

(2)在“P.”状态下,从始地址开始(0A30H)连续执行程序。

输入始地址后按EXEC键。

(3)在键盘上输入数字在显示器上显示,第一位为0表示正转,为1表示反转,第二位0—F为转速等级,第三到第六位设定步数,设定完按EXEC键,步进电机开始旋转。

(4)步进电机控制程序(源文件名:

H511S.ASM)。

汇编程序代码如下。

数字量FF送0832,启动D/A

判高电平时间到否?

数字量00送0832,启动D/A

判低电平时间到否?

高电平时间初值减1

置0832口地址

低电平时间初值加1

ORG0A30H

MONIT:

MOVSP,#50H

MOV7EH,#00H;

设步进电机正转标志显示在第一位

MOV7DH,#02H;

设步进电机速转控制值显示在第二位

MOVR0,#7CH;

设步距数值为8888,显示在第三到第六位

MOVA,#08H

MOVR4,#04H

MONIT1:

MOV@R0,A

DECR0

DJNZR4,MONIT1

MOVA,#7EH;

置显示位置标志

MOVDPTR,#1FFFH

MOVX@DPTR,A

MOV76H,#00H

MOV77H,#00H

KEYDISP0:

LCALLKEY

调显示键扫子程序

JCDATAKEY

转数字键处理

AJMPMONIT2

转功能键处理

DATAKEY:

LCALLDATAKEY1

DB79H,7EH

SJMPKEYDISP0

MONIT2:

CJNEA,#16H,KEYDISP0

不是执行键转

LCALLDISP;

调显示子程序

MOVA,7AH

取步距数送R6、R7

ANLA,#0FH

SWAPA

ADDA,79H

MOVR6,A

MOVA,7CH

ANLA,#0FH

ADDA,7BH

MOVR7,A

MOVA,7EH

CJNEA,#00H,MONIT4

判转动方向

MONIT3:

MOVP1,#03H;

顺时针转

LCALLDELAY0

LCALLMONIT5

MOVP1,#06H

MOVP1,#0CH

LCALLDELAY0

LCALLMONIT5

MOVP1,#09H

SJMPMONIT3

MONIT4:

MOVP1,#09H

逆时针转

MOVP1,#0CH

MOVP1,#06H

MOVP1,#03H

SJMPMONIT4

MONIT5:

DECR6

CJNER6,#0FFH,MONIT6

DECR7

CJNER7,#0FFH,MONIT6

判步距数到否

LJMPMONIT;

重新开始

MONIT6:

LCALLMONIT7

RET

MONIT7:

MOVR0,#79H

MOVA,R6

LCALLMONIT8

MOVA,R7

LCALLDISP

MONIT8:

MOVR1,A

ACALLMONIT9

MOVA,R1

SWAPA

MONIT9:

ANLA,#0FH

MOV@R0,A

INCR0

DELAY0:

MOVR0,#7DH

根据(7D)内容改变延时时间

MOVA,@R0

MOVR4,A

MOVR5,#80H

DJNZR5,DELAY2

DJNZR4,DELAY1 RET

DATAKEY1:

MOVR4,A

数字键处理子程序

MOVDPTR,#1FFFH

MOVXA,@DPTR

MOVR1,A

MOVA,R4

MOV@R1,A

CLRA

POP83H

POP82H

MOVCA,@A+DPTR

INCDPTR

CJNEA,01H,DATAKEY3

DECR1

CLRA

DATAKEY2:

PUSH82H

PUSH83H

MOVDPTR,#1FFFH

DATAKEY3:

MOVA,R1

SJMPDATAKEY2

KEY0:

MOVR6,#20H

数字键显示闪动程序

MOVXA,@DPTR

MOVR0,A

MOVA,@R0

MOVA,#10H

MOV@R0,A

KEY3:

LCALLKEYDISP

JNB0E5H,KEY2

DJNZR6,KEY3

MOVDPTR,#1FFFH

MOVR0,A

MOVA,R7

MOV@R0,A

KEY:

MOVR6,#50H

显示键扫子程序

KEY1:

JNB0E5H,KEY2

DJNZR6,KEY1

SJMPKEY0

KEY2:

MOVA,R6

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

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1