📄 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 + -