《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 解决方案 > PIC单片机的读写93C46程序

PIC单片机的读写93C46程序

2009-01-16
关键词: PIC单片机 源代码

PIC单片机的读写93C46程序

; THIS ROUTE IS USED FOR 93C46 (Configue as
; 16 bits organizatio) READ & WRITE ROUTE

RA EQU 5
RB EQU 6

BIT-COUNT EQU


DATA_HI EQU 10H ; HI half of words
DATA_LO EQU 11H ; LO half of words
ROM_AD EQU 12H ; the address of 93c46

TEMR EQU 13H ;
BIT_COUNT EQU 14H
;
CM_EWEN EQU 30H
CM_EWDS EQU 0H
;RA
CS EQU 0
SK EQU 1
DI EQU 2


;---------------
;used transmiting the first bits in commands
START_BITS
 BCF RA,SK
 NOP
 BSF RA,CS
 NOP
 BSF RA,DI
 NOP
 BSF RA,SK
 NOP
 BCF RA,SK
 RETLW 0
;------------------
;the route of transmitting a byte
TRMIT   ;
 MOVLW 8
 MOVWF BIT_COUNT
TRM0
 BCF 3,0
 BCF RA,SK
 RLF TEMR
 BTFSS 3,0
 GOTO ^+3
 BSF RA,DI
 GOTO ^+2
 BCF RA,DI
 NOP
 BSF RA,SK
 DECFSZ BIT_COUNT
 GOTO TRM0
 RETLW 0H
;---------------------
;the route of receiving a byte
RECEIVE
 MOVLW 8H
 MOVWF BIT_COUNT
 CLRF TEMR
RV0
 BSF RA,SK
 NOP
 NOP
 BSF 3,0
 BCF RA,SK
 NOP
 BTFSS RA,DO
 BCF 3,0
 RLF TEMR
 DECFSZ BIT_COUNT
 GOTO RV0
 RETLW 0H
;=============================
; read a word data.
; the data in ROM_AD is the address of
; the word, which come from main route
RD_ROM
 MOVLW 080H
 IORWF ROM_AD
 MOVFW ROM_AD
 MOVWF TEMR

 CALL START_BITS
 CALL TRMIT
RC_DA
 NOP
 BCF RA,SK
 NOP
 BTFSC RA,DO
 RETLW 0FFH
 CALL RECEIVE
 MOVFW TEMR
 MOVWF DATA_HI

 CALL RECEIVE
 MOVFW TEMR
 MOVWF DATA_LO
 BCF RA,CS
 RETLW 0
;=============================
; write a word data.
; the data in ROM_AD is the address of
; the word, which come from main route
WRT
 MOVLW 40H
 IORWF ROM_AD
 MOVFW ROM_AD
 MOVWF TEMR

 CALL START_BITS
 CALL TRMIT

 MOVFW DATA_HI
 MOVWF TEMR
 CALL TRMIT
 MOVFW DATA_LO
 MOVWF TEMR
 BCF RA,CS
 RETLW 0H

;-----------------------------
EWEN
 MOVLW CM_EWEN
 GOTO EWDS+1
EWDS
 MOVLW CM_EWDS
 MOVWF ROM_AD
 MOVFW ROM_AD
 MOVWF TEMR

 CALL START_BITS
 CALL TRMIT
 BCF RA,CS
 RETLW 0H

 

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。