; ;存入F5
CALL RDT46 ;读低位地址
MOVWF F4 ;存入F4
GOTO EX9346
;**************************
SWRITE
MOVLW 40H
ADDWF ADR46 ,0 ;6位地址加上两位操作码01XXXXXX 写指令
CALL SDT46 ;写入操作码及地址
MOVFW F5 ;载入数据
CALL SDT46 ;写入数据
MOVFW F4 ;载入数据
CALL SDT46 ;写入数据
GOTO EX9346
;******************************
SEWEN
MOVLW 30H ;写入操作码0011XXXX 写使能指令
CALL SDT46
GOTO EX9346
;******************************
SEWDS
CLRW ;写入0000XXXX写禁止指令
CALL SDT46
;******************************
EX9346
BCF PORTB ,CS ;结束时清CS为0
RETURN
;******************************
SDT46:
MOVWF F2 ;将要写的数据送F2
MOVLW 08H ;写入8位数据
MOVWF F3
SD1:
RLF F2 ,1
BSF PORTB ,DI
BTFSS STATUS ,C
BCF PORTB ,DI
BSF PORTB ,CLK
CALL DELAY
BCF PORTB ,CLK
CALL DELAY
DECFSZ F3 ,1
GOTO SD1
RETURN
;******************************
RDT46
MOVLW 08H ;读出8位数据
MOVWF F3
RD1
BSF PORTB ,CLK
CALL DELAY
BCF PORTB ,CLK
CALL DELAY
BSF STATUS ,C
BTFSS PORTB ,DO
BCF STATUS ,C
RLF F2 ,1
DECFSZ F3 ,1
GOTO RD1
MOVFW F2 ;读得的数据送W
RETURN
;********************************
DELAY
MOVLW 1FH ;CLK时序廷时
MOVWF F7
DECFSZ F7 ,1
GOTO $-1
RETURN
;*******************************
DELAY1 ;廷时
MOVLW .20
MOVWF F4
D1
MOVLW .40
MOVWF F5
D2
MOVLW .248
MOVWF F6
DECFSZ F6 ,1
GOTO $-1
DECFSZ F5 ,1
GOTO D2
DECFSZ F4 ,1
GOTO D1
RETURN
;********************************************
end ;源
程序结束
;*****************************************************
; 进入该实战演练的工序流程如下:
; 1.创建源文件和编辑源文件;在此介绍一种不同于前面讲的创建源文件的方法,用Windows附件中的”记事本”
; 这个为大家所熟知和好用的文件编辑器,并且可以方便的加入中文注释.不过有两点需要注意,一是注释前面的
; 分号”;”必须用西文半角输入;二是必须用”.asm”扩展名存储到事先建立的一个专用子目录下.
;