⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 robot_v01_bak.asm

📁 六脚十二自由度机器人全部资料
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	CPFSGT	DEGREE24
	BSF	   PIN_MOT24
	CPFSGT	DEGREE25
	BSF	   PIN_MOT25
	CPFSGT	DEGREE26
	BSF	   PIN_MOT26
	CPFSGT	DEGREE27
	BSF	   PIN_MOT27
	CPFSGT	DEGREE28
	BSF	   PIN_MOT28
	
	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT
	
	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT

	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT
	
	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT





	INCFSZ	SERVO_CNT1	
	BRA	SERVO_MG995_OUT				
	SETF	LATE
	SETF	LATG
	SETF	LATF					
	RETURN
;******************
;******************
;******************
;******************
;******************
;******************
;******************

CPU_CLOCK_8M:
	BCF	OSCTUNE,PLLEN 
CPU_CLOCK_32M_B:
	MOVLW	0000010B
	MOVWF	OSCCON		
CPU_CLOCK_32M_WAIT:
	CLRWDT
	BTFSS	OSCCON,OSTS 
	BRA	CPU_CLOCK_32M_WAIT				
	RETURN	

CPU_CLOCK_32M:
	

	BSF	OSCTUNE,PLLEN 
	BRA	CPU_CLOCK_32M_B
	
	
CPU_CLOCK_32K:
	BCF	OSCTUNE,PLLEN 
	MOVLW	0000011B
	MOVWF	OSCCON	
	RETURN

;******************		
IO_INIT:
		
	MOVLW	UPPER IO_TABLE; LOAD TBLPTR WITH THE BASE
	MOVWF	TBLPTRU ; PIC_ADDRESS OF THE WORD
	MOVLW	HIGH IO_TABLE
	MOVWF	TBLPTRH 
	MOVLW	LOW IO_TABLE
	MOVWF	TBLPTRL  

	MOVLW	0X0F
	MOVWF	FSR0H 
	MOVLW	0XD5
	MOVWF	FSR0L 

	MOVLW	0X74
	MOVWF	CNT 

IO_INT2:
	TBLRD*+; READ INTO TABLAT AND INCREMENT
	MOVF	TABLAT,W  ; GET DATA
	MOVWF	POSTDEC0 
	CLRWDT		
	DECFSZ	CNT 
	BRA	IO_INT2
	
	CLRF	INTCON
	
	MOVLW	11000000B
	MOVWF	INTCON2
	
	CLRF	INTCON3		
	
	
	CLRF	FSR2H
	CLRF	FSR2L
;--------------------------	
IO_INIT4:
	CLRF	POSTINC2
	BTFSS	FSR2H,1
	BRA	IO_INIT4
	RETURN
IO_TABLE:
;**************table for pic87f65j10
       ;  FD5H   T0CON    ,    FD4H   -----     
       DB 00000000B       ,    00000000B        
       ;  FD3H   OSCCON   ,    FD2H   -----          
       DB 00000010B       ,    00000000B        
       ;  FD1H   WDTCON   ,    FD0H   RCON         
       DB 00000001B       ,    01111111B        
       ;  FCFH   TMR1H    ,    FCEH   TMR1L     
       DB 00000000B       ,    00000000B        
       ;  FCDH   T1CON    ,    FCCH   TMR2      
       DB 00100101B       ,    00000000B        
       ;  FCBH   PR2      ,    FCAH   T2CON     
       DB 01000000B       ,    00000100B        
       ;  FC9H   SSP1BUF  ,    FC8H   SSP1ADD   
       DB 00000000B       ,    00000000B        
       ;  FC7H   SSP1STAT ,    FC6H   SSP1CON1  
       DB 01000000B       ,    00100000B        
       ;  FC5H   SSP1CON2 ,    FC4H   ADRESH    
       DB 00000000B       ,    00000000B        
       ;  FC3H   ADRESL   ,    FC2H   ADCON0    
       DB 00000000B       ,    00000000B        
       ;  FC1H   ADCON1   ,    FC0H   ADCON2    
       DB 00001100B       ,    00001111B        
       ;  FBFH   CCPR1H   ,    FBEH   CCPR1L    
       DB 00111111B       ,    00000000B        
       ;  FBDH   CCP1CON  ,    FBCH   CCPR2H    
       DB 00000000B       ,    00111111B        
       ;  FBBH   CCPR2L   ,    FBAH   CCP2CON   
       DB 00000000B       ,    00001100B        
       ;  FB9H   CCPR3H   ,    FB8H   CCPR3L    
       DB 00000000B       ,    00000000B        
       ;  FB7H   CCP3CON  ,    FB6H   ECCP1AS   
       DB 00000000B       ,    00000000B        
       ;  FB5H   CVRCON   ,    FB4H   CMCON     
       DB 00000000B       ,    11111111B        
       ;  FB3H   TMR3H    ,    FB2H   TMR3L     
       DB 00000000B       ,    00000000B        
       ;  FB1H   T3CON    ,    FB0H   PSPCON    
       DB 01000111B       ,    00000000B        
       ;  FAFH   SPBRG1   ,    FAEH   RCREG1    
       DB 00000000B       ,    00000000B        
       ;  FADH   TXREG1   ,    FACH   TXSTA1    
       DB 00000000B       ,    00000000B        
       ;  FABH   RCSTA1   ,    FAAH   -----     
       DB 00000000B       ,    00000000B        
       ;  FA9H   -----    ,    FA8H   -----     
       DB 00000000B       ,    00000000B        
       ;  FA7H   EECON2   ,    FA6H   EECON1    
       DB 00000000B       ,    00000000B        
       ;  FA5H   IPR3     ,    FA4H   PIR3      
       DB 00000000B       ,    00000000B        
       ;  FA3H   PIE3     ,    FA2H   IPR2      
       DB 00000000B       ,    00000000B        
       ;  FA1H   PIR2     ,    FA0H   PIE2      
       DB 00000000B       ,    00000000B        
       ;  F9FH   IPR1	  ,   F9EH   PIR1      ,
       DB 00000000B       ,    00000000B        
       ;  F9DH   PIE1     ,    F9CH   MEMCON    
       DB 00000000B       ,    11111111B        
       ;  F9BH   OSCTUNE  ,    F9AH   TRISJ     
       DB 10111111B       ,    11111111B        
       ;  F99H   TRISH    ,    F98H   TRISG     
       DB 11111111B       ,    00000000B        
       ;  F97H   TRISF    ,    F96H   TRISE     
       DB 00000000B       ,    00000000B        
       ;  F95H   TRISD    ,    F94H   TRISC     
       DB 00000000B       ,    10010001B        
       ;  F93H   TRISB    ,    F92H   TRISA     
       DB 11111111B       ,    00000000B        
       ;  F91H   LATJ     ,    F90H   LATH      
       DB 00000000B       ,    00000000B        
       ;  F8FH   LATG     ,    F8EH   LATF      
       DB 11111111B       ,    11111111B        
       ;  F8DH   LATE     ,    F8CH   LATD      
       DB 11111111B       ,    00000000B        
       ;  F8BH   LATC     ,    F8AH   LATB      
       DB 11000000B       ,    00000000B        
       ;  F89H   LATA     ,    F88H   PORTJ     
       DB 00100000B       ,    00000000B        
       ;  F87H   PORTH    ,    F86H   PORTG     
       DB 00000000B       ,    11111111B        
       ;  F85H   PORTF    ,    F84H   PORTE     
       DB 11111111B       ,    11111111B        
       ;  F83H   PORTD    ,    F82H   PORTC     
       DB 00000000B       ,    11000000B        
       ;  F81H   PORTB    ,    F80H   PORTA     
       DB 00000000B       ,    00100000B        
       ;  F7FH   SPBRGH1  ,    F7EH   BAUDCON1  
       DB 00000000B       ,    00001000B        
       ;  F7DH   SPBRGH2  ,    F7CH   BAUDCON2            
       DB 00000000B       ,    00001000B        
       ;  F7BH   -------  ,    F7AH   ------    
       DB 00000000B       ,    00000000B        
       ;  F79H   ECCP1DEL ,    F78H   TMR4             
       DB 10000001B       ,    00000000B        
       ;  F77H   PR4      ,    F76H   T4CON     
       DB 00000000B       ,    00000000B        
       ;  F75H   CCPR4H   ,    F74H   CCPR4L      
       DB 00000000B       ,    00000000B        
       ;  F73H   CCP4CON  ,    F72H   CCPR5H       
       DB 00000000B       ,    00000000B        
       ;  F71H   CCPR5L   ,    F70H   CCP5CON     
       DB 00000000B       ,    00000000B        
       ;  F6FH   SPBRG2   ,    F6EH   RCREG2     
       DB 00000111B       ,    00000000B        
       ;  F6DH   TXREG2   ,    F6CH   TXSTA2      
       DB 00000000B       ,    00101110B        
       ;  F6BH   RCSTA2   ,    F6AH   ECCP3AS      
       DB 00000000B       ,    00000000B        
       ;  F69H   ECCP3DEL ,    F68H   ECCP2AS     
       DB 11111111B       ,    00000000B        
       ;  F67H   ECCP2DEL ,    F66H   SSP2BUF        
       DB 11111111B       ,    00000000B        
       ;  F65H   SSP2ADD  ,    F64H   SSP2STAT    
       DB 00000000B       ,    00000000B        
       ;  F63H   SSP2CON1 ,    F62H   SSP2CON2  
       DB 00000000B       ,    00000000B        
              
;******************************
;******************************

;******************************

;--------------------------
WRITE_SPI_03H_CS
	MOVLW	03
	BRA	WRITE_SPI
WRITE_SPI_00:
	MOVLW	0
WRITE_SPI:
	BCF	F_CE
	MOVWF	SSP1BUF 		
DELAY8NOP:
	CLRWDT
	NOP
	NOP
	NOP
	NOP
	
	CLRWDT
	NOP
	NOP
	NOP
	NOP
	
	
	MOVF	SSP1BUF,W		
	RETURN
	
	
;**********************************
;**********************************
;******************************
SPEECH_V1:

	MOVLW	0
SPEECH_V1_2:
	MOVWF	VOIC_CNT
	
SPEECH_V2:	
	MOVF	VOIC_CNT,W
	MULLW	0X40
	MOVF	PRODL,W
	MOVWF	PIC_ADDRM
	MOVF	PRODH,W
	MOVWF	PIC_ADDRH
	

	MOVLW	0X60
	MOVWF	PIC_ADDRL
	
	
SPEECH_ONE:
	RCALL	WRITE_SPI_03H_CS
	MOVF	PIC_ADDRH,W
	RCALL	WRITE_SPI
	MOVF	PIC_ADDRM,W
	RCALL	WRITE_SPI
	MOVF	PIC_ADDRL,W
	RCALL	WRITE_SPI
	RCALL	WRITE_SPI
	RCALL	SOUND_SOFT_ON	
	
	MOVLW	0X00
	MOVWF	PIC_ADDRH
	MOVLW	0X3F
	MOVWF	PIC_ADDRM
	MOVLW	0X90
	MOVWF	PIC_ADDRL

	MOVLW	24
	CPFSEQ	VOIC_CNT
	BRA	SPEECH_ONE2

	MOVLW	0X01
	MOVWF	PIC_ADDRH
	MOVLW	0XFF
	MOVWF	PIC_ADDRM
	MOVLW	0X90
	MOVWF	PIC_ADDRL

	
SPEECH_ONE2:	
			
			

			
	MOVF	SSP1BUF,W
	MOVWF	SSP1BUF	
				
	MOVWF	PRODL
	MOVWF	PRODH	
						;	MOVWF	LAT
	RRCF	PRODL
	RRCF	PRODL,W
	ANDLW	00111111B
	MOVWF	PRODL		;CCPR1L
	
	
	SWAPF	PRODH
	ANDLW	00110000B
	IORLW	00001100B
	MOVWF	CCP2CON
	
	MOVF	PRODL,W
	MOVWF	CCPR2L
	CLRWDT
SPEECH_ONE4:
	BTFSS	TMR1L,6
	BRA	SPEECH_ONE4						;BTG	LATE,0
SPEECH_ONE5:
	BTFSC	TMR1L,6
	BRA	SPEECH_ONE5
		
	
	MOVLW	0XFF
	ADDWF	PIC_ADDRL
	ADDWFC	PIC_ADDRM
	ADDWFC	PIC_ADDRH
		
	BC	SPEECH_ONE2
				
SOUND_SOFT_OFF:
	BSF	F_CE
	MOVLW	00001100B
	MOVWF	CCP2CON		
	MOVF	CCPR2L,W
	bz	SOUND_SOFT_OFF_end

SOUND_SOFT_OFF2:
	BTFSS	TMR1L,6
	BRA	SOUND_SOFT_OFF2	
SOUND_SOFT_OFF4:
	BTFSC	TMR1L,6
	BRA	SOUND_SOFT_OFF4
	CALL	WORK_1	
	
	DECFSZ	CCPR2L	
	BRA	SOUND_SOFT_OFF2

SOUND_SOFT_OFF_end:
	RETURN
;-----------------------------------
SOUND_SOFT_ON:
	MOVLW	00001100B
	MOVWF	CCP2CON	
SOUND_SOFT_ON2:

	BTFSS	TMR1L,6
	BRA	SOUND_SOFT_ON2
SOUND_SOFT_ON4:
	BTFSC	TMR1L,6
	BRA	SOUND_SOFT_ON4
	CALL	WORK_1
	INCF	CCPR2L			
	BTFSS	CCPR2L,5
	
	BRA	SOUND_SOFT_ON2
	RETURN
;********************
;*************************	



;******************************
;******************************
;******************************
;******************************
MAX_WORK_STEP	EQU 32
;******************************	
;*****************
ROBOT_WALK_STOP:
	MOVLW	F_D
	MOVWF	DEGREE12
	MOVWF	DEGREE14
	
	MOVWF	DEGREE18
	MOVWF	DEGREE20
	
	MOVLW	L_M
	MOVWF	DEGREE11
	MOVWF	DEGREE13
	MOVWF	DEGREE15
	MOVWF	DEGREE17
	MOVWF	DEGREE19
	MOVWF	DEGREE21

	MOVLW	T_D
	MOVWF	DEGREE16
	
	MOVLW	H_U
	MOVWF	DEGREE10
	
	RETURN


ROBOT_WALK:
	MOVF	WORK_CNT,W
	ANDLW	0X0f
	BTFSS	STATUS,Z
	RETURN		


	MOVLW	01111000B
	ANDWF	ROBOT_STATUSL,W
	BZ	ROBOT_WALK_STOP
	

	MOVLW	UPPER ROBOT_STEP_TABLE; LOAD TBLPTR WITH THE BASE
	MOVWF	TBLPTRU ; PIC_ADDRESS OF THE WORD
	MOVLW	HIGH ROBOT_STEP_TABLE
	MOVWF	TBLPTRH 
	MOVLW	LOW ROBOT_STEP_TABLE
	MOVWF	TBLPTRL  

	MOVLW	0	;DOWN
	BTFSC	ROBOT_STATUSL,5	
	MOVLW	2	;LEFT	
	BTFSC	ROBOT_STATUSL,4	
	MOVLW	4	;RIGHT
	BTFSC	ROBOT_STATUSL,3	
	MOVLW	6	;UP
	
	ADDWF	TBLPTRL 	
	MOVLW	0
	ADDWFC	TBLPTRH
	CLRF	TBLPTRU
	
	TBLRD*+; READ INTO TABLAT AND INCREMENT
	MOVF	TABLAT,W  ; GET DATA	
	MOVWF	PRODL
	
	TBLRD*+; READ INTO TABLAT AND INCREMENT
	MOVF	TABLAT,W  ; GET DATA	
	MOVWF	TBLPTRH
	MOVF	PRODL,W
	MOVWF	TBLPTRL
		
	MOVF	WORK_STEP,W
	MULLW	12
	
	MOVF	PRODL,W
	ADDWF	TBLPTRL
	MOVF	PRODH,W
	ADDWFC	TBLPTRH
	
	MOVLW	HIGH DEGREE10
	MOVWF	FSR0H 
	MOVLW	LOW DEGREE10
	MOVWF	FSR0L 
		
	MOVLW	12
	MOVWF	PRODL
ROBOT_WALK4:
	TBLRD*+; READ INTO TABLAT AND INCREMENT
	MOVF	TABLAT,W  ; GET DATA
	MOVWF	POSTINC0
	DECFSZ	PRODL
	BRA	ROBOT_WALK4

	INCF	WORK_STEP
	MOVLW	MAX_WORK_STEP
	CPFSLT	WORK_STEP
	CLRF	WORK_STEP	
	RETURN
;******************************
ROBOT_STEP_TABLE
	DW	WROK_DOWN_TABLE
	DW	WROK_LEFT_TABLE
	DW	WROK_RIGHT_TABLE
	DW	WROK_UP_TABLE
	DW	WROK5_STEP_TABLE
	DW	WROK6_STEP_TABLE
	DW	WROK6_STEP_TABLE
	DW	WROK6_STEP_TABLE
	DW	WROK6_STEP_TABLE


;******************************



WROK_UP_TABLE
WROK5_STEP_TABLE
WROK6_STEP_TABLE
WROK6_STEP_TABLE
WROK6_STEP_TABLE
WROK6_STEP_TABLE

WROK_DOWN_TABLE

WROK_LEFT_TABLE:

WROK_RIGHT_TABLE
;       HEAD    FOOT1   FOOT2   TAIL    FOOT3   FOOT4     
 DB	H_U,L_M,F_D,L_M,F_D,L_M,F_D,L_M,F_D,L_M,F_D,L_M	;0
 DB	H_U,L_M,F_U,L_M,F_D,L_M,F_D,L_M,F_D,L_M,F_D,L_M	;0
 DB	H_U,L_M,F_U,L_M,F_U,L_M,F_D,L_M,F_D,L_M,F_D,L_M	;0
 DB	H_U,L_M,F_U,L_M,F_U,L_M,F_D,L_M,F_D,L_M,F_D,L_M	;0





;**********************************
	ORG	7FF8H

	DW	0XFF3F	;CONFIG 1
	DW	0XFF7D	;CONFIG 2
	DW	0XFeFF	;CONFIG 3
	DW	0XFFFF
	

;	DW	0XFBBF	;CONFIG 1
;	DW	0XFFFD	;CONFIG 2
;	DW	0XFFFF	;CONFIG 3
;	DW	0XFFFF
	
;*******************

	 END

⌨️ 快捷键说明

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