PIC12F1822 AD问题,一直没找到原因,劳大神帮忙看下。
时间:10-02
整理:3721RD
点击:
程序代码全部如下,在OVP detection处用AN1做AD时,AD出来的结果一直是0XFF,同样的代码,在
OTP detection处用AN0做AD时,结果正常,不知道问题在哪。
LIST p=12F1822 ;
#include "P12F1822.INC" ; Include header file
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_ON & _CP_ON & _CPD_ON & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__CONFIG _CONFIG2, (0X1EFF)
;Fsys=4MHz 01101010
;timer0 interrupt:1ms
;instruction cycle=4/4MHz=1us
;REF=5V
;AD 10bit
;===================bit defination==================
; status bit defination
#define TO STATUS,4
#define PD STATUS,3
#define ZE STATUS,2
#define DCF STATUS,1
#define CF STATUS,0
;================I/O port defination==================
#define OFF PORTA,5
#define PFC PORTA,4
#define DELAY PORTA,2
;==============universial register defination==========
DELAY_FLAG EQU 0X21
#define RELAY_FLAG DELAY_FLAG,0
#define PFC_FLAG DELAY_FLAG,1
#define OFF_FLAG DELAY_FLAG,2
STATUS_FLAG EQU 0X22
#define WAKE_UP_FLAG STATUS_FLAG,0
#define SHUT_DOWN_FLAG STATUS_FLAG,1
#define OVP_FLAG STATUS_FLAG,2
#define OTP_1_FLAG STATUS_FLAG,3
#define PTC_FLAG STATUS_FLAG,4
#define UVP_FLAG STATUS_FLAG,5
T0_BUFFER1 EQU 0X24
T0_BUFFER2 EQU 0X25
T0_COUNTER0 EQU 0X26
T0_COUNTER1 EQU 0X27
T0_COUNTER2 EQU 0X28
T0_COUNTER3 EQU 0X29
ADC_OUNTER EQU 0X30
T0_COUNTER4 EQU 0X31
AD_RECYCLE_COUNTER EQU 0X34
AD_COUNTER EQU 0X35
ADC_BUFFER EQU 0X36
AD_BUFFER1 EQU 0X37
AD_BUFFER2 EQU 0X38
AD_VALUEL EQU 0X39
AD_VALUEH EQU 0X40
AD_AVER_VAL EQU 0X41
INPUT_VOLT EQU 0X42
OTP_DET_1 EQU 0X43
AD_LOWBIT EQU 0X46
;==========================================================
;==========================================================
;==========================================================
ORG 0x00
GOTO start_pro
ORG 0x04
GOTO MCU_INT
;GOTO 0X06
;===========================Interrupt program==============================
MCU_INT:
MOVLB 0X0
MOVWF T0_BUFFER1
SWAPF STATUS,W
MOVWF T0_BUFFER2
TIMER1000MS:
BTFSS WAKE_UP_FLAG
GOTO EXIT_TIMER00
BTFSC RELAY_FLAG
GOTO NEXT_1
INCF T0_COUNTER1,F
MOVLW 0X14 ;delay 1s
SUBWF T0_COUNTER1,W
BTFSS CF
GOTO EXIT_TIMER00
BSF DELAY
BANKSEL LATA
BSF LATA,2
MOVLB 0X0
BSF RELAY_FLAG
CLRF T0_COUNTER1
NEXT_1:
BTFSC PFC_FLAG
GOTO NEXT_2
INCF T0_COUNTER2,F
MOVLW 0X0A ;delay 500ms
SUBWF T0_COUNTER2,W
BTFSS CF
GOTO EXIT_TIMER00
BCF PFC
BANKSEL LATA
BCF LATA,4
MOVLB 0X0
BSF PFC_FLAG
CLRF T0_COUNTER2
NEXT_2:
BTFSC OFF_FLAG
GOTO EXIT_TIMER00
INCF T0_COUNTER3,F
MOVLW 0X14 ;delay 1s
SUBWF T0_COUNTER3,W
BTFSS CF
GOTO EXIT_TIMER00
BANKSEL LATA
BCF LATA,5
BCF LATA,5
BANKSEL PORTA
BCF OFF
MOVLB 0X0
BSF OFF_FLAG
CLRF T0_COUNTER3
EXIT_TIMER00:
BCF INTCON,2 ;Clear TMR0 interrupt flag
MOVLW 0X3B ; MAKE COMMENDATION
MOVWF TMR0 ; 50ms
INT_END:
SWAPF T0_BUFFER2,W
MOVWF STATUS
SWAPF T0_BUFFER1,F
SWAPF T0_BUFFER1,W
RETFIE
;===========================INITIAL SFR========================
start_pro:
BANKSEL OSCCON
MOVLW B'01101011'
MOVWF OSCCON ;Fosc=4MHz internal RC oscillation
;BANKSEL CPSCON0
;BCF CPSCON0,7
;BANKSEL CM1CON0
;BCF CM1CON0,7
;BANKSEL DACCON0
;BCF DACCON0,7
;BANKSEL MDCON
;CLRF MDCON
;BANKSEL SSP1CON1
;BCF SSP1CON1,5
BANKSEL PORTA
CLRF PORTA
BANKSEL LATA
CLRF LATA
BANKSEL ANSELA
CLRF ANSELA
BANKSEL TRISA
MOVLW B'00001011'
MOVWF TRISA ;prot A input and output setup
BANKSEL WPUA
MOVLW 0X00
MOVWF WPUA ;disable weak pull-up
BANKSEL IOCAP
MOVWF IOCAP ;disable interupt of level of port A jump
MOVWF IOCAN
MOVLB 0X0
BSF PFC
BSF OFF
BCF DELAY
BANKSEL LATA
BSF LATA,5
BSF LATA,4
CLR_BANK0: ;CLEAR RAM
MOVLW 0X20
MOVWF FSR1L
MOVLW 0X0
MOVWF FSR1H
CLR_LOOP1:
CLRF INDF1
INCF FSR1L
MOVF FSR1L,W
XORLW 0X60
BTFSS ZE
GOTO CLR_LOOP1
WAKE_UP:
BANKSEL OPTION_REG
MOVLW B'10000111'
MOVWF OPTION_REG ;TIMER0 CLOCK=CLKOUT/4,CLKOUT=FOSC/4
BANKSEL INTCON
MOVLW B'10100000'
MOVWF INTCON ;OPEN TIMER0 INTERRUPER
MOVLW 0X3B
MOVWF TMR0 ;1ms intrance interruper
BANKSEL WDTCON
MOVLW B'00010111'
MOVWF WDTCON
MOVLW 0X00
MOVWF PIE1 ;disable external interrupt
BANKSEL PIR1
MOVLW 0X00
MOVWF PIR1 ;clear external interrupt flag
MOVWF PIR2
MOVLB 0X0
CLRF STATUS_FLAG
;========================================================
;===================main loop============================
MAIN_LOOP:
CLRWDT
BANKSEL OPTION_REG
MOVLW B'10000111'
MOVWF OPTION_REG
BANKSEL ANSELA
CLRF ANSELA
BANKSEL TRISA
MOVLW B'00001011'
MOVWF TRISA ;prot A input and output setup
MOVLB 0X0
BSF WAKE_UP_FLAG
;BANKSEL PORTA
; BCF PFC
; BCF LATA,4
MOVLB 0X0
BTFSC OVP_FLAG
GOTO OVP_DETECTION
BTFSC UVP_FLAG
GOTO OVP_DETECTION
BTFSC OTP_1_FLAG
GOTO OTP_DET
;=============================OVP detection=========================
OVP_DETECTION:
BANKSEL ADCON0
MOVLW B'00000101'
MOVWF ADCON0 ;AD PORT:AN1
BANKSEL ADCON1
MOVLW B'00100000'
MOVWF ADCON1
BANKSEL ANSELA
MOVLW B'00000010' ;PIN1 as AD port
MOVWF ANSELA
CALL ADC
MOVLB 0X0
;MOVLW 0X9D
;MOVWF AD_AVER_VAL
MOVF AD_AVER_VAL,W
MOVWF ADC_BUFFER
MOVWF INPUT_VOLT
BTFSC OVP_FLAG
GOTO OVP_RELEAX
MOVLW 0XA7 ;>290V
SUBWF INPUT_VOLT,W
BTFSS CF
GOTO UVP_DETECTION
BSF OVP_FLAG
GOTO WARNING
OVP_RELEAX:
MOVLW 0XA0 ;280V
SUBWF INPUT_VOLT,W
BTFSC CF
GOTO WARNING
BCF OVP_FLAG
BANKSEL LATA
BCF LATA,5
BANKSEL PORTA
BCF OFF
GOTO MAIN_LOOP
;================================UVP detection=========================
UVP_DETECTION:
BTFSC UVP_FLAG
GOTO UVP_85V_RELEAX
MOVLW 0X30 ;>80V ?
SUBWF INPUT_VOLT,W
BTFSS CF
GOTO UVP_75V_DET
GOTO OTP_DET
UVP_75V_DET:
MOVLW 0X2D ;<75V
SUBWF INPUT_VOLT,W
BTFSC CF
GOTO OTP_DET
BSF UVP_FLAG
GOTO WARNING
UVP_85V_RELEAX:
MOVLW 0X33 ;>85V
SUBWF INPUT_VOLT,W
BTFSS CF
GOTO WARNING
BCF UVP_FLAG
BSF WAKE_UP_FLAG
BANKSEL LATA
BCF LATA,5
BANKSEL PORTA
BCF OFF
GOTO MAIN_LOOP
;================================OTP detection===========================
OTP_DET:
BANKSEL ADCON0
MOVLW B'00000001'
MOVWF ADCON0 ;AD PORT:AN0
BANKSEL ADCON1
MOVLW B'00100000'
MOVWF ADCON1
BANKSEL ANSELA
MOVLW B'00000001' ;PIN7 as AD port
MOVWF ANSELA
CALL ADC
MOVLB 0X0
;MOVLW 0XA0
;MOVWF AD_AVER_VAL
MOVF AD_AVER_VAL,W
MOVWF ADC_BUFFER
MOVWF OTP_DET_1
BTFSC OTP_1_FLAG
GOTO OTP_1_RELEAX
MOVLW 0XB1 ;>90℃
SUBWF OTP_DET_1,W
BTFSS CF
GOTO MAIN_LOOP
BSF OTP_1_FLAG
GOTO WARNING
OTP_1_RELEAX:
MOVLW 0X9D ;<80℃
SUBWF OTP_DET_1,W
BTFSC CF
GOTO WARNING
BCF OTP_1_FLAG
CLRF DELAY_FLAG
GOTO MAIN_LOOP
ADC:
MOVLB 0X0
MOVLW 0X80
MOVWF AD_RECYCLE_COUNTER
MOVLW 0X07
MOVWF AD_COUNTER
;ADC_CONVERT:
ADC_LOOP:
CALL DELAY_TIME
BANKSEL ADCON0
BSF ADCON0,1 ;ADC START
NOP
NOP
BTFSC ADCON0,1
GOTO $-2
BANKSEL ADRESL
MOVF ADRESL,W ;LOW 2bit
MOVLB 0X0
ADDWF AD_BUFFER1,F
BTFSC CF
INCF AD_BUFFER2,F
BANKSEL ADRESH
MOVF ADRESH,W ;high 8bit
MOVLB 0X0
ADDWF AD_VALUEL,F
BTFSC CF
INCF AD_VALUEH,F
DECFSZ AD_RECYCLE_COUNTER,F
GOTO ADC_LOOP
TAKE_AVER:
BCF CF
RRF AD_VALUEH,F
RRF AD_VALUEL,F
BCF CF
RRF AD_BUFFER2,F
RRF AD_BUFFER1,F
DECFSZ AD_COUNTER,F
GOTO TAKE_AVER
MOVF AD_VALUEL,W
MOVWF AD_AVER_VAL
MOVF AD_BUFFER1,W
MOVWF AD_LOWBIT
CLRF AD_VALUEL
CLRF AD_VALUEH
CLRF AD_BUFFER2
CLRF AD_BUFFER1
RETURN
DELAY_TIME:
MOVLW 0X64
MOVWF T0_COUNTER4
NOP
NOP
DECFSZ T0_COUNTER4,F
GOTO $-2
RETURN
WARNING:
BANKSEL LATA
BSF LATA,5
BANKSEL PORTA
BSF OFF
GOTO MAIN_LOOP
END
OTP detection处用AN0做AD时,结果正常,不知道问题在哪。
LIST p=12F1822 ;
#include "P12F1822.INC" ; Include header file
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_ON & _PWRTE_ON & _MCLRE_ON & _CP_ON & _CPD_ON & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__CONFIG _CONFIG2, (0X1EFF)
;Fsys=4MHz 01101010
;timer0 interrupt:1ms
;instruction cycle=4/4MHz=1us
;REF=5V
;AD 10bit
;===================bit defination==================
; status bit defination
#define TO STATUS,4
#define PD STATUS,3
#define ZE STATUS,2
#define DCF STATUS,1
#define CF STATUS,0
;================I/O port defination==================
#define OFF PORTA,5
#define PFC PORTA,4
#define DELAY PORTA,2
;==============universial register defination==========
DELAY_FLAG EQU 0X21
#define RELAY_FLAG DELAY_FLAG,0
#define PFC_FLAG DELAY_FLAG,1
#define OFF_FLAG DELAY_FLAG,2
STATUS_FLAG EQU 0X22
#define WAKE_UP_FLAG STATUS_FLAG,0
#define SHUT_DOWN_FLAG STATUS_FLAG,1
#define OVP_FLAG STATUS_FLAG,2
#define OTP_1_FLAG STATUS_FLAG,3
#define PTC_FLAG STATUS_FLAG,4
#define UVP_FLAG STATUS_FLAG,5
T0_BUFFER1 EQU 0X24
T0_BUFFER2 EQU 0X25
T0_COUNTER0 EQU 0X26
T0_COUNTER1 EQU 0X27
T0_COUNTER2 EQU 0X28
T0_COUNTER3 EQU 0X29
ADC_OUNTER EQU 0X30
T0_COUNTER4 EQU 0X31
AD_RECYCLE_COUNTER EQU 0X34
AD_COUNTER EQU 0X35
ADC_BUFFER EQU 0X36
AD_BUFFER1 EQU 0X37
AD_BUFFER2 EQU 0X38
AD_VALUEL EQU 0X39
AD_VALUEH EQU 0X40
AD_AVER_VAL EQU 0X41
INPUT_VOLT EQU 0X42
OTP_DET_1 EQU 0X43
AD_LOWBIT EQU 0X46
;==========================================================
;==========================================================
;==========================================================
ORG 0x00
GOTO start_pro
ORG 0x04
GOTO MCU_INT
;GOTO 0X06
;===========================Interrupt program==============================
MCU_INT:
MOVLB 0X0
MOVWF T0_BUFFER1
SWAPF STATUS,W
MOVWF T0_BUFFER2
TIMER1000MS:
BTFSS WAKE_UP_FLAG
GOTO EXIT_TIMER00
BTFSC RELAY_FLAG
GOTO NEXT_1
INCF T0_COUNTER1,F
MOVLW 0X14 ;delay 1s
SUBWF T0_COUNTER1,W
BTFSS CF
GOTO EXIT_TIMER00
BSF DELAY
BANKSEL LATA
BSF LATA,2
MOVLB 0X0
BSF RELAY_FLAG
CLRF T0_COUNTER1
NEXT_1:
BTFSC PFC_FLAG
GOTO NEXT_2
INCF T0_COUNTER2,F
MOVLW 0X0A ;delay 500ms
SUBWF T0_COUNTER2,W
BTFSS CF
GOTO EXIT_TIMER00
BCF PFC
BANKSEL LATA
BCF LATA,4
MOVLB 0X0
BSF PFC_FLAG
CLRF T0_COUNTER2
NEXT_2:
BTFSC OFF_FLAG
GOTO EXIT_TIMER00
INCF T0_COUNTER3,F
MOVLW 0X14 ;delay 1s
SUBWF T0_COUNTER3,W
BTFSS CF
GOTO EXIT_TIMER00
BANKSEL LATA
BCF LATA,5
BCF LATA,5
BANKSEL PORTA
BCF OFF
MOVLB 0X0
BSF OFF_FLAG
CLRF T0_COUNTER3
EXIT_TIMER00:
BCF INTCON,2 ;Clear TMR0 interrupt flag
MOVLW 0X3B ; MAKE COMMENDATION
MOVWF TMR0 ; 50ms
INT_END:
SWAPF T0_BUFFER2,W
MOVWF STATUS
SWAPF T0_BUFFER1,F
SWAPF T0_BUFFER1,W
RETFIE
;===========================INITIAL SFR========================
start_pro:
BANKSEL OSCCON
MOVLW B'01101011'
MOVWF OSCCON ;Fosc=4MHz internal RC oscillation
;BANKSEL CPSCON0
;BCF CPSCON0,7
;BANKSEL CM1CON0
;BCF CM1CON0,7
;BANKSEL DACCON0
;BCF DACCON0,7
;BANKSEL MDCON
;CLRF MDCON
;BANKSEL SSP1CON1
;BCF SSP1CON1,5
BANKSEL PORTA
CLRF PORTA
BANKSEL LATA
CLRF LATA
BANKSEL ANSELA
CLRF ANSELA
BANKSEL TRISA
MOVLW B'00001011'
MOVWF TRISA ;prot A input and output setup
BANKSEL WPUA
MOVLW 0X00
MOVWF WPUA ;disable weak pull-up
BANKSEL IOCAP
MOVWF IOCAP ;disable interupt of level of port A jump
MOVWF IOCAN
MOVLB 0X0
BSF PFC
BSF OFF
BCF DELAY
BANKSEL LATA
BSF LATA,5
BSF LATA,4
CLR_BANK0: ;CLEAR RAM
MOVLW 0X20
MOVWF FSR1L
MOVLW 0X0
MOVWF FSR1H
CLR_LOOP1:
CLRF INDF1
INCF FSR1L
MOVF FSR1L,W
XORLW 0X60
BTFSS ZE
GOTO CLR_LOOP1
WAKE_UP:
BANKSEL OPTION_REG
MOVLW B'10000111'
MOVWF OPTION_REG ;TIMER0 CLOCK=CLKOUT/4,CLKOUT=FOSC/4
BANKSEL INTCON
MOVLW B'10100000'
MOVWF INTCON ;OPEN TIMER0 INTERRUPER
MOVLW 0X3B
MOVWF TMR0 ;1ms intrance interruper
BANKSEL WDTCON
MOVLW B'00010111'
MOVWF WDTCON
MOVLW 0X00
MOVWF PIE1 ;disable external interrupt
BANKSEL PIR1
MOVLW 0X00
MOVWF PIR1 ;clear external interrupt flag
MOVWF PIR2
MOVLB 0X0
CLRF STATUS_FLAG
;========================================================
;===================main loop============================
MAIN_LOOP:
CLRWDT
BANKSEL OPTION_REG
MOVLW B'10000111'
MOVWF OPTION_REG
BANKSEL ANSELA
CLRF ANSELA
BANKSEL TRISA
MOVLW B'00001011'
MOVWF TRISA ;prot A input and output setup
MOVLB 0X0
BSF WAKE_UP_FLAG
;BANKSEL PORTA
; BCF PFC
; BCF LATA,4
MOVLB 0X0
BTFSC OVP_FLAG
GOTO OVP_DETECTION
BTFSC UVP_FLAG
GOTO OVP_DETECTION
BTFSC OTP_1_FLAG
GOTO OTP_DET
;=============================OVP detection=========================
OVP_DETECTION:
BANKSEL ADCON0
MOVLW B'00000101'
MOVWF ADCON0 ;AD PORT:AN1
BANKSEL ADCON1
MOVLW B'00100000'
MOVWF ADCON1
BANKSEL ANSELA
MOVLW B'00000010' ;PIN1 as AD port
MOVWF ANSELA
CALL ADC
MOVLB 0X0
;MOVLW 0X9D
;MOVWF AD_AVER_VAL
MOVF AD_AVER_VAL,W
MOVWF ADC_BUFFER
MOVWF INPUT_VOLT
BTFSC OVP_FLAG
GOTO OVP_RELEAX
MOVLW 0XA7 ;>290V
SUBWF INPUT_VOLT,W
BTFSS CF
GOTO UVP_DETECTION
BSF OVP_FLAG
GOTO WARNING
OVP_RELEAX:
MOVLW 0XA0 ;280V
SUBWF INPUT_VOLT,W
BTFSC CF
GOTO WARNING
BCF OVP_FLAG
BANKSEL LATA
BCF LATA,5
BANKSEL PORTA
BCF OFF
GOTO MAIN_LOOP
;================================UVP detection=========================
UVP_DETECTION:
BTFSC UVP_FLAG
GOTO UVP_85V_RELEAX
MOVLW 0X30 ;>80V ?
SUBWF INPUT_VOLT,W
BTFSS CF
GOTO UVP_75V_DET
GOTO OTP_DET
UVP_75V_DET:
MOVLW 0X2D ;<75V
SUBWF INPUT_VOLT,W
BTFSC CF
GOTO OTP_DET
BSF UVP_FLAG
GOTO WARNING
UVP_85V_RELEAX:
MOVLW 0X33 ;>85V
SUBWF INPUT_VOLT,W
BTFSS CF
GOTO WARNING
BCF UVP_FLAG
BSF WAKE_UP_FLAG
BANKSEL LATA
BCF LATA,5
BANKSEL PORTA
BCF OFF
GOTO MAIN_LOOP
;================================OTP detection===========================
OTP_DET:
BANKSEL ADCON0
MOVLW B'00000001'
MOVWF ADCON0 ;AD PORT:AN0
BANKSEL ADCON1
MOVLW B'00100000'
MOVWF ADCON1
BANKSEL ANSELA
MOVLW B'00000001' ;PIN7 as AD port
MOVWF ANSELA
CALL ADC
MOVLB 0X0
;MOVLW 0XA0
;MOVWF AD_AVER_VAL
MOVF AD_AVER_VAL,W
MOVWF ADC_BUFFER
MOVWF OTP_DET_1
BTFSC OTP_1_FLAG
GOTO OTP_1_RELEAX
MOVLW 0XB1 ;>90℃
SUBWF OTP_DET_1,W
BTFSS CF
GOTO MAIN_LOOP
BSF OTP_1_FLAG
GOTO WARNING
OTP_1_RELEAX:
MOVLW 0X9D ;<80℃
SUBWF OTP_DET_1,W
BTFSC CF
GOTO WARNING
BCF OTP_1_FLAG
CLRF DELAY_FLAG
GOTO MAIN_LOOP
ADC:
MOVLB 0X0
MOVLW 0X80
MOVWF AD_RECYCLE_COUNTER
MOVLW 0X07
MOVWF AD_COUNTER
;ADC_CONVERT:
ADC_LOOP:
CALL DELAY_TIME
BANKSEL ADCON0
BSF ADCON0,1 ;ADC START
NOP
NOP
BTFSC ADCON0,1
GOTO $-2
BANKSEL ADRESL
MOVF ADRESL,W ;LOW 2bit
MOVLB 0X0
ADDWF AD_BUFFER1,F
BTFSC CF
INCF AD_BUFFER2,F
BANKSEL ADRESH
MOVF ADRESH,W ;high 8bit
MOVLB 0X0
ADDWF AD_VALUEL,F
BTFSC CF
INCF AD_VALUEH,F
DECFSZ AD_RECYCLE_COUNTER,F
GOTO ADC_LOOP
TAKE_AVER:
BCF CF
RRF AD_VALUEH,F
RRF AD_VALUEL,F
BCF CF
RRF AD_BUFFER2,F
RRF AD_BUFFER1,F
DECFSZ AD_COUNTER,F
GOTO TAKE_AVER
MOVF AD_VALUEL,W
MOVWF AD_AVER_VAL
MOVF AD_BUFFER1,W
MOVWF AD_LOWBIT
CLRF AD_VALUEL
CLRF AD_VALUEH
CLRF AD_BUFFER2
CLRF AD_BUFFER1
RETURN
DELAY_TIME:
MOVLW 0X64
MOVWF T0_COUNTER4
NOP
NOP
DECFSZ T0_COUNTER4,F
GOTO $-2
RETURN
WARNING:
BANKSEL LATA
BSF LATA,5
BANKSEL PORTA
BSF OFF
GOTO MAIN_LOOP
END
谢谢,小编提供的场地。
MICROCHIP 原装正品,另有可替换单片机(无需修改PCB资料,程序可共用PIC的) 有用到的兄弟多多支持! 电话13430885511(微信同号),QQ2355910801