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

📄 ac15-2.s

📁 AVR学习资料
💻 S
📖 第 1 页 / 共 3 页
字号:
	.dbline 175
	.dbline 176
; SCL_1;Some_NOP();
	sbi 0x15,0
	.dbline 176
	.dbline 176
	nop
	.dbline 176
	nop
	.dbline 176
	nop
	.dbline 176
	nop
	.dbline 176
	nop
	.dbline 176
	nop
	.dbline 176
	nop
	.dbline 176
	nop
	.dbline 176
	.dbline 177
; SDA_0;Some_NOP();
	cbi 0x15,1
	.dbline 177
	.dbline 177
	nop
	.dbline 177
	nop
	.dbline 177
	nop
	.dbline 177
	nop
	.dbline 177
	nop
	.dbline 177
	nop
	.dbline 177
	nop
	.dbline 177
	nop
	.dbline 177
	.dbline 178
; SCL_0;Some_NOP();
	cbi 0x15,0
	.dbline 178
	.dbline 178
	nop
	.dbline 178
	nop
	.dbline 178
	nop
	.dbline 178
	nop
	.dbline 178
	nop
	.dbline 178
	nop
	.dbline 178
	nop
	.dbline 178
	nop
	.dbline 178
	.dbline -2
L44:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e stop _stop fV
	.even
_stop::
	.dbline -1
	.dbline 182
; }					
; //********************停止操作子函数*********************
; void stop(void)			
; {	DDRC=0x03;			
	.dbline 182
	ldi R24,3
	out 0x14,R24
	.dbline 183
; SDA_0;Some_NOP();
	cbi 0x15,1
	.dbline 183
	.dbline 183
	nop
	.dbline 183
	nop
	.dbline 183
	nop
	.dbline 183
	nop
	.dbline 183
	nop
	.dbline 183
	nop
	.dbline 183
	nop
	.dbline 183
	nop
	.dbline 183
	.dbline 184
; SCL_1;Some_NOP();
	sbi 0x15,0
	.dbline 184
	.dbline 184
	nop
	.dbline 184
	nop
	.dbline 184
	nop
	.dbline 184
	nop
	.dbline 184
	nop
	.dbline 184
	nop
	.dbline 184
	nop
	.dbline 184
	nop
	.dbline 184
	.dbline 185
; SDA_1;Some_NOP();
	sbi 0x15,1
	.dbline 185
	.dbline 185
	nop
	.dbline 185
	nop
	.dbline 185
	nop
	.dbline 185
	nop
	.dbline 185
	nop
	.dbline 185
	nop
	.dbline 185
	nop
	.dbline 185
	nop
	.dbline 185
	.dbline -2
L45:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e ack _ack fV
	.even
_ack::
	.dbline -1
	.dbline 189
; }				
; //************应答子函数*************
; void ack(void)			
; {	DDRC=0x03;				
	.dbline 189
	ldi R24,3
	out 0x14,R24
	.dbline 190
; SCL_1;Some_NOP();
	sbi 0x15,0
	.dbline 190
	.dbline 190
	nop
	.dbline 190
	nop
	.dbline 190
	nop
	.dbline 190
	nop
	.dbline 190
	nop
	.dbline 190
	nop
	.dbline 190
	nop
	.dbline 190
	nop
	.dbline 190
	.dbline 191
; SCL_0;Some_NOP();
	cbi 0x15,0
	.dbline 191
	.dbline 191
	nop
	.dbline 191
	nop
	.dbline 191
	nop
	.dbline 191
	nop
	.dbline 191
	nop
	.dbline 191
	nop
	.dbline 191
	nop
	.dbline 191
	nop
	.dbline 191
	.dbline -2
L46:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e shift8 _shift8 fV
;              j -> R20
;              i -> R22
;              a -> R16
	.even
_shift8::
	xcall push_gset2
	.dbline -1
	.dbline 195
; }					
; //*************写入8位子函数*************
; void shift8(char a)		
; {					
	.dbline 197
; uchar i,j;			
; DDRC=0x03;
	ldi R24,3
	out 0x14,R24
	.dbline 198
; com_data=a;			
	sts _com_data,R16
	.dbline 199
; for(i=0;i<8;i++)	
	clr R22
	xjmp L51
L48:
	.dbline 200
; {	
	.dbline 201
; j=com_data&0x80;
	lds R20,_com_data
	andi R20,128
	.dbline 202
; if(j==0)SDA_0;
	brne L52
	.dbline 202
	cbi 0x15,1
	xjmp L53
L52:
	.dbline 203
; else SDA_1;
	sbi 0x15,1
L53:
	.dbline 205
	sbi 0x15,0
	.dbline 205
	.dbline 205
	nop
	.dbline 205
	nop
	.dbline 205
	nop
	.dbline 205
	nop
	.dbline 205
	nop
	.dbline 205
	nop
	.dbline 205
	nop
	.dbline 205
	nop
	.dbline 205
	.dbline 206
	cbi 0x15,0
	.dbline 206
	.dbline 206
	nop
	.dbline 206
	nop
	.dbline 206
	nop
	.dbline 206
	nop
	.dbline 206
	nop
	.dbline 206
	nop
	.dbline 206
	nop
	.dbline 206
	nop
	.dbline 206
	.dbline 207
	lds R2,_com_data
	lsl R2
	sts _com_data,R2
	.dbline 208
L49:
	.dbline 199
	inc R22
L51:
	.dbline 199
	cpi R22,8
	brlo L48
	.dbline -2
L47:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r j 20 c
	.dbsym r i 22 c
	.dbsym r a 16 c
	.dbend
	.dbfunc e rd_24c01 _rd_24c01 fc
;        command -> R20
;              i -> R20
;              a -> R22
	.even
_rd_24c01::
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 212
; 
; SCL_1;Some_NOP();
; SCL_0;Some_NOP();
; com_data=com_data<<1;		
; }					
; }					
; //**************读24C01A中a地址单元的数据************
; uchar rd_24c01(char a)		
; {					
	.dbline 214
; uchar i,command;		
; DDRC=0x03;
	ldi R24,3
	out 0x14,R24
	.dbline 215
; SDA_1;Some_NOP();
	sbi 0x15,1
	.dbline 215
	.dbline 215
	nop
	.dbline 215
	nop
	.dbline 215
	nop
	.dbline 215
	nop
	.dbline 215
	nop
	.dbline 215
	nop
	.dbline 215
	nop
	.dbline 215
	nop
	.dbline 215
	.dbline 216
; SCL_0;Some_NOP();
	cbi 0x15,0
	.dbline 216
	.dbline 216
	nop
	.dbline 216
	nop
	.dbline 216
	nop
	.dbline 216
	nop
	.dbline 216
	nop
	.dbline 216
	nop
	.dbline 216
	nop
	.dbline 216
	nop
	.dbline 216
	.dbline 217
; start();				
	xcall _start
	.dbline 218
; command=160;			
	ldi R20,160
	.dbline 219
; shift8(command);		
	mov R16,R20
	xcall _shift8
	.dbline 220
; ack();				
	xcall _ack
	.dbline 221
; shift8(a);			
	mov R16,R22
	xcall _shift8
	.dbline 222
; ack();				
	xcall _ack
	.dbline 223
; start();				
	xcall _start
	.dbline 224
; command=161;			
	ldi R20,161
	.dbline 225
; shift8(command);		
	mov R16,R20
	xcall _shift8
	.dbline 226
; ack();				
	xcall _ack
	.dbline 228
; 
; SDA_1;Some_NOP();	
	sbi 0x15,1
	.dbline 228
	.dbline 228
	nop
	.dbline 228
	nop
	.dbline 228
	nop
	.dbline 228
	nop
	.dbline 228
	nop
	.dbline 228
	nop
	.dbline 228
	nop
	.dbline 228
	nop
	.dbline 228
	.dbline 229
; for(i=0;i<8;i++)			
	clr R20
	xjmp L58
L55:
	.dbline 230
; {
	.dbline 231
; DDRC=0x01;				
	ldi R24,1
	out 0x14,R24
	.dbline 232
; com_data=com_data<<1;		
	lds R2,_com_data
	lsl R2
	sts _com_data,R2
	.dbline 233
; SCL_1;Some_NOP();	
	sbi 0x15,0
	.dbline 233
	.dbline 233
	nop
	.dbline 233
	nop
	.dbline 233
	nop
	.dbline 233
	nop
	.dbline 233
	nop
	.dbline 233
	nop
	.dbline 233
	nop
	.dbline 233
	nop
	.dbline 233
	.dbline 234
; if(PIN_SDA==0)com_data&=0xfe;
	sbic 0x13,1
	rjmp L59
	.dbline 234
	mov R24,R2
	andi R24,254
	sts _com_data,R24
	xjmp L60
L59:
	.dbline 235
; else com_data|=0x01;
	lds R24,_com_data
	ori R24,1
	sts _com_data,R24
L60:
	.dbline 236
	cbi 0x15,0
	.dbline 236
	.dbline 236
	nop
	.dbline 236
	nop
	.dbline 236
	nop
	.dbline 236
	nop
	.dbline 236
	nop
	.dbline 236
	nop
	.dbline 236
	nop
	.dbline 236
	nop
	.dbline 236
	.dbline 237
L56:
	.dbline 229
	inc R20
L58:
	.dbline 229
	cpi R20,8
	brlo L55
	.dbline 238
; SCL_0;Some_NOP();
; }					
; stop();				
	xcall _stop
	.dbline 239
; return(com_data);	
	lds R16,_com_data
	.dbline -2
L54:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r command 20 c
	.dbsym r i 20 c
	.dbsym r a 22 c
	.dbend
	.dbfunc e wr_24c01 _wr_24c01 fV
;        command -> R10
;              b -> R20
;              a -> R22
	.even
_wr_24c01::
	xcall push_gset3
	mov R20,R18
	mov R22,R16
	.dbline -1
	.dbline 243
; }					
; //********将RAM中b地址单元的数据写入24C01A中a地址单元中***********
; void wr_24c01(char a,char b)	
; {					
	.dbline 245
; uchar command;		
; DDRC=0x03;
	ldi R24,3
	out 0x14,R24
	.dbline 246
; SDA_1;Some_NOP();
	sbi 0x15,1
	.dbline 246
	.dbline 246
	nop
	.dbline 246
	nop
	.dbline 246
	nop
	.dbline 246
	nop
	.dbline 246
	nop
	.dbline 246
	nop
	.dbline 246
	nop
	.dbline 246
	nop
	.dbline 246
	.dbline 247
; SCL_0;Some_NOP();
	cbi 0x15,0
	.dbline 247
	.dbline 247
	nop
	.dbline 247
	nop
	.dbline 247
	nop
	.dbline 247
	nop
	.dbline 247
	nop
	.dbline 247
	nop
	.dbline 247
	nop
	.dbline 247
	nop
	.dbline 247
	.dbline 248
; start();				
	xcall _start
	.dbline 249
; command=160;			
	ldi R24,160
	mov R10,R24
	.dbline 250
; shift8(command);		
	mov R16,R24
	xcall _shift8
	.dbline 251
; ack();				
	xcall _ack
	.dbline 252
; shift8(a);				
	mov R16,R22
	xcall _shift8
	.dbline 253
; ack();				
	xcall _ack
	.dbline 254
; shift8(b);				
	mov R16,R20
	xcall _shift8
	.dbline 255
; ack();				
	xcall _ack
	.dbline 256
; stop();				
	xcall _stop
	.dbline 257
; Some_NOP();
	.dbline 257
	nop
	.dbline 257
	nop
	.dbline 257
	nop
	.dbline 257
	nop
	.dbline 257
	nop
	.dbline 257
	nop
	.dbline 257
	nop
	.dbline 257
	nop
	.dbline 257
	.dbline -2
L61:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r command 10 c
	.dbsym r b 20 c
	.dbsym r a 22 c
	.dbend
	.dbfunc e delay_iic _delay_iic fV
;              i -> R20,R21
;              n -> R16,R17
	.even
_delay_iic::
	xcall push_gset1
	.dbline -1
	.dbline 261
; }					
; //**************延时子函数***********
; void delay_iic(int n)		
; {					
	.dbline 263
	ldi R20,1
	ldi R21,0
	xjmp L66
L63:
	.dbline 263
	.dbline 263
	.dbline 263
L64:
	.dbline 263
	subi R20,255  ; offset = 1
	sbci R21,255
L66:
	.dbline 263
; int i;				
; for(i=1;i<n;i++){;}		
	cp R20,R16
	cpc R21,R17
	brlt L63
	.dbline -2
L62:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbsym r n 16 I
	.dbend
	.dbfunc e timer1_init _timer1_init fV
	.even
_timer1_init::
	.dbline -1
	.dbline 268
; }					
; 
; /**************定时器1初始化****************/
; void timer1_init(void)

⌨️ 快捷键说明

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