📄 ac15-2.s
字号:
.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 + -