注册 登录
编程论坛 汇编论坛

是牛哥的就来看看

见习汇编 发布于 2008-07-30 14:15, 885 次点击
最近一直在用汇编来写用S52控制多路舵机的程序,可是还是老有问题,各位牛哥帮忙来看看问题,谢谢了先……
$MOD52
               ORG      000H
               MOV      TMOD,#01H
               MOV      A,#00H
CHUSHI:        
               MOV      DPTR,#TABLE0           ;改此处的值调用MOOP
               MOV      R5,#00H                ;R5作为计数器来控制指针DPTR的流程
               MOV      R7,#04H                ;R7用来记录TABLE的行数来让其结束
               ACALL    MOOP
;
MOOP:          MOVC     A,@A+DPTR              ;A用来作为中间变量来不停将TABLE中的值赋予R变量中         
               MOV      R0,A
               INC      R5
               MOV      A,R5
               MOVC     A,@A+DPTR
               MOV      R1,A
               INC      R5
               MOV      A,R5
               MOVC     A,@A+DPTR
               MOV      R2,A                   ;赋予接口P2值
               INC      R5
               MOV      A,R5
               MOVC     A,@A+DPTR            
               MOV      R6,A                   ;赋予接口P1值
               INC      R5
               MOV      A,R5                       
               MOVC     A,@A+DPTR
               MOV      R3,A
               INC      R5
               MOV      A,R5
               MOVC     A,@A+DPTR
               MOV      R4,A
               INC      R5
               MOV      A,R5
               LCALL    TIME0                  ;调用TIME0输出PWM方波
               DJNZ     R7,MOOP                ;用R7来判断TABLE是否读完
               RETI
;
TABLE0:        DB       0FAH,099H,88H,00H,0BDH,065H       ;主要内容部分
               DB       0F8H,0CCH,44H,00H,0BFH,032H
               DB       0FBH,0CCH,22H,00H,0BCH,032H
               DB       0FBH,033H,11H,00H,0BCH,0CBH
;              
TIME0:                                            
                CLR      TR0
                MOV      TH0,R0
                MOV      TL0,R1                ;R0,R1用来控制高电平的时间
                MOV      P2,R2                 ;R2为二进制控制舵机端口的数值      
                MOV      P1,R6
                CLR      TF0
                SETB     TR0      
LOOP:           JNB      TF0,LOOP
                MOV      P2,#00H                     
                MOV      P1,#00H
                CLR      TR0
                MOV      TH0,R3                ;R3,R4接口用来控制低电平时间
                MOV      TL0,R4
                CLR      TF0                     
                SETB     TR0
OOOP:           JNB      TF0,OOOP
                RETI
0 回复
1