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

📄 pda_166p64_v01.asm

📁 一种多自由度智能机器人的设计全部资料上传!
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		
	MOVLW	0X99
	ADDWF	PARKM,W
	DAW
	MOVWF	PARKM
	
	BC	DO_MINUTE1_PARK_2
	MOVLW	0X60
	MOVWF	PARKM
	
	MOVLW	0X99
	ADDWF	PARKH,W
	DAW
	MOVWF	PARKH	
		
DO_MINUTE1_PARK_2:
	MOVF	PARKH,W
	BNZ	DO_MINUTE1_PARK_END

	MOVF	PARKM,W
	BNZ	DO_MINUTE1_PARK_4	
	
	BCF	PARK_NOTICE_FLAG	
	BRA	DO_MINUTE1_PARK_END		
DO_MINUTE1_PARK_4:	
	XORLW	1
	BNZ	DO_MINUTE1_PARK_END
	BSF	PARK_NOTICE_FLAG
	CALL	SPEECH_PARK_NOTICE			
DO_MINUTE1_PARK_END:
;-----------------------------------
	MOVF	CNTDOWNH,W
	IORWF	CNTDOWNM,W
	BZ	DO_MINUTE1_CNTDOWN_END
		
	MOVLW	0X99
	ADDWF	CNTDOWNM,W
	DAW
	MOVWF	CNTDOWNM
	
	BC	DO_MINUTE1_CNTDOWN_2
	MOVLW	0X60
	MOVWF	CNTDOWNM
	
	MOVLW	0X99
	ADDWF	CNTDOWNH,W
	DAW
	MOVWF	CNTDOWNH	
		
DO_MINUTE1_CNTDOWN_2:
	MOVF	CNTDOWNH,W
	BNZ	DO_MINUTE1_CNTDOWN_END

	MOVF	CNTDOWNM,W
	BNZ	DO_MINUTE1_CNTDOWN_4	
	
	BCF	CNTDOWN_NOTICE_FLAG	
	BRA	DO_MINUTE1_CNTDOWN_END		
DO_MINUTE1_CNTDOWN_4:	
	XORLW	1
	BNZ	DO_MINUTE1_CNTDOWN_END
	BSF	CNTDOWN_NOTICE_FLAG
	CALL	SPEECH_CNTDOWN_NOTICE			
DO_MINUTE1_CNTDOWN_END:
;-----------------------------------
;-----------------------------------
;***********************************
	MOVF	ALERTH,W
	IORWF	ALERTM,W
	BZ	DO_MINUTE1_ALERT_END
	
DO_MINUTE1_ALERT_2:
	MOVF	ALERTH,W
	XORWF	HOUR,W
	BNZ	DO_MINUTE1_ALERT_24

	MOVF	ALERTM,W
	XORWF	MINUTE,W
	BNZ	DO_MINUTE1_ALERT_24
	
	BSF	ALERT_NOTICE_FLAG

	CALL	SPEECH_ALERT_NOTICE
	BRA	DO_MINUTE1_ALERT_END
	
DO_MINUTE1_ALERT_24:	
	BCF	ALERT_NOTICE_FLAG	
DO_MINUTE1_ALERT_END:
;-----------------------------------			
	RETURN
;******************************
;******************************	
POWER_ON:
	CLRWDT
	CLRF	TOSU
	CLRF	TOSH
	CLRF	TOSL
	MOVLB	1
	CLRF	CCPR1L
	CLRF	CCPR2L

	
MCU_INIT:			
	CALL	IO_INIT
	CALL	SHUT_DOWN_CC1000	
	BSF	MCU_OUT
	
        CALL	CPU_CLOCK_8M                           
	CALL	W25X32_WAKE_UP
	;CALL	DELAY_2MS
	;BSF	RESET_LCD
		
	;BSF	PIE1,TMR1IE 
	;BSF	INTCON,GIE 
	;BSF	INTCON,PEIE 
	;CALL	DISPLAY_LOGO		
;***************			
MCU_INIT2:
	CALL	DO_CHARGE
			;
	CALL	CHECK_FLASH
		
	;				bra	MCU_INIT2
	ANDLW	0XFF	
	;BZ	MCU_INIT2
MCU_INIT4:			
;**************			
	CALL	READ_REFRENCE			
;****************************
	MOVLW	30	
	MOVWF	SECOND 
;*****************************	
	CALL	READ_HOP
	CALL	READ_MOBILE_STATUS	
;*****************************	
	CALL	READ_TOUCH
	
	;CALL	DISPLAY_MOV
	;
	;CALL   PAGE_ZERO_DISAPLAY_AGAIN2
	;MOVLW	00001100B
	;MOVWF	CCP2CON	
	;MOVLW	0
	;CALL	DISPLAY_PAGE
	
	CALL	INIT_LCD
	
	movlw	0x0
	call	DISPLAY_PAGE
	
	CALL	DISPLAY_BATT2
	CALL	DISPLAY_TIME1
	
	
	;CALL	READ_PIC_PIC_ADDRESS
	

	;CALL	SET_LCD


	CLRF	CNT1
	CLRF	CNT2
	CLRF	CNT3
	
	MOVLW	0XF0
	MOVWF	CNT1
	
	;call	DISPLAY_BATT2
TEST_ME:
	MOVLW	80
	MOVWF	CNT1
	CALL	SERVO_MG995_LONG

	
	MOVLW	250
	MOVWF	CNT1
	CALL	SERVO_MG995_LONG
	
	
	
	MOVLW	0
	MOVWF	CNT1
	CALL	SERVO_MG995_LONG
	
	

		
	BRA	TEST_ME
	
	
	
	;CALL	INIT_LCD	
	;CALL	READ_TOUCH
	;MOVF	TOUCH_X,W
	;MOVWF	MINUTE
	;CALL	DISPLAY_TIME
	
	;BTG	RESET_LCD
	;MOVLW	0X55
 	;CALL	WAIT_TX232A
	;call	CPU_CLOCK_8M
	CLRWDT
	;BTG	LATF,2
	BRA	TEST_ME	
;*****************************

SERVO_MG995_LONG
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995


	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
	CALL	SERVO_MG995	
	CALL	SERVO_MG995
SERVO_MG995:

	CLRF	CNT2
	BCF	LATG,3

SERVO_MG995B:

	MOVLW	3
	MOVWF	CNT3
	
SERVO_MG995C
	CLRWDT	
	DECFSZ	CNT3
	BRA	SERVO_MG995C
		
	MOVF	CNT1,W
	CPFSLT	CNT2
	BSF	LATG,3	
	
	INCFSZ	CNT2
	BRA	SERVO_MG995B
	
	BSF	LATG,3
	
	
	MOVLW	0X39	
	MOVWF	CNT2
	
	MOVLW	35
	MOVWF	CNT3
	
SERVO_MG995D:
	CLRWDT
	DECFSZ	CNT2
	BRA	SERVO_MG995D
	DECFSZ	CNT3
	BRA	SERVO_MG995D		
	
	RETURN

;*****************************
	;MOVLW	ST_DISARMED_ID
	;MOVWF	VEHICLE_ST_CNT;	
;*****************************
;*****************************
	
;*****************************
;*****************************
PAGE_ZERO:	
	BTFSS BACKLIGHT_FLAG	
	CALL	POWER_UP_LCD
PAGE_ZERO1
	CALL   PAGE_ZERO_DISAPLAY_AGAIN2
;*****************************	
	BCF	TOUCH_PRESS_ONCE				
;**************************
PAGE_ZERO2:
PAGE_ZERO2D:
	CALL	DO_CHARGE
;**************************	
	CALL	DISPLAY_VEHICLE_STATUS
	CALL	PAGE0_DISPLAY_NOTICE	
	CALL	DISPLAY_BATT	
;*****************************
	CALL	DISPLAY_TIME00		
	MOVF	VEHICLE_STATUS,W
	MOVWF	VEHICLE_STATUS_BAK
	RCALL	DO_2_SECOND	
;*******************	
	MOVF	VEHICLE_STATUS,W	
	XORWF	VEHICLE_STATUS_BAK,W	
	BZ	PAGE_ZERO3
	
	;BSF	LIGHT_CNT,4
	BTFSS BACKLIGHT_FLAG	
	CALL	POWER_UP_LCD
	CALL   PAGE_ZERO_DISAPLAY_AGAIN2	
	CALL	OPEN_BACK_LIGHT
;-----------------------------------??2????????	
PAGE_ZERO3:

	BTFSS	BACKLIGHT_FLAG
	BRA	PAGE_ZERO22

;-----------DO TOUCH-----------------------
	BTFSS	TOUCH_PRESS_ONCE;
	BRA	PAGE_ZERO_NO_TOUCH		
	BCF	TOUCH_PRESS_ONCE				
	BTFSC	BACKLIGHT_FLAG
	BRA	PAGE_ONE0		
	CALL	PAGE_ZERO_DISAPLAY_AGAIN			
;--------------------------			
PAGE_ZERO_NO_TOUCH:
	
PAGE_ZERO_TOUCH_BAK:	
;**************************
;--------DO IKEY
PAGE_ZERO22:	
;**************************	
DO_IKEY:
	BTFSC	IKEY
	BTFSC	IKEY_DOWN_FLAG
	BRA	DO_IKEY_READ	
;****IKEY DOWN ONCE
	BCF	TOUCH_PRESS_ONCE	
	
	
	
	
	BTFSC	BACKLIGHT_FLAG
	BRA	DO_IKEY_2	
	
		
	CALL	POWER_UP_LCD
	CALL	PAGE_ZERO_DISAPLAY_AGAIN
DO_IKEY_2:	
	CALL	OPEN_BACK_LIGHT	
	;BRA	DO_IKEY_READ

	;CALL	LCD_OFF	
	
DO_IKEY_READ:
	BTFSS	IKEY
	BCF	IKEY_DOWN_FLAG	
	BTFSC	IKEY
	BSF	IKEY_DOWN_FLAG			
DO_IKEY_READ_END		
;----DO BACKLIGHT*************************
	MOVF	LIGHT_CNT
	BNZ	PAGE_ZERO32
	BTFSC	BACKLIGHT_FLAG
	CALL	LCD_OFF
PAGE_ZERO32:		
;***************************
PAGE_ZERO_SLEEP:	
					;BRA	PAGE_ZERO2

			
	
	CALL	CPU_WAIT	
;****************************
PAGE_ZERO_TRIGGER:
	BTFSS	REC_TRIGGER_F
	BRA	PAGE_ZERO48
PAGE_ZERO_TRIGGER1:
	DCFSNZ	MELODY_CNT
	BCF	REC_TRIGGER_F
	
	BSF	LIGHT_CNT,3
	
	
	BTFSS BACKLIGHT_FLAG	
	CALL	PAGE_ZERO_DISAPLAY_AGAIN
	
	MOVF	MELODY_CNT,W
	XORLW	14
	BNZ	PAGE_ZERO_TRIGGE2	
	CALL	DISPLAY_TOP_BAR
	MOVLW	ST_TRIGGERED_ID
	CALL	DISPLAY_LOGO2
			
PAGE_ZERO_TRIGGE2:	

	BSF	MOTO_PIN	
	CALL	DISPLAY_MOV
	BCF	MOTO_PIN
	CALL	DISPLAY_TRIGGERED2
		
	BTFSC	IKEY_DOWN_FLAG		
	BCF	REC_TRIGGER_F			
PAGE_ZERO48:




	BRA	PAGE_ZERO2
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************
;*****************************

;*****************************
;*****************************
;*****************************
BACKLIGHT_TIME_OUT:
	BSF	IKEY_DOWN_FLAG
	CLRF	CCPR2L
	CLRF	LIGHT_CNT
	BCF	TOUCH_PRESS_ONCE
	BRA	PAGE_ZERO2
;*****************************
IKEY_CLOSE:
	;CLRF	CCPR2L
	;CLRF	LIGHT_CNT
	BSF	IKEY_DOWN_FLAG
	CALL	OPEN_BACK_LIGHT
	BCF	TOUCH_PRESS_ONCE
	BRA	PAGE_ZERO1
;*****************************
;*****************************
;*****************************
;*****************************
PAGE_ZERO_DISAPLAY_AGAIN:
	CALL   POWER_UP_LCD
PAGE_ZERO_DISAPLAY_AGAIN2	
	CALL	CPU_CLOCK_32M	

	CALL	HIDE_TOPBAR
	CALL	DISPLAY_TOP_BAR
	
	CALL	HIDE_KEYPAD
	CALL	DISPLAY_LOGO
		
	CALL	DISPLAY_STATUS_ICON
	
	CALL	DISPLAY_TIME
	CALL	DISPLAY_VEHICLE_STATUS2
	CALL	DISPLAY_CAR_NAME
	CALL	CPU_CLOCK_8M	
	CALL	DISPLAY_BATT2
	GOTO	OPEN_BACK_LIGHT
;************************
;************************
;************************
;************************
;************************
DO_CHAREG_END:
;************************
;*****************************	
DO_CHARGE:
	BTFSC	CHARGE_FLAG
	BRA	DO_CHARGE1
	
	BTFSC	CHARGE
	BRA	DO_CHARGE1

	BSF	CHARGE_FLAG
	BTFSS BACKLIGHT_FLAG	
	CALL	PAGE_ZERO_DISAPLAY_AGAIN
	
	MOVLW	30
	MOVWF	LIGHT_CNT
DO_CHARGE1:
	BTFSC	CHARGE
	BCF	CHARGE_FLAG		
			
	BTFSS	CHARGE
	BRA	DO_CHARE_FISRT		
	BCF	CHARGE_FLAG

	CLRWDT
	CLRF	RX232_TEST
	BSF	F_CE
	RETURN	
DO_CHARE_FISRT					
				


	BTFSC	RCSTA2,FERR	
	MOVF	RCREG2,W

	BTFSS	RCSTA2,OERR
	RETURN	
						
	MOVF	RCREG2,W

				

				
	BCF	RCSTA2,CREN
	XORLW	0XFF
	BSF	RCSTA2,CREN
	
	BTFSS	STATUS,Z
	CLRF	RX232_TEST
	
	INCF	RX232_TEST	
	
	
	
	BTFSS	RX232_TEST,1
	RETURN
	
	BTFSS	BACKLIGHT_FLAG
	CALL	PAGE_ZERO_DISAPLAY_AGAIN
	
	MOVLW	PC_ID
	CALL	DISPLAY_LOGO2
CONNECT_PC:
	BSF	F_CE
	
	BTFSC	CHARGE
	RESET			
	
	BTFSC	RCSTA2,FERR	
	MOVF	RCREG2,W

	BTFSS	RCSTA2,OERR
	BRA	CONNECT_PC2	
	
	BCF	RCSTA2,CREN
	CLRWDT
	BSF	RCSTA2,CREN					
CONNECT_PC2:	
	CLRF	TMR3L
	CLRF	TMR3H
	CLRF	CNT
	
					
	
;---------DATA INPUT						
;------------------------??????$FF *256
CHARGE_NOW6:
	BTFSC	RCSTA2,FERR	
	BRA	CONNECT_PC
	
	BTFSC	RCSTA2,OERR
	BRA	CONNECT_PC		
	

	CLRWDT					
	BTFSC	TMR3H,3
	BRA	CONNECT_PC
		
	BTFSS	PIR3,RC2IF
	BRA	CHARGE_NOW6	
	
				
	
			
	CLRF	TMR3L					
	CLRF	TMR3H	
				
	MOVF	RCREG2,W
	MOVWF	RX232_INST
	XORLW	0XAA
	BZ	CHARGE_NOW18
	
	MOVF	RX232_INST,W
	XORLW	0XFF
	BNZ	CONNECT_PC
	
	INFSNZ	CNT
	BRA	CONNECT_PC

	BRA	CHARGE_NOW6	
CHARGE_NOW18:		
	MOVF	CNT,W
	ADDLW	256-4
	BNC	CONNECT_PC
;--------------------------
					
		

;--------------------------
;--------------------------
	MOVLW	HIGH	RX232_INST
	MOVWF	FSR2H 
	MOVLW	LOW	RX232_INST
	MOVWF	FSR2L 


	

;--------------------------
;--------------------------
	CLRF	CNT			
RX_232_ONE_HEAD:

				


	BTFSC	RCSTA2,FERR	
	BRA	CONNECT_PC


	CLRWDT
	BTFSS	PIR3,RC2IF
	BRA	RX_232_ONE_HEAD2
	
	CLRF	TMR3L					
	CLRF	TMR3H
	MOVF	RCREG2,W
	MOVWF	POSTINC2
	INCF	CNT		
RX_232_ONE_HEAD2:
	BTFSC	CNT,4
	BRA	CONNECT_PC
	
	BCF	FSR2L,4
	BTFSS	TMR3H,2
	BRA	RX_232_ONE_HEAD
					
	MOVF	CNT,W
					
	XORLW	7
	BNZ	CONNECT_PC
RX_232_ONE_HEAD_END:
	CALL	W25X32_WAKE_UP
			
	MOVF	RX232_INST,W
				
				
					
				;BRA	CONNECT_PC
				
	XORLW	0X03
	BZ	W25X32_READ_PIC_ADDRESS	;READ
	
	MOVF	RX232_INST,W
	XORLW	0X20
	BZ	W25X32_ERASE_4K	;ERASE 4K


	MOVF	RX232_INST,W
	XORLW	0X24
	BTFSC	STATUS,Z
	BRA	READ_24AA02_ALL	
	
	MOVF	RX232_INST,W
	XORLW	0X25
	BTFSC	STATUS,Z
	BRA	WRITE_24AA02_ALL	
	;MOVF	RX232_INST,W
	;XORLW	0X52
	;BZ	W25X32_ERASE_4K	;ERASE 32K	
	
	MOVF	RX232_INST,W
	XORLW	0XD8
	BZ	W25X32_ERASE_4K	;ERASE 64K	
	
	MOVF	RX232_INST,W
	XORLW	0XC7
	BZ	W25X32_ERASE_CHIP	;ERASE ALL CHIP	

	MOVF	RX232_INST,W
	XORLW	0X02
	BZ	W25X32_BYTE_PROGRAM	;BYTE_PROGRAM PAGE PROGRAM
	
	MOVF	RX232_INST,W
	XORLW	0X9F
	BZ	W25X32_JEDEC_ID	;JEDEC_ID
	
	MOVF	RX232_INST,W
	XORLW	0X05
	BZ	W25X32_STATUS	
	BRA	CONNECT_PC
		
W25X32_ERASE_4K	;ERASE 4K
	MOVLW	0X55
	MOVWF	TXREG2
	
	CALL	W25X32_WP_DISABLE
	
	MOVF	RX232_INST,W		
	CALL	WRITE_SPI
	MOVF	RX232_ADDU,W		
	CALL	WRITE_SPI
	MOVF	RX232_ADDH,W		
	CALL	WRITE_SPI
	MOVF	RX232_ADDL,W		
	CALL	WRITE_SPI						
	BRA	CONNECT_PC
	
;********************
W25X32_STATUS	;STATUS
	MOVF	RX232_INST,W
	CALL	WRITE_SPI
	
	CALL	WRITE_SPI_00	;MANUFACTURER
	MOVWF	TXREG2
	BRA	CONNECT_PC	
;********************
W25X32_JEDEC_ID	;JEDEC_ID
	MOVF	RX232_INST,W
	CALL	WRITE_SPI
	
	CALL	WRITE_SPI_00	;MANUFACTURER
	MOVWF	TXREG2
	CALL	WAIT_TX232
	
	CALL	WRITE_SPI_00	;ID15-ID8
	MOVWF	TXREG2
	CALL	WAIT_TX232

	CALL	WRITE_SPI_00	;ID7-ID0
	MOVWF		TXREG2
	BRA	CONNECT_PC
				
W25X32_ERASE_CHIP	;ERASE ALL CHIP	
	MOVLW	0X58
	MOVWF	TXREG2
	CALL	W25X32_WP_DISABLE
	MOVF	RX232_INST,W
	CALL	W25X32_WR_ENABLE2	
	BRA	CONNECT_PC
;******************************
W25X32_READ_PIC_ADDRESS:	;READ
	MOVF	RX232_INST,W		
	CALL	WRITE_SPI
	MOVF	RX232_ADDU,W		
	CALL	WRITE_SPI
	MOVF	RX232_ADDH,W		
	CALL	WRITE_SPI
	MOVF	RX232_ADDL,W		
	CALL	WRITE_SPI
		
	CLRF	RX232_ADDL	;ERROR COUNT
W25X32_READ_PIC_ADDRESS2:	
	MOVF	RX232_CNTL	
	BNZ	W25X32_READ_PIC_ADDRESS3

⌨️ 快捷键说明

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