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

📄 remote_v01.asm.bak

📁 一种多自由度智能机器人的设计全部资料上传!
💻 BAK
字号:
                       LIST P=16F676,R=DEC
                       
                    
 INCLUDE "P16F676.INC" 
 
	 __CONFIG	_INTRC_OSC_NOCLKOUT&_WDT_OFF&_MCLRE_OFF&_BODEN
 
;----------------------------------------
BANK_0  MACRO
        BCF         STATUS,RP0
        ;BCF         STATUS,RP1
        ENDM
BANK_1  MACRO
        BSF         STATUS,RP0
        ;BCF         STATUS,RP1
        ENDM
;-----------------------------------------------------------------------
;                            PAGE MACRO
PAGE_0  MACRO
        BCF         PCLATH,3
        ;BCF         PCLATH,4
        ENDM
PAGE_1  MACRO
        BSF         PCLATH,3
        ;BCF         PCLATH,4
        ENDM
;----------- define regisister --------

CBLOCK 0X20      ; NAME_1 WILL BE ASSIGNED 20
FLAG0
KEYL
SEND_BIT_CNT
SEND_CNT0
SEND_CNT
SLEEPH
SLEEPL
ENDC

#DEFINE IR		PORTC,3
#DEFINE BIT_FLAG	FLAG0,0
#DEFINE IDLE_FLAG	FLAG0,1



;---------------------------------
;-           FLAG_T1  21         -
;---------------------------------


	ORG     0H
POWER_RESET
	CLRF    STATUS
	GOTO    power_on

	 ORG     04H
	CLRF	INTCON
	RETFIE

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;         DELAY_300US             ;

	ORG     0X10



;--------------------------------------
power_on:
	CLRWDT
	CLRF 	INTCON
	CLRF 	T1CON
	MOVLW   B'00000111'
	MOVWF   CMCON
	
	BANK_1
	CALL       H'3FF'
     	MOVWF      OSCCAL
     	
     	
	MOVLW   B'01100000' ; Fosc/64
        MOVWF   ADCON1
	MOVLW   B'00000000' ; AD SELECT A0
	MOVWF   ANSEL
	MOVLW 	B'10000111' ; DISABLE RB PULL UP
        MOVWF	OPTION_REG           ;the prescaler is 256 to time0
	;MOVLW	B'00000000'     ;
	;MOVWF	PIE1
	CLRF	PIE1
	MOVLW	B'11111111'
	MOVWF	TRISA
	
	CLRF    WPUA
	MOVLW	B'11110111'
	MOVWF	TRISC
	
	MOVLW	B'00111111'
	MOVWF	IOCA
	
	BANK_0
	
	CLRF 	PORTA              ;init the porta
	CLRF 	PORTC              ;init the portB
	MOVLW   B'00000000' ; LEFT JUSTIFIED ,Vref VDD,
	MOVWF   ADCON0
	BCF    STATUS,IRP
	
	MOVLW	B'00110101'
	MOVWF	T1CON
	
	CLRF	SEND_CNT
	CALL	READ_KEY
TEST_ME:

	CALL	SEND_IR	
	
	CALL	READ_KEY
	BTFSS	STATUS,Z
	GOTO	TEST_ME
	
	
	
	
	MOVLW	10
	MOVWF	SLEEPL
	MOVLW	1
	MOVWF	SLEEPH


MAIN:
	CALL	READ_KEY	
		
	BTFSC	STATUS,Z
	GOTO	MAIN_SEND_IR
	MOVWF	SLEEPH
	CLRF	SLEEPL

;	MOVLW	8
	BSF	SEND_CNT,3
		
MAIN_SEND_IR:	
	MOVF	SEND_CNT
	BTFSC	STATUS,Z	
	GOTO	SLEEP_TEST

	DECF	SEND_CNT
	
	BSF	IDLE_FLAG	
	
	MOVLW	7
	ANDWF	SEND_CNT,W
		
	BTFSC	STATUS,Z		
	BCF	IDLE_FLAG
	
	CALL	SEND_IR					
SLEEP_TEST:

	;BTFSS	TMR1H,6
	;BSF	IR
	;BTFSC	TMR1H,6
	;BCF	IR	
;****************
	BTFSS	TMR1H,7
	GOTO	MAIN

	BCF	TMR1H,7
	
	DECFSZ	SLEEPL
	GOTO	MAIN
	DECFSZ	SLEEPH
	GOTO	MAIN

;**************
	BCF	IR

	MOVLW	B'10001000'
	MOVWF	INTCON
	CLRWDT
	SLEEP
	CLRF	INTCON
	GOTO	MAIN
;************************
;************************

SEND_IR:
	BCF	KEYL,7
	CLRF	SEND_CNT0
	
	BTFSC	KEYL,0
	INCF	SEND_CNT0
	BTFSC	KEYL,1
	INCF	SEND_CNT0	
	BTFSC	KEYL,2
	INCF	SEND_CNT0
	BTFSC	KEYL,3
	INCF	SEND_CNT0	
	
	BTFSC	KEYL,4
	INCF	SEND_CNT0
	BTFSC	KEYL,5
	INCF	SEND_CNT0	
	BTFSC	KEYL,6
	INCF	SEND_CNT0

	BTFSC	SEND_CNT0,0
	BSF	KEYL,7
			
;SEND_HEAD:
	MOVLW	48
	BSF	BIT_FLAG
	CALL	SEND_BIT2	
	CALL	SEND_BIT_NO

	BCF	STATUS,C

	MOVLW	9
	MOVWF	SEND_CNT0
SEND_IR2:
	MOVLW	12
	BSF	BIT_FLAG
	CALL	SEND_BIT2
		
		RRF	KEYL	
	BTFSC	STATUS,C
	CALL	SEND_BIT_NO_LONG
SEND_IR8:
	CALL	SEND_BIT_NO
	
	DECFSZ	SEND_CNT0
	GOTO	SEND_IR2
	RETURN
;----------------------------			
SEND_BIT_NO_LONG:
	BCF	BIT_FLAG
	MOVLW	20
	GOTO	SEND_BIT2
	
SEND_BIT_NO:
	BCF	BIT_FLAG
	MOVLW	8
SEND_BIT2:
	MOVWF	SEND_BIT_CNT
SEND_BIT4:	
	BTFSC	IDLE_FLAG
	GOTO	SEND_BIT6
				
	BTFSC	BIT_FLAG
	BSF	IR	

SEND_BIT6:	


	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT
	
	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT	
	BCF	IR
	
	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT	
	
	
	CLRWDT
	CLRWDT
	CLRWDT
	CLRWDT
	
	CLRWDT
		
	CLRWDT
	DECFSZ	SEND_BIT_CNT
	GOTO	SEND_BIT4
	RETURN	
	
		
		
	
	
	
	
	
	
	
	





	






;                1-VCC         GND-14  
;     K2         2-RA5         RA0-13  K1
;     K5         3-RA4         RA1-12  DOWN
;     K6         4-RA3         RA2-11  LEFT
;     K3         5-RC5         RC0-10  RIGHT
;     K4         6-RC4         RC1-9   UP
;     IR OUT     7-RC3         RC2-8   
	
READ_KEY:
	CLRWDT
	CLRF	KEYL
	BTFSC	PORTC,2		;DOWN
	BSF	KEYL,6	
	BTFSC	PORTA,2		;LEFT
	BSF	KEYL,5	
	BTFSC	PORTC,0		;RIGHT
	BSF	KEYL,4	
	BTFSC	PORTC,1		;UP   
	BSF	KEYL,3		
;--------------------------------
	INCF	KEYL				
	BTFSC	PORTA,0
	GOTO	READ_KEY_END		;KEY1
	
	INCF	KEYL	
	BTFSC	PORTA,5		;KEY2
	GOTO	READ_KEY_END	
	INCF	KEYL
	BTFSC	PORTC,5		;KEY3
	GOTO	READ_KEY_END
	INCF	KEYL	
	BTFSC	PORTC,4		;KEY4
	GOTO	READ_KEY_END
	
	INCF	KEYL	
	BTFSC	PORTA,4		;KEY5
	GOTO	READ_KEY_END
	INCF	KEYL	
	BTFSC	PORTA,3		;KEY6
	GOTO	READ_KEY_END	

	MOVLW	01111000B
	ANDWF	KEYL
	
READ_KEY_END:
	MOVF 	KEYL,W
	RETLW	5
;--------------------------------------

;--------------------------------------
	
    	;GOTO      POWER_RESET
	 END

⌨️ 快捷键说明

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