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

📄 iic_master.s

📁 hao da jia lai fen xiang
💻 S
📖 第 1 页 / 共 2 页
字号:
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	nop
	.dbline 200
	.dbline 201
; 	IIC_delay();
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	nop
	.dbline 201
	.dbline 202
; 	IIC_SCL_L;
	cbi 0x15,0
	.dbline -2
L26:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e IIC_NO_ACK _IIC_NO_ACK fV
	.even
_IIC_NO_ACK::
	.dbline -1
	.dbline 214
; }
; 
; /*********************************************************************************************************
; ** 函数名称: IIC_NO_ACK
; ** 功能描述: 发送IIC无应答信号
; ** 输 入: 无
; ** 输 出: 无
; ** 全局变量: 无
; ** 调用模块: 无
; ********************************************************************************************************/
; void IIC_NO_ACK(void)
; {
	.dbline 215
; 	IIC_SDA_I;
	cbi 0x14,1
	.dbline 216
; 	IIC_SDA_H;
	sbi 0x15,1
	.dbline 217
; 	IIC_delay();
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	nop
	.dbline 217
	.dbline 218
; 	IIC_delay();
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	nop
	.dbline 218
	.dbline 219
; 	IIC_SCL_H;
	sbi 0x15,0
	.dbline 220
; 	IIC_delay();
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	nop
	.dbline 220
	.dbline 221
; 	IIC_delay();
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	nop
	.dbline 221
	.dbline 222
; 	IIC_delay();
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	nop
	.dbline 222
	.dbline 223
; 	IIC_delay();
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	nop
	.dbline 223
	.dbline 224
; 	IIC_SCL_L;
	cbi 0x15,0
	.dbline 225
; 	return;
	.dbline -2
L27:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e IICSend _IICSend fc
;           temp -> <dead>
;              i -> R20
;       IIC_data -> R16
	.even
_IICSend::
	xcall push_gset1
	.dbline -1
	.dbline 238
; }
; 
; /*********************************************************************************************************
; ** 函数名称: IICSend
; ** 功能描述: 发送一个字节
; ** 输 入: IIC_data:数据
; ** 输 出: TRUE:成功
; **         FALSE:失败
; ** 全局变量: 无
; ** 调用模块: 无
; ********************************************************************************************************/
; uchar IICSend(uchar IIC_data)
; {
	.dbline 242
; 	uchar i;
; 	uchar temp;
; 
; 	IIC_SDA_O;
	sbi 0x14,1
	.dbline 243
; 	for (i = 0; i < 8; i++)
	clr R20
	xjmp L32
L29:
	.dbline 244
; 	{
	.dbline 245
; 		if(IIC_data & 0x80)
	sbrs R16,7
	rjmp L33
	.dbline 246
; 		{
	.dbline 247
; 			IIC_SDA_H;
	sbi 0x15,1
	.dbline 248
; 		}else
	xjmp L34
L33:
	.dbline 249
; 		{
	.dbline 250
; 			IIC_SDA_L;
	cbi 0x15,1
	.dbline 251
; 		}
L34:
	.dbline 252
	sbi 0x15,0
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	nop
	.dbline 253
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	nop
	.dbline 254
	.dbline 255
	cbi 0x15,0
	.dbline 256
	lsl R16
	.dbline 257
L30:
	.dbline 243
	inc R20
L32:
	.dbline 243
	cpi R20,8
	brsh X0
	xjmp L29
X0:
	.dbline 258
; 		IIC_SCL_H;
; 		IIC_delay();
; 		IIC_delay();
; 		IIC_SCL_L;
; 		IIC_data <<= 1;
; 	}
; 	IIC_SDA_I;
	cbi 0x14,1
	.dbline 259
; 	IIC_SDA_H;
	sbi 0x15,1
	.dbline 260
; 	IIC_delay();
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	nop
	.dbline 260
	.dbline 261
; 	IIC_delay();
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	nop
	.dbline 261
	.dbline 262
; 	IIC_SCL_H;
	sbi 0x15,0
	.dbline 263
; 	IIC_delay();
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	nop
	.dbline 263
	.dbline 264
; 	IIC_delay();
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	nop
	.dbline 264
	.dbline 265
; 	if (IIC_DATA)
	sbis 0x13,1
	rjmp L35
	.dbline 266
; 	{
	.dbline 267
; 		IIC_SCL_L;
	cbi 0x15,0
	.dbline 268
; 		return FALSE;
	ldi R16,2
	xjmp L28
L35:
	.dbline 271
; 	}
; 	else
; 	{
	.dbline 272
; 		IIC_SCL_L;
	cbi 0x15,0
	.dbline 273
; 		return TRUE;
	ldi R16,1
	.dbline -2
L28:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym l temp 1 c
	.dbsym r i 20 c
	.dbsym r IIC_data 16 c
	.dbend
	.dbfunc e IICReceive _IICReceive fc
;              i -> R16
;              r -> R18
	.even
_IICReceive::
	.dbline -1
	.dbline 286
; 	}
; }
; 
; /*********************************************************************************************************
; ** 函数名称: IICReceive
; ** 功能描述: 读取一个字节
; ** 输 入: 无
; ** 输 出: 读取的字节
; ** 全局变量: 无
; ** 调用模块: 无
; ********************************************************************************************************/
; uchar IICReceive(void)
; {
	.dbline 289
; 	uchar i,r;
; 
; 	r = 0;
	clr R18
	.dbline 290
; 	IIC_SDA_I;
	cbi 0x14,1
	.dbline 291
; 	IIC_SDA_H;
	sbi 0x15,1
	.dbline 292
; 	for (i = 0; i < 8; i++)
	clr R16
	xjmp L41
L38:
	.dbline 293
; 	{
	.dbline 294
; 		r = r * 2;
	ldi R24,2
	mul R24,R18
	mov R18,R0
	.dbline 295
; 		IIC_SCL_H;
	sbi 0x15,0
	.dbline 296
; 		IIC_delay();
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	nop
	.dbline 296
	.dbline 297
; 		IIC_delay();
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	nop
	.dbline 297
	.dbline 298
; 		if (IIC_DATA)
	sbis 0x13,1
	rjmp L42
	.dbline 299
; 		{
	.dbline 300
; 			r++;
	inc R18
	.dbline 301
; 		}
L42:
	.dbline 302
	cbi 0x15,0
	.dbline 303
L39:
	.dbline 292
	inc R16
L41:
	.dbline 292
	cpi R16,8
	brsh X1
	xjmp L38
X1:
	.dbline 304
; 		IIC_SCL_L;
; 	}
; 	return r;
	mov R16,R18
	.dbline -2
L37:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbsym r r 18 c
	.dbend

⌨️ 快捷键说明

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