⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init4136.asm

📁 单片机C源程序souce
💻 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 + -