亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? p676_koq.asm

?? PIC16f676/630移植的keeloq滾動碼匯編程序,節省一個外部EEPROM,并增加I/O端口.
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
; FUNCTION     	: LOAD_CNT_VALS()	      			
;
; DESCRIPTION  	: LOAD COUNTERS INTO WRITE BUFFERS
;
; NOTE		: THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;===========================================================================

LOAD_CNT_VALS
	MOVFW	CNTR_HI			; LOAD MSB OF COUNTER
	MOVWF	TMP1
	MOVFW	CNTR_LW			; LOAD LSB OF COUNTER
	MOVWF	TMP2
	RETLW	0

;===========================================================================
;
; FUNCTION     	: RECEIVE()	      			
;
; DESCRIPTION  	: RECEPTION ROUTINE FOR PWM TRANSMISSIONS
;
; NOTE		: THIS ROUTINE MUST BE IN THE LOWER HALF OF THE PAGE
;
;===========================================================================

RECEIVE

;******** WAIT FOR HEADER AND CALIBRATE *******************

	BTFSS   PORTA,RFIN              ; INPUT LOW?
	GOTO    RMT_0                   ; YES; RECEIVE ERROR

	MOVLW   10                      ; 10 ms TIMER
	MOVWF   CNT1
RCV0
	MOVLW   200
	MOVWF   CNT0
RCV1
	BTFSS   PORTA,RFIN              ; [2] INPUT HIGH?
	GOTO    RCV2                    ; [0] NO, JUMP OUT OF LOOP
	DECFSZ  CNT0,1                  ; [1] YES, CONTINUE WITH TIMING LOOP
	GOTO    RCV1                    ; [2] 5 us X CNT0
	DECFSZ  CNT1,1                  ; [0] DO 1 ms LOOP CNT1 TIMES
	GOTO    RCV0			; [0]

RCV2
	CLRF    CNT0                    ; [1] CLEAR CALIB COUNTER LOW BYTE
	CLRF    CNT1                    ; [1] CLEAR CALIB COUNTER HIGH BYTE

;*************************************************************************
;  2.5 IS AVERAGE FOR DETECTING FALLING EDGE IN RCV1
;  2   INSTRUCTIONS FOR JUMP OUT RCV1 TO RCV2
;  2   INSTRUCTIONS FOR RCV2 - CLEAR CALIBRATION COUNTER
;  TOTAL 6.5 INSTRUCTIONS < 1 CALIBRATION LOOP SO DISCARD
;*************************************************************************

RCV3
	BTFSC   PORTA,RFIN              ; [2][2] INPUT HIGH?
	GOTO    RCV6                    ; [0][0] YES--END CALIBRATION
	INCF	CNT0,1			; [1] INCREMENT 16BIT COUNTER	
	SKPNZ	      			; [2]
	INCF	CNT1,1			; [0]
	CLRWDT				; [1] RESET WATCH DOG TIMER
	NOP				; [1]
	BTFSS	CNT1,3			; [1]
	GOTO	RCV3  			; [2]
	GOTO	RMT_0 			; [0]
		      			; TOTAL = 10
		      			
RCV6
	CLRC				; [1] DIVIDE CNT1:CNT0 BY 8 (600/8=75)
	RRF     CNT1,1			; [1]
	RRF     CNT0,1			; [1]
	RRF     CNT1,1			; [1]
	RRF     CNT0,1			; [1]
	RRF     CNT1,1			; [1]
	RRF     CNT0,1                  ; [1] 
					
	MOVLW   MIN/80			; [1]
	SUBWF   CNT0,W			; [1]
	BTFSS   STATUS,C		; [2] NEGATIVE?
	GOTO    RMT_0                   ; [0] YES--HEADER SHORTER THAN MIN.
					; TOTAL = 11
; ************* VALID HEADER RECEIVED *********************
RCV7
	MOVLW   NBITS                   ; [1] VALID START MARKER WAS RECEIVED
	MOVWF   CNT1			; [1]
	MOVF    CNT0,W			; [1]
	MOVWF   CNT2                    ; [1] CNT2 = CNT0
	MOVLW   6H			; [1] SEE NOTE BELOW
	SUBWF   CNT2,1			; [1]
	GOTO    DL1                   	; [2] COMPENSATE FOR FIRST BIT
					; TOTAL = 8

;**********************************************************************************
;  2.5 IS AVERAGE PLAY BETWEEN RISING EDGE AND JUMP OUT OF CALIBRATION LOOP.
;  2   FOR JUMP OUT OF RCV3 TO RCV6
; 11   INSTRUCTIONS FOR RVC6 - CAIBRATION COUNTER DIVIDE
;  8   INSTRUCTIONS FOR RCV7 - COMPENSATE FOR POST CALIBRATION CALCUATIONS
; TOTAL 22.5 INSTRUCTIONS BETWEEN RISING EDGE AND ENTERING DL1
;  THEREFORE SUBTRACT 22.5/4 = 5.625 TO COMPENSATE FOR POST CALCULATION ON 1ST BIT
;**********************************************************************************

RCV8					
	MOVLW	4H			; [1] WAIT A MAXIMUM OF 4 Te
	MOVWF	TMP_CNT			; [1] SET TEMP LOOP COUNTER

RCV10A
	MOVFW	CNT0                  	; [1] and CSR processing
	MOVWF   CNT2			; [1] Refer to explanation above

RCV10B
	BTFSC   PORTA,RFIN              ; [2] Wait for rising edge
	GOTO    RCV11                   ; [0] Edge found--Process
	CLRWDT                          ; [1] Clear watchdog Timer
	BTFSC   PORTA,RFIN              ; [2] Wait for Next rising edge
	GOTO    RCV11                   ; [0] Edge found--Process
	DECFSZ  CNT2,1                  ; [1] Decrement Timeout counter
	GOTO    RCV10B                  ; [2] Loop Back
					; TOTAL = 8, RFIN CHECKED EVERY 4uS ON AVERAGE

	DECFSZ	TMP_CNT,1		; [1] ALL Te PERIODS
	GOTO	RCV10A			; [2] ... NO, THEN WAIT FOR NEXT ONE
	GOTO    RMT01                   ; [0] ... YES, [0] TIMEOUT--no edge found

RCV11
	MOVLW	3H			; [1]  SEE NOTE BELOW
	SUBWF	CNT0,W			; [1]
	MOVWF	CNT2			; [1]

;*************************************************************************
; 2   SETUP OF TEMP LOOP COUNTER  ( ONLY ONCE )
; 2   SETUP TE LOOP COUNTER       ( MAX 4 )
; 3   DECREMENT TEMP LOOP COUNTER ( MAX 4 )
; 4   IS THE AVERAGE PLAY BETWEEN EDGE AND EDJE BEING DETECTED IN RCV9
; 2   JUMP OUT OF RCV10B TO RCV11
; 3   FOR RCV11
; TOTAL 10 INSTRUCTIONS BETWEEN EDGE AND ENTERING DL1
; THEREFORE SUBTRACT 10/4 = 2.5 => 3 DL1 LOOPS TO COMPENSATE FOR 
;*************************************************************************

DL1
	CLRWDT                          ; [1] RESET WATCHDOG TIMER
	DECFSZ  CNT2,1                  ; [1] [2, IF SKIP]
	GOTO    DL1                     ; [2] CNT0 X 4 us

SAMPLE1
	BTFSS   PORTA,RFIN              ; [2] INPUT HIGH?  FIRST SAMPLE
	GOTO    RMT01                   ; [0] NO--ERROR

	MOVF    CNT0,W                  ; [1] CALIBRATION COUNTER
	MOVWF   CNT2                    ; [1] (NOMINALLY 75 FOR 300 us PULSE)
	DECF    CNT2,1			; [1] SUBTRACT 2 FROM FINAL CALIB COUNTER TO COMPENATE FOR THIS
	GOTO	$+1				; [2]
	NOP						; [1]
							; TOTAL = 8 => 1 LOOP COUNTER
DL2
	CLRWDT                          ; [1] RESET WATCHDOG TIMER
	GOTO	$+1						; [2] WASTE TIME
	GOTO	$+1						; [2] WASTE TIME
	DECFSZ  CNT2,1					; [1]
	GOTO    DL2                     ; [2] CNT0 X 8 us [ CNT0 x Te ]

SAMPLE2
	BCF     FLAGS,BITIN             ; [1]   CLEAR BIT POSITION
	BTFSS   PORTA,RFIN              ; [1.5] LEAVE 0 IF LINE HIGH
	BSF     FLAGS,BITIN             ; [0.5] MAKE 1 IF LINE LOW
									; SUB TOTAL = 3 CYCLES

	CALL    ROT_SHIFT       ; [11]+[2] CSR SHIFT + CALL
	BCF		CSR7,7			; [1]
	BTFSC   FLAGS,BITIN		; [1.5]
	BSF     CSR7,7			; [0.5]
							; SUB TOTAL = 16 CYCLES


	MOVF    CNT0,W                  ; [1] CALIBRATION COUNTER
	MOVWF   CNT2                    ; [1] (NOMINALLY 75 FOR 300 us PULSE)
	MOVLW	3						; [1] SEE CALCULATION BELOW
	SUBWF	CNT2,1					; [1]
	NOP								; [1]
									; SUB TOTAL = 5 CYCLE
									; TOTAL = 24 => 24/8 = 3 LOOP COUNTERS
					 
;*************************************************************************
; TOTAL = 24 INSTRUCTIONS
; SUBTRACT 24/8 = 3 TO COMPESATE FOR UPDATEING CSR AND OTHER PROCESSING 
; AFTER DATA SAMPLE IS TAKEN.
;*************************************************************************

DL3
	GOTO	$+1						; [2] WASTE TIME
	GOTO	$+1						; [2] WASTE TIME
	CLRWDT                          ; [1] RESET WATCHDOG TIMER
	DECFSZ  CNT2,1                  ; [1]
	GOTO    DL3                     ; [2] CNT0 X 8 us [ CNT0 X Te ]

SAMPLE3
	BTFSC   PORTA,RFIN              ; [2] INPUT LOW?  THIRD SAMPLE
	GOTO    RMT0                    ; [0] NO--RECEIVE ERROR

	CALL    TST_RTCC                ; [11] CHECK RTCC

	DECFSZ  CNT1,1                  ; [1] LAST BIT?
	GOTO    RCV8                    ; [2] ... NO, GET NEXT BIT
	GOTO	RMT1		    	 	; TOTAL = 14 CYCLES


RMT_0
RMT0	
RMT01	BSF	STATUS,C		; INVALID TRANSMISSION
		RETLW	1			; RETURN

RMT1	BSF	PORTA,LED		; VALID TRANSMISSION FORMAT, LED ON
		MOVLW	0FH			; FORCE OPEN BUTTON CODES TO ZERO
		ANDWF	SER_0,1
		CLRC				; VALID SERIAL NUMBER => VALID TX
 		RETLW   0          	; RETURN 

;===========================================================================
;
; FUNCTION     	: M_LOOP ()	      			
;
; DESCRIPTION  	: MAIN PROGRAM ROUTINE
;
;===========================================================================

M_LOOP	
	BCF		PORTA,LED		 
	BTFSS	PORTA,LRN		
	GOTO	LEARN		 	; TEST & HANDLE LEARN BUTTON
	CALL	TST_RTCC		; UPDATE TIMER 
	CALL	TST_TIMER		; HANDLE TIMER - UPDATE OUTPUTS
	CALL	RECEIVE			; RECEIVE TRANSMISSION 
	BC	M_LOOP			; CHECK IF TRANSMISSION VALID

M_SEARCH
	CLRF	TXNUM			; TEST FIRST POSITION
; ******* COMPARE LOWER WORD OF SERIAL NUMBER ********
M_SERIAL
	CALL	TX_LOOKUP		; GET TX BASE ADDRESS
	BSF		ADDRESS,1		; ADD 2 TO BASE ADDRESS
	CALL	EEREAD			; READ LOWER 16-BITS OF SER# FROM EEPROM
  		    
	MOVFW	TMP1			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_2,W
	BNZ		M_NEXT			; IF NOT EQUAL CHECK NEXT
	MOVFW	TMP2			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_3,W
	BNZ		M_NEXT			; IF NOT EQUAL CHECK NEXT
	
; ******* COMPARE UPPER WORD OF SERIAL NUMBER ********
M_SERIAL2
	INCF	ADDRESS,F		; POINT TO NEXT ENTRY 
	CALL	EEREAD			; READ UPPER 16-BITS OF SER# FROM EEPROM

	MOVFW	TMP1			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_0,W
	BNZ	M_NEXT			; IF NOT EQUAL CHECK NEXT

	MOVFW	TMP2			; COMPARE RX AND EEPROM VALUES
	XORWF	SER_1,W
	BNZ	M_NEXT			; IF NOT EQUAL CHECK NEXT

	BTFSS	FLAGS,LRNF		; LEARN MODE
	GOTO	M_HOP			; FOUND TRANSMITTER - DECRYPT

	BSF		FLAGS,RELEARN		; SET RELEARN FLAG
	GOTO	LEARN_F			; FOUND TRANSMITTER - LEARN
		
; **** SEARCH NEXT POSITION FOR SERIAL NUMBER *****
M_NEXT	
	INCF	TXNUM,F			; POINT TO NEXT TRANSMITTER POSITION
	MOVLW	MAX_USERS		; TEST FOR LAST POSITION
	SUBWF	TXNUM,W			
	BTFSS	STATUS,C		; NOT FOUND IN MAP
	GOTO	M_SERIAL		; TRY NEXT POSITION
M_NF
	BTFSS	FLAGS,LRNF		; LEARN MODE
	GOTO	M_LOOP			; NO... INVALID SERIAL NUMBER 
	GOTO	LEARN_NF		; NEW TRANSMITTER - USE POINTER FOR LEARN

; ********** DECRYPT HOPCODE *********************
M_HOP	
	CALL	DECRYPT			; DECRYPT HOPCODE 

; ********* TEST DICRIMINATION VALUE *************
M_DIS	MOVFW	SER_3			; SERIAL NUBER LSB MUST BE EQUAL
	XORWF	CODEE,W			; TO DISCRIMINATION VALUE
	BNZ	M_LOOP

; *************** CHECK COUNTERS VALID ************
	BCF	FLAGS,SEC_CNT		; CHECK FIRST COUNTER
M_CNT	
	CALL	TX_LOOKUP		; POINT LOWER 16 BIT COUNTER
	BTFSC	FLAGS,SEC_CNT		; IF SECOND COUNTER IS USED
	INCF	ADDRESS,F		; INCREMENT ADDRESS	
	CALL	EEREAD			; READ LOWER 16 BIT COUNTER FROM EEPROM

; ************ CHECK COUNTER WINDOWS ***********
M_SUB
	MOVFW	TMP2			; 16 BIT COUNTER SUBSTRACTION
	SUBWF	CNTR_LW,W
	MOVWF	TMP2			
	SKPC				; SKIP IF NO BORROW
	INCF	TMP1,F			; ... ELSE INCR HI BYTE
	MOVFW	TMP1
	SUBWF	CNTR_HI,W
	MOVWF	TMP1

	BCF	TMP1,0			; MAKE ACCEPTED WINDOW 512

M_CHECK0
	MOVFW	TMP1			; TEST IF IN WINDOW ( UPPER BYTE )
	BTFSC	STATUS,Z
	GOTO	M_CHECK2		; GO AND CHECK LOWER BYTE

	BTFSC	FLAGS,SEC_CNT		; IF SECOND COUNTER
	GOTO	M_LOOP			; ERROR - GOTO MAIN LOOP		

	BSF	FLAGS,SEC_CNT		; SET FLAG FOR SECOND COUNTER CHECK
	GOTO	M_CNT			; AND CHECK IT

M_CHECK2
	MOVFW	TMP2			; CHECK LOWER BYTE
	BZ	M_TZERO				; IF REPEAT - RESET TIMEOUT COUNTER

; ************ UPDATE EEPROM COUNTER ***********
M_UPDATE
	CALL	TX_LOOKUP			; GET CURRENT TX BASE ADDRESS
	CALL	LOAD_CNT_VALS		; LOAD COUNTER VALUES
	CALL	EEWRITE				; UPDATE FIRST COUNTER
	CALL	LOAD_CNT_VALS		; LOAD COUNTER VALUES	
	CALL	EEWRITE				; UPDATE SECOND COUNTER

; ******** UPDATE OUTPUT WITH CURRENT BUTTON CODE ********

M_OUTPUT 
	MOVLW	0F0H				; MASK ONLY BUTTON CODES
	ANDWF	FUNC,1
	SWAPF	FUNC,1				; GET BUTTON CODE FROM FUNC BYTE
	
	BTFSC	FUNC,0				; CHANGE BUTTON TO S-OUTPUT FORMAT
	BSF	FUNC,4					; [ S2 S1 S0 S3 ]
	CLRC				
	RRF	FUNC,W
	
M_OUTPUT1
	movwf	flash_flags
	btfss	flash_flags,0
	goto	zhuiyu
	movlw	0aah
	movwf	PORTC
	goto	M_TZERO
zhuiyu
	clrf	PORTC
M_TZERO
	CLRF	CNT_HI			; RESET RTCC CLOCK
	CLRF	CNT_LW			

M_END	
	GOTO	M_LOOP				; WAIT FOR NEXT TRANMISSION

;===========================================================================
;
; FUNCTION     	: LEARN ()	      			
;
; DESCRIPTION  	: LEARN ROUTINE
;
;===========================================================================

LEARN
	CLRF	CNT_LW			; RESET TIMER
	CLRF	CNT_HI
	
	
LEARN1	
	BSF		PORTA,LED		; LED ON
	CALL	TST_RTCC		; UPDATE TIMER
	BTFSC	PORTA,LRN		; TEST FOR BUTTON RELEASE		
	GOTO	LEARN2			; ENTER LEARN MODE
	BTFSS	CNT_HI,0		; TEST FOR ERASE ALL
	GOTO	LEARN1			; LOOP BACK

; ******* EEPROM ERASE ALL ******************

	BCF	PORTA,LED
ERASE_ALL
	CLRWDT					; CLEAR WATCHDOG TIMER
	MOVLW	40H
	MOVWF	COUNT_ERASE
	MOVLW	00H
	MOVWF	ADDRESS
	MOVLW	0FFH
	MOVWF	TMP1
	MOVWF	TMP2
	CALL	EEWRITE
	DECFSZ	COUNT_ERASE
	GOTO	$-2
	CLRWDT
	BTFSS	PORTA,LRN
	GOTO	$-2
	GOTO	RESET			; START OVER
	
LEARN2
	BCF	PORTA,LED			; CLEAR LED
	BSF	FLAGS,LRNF			; SET LEARN FLAG

LEARN3
	CALL	TST_RTCC		; UPDATE TIMER
	CALL	TST_TIMER		; CHECK FOR LEARN TIMEOUT
	CALL	RECEIVE			; RECEIVE TRANSMISSION 
	BC		LEARN3			; CHECK IF TRANSMISSION VALID
 	GOTO	M_SEARCH		; CHECK IF SERIAL NUMBER IS IN MAP

LEARN_NF

; *** IF SERIAL NOT IN MAP READ SELFLEARN POINTER ***

	MOVLW	LRNPTR
	BSF		STATUS,RP0
	MOVWF	EEADR
	BSF		EECON1,RD
	MOVF	EEDATA,W
	BCF		STATUS,RP0
	MOVWF	TXNUM
	COMF	TXNUM
	BTFSS	STATUS,Z
	COMF	TXNUM
LEARN_F
	CALL	TX_LOOKUP
	BSF		ADDRESS,1			; ADD 2 TO BASE ADDRESS
	MOVFW	SER_2			; GET LOWER 16 BIT OF SERIAL NUMBER
	MOVWF	TMP1
	MOVFW	SER_3
	MOVWF	TMP2
	CALL	EEWRITE			; ... AND WRITE TO EEPROM
	
	MOVFW	SER_0			; GET UPPER 16 BIT OF SERIAL NUMBER
	MOVWF	TMP1
	MOVFW	SER_1
	MOVWF	TMP2
	CALL	EEWRITE			; ... AND WRITE TO EEPROM

; *** DECRYPT HOP CODE ***

LEARN_DEC
	CALL	DECRYPT				; DECRYPTION ROUTINE

; *** CHECK DISCRIMINATION VALUE ***

LEARN_CHK
	MOVFW	SER_3				; CHECK LOWER BYTE OF SERIAL NUMBER
	XORWF	CODEE,W				; AGAINST DISCRIMINATION VALUE
	BZ		LEARN_UP			; UPDATE LEARN POINTER
	GOTO	CANCEL_LEARN		; ERROR CANCEL LEARN MODE

; ********* UPDATE LEARN POINTER **********
LEARN_UP
	CALL	TX_LOOKUP		; GET CURRENT TX BASE ADDRESS
	CALL	LOAD_CNT_VALS
	CALL	EEWRITE			; WRITE LSB WORD OF COUNTER TO EEPROM
	
	BTFSC	FLAGS,RELEARN		; IF RELEARN
	GOTO	BYPASS_POINTER_WRITE	; DONT UPDATE POINTER

	INCF	TXNUM			; INCREMENT LEARN POINTER	       
	MOVLW	0FH
	ANDWF	TXNUM,W			; ELSE USE TXNUM
	MOVWF	TMP1			; FOR WRITE OPERATION
LEARN_UP1	
		MOVLW	LRNPTR			; POINT TO LEARN POINTER
		BSF		STATUS,RP0
		MOVWF	EEADR
		MOVF	TMP1,W
		MOVWF	EEDATA
		BSF		EECON1,WREN
		MOVLW	55H
		MOVWF	EECON2
		MOVLW	0AAH
		MOVWF	EECON2
		BSF		EECON1,WR
WRIT_VERIFY1
		CLRWDT	
		BTFSC	EECON1,WR
		GOTO	$-2
		MOVF	EEDATA,W
		BSF		EECON1,RD
		XORWF	EEDATA,W
		BTFSS	STATUS,Z
		GOTO	LEARN_UP1
		BCF		STATUS,RP0

BYPASS_POINTER_WRITE

	BSF	PORTA,LED		; LED ON TO INDICATE VALID LEARN

	CLRF	CNT_LW			; CLEAR COUNTER LOW BYTE

SUCCESS
	CALL	TST_RTCC		; INDICATE SUCCESSFUL LEARN
	BTFSS	CNT_LW,4		; LED ON FOR 0.5 SEC
	GOTO	SUCCESS			; LOOP BACK

CANCEL_LEARN
	BCF		FLAGS,LRNF		; CLEAR LEARN FLAG
	BCF		FLAGS,RELEARN		; CLEAR RELEARN FLAG
	GOTO	M_LOOP			; RETURN TO MAIN LOOP - LED OFF

;===========================================================================
; END OF FILE : SIMDEC10.ASM
;===========================================================================


	END


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产综合精品| 懂色av一区二区夜夜嗨| 99久久精品久久久久久清纯| 久久久99精品免费观看不卡| 国产成人一区二区精品非洲| 国产亚洲欧美日韩日本| 成人a免费在线看| 亚洲品质自拍视频网站| 日本道色综合久久| 亚洲成a人v欧美综合天堂| 在线播放中文一区| 激情文学综合网| 中文一区二区在线观看| 欧美亚洲动漫精品| 蜜桃视频第一区免费观看| 久久人人97超碰com| 日本一区二区三区电影| 国产精品久久久久久户外露出 | 国产精品日产欧美久久久久| av在线不卡观看免费观看| 亚洲综合丝袜美腿| 精品99999| 91欧美一区二区| 日韩和欧美的一区| 国产精品乱子久久久久| 欧美日本韩国一区二区三区视频 | 韩国一区二区三区| 亚洲女性喷水在线观看一区| 欧美一二三在线| 91麻豆免费观看| 国产一区久久久| 亚洲亚洲精品在线观看| 久久精品网站免费观看| 欧美日本一区二区在线观看| youjizz国产精品| 蜜桃一区二区三区在线观看| 一区二区三区中文字幕| 国产欧美日韩视频在线观看| 欧美日本一道本| 99亚偷拍自图区亚洲| 国内久久精品视频| 丝袜亚洲另类欧美| 亚洲精品成人在线| 久久美女高清视频| 日韩午夜在线影院| 欧美日韩精品一区二区三区四区| 不卡的av中国片| 国产一区二区三区观看| 免费人成在线不卡| 亚洲一区二区在线视频| 亚洲三级电影网站| 国产精品欧美一区喷水| 久久久三级国产网站| 欧美成va人片在线观看| 欧美一区二区三区在线观看| 精品视频123区在线观看| 色av综合在线| 色成人在线视频| 91亚洲精品久久久蜜桃| 国产成人亚洲综合色影视| 国产一区二区三区久久久 | 91精品国产高清一区二区三区蜜臀| 91麻豆国产在线观看| 99re8在线精品视频免费播放| 成人小视频免费在线观看| 丁香六月综合激情| 国产.欧美.日韩| 风间由美一区二区av101| 国产91精品一区二区麻豆网站| 国产成人精品三级| 波波电影院一区二区三区| aa级大片欧美| 一本高清dvd不卡在线观看| 91久久精品一区二区三| 欧美日韩精品一区二区在线播放| 欧美视频第二页| 91精品国产欧美一区二区成人| 欧美mv日韩mv国产网站app| 久久久精品免费网站| 国产日韩欧美不卡在线| 成人免费在线播放视频| 亚洲综合在线电影| 蜜乳av一区二区| 国产高清久久久| 一本一道久久a久久精品| 欧美日韩精品是欧美日韩精品| 日韩一区二区免费高清| 国产欧美日韩三级| 亚洲综合色丁香婷婷六月图片| 三级久久三级久久| 懂色av一区二区三区免费看| 欧美午夜不卡视频| 日韩一级大片在线观看| 国产精品素人视频| 一区二区三区在线观看视频| 99热99精品| 欧美视频中文字幕| www国产精品av| 亚洲精品国产一区二区精华液| 亚洲图片有声小说| 国产九色sp调教91| 欧亚一区二区三区| 久久久久久久免费视频了| 一区二区三区中文字幕精品精品| 蜜乳av一区二区| 一本到不卡免费一区二区| 日韩欧美一级在线播放| 亚洲图片激情小说| 黑人精品欧美一区二区蜜桃| 在线一区二区三区四区| 久久精品欧美日韩| 日韩国产欧美在线视频| 91性感美女视频| 久久综合久久鬼色中文字| 亚洲国产精品自拍| 97精品电影院| 国产拍揄自揄精品视频麻豆| 人妖欧美一区二区| 在线免费av一区| 国产精品毛片久久久久久久| 精品一区二区三区日韩| 欧美老女人在线| 亚洲精品视频在线| 国产91精品免费| 久久夜色精品国产噜噜av| 三级不卡在线观看| 欧美日韩亚洲综合一区二区三区| 亚洲视频 欧洲视频| 国产成人av电影在线| 日韩免费在线观看| 美女www一区二区| 欧美高清视频一二三区| 亚洲国产sm捆绑调教视频| 一道本成人在线| 一区二区三区国产豹纹内裤在线 | 国产精品九色蝌蚪自拍| 国产美女精品一区二区三区| 欧美v日韩v国产v| 蜜桃精品在线观看| 欧美大片顶级少妇| 美女视频免费一区| 欧美成人一区二区三区| 免费成人在线网站| 欧美v亚洲v综合ⅴ国产v| 蜜桃av一区二区三区电影| 日韩欧美国产一区二区在线播放 | 日韩午夜在线播放| 久久国产麻豆精品| 精品处破学生在线二十三| 激情欧美一区二区三区在线观看| 欧美精品一区二区三区高清aⅴ| 激情小说亚洲一区| 国产精品婷婷午夜在线观看| av电影在线观看一区| 亚洲精品美国一| 精品视频1区2区| 麻豆国产欧美日韩综合精品二区 | 精品1区2区在线观看| 国产一区二区久久| 国产精品视频九色porn| 91视频在线观看免费| 亚洲一区二区三区在线| 精品国产一区二区三区久久久蜜月 | 一区二区三区视频在线看| 欧美日韩国产综合一区二区| 麻豆精品视频在线| 亚洲欧洲日韩av| 在线不卡a资源高清| 国产精品一区二区在线看| 亚洲欧洲三级电影| 555www色欧美视频| 国产精品99久久久久久久vr| 亚洲色图色小说| 日韩午夜在线影院| av在线不卡观看免费观看| 肉丝袜脚交视频一区二区| 日本一区二区三区四区在线视频 | 亚洲乱码一区二区三区在线观看| 欧美日韩www| 丁香天五香天堂综合| 午夜精品国产更新| 国产拍欧美日韩视频二区| 欧美日韩亚洲高清一区二区| 国产精品99久久久久久有的能看| 亚洲一区二区av电影| 日本一区二区三区视频视频| 91精品国产综合久久久久久漫画 | 国产亚洲一区二区三区在线观看 | 日本亚洲视频在线| 国产精品久久久久一区| 欧美一区二区福利在线| 色综合久久99| 成人精品视频一区| 精品一区二区免费| 亚瑟在线精品视频| 国产精品国产a级| 精品剧情在线观看| 717成人午夜免费福利电影| 97久久超碰精品国产| 国产一区二区免费看|