sm_drive.a51

来自「用C51实现多个舵机的分时复用控制:在KELI CX51采用混合编程用一个字节的」· A51 代码 · 共 49 行

A51
49
字号
NAME SMSM
?PR?_SM_DRIVE?SMSM SEGMENT CODE
?DT?_SM_DRIVE?SMSM SEGMENT DATA OVERLAYABLE
PUBLIC _SM_DRIVE
PUBLIC ?_SM_DRIVE?BYTE
RSEG  ?DT?_SM_DRIVE?SMSM
?_SM_DRIVE?BYTE:
HI:DS 1
ADDR:DS 1
RSEG ?PR?_SM_DRIVE?SMSM
_SM_DRIVE:;MOV ADDR,R1
	  MOV R7,#88H
	  MOV R6,#13H;执行时间=5000*100us
	  MOV R5,#0;COUNT1
	  MOV R2,#0;COUNT2
	  MOV R3,#0;STATE
	  MOV R4,#80H;CIRCLE
       L0:CJNE R6,#0FFH,L1
          SJMP EXIT
       L1:JNB TF0,L0
          INC R5
          CLR TF0
	  CJNE R5,#25,L2
	  MOV A,R4
	  RL A
	  MOV R4,A
	  MOV P1,R4;下一个舵机
	  MOV R5,#0
	  MOV R2,#0
	  MOV A,R1;
	  ADD A,R3;
	  MOV R0,A;
	  MOV A,@R0
	  MOV HI,A;占空比大小
	  INC R3
	  CJNE R3,#8,L2
          MOV R3,#0
      L2: INC R2
          MOV A,R2
	  CJNE A,HI,L3
 	  MOV P1,#0
      L3: DJNZ R7,L0
          DEC R6
	  SJMP L0
     EXIT:MOV P1,#0
          RET
	  END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?