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

📄 sfrrdwr.a51

📁 msc1201 编程4
💻 A51
字号:
$NOMOD51
$include (reg1210.inc)
PUBLIC	_sfr_rd, _sfr_wr, _code_read, deltasigma
EXTRN code (_tx_byte, _tx_hex)

SfrRdWr SEGMENT  CODE
	RSEG  	SfrRdWr
dir_sfr_uam	EQU	87FDh
_code_read:
	clr	a
	mov	dph,r6
	mov	dpl,r7
	movc	a,@a+dptr
	mov	r7,a
	ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; char sfr_rd(char)
; sfr read: R7 sfr addr, return R7 sfr data
; Building sfr rd in Dmmap address:
; 	10101rrr-dir 	mov R7,dir	
; 	00100010	ret
; where rrr is R7 (op=af), dir is @R7!!
; then call dir_sfr
_sfr_rd:
	mov	a,#0afh		;opcode: mov R7,dir
	sjmp	sfr_rdwr
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; void sfr_wr(char,char)
; sfr write: R7 sfr addr, R5 sfr data
; Building sfr wr code in Dmmap address:
; 	10001rrr-dir 	mov dir,R5
;  	00100010	ret
; where rrr is R5 (op=8d), dir is @R7!!
; then call dir_sfr
_sfr_wr:
	mov	a,#8dh		;opcode: mov dir,r5
sfr_rdwr:
	push	acc
	orl	mcon, #1	; enable dmmap
	mov	dptr,#dir_sfr_uam
	pop	acc
	movx	@dptr, a
	inc	dptr
	mov	a,r7		;sfr address
	movx	@dptr,a	
	inc	dptr
	mov	a,#22H		;opcode: ret
	movx	@dptr,a	
	lcall	dir_sfr_uam
sfr_rdwr_cnxt:
	anl	mcon,#0feh;
	ret
;;;;;;;;;;;;;;;;;;;;;
; signed long deltasigma(void)
; return the 3 byte adres to R4567 (MSB~LSB)
; return signed long int with sign-extend R4 for bipolar
;        and stuff 0 on R4 for unipolar
deltasigma:
	mov	r4,#0
	mov	r5,adresh
	mov	r6,adresm
	mov	r7,adresl
	ret	
	end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -