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

📄 eepromi2c.s

📁 SOSSE,最简单的实现smart卡的教学用程序 内有电路图
💻 S
字号:
#include <config.h>#if CONF_WITH_I2CEEPROM==1	.arch ARCHDDRB=0x17EE_SCL=1EE_SDA=0PINB=0x16PORTB=0x18	.text	.global xeread, xewrtXEAddr:	rcall  XEStrt	clc	ldi	   r19,0xA0	rcall  XEEOut	rcall  XE0Bit	mov	   r19,r31	rcall  XEEOut	rcall  XE0Bit	mov	   r19,r30	rcall  XEEOut	rcall  XE0Bit	ret; address r25:r24 ; result r25(=0):r24xeread:	push	r31	push	r30	push	r19	push	r18	push	r16	push	r1	push	r0	mov	r31,r25	mov	r30,r24; Start	rcall	xereadlocal; Done	clr	r25	mov	r24,r0	pop	r0	pop	r1	pop	r16	pop	r18	pop	r19	pop	r30	pop	r31	ret; address r31:r30 ; result r0 = XE(Z+)xereadlocal:	rcall	XEAddr	rcall	XEStrt	clc	ldi		r19,0xA1	rcall	XEEOut	rcall	XE0Bit	rcall	XEEIn	rcall	XE1Bit	rcall	XEStop	ret; address r25:r24 ; byte r23(=0):r22xewrt:	push	r31	push	r30	push	r19	push	r18	push	r16	push	r1	push	r0	mov	r31,r25	mov	r30,r24; Start; address r31:r30 ; result XE(Z+) = r22	rcall	xereadlocal	cp	r0,r22	breq	dontwrite	rcall	XEAddr	mov	r19,r22	rcall	XEEOut	rcall	XE0Bit	rcall	XEStop	rcall	XEDlydontwrite: ; Done	pop	r0	pop	r1	pop	r16	pop	r18	pop	r19	pop	r30	pop	r31	retXEDly:	ldi	  r25,0x20	mov	  r1,r25avr3B9:	ldi	  r25,0xFFavr3BA: 	dec	  r25	brne  avr3BA	dec	  r1	brne  avr3B9	retXEStrt: 	rcall	ClrPB0	rcall	SetPB2	rcall	SetPB0	rcall	ClrPB2	rcall	ClrPB0	retXEStop: 	rcall	ClrPB0	rcall	ClrPB2	rcall	SetPB0	rcall	SetPB2	rcall	ClrPB0	retXEEIn:	clr r0	ldi r16,0x08	rcall	SetPB2	rcall	PB2Inavr3CF: 	rcall SetPB0	sbic  PINB,EE_SDA	rjmp  avr3D5	clc	rol r0	rjmp	avr3D7avr3D5: sec	rol r0avr3D7: rcall	ClrPB0	dec r16	brne	avr3CF	rcall	PB2Out	retXEEOut: 	ldi	  r16,0x08	mov	  r0,r19avr3DE: 	clc	rol	  r0	brlo  avr3E4	rcall ClrPB2	rcall ClkPls	rjmp  avr3E6avr3E4: 	rcall SetPB2	rcall ClkPlsavr3E6: 	dec	  r16	brne  avr3DE	retXE1Bit: rcall	SetPB2	rcall	ClkPls	retXE0Bit: 	rcall	ClrPB2	rcall	ClkPls	retClkPls: 	rcall	SetPB0	rcall	ClrPB0	retSetPB2:	sbi	 PORTB,EE_SDA	rjmp PBExitClrPB2:	cbi	 PORTB,EE_SDA	rjmp PBExitSetPB0:	sbi	 PORTB,EE_SCL	rjmp PBExitClrPB0: 	cbi PORTB,EE_SCL	rjmp	PBExitPB2Out: 	sbi	 DDRB,EE_SDA	rjmp PBExitPB2In:	cbi	 DDRB,EE_SDA	rjmp PBExitPBExit:	nop	nop	nop	ret#endif /* CONF_WITH_I2CEEPROM==1 */

⌨️ 快捷键说明

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