1、 DELAY1:MOV R7, #80H DJNZ R7, $ DJNZ R6, DELAY1查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/ 6.0MHZ,所以该段指令执行时间为:(80+1)256+1)2(126000000)=132.1ms。YNR6设初值FFHR7设初值FFHR7否?R6否? 返回延时子程序延时P3.3真的高吗?P3.3为低吗?开始A+1送P1口循环P3.3为高吗? 图1 P3.3输入、P1口输出实验程序框图 图 2 实验电路原理图2、步进电机控制实验1)从键盘上输入正、反转命令,转速参数和转动步数显示在显示器上,CPU再读取显示器上显
2、示的正、反转命令,转速级数(16级)和转动步数后执行。转动步数减为零时停止转动。2)步进电机驱动原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,微电脑控制步进电机最适合。执行键是否按下?从键盘输入数据,数码管显示(7D)内容计算延时步距数-1,送显示缓冲区步距数为0吗?停止顺时针转动一步 停止 显示缓冲区(7E)=1吗?逆时针转动一部根据显示缓冲区(7D)内容计算延时步距数-1,送显示缓冲区步距数为0吗? 图 3 步进电机控制实验程序框图 图 4 实验电路原理图三、实验步骤及操作结果(1) P3.3用插针连至
3、K1, P1.0P1.7用插针连至L1L8。(2)从起始地址0540H开始连续运行程序(输入0540后按EXEC键)。 (3) 开关K1每拨动一次,L1L8发光二极管按16进制方式加一点亮。P3、P1口应用程序(源文件名:H51SASM)。汇编程序代码如下:RG 0540hHA1S:MOV A,#00HHA1S1:JB P3.3,HA1S1 ;判P3.3为低电平否MOV R2,#20HLCALL DELAY 调延时子程序JB P3.3,HA1S1 再判P3.3为低电平否HA1S2:JNB P3.3,HA1S2LCALL DELAYJNB P3.3,HA1S2 ;判P3.3为高电平否INC A
4、;加1PUSH ACCCPL A ;取反后送P1显示MOV P1,APOP ACCAJMP HA1S1 ;DELAY:PUSH 02H ;DELAY1: PUSH 02HDELAY2:DELAY3: DJNZ R2,DELAY3 POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1DJNZ R2,DELAYRET END 2、步进电机控制实验(1) 步进电机插头插到实验系统J3插座中,P1.0P1.3接到BABD插孔。(2) 在“P.”状态下,从始地址开始(0A30H)连续执行程序。输入始地址后按EXEC键。(3) 在键盘上输入数字在显示器上显示,第一位为0表示
5、正转,为1表示反转,第二位0F为转速等级,第三到第六位设定步数,设定完按EXEC键,步进电机开始旋转。(4)步进电机控制程序(源文件名:H511SASM)。汇编程序代码如下。数字量FF送0832,启动D/A判高电平时间到否?数字量00送0832,启动D/A判低电平时间到否?高电平时间初值减1置0832口地址低电平时间初值加1ORG 0A30HMONIT:MOV SP,#50HMOV 7EH,#00H ;设步进电机正转标志显示在第一位MOV 7DH,#02H ;设步进电机速转控制值显示在第二位MOV R0,#7CH ;设步距数值为8888,显示在第三到第六位MOV A,#08HMOV R4,#0
6、4HMONIT1: MOV R0,ADEC R0DJNZ R4,MONIT1MOV A,#7EH ;置显示位置标志MOV DPTR,#1FFFH MOVX DPTR,AMOV 76H,#00HMOV 77H,#00HKEYDISP0:LCALL KEY ;调显示键扫子程序 JC DATAKEY 转数字键处理AJMP MONIT2 转功能键处理DATAKEY:LCALL DATAKEY1DB 79H,7EHSJMP KEYDISP0MONIT2: CJNE A,#16H,KEYDISP0 不是执行键转LCALL DISP ;调显示子程序MOV A,7AH 取步距数送R6、R7ANL A,#0FH
7、SWAP AADD A,79HMOV R6,AMOV A,7CHANL A,#0FHADD A,7BHMOV R7,AMOV A,7EH CJNE A,#00H,MONIT4 判转动方向MONIT3: MOV P1,#03H ;顺时针转LCALL DELAY0LCALL MONIT5MOV P1,#06HMOV P1,#0CHLCALL DELAY0LCALL MONIT5MOV P1,#09HSJMP MONIT3MONIT4:MOV P1,#09H 逆时针转MOV P1,#0CHMOV P1,#06HMOV P1,#03HSJMP MONIT4MONIT5:DEC R6CJNE R6,#0
8、FFH,MONIT6DEC R7CJNE R7,#0FFH,MONIT6 判步距数到否LJMP MONIT ;重新开始MONIT6: LCALL MONIT7RETMONIT7: MOV R0,#79HMOV A,R6LCALL MONIT8MOV A,R7LCALL DISPMONIT8: MOV R1,AACALL MONIT9MOV A,R1SWAP AMONIT9: ANL A,#0FHMOV R0,AINC R0DELAY0: MOV R0,#7DH 根据(7D)内容改变延时时间MOV A,R0MOV R4,A MOV R5,#80H DJNZ R5,DELAY2DJNZ R4,DE
9、LAY1 RETDATAKEY1:MOV R4,A 数字键处理子程序MOV DPTR,#1FFFHMOVX A,DPTRMOV R1,AMOV A,R4MOV R1,ACLR APOP 83HPOP 82HMOVC A,A+DPTRINC DPTRCJNE A,01H,DATAKEY3DEC R1CLR ADATAKEY2:PUSH 82HPUSH 83HMOV DPTR,#1FFFHDATAKEY3:MOV A,R1SJMP DATAKEY2KEY0:MOV R6,#20H 数字键显示闪动程序MOVX A,DPTRMOV R0,AMOV A,R0MOV A,#10HMOV R0,AKEY3:LCALL KEYDISPJNB 0E5H,KEY2DJNZ R6,KEY3MOV DPTR,#1FFFH MOV R0,A MOV A,R7MOV R0,AKEY:MOV R6,#50H 显示键扫子程序KEY1:JNB 0E5H,KEY2 DJNZ R6,KEY1SJMP KEY0KEY2:MOV A,R6
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1