這是使用16F877A控制DS12C887+的Intel bus讀寫時序程式
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;DS12C887命令寫入 RW ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RTC_WRITE: BANKSEL TRISB MOVLW 0x00 ;PORTB=OUTPUT MOVWF TRISB ;資料傳出 BANKSEL PORTD BSF PORTD,DS BSF PORTD,RW BSF PORTD,AS BCF PORTD,CS MOVF ADDRESS,W ;寫入位址 MOVWF PORTB BCF PORTD,AS BCF PORTD,RW ;寫入資料 MOVF CMD,W MOVWF PORTB BSF PORTD,RW MOVLW 0x08 ;禁能DS12C887 MOVWF PORTD RETURN ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;DS12C887資料讀出 DS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RTC_READ: BANKSEL TRISB MOVLW 0x00 ;PORTB=OUTPUT MOVWF TRISB ;資料傳出 BANKSEL PORTD BSF PORTD,DS BSF PORTD,RW BSF PORTD,AS BCF PORTD,CS MOVF ADDRESS,W ;寫入位址 MOVWF PORTB BCF PORTD,AS BANKSEL TRISB MOVLW 0xFF ;PORTB=INPUT MOVWF TRISB ;資料寫入 BANKSEL PORTD BCF PORTD,DS ;讀出資料 NOP MOVF PORTB,W MOVWF RTC_VALUE BSF PORTD,DS MOVLW 0x08 ;禁能DS12C887 MOVWF PORTD RETURN
以上讀寫程序程式僅供參考