?? init4136.asm
字號:
;************************************
; 初始化SI416
;************************************
?PR?INIT4136?LOWLVL SEGMENT CODE
PUBLIC INIT4136
RSEG ?PR?INIT4136?LOWLVL
sbit SENB = P1^3;
sbit SDATA = P1^5;
sbit SCLK = P1^7;
INIT4136:
CLR SENB ;片選
MOV A,#03H ;寄存器0 3C00
LCALL SI_WRITE1
MOV A,#0C0H ;定義SI4136寄存器的數目
LCALL SI_WRITE2
MOV A,#00H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#00H ;寄存器1 003A
LCALL SI_WRITE1
MOV A,#03H
LCALL SI_WRITE2
MOV A,#0A1H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#00H ;寄存器2 0003
LCALL SI_WRITE1
MOV A,#00H
LCALL SI_WRITE2
MOV A,#32H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#03H ;寄存器3 3B1F
LCALL SI_WRITE1
MOV A,#0B1H
LCALL SI_WRITE2
MOV A,#0F3H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#01H ;寄存器4 157C
LCALL SI_WRITE1
MOV A,#57H
LCALL SI_WRITE2
MOV A,#0c4H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#02H ;寄存器5 2BE8
LCALL SI_WRITE1
MOV A,#0BEH
LCALL SI_WRITE2
MOV A,#85H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#00H ;寄存器6 7D
LCALL SI_WRITE1
MOV A,#07H
LCALL SI_WRITE2
MOV A,#0D6H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#00H ;寄存器7 32
LCALL SI_WRITE1
MOV A,#03H
LCALL SI_WRITE2
MOV A,#27H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
CLR SENB
MOV A,#00H ;寄存器8 7D
LCALL SI_WRITE1
MOV A,#07H
LCALL SI_WRITE2
MOV A,#0D8H
LCALL SI_WRITE2
SETB SENB
LCALL SI_DELAY3
SETB SDATA
RET
;*******************************************
;SI_MAIN2:
; CLR SENB ;SENB si4136選通
; LCALL SI_WRITE1
; LCALL SI_WRITE2
; LCALL SI_WRITE2
; SETB SENB ;SENB si4136關閉
; LCALL SI_DELAY3
; DJNZ R2,SI_MAIN2
; ret
;==================================
;子程序入口
;==================================
SI_WRITE1:
; CLR SENB
NOP
MOV R3,#6 ;設置循環次數
; MOV A,@R0
RLC A
RLC A
SI_LOOP1:
NOP
NOP
CLR SCLK ;SCLK
NOP
NOP
RLC A
MOV SDATA,C ;SDATA
NOP
; LCALL dog
NOP
SETB SCLK
NOP
NOP
DJNZ R3,SI_LOOP1
; INC R0 ;寄存器地址加一
; SETB SENB
RET
SI_WRITE2:
; CLR SENB
NOP
MOV R4,#8 ;設置循環次數
; MOV A,@R0
SI_LOOP2:
NOP
NOP
CLR SCLK
NOP
NOP
RLC A
MOV SDATA,C ;SDATA
NOP
; LCALL DOG
NOP
SETB SCLK ;SCLK
NOP
NOP
DJNZ R4,SI_LOOP2
; INC R0 ;寄存器地址加一
; SETB SENB
RET
;================================
;延時子程序
;================================
SI_DELAY3:
MOV R6,#40
SI_DELAY4:
NOP
; LCALL DOG
NOP
DJNZ R6,SI_DELAY4
RET
;dog: cpl p3.5
; ret
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -