No.23050 作者:greatddq 邮件:greatddq@163.com ID:10706 登陆:7次 文章数:17篇 最后登陆IP:211.147.234.219 最后登陆:2006/6/8 16:23:40 注册:2003/3/31 11:57:54 财富:98 发帖时间:2003/4/2 16:58:28 发贴者IP:218.19.158.37 标题:greatddq:作过单总线的帮我看看这个程序好吗??急阿!!!! 摘要:No.23050作过单总线的帮我看看这个程序好吗??急阿!!!! pic16c72和ds2401 ,晶振是4m 有能帮我 的联系我阿!!急阿!!qq21404086 email:greatddq@163.com MAIN1: BCF INTCON,GIE BSF STATUS,RP0 ;强制为一 MOVLW 8FH ;将10001111送给w MOVWF OPTION_REG MOVLW 7H ;00000111 MOVWF ADCON1 MOVLW 01H MOVWF TRISB BCF STATUS,RP0 ; make all I/Os inputs ; the following illustrates how to write these eight values to EEPROM ; beginning at EEPROM address 06. MOVLW BUFF_SIZE ; number of bytes of data MOVWF N MOVLW 40H ; beginning of data buffer MOVWF FSR CALL INIT ; intitialize DS2401 ; the following shows how to read 8 bytes beginning at address 06 MOVLW 0CCH ; skip ROM MOVWF O_BYTE CALL OUT_BYTE MOVLW 033H ; read memory into scratch pad MOVWF O_BYTE CALL OUT_BYTE READ_1: CALL IN_BYTE MOVF I_BYTE, W MOVWF INDF INCF FSR, F DECFSZ N, F GOTO READ_1 ; done reading DONE: GOTO START1 ; The following are standard 1-Wire routines. INIT: BSF STATUS,RP0 ;强制为一 BCF TRISB,0 BCF STATUS,RP0 CALL PIN_HI NOP CALL PIN_LO MOVLW .80 ; 800 us delay CALL DELAY_10USEC LOOP11: BSF PORTB,0 ;MOVLW .5 ;CALL DELAY_10USEC BSF STATUS,RP0 ;强制为一 BSF TRISB,0 BCF STATUS,RP0 WAIT_0: BTFSC PORTB,0 GOTO WAIT_0 ;MOVLW .24 ; 240 us delay ;CALL DELAY_10USEC NOP WAIT_1: BTFSS PORTB,0 GOTO WAIT_1 ;GOTO INIT RETURN IN_BYTE: ; returns byte in I_BYTE MOVLW .8 MOVWF INDEX CLRF I_BYTE IN_BYTE_1: BSF STATUS,RP0 ;强制为一 BCF TRISB,0 BCF STATUS,RP0 BCF STATUS,C BCF PORTB,0;读前保持 ......
>>返回讨论的主题
|