📄 ds1302_mega16.s
字号:
.dbline -1
.dbline 156
; }
; /******************************************/
; void Write(uint8_t RAM_CLOCK, uint8_t Address, uint8_t Dat)
; {
.dbline 157
; uint8_t i,j,temp=0x80;
ldi R20,128
.dbline 158
; temp &=~ 0x01;
andi R20,254
.dbline 159
; if(RAM_CLOCK == 1)
cpi R16,1
brne L118
X23:
.dbline 160
; {
.dbline 161
; temp |= (1<<6);
ori R20,64
.dbline 162
; }
xjmp L119
L118:
.dbline 164
; else
; {
.dbline 165
; temp &=~(1<<6);
andi R20,191
.dbline 166
; }
L119:
.dbline 167
; Address <<= 1;
lsl R18
.dbline 168
; temp |= Address;
or R20,R18
.dbline 169
; SET_RST();
.dbline 169
sbi 0x12,5
.dbline 169
.dbline 169
.dbline 170
; NOP();
nop
.dbline 171
; for(j=0; j<2; j++)
clr R22
xjmp L123
L120:
.dbline 172
; {
.dbline 173
; for(i=0; i<8; i++)
clr R10
xjmp L127
L124:
.dbline 174
; {
.dbline 175
; if((temp & 0x01) == 0)
sbrc R20,0
rjmp L128
X24:
.dbline 176
; {
.dbline 177
; CLR_IO();
.dbline 177
cbi 0x12,4
.dbline 177
.dbline 177
.dbline 178
; }
xjmp L129
L128:
.dbline 180
; else
; {
.dbline 181
; SET_IO();
.dbline 181
sbi 0x12,4
.dbline 181
.dbline 181
.dbline 182
; }
L129:
.dbline 183
; NOP();
nop
.dbline 184
; SET_SCLK();
.dbline 184
sbi 0x12,3
.dbline 184
.dbline 184
.dbline 185
; NOP();
nop
.dbline 186
; NOP();
nop
.dbline 187
; CLR_SCLK();
.dbline 187
cbi 0x12,3
.dbline 187
.dbline 187
.dbline 188
; NOP();
nop
.dbline 189
; CLR_IO();
.dbline 189
cbi 0x12,4
.dbline 189
.dbline 189
.dbline 190
; temp >>= 1;
lsr R20
.dbline 191
; }
L125:
.dbline 173
inc R10
L127:
.dbline 173
mov R24,R10
cpi R24,8
brlo L124
X25:
.dbline 192
; temp = Dat;
ldd R20,y+6
.dbline 193
; }
L121:
.dbline 171
inc R22
L123:
.dbline 171
cpi R22,2
brlo L120
X26:
.dbline 194
; CLR_IO();
.dbline 194
cbi 0x12,4
.dbline 194
.dbline 194
.dbline 195
; NOP();
nop
.dbline 196
; CLR_RST();
.dbline 196
cbi 0x12,5
.dbline 196
.dbline 196
.dbline -2
L117:
.dbline 0 ; func end
xjmp pop_xgsetF00C
.dbsym r j 22 c
.dbsym r i 10 c
.dbsym r temp 20 c
.dbsym l Dat 6 c
.dbsym r Address 18 c
.dbsym r RAM_CLOCK 16 c
.dbend
.dbfunc e Read_DS1302 _Read_DS1302 fc
; temp -> R20
; i -> R22
; Address -> R18
; RAM_CLOCK -> R16
.even
_Read_DS1302::
st -y,R20
st -y,R22
.dbline -1
.dbline 200
; }
; /******************************************/
; unsigned char Read_DS1302(uint8_t RAM_CLOCK, uint8_t Address)
; {
.dbline 201
; uint8_t i,temp=0x80;
ldi R20,128
.dbline 202
; temp |= 0x01;
ori R20,1
.dbline 203
; if(RAM_CLOCK == 1)
cpi R16,1
brne L131
X27:
.dbline 204
; {
.dbline 205
; temp |= (1<<6);
ori R20,64
.dbline 206
; }
xjmp L132
L131:
.dbline 208
; else
; {
.dbline 209
; temp &=~(1<<6);
andi R20,191
.dbline 210
; }
L132:
.dbline 211
; Address <<= 1;
lsl R18
.dbline 212
; temp |= Address;
or R20,R18
.dbline 213
; SET_RST();
.dbline 213
sbi 0x12,5
.dbline 213
.dbline 213
.dbline 214
; NOP();
nop
.dbline 215
; for(i=0; i<7; i++)
clr R22
xjmp L136
L133:
.dbline 216
; {
.dbline 217
; if((temp & 0x01) == 0)
sbrc R20,0
rjmp L137
X28:
.dbline 218
; {
.dbline 219
; CLR_IO();
.dbline 219
cbi 0x12,4
.dbline 219
.dbline 219
.dbline 220
; }
xjmp L138
L137:
.dbline 222
; else
; {
.dbline 223
; SET_IO();
.dbline 223
sbi 0x12,4
.dbline 223
.dbline 223
.dbline 224
; }
L138:
.dbline 225
; NOP();
nop
.dbline 226
; SET_SCLK();
.dbline 226
sbi 0x12,3
.dbline 226
.dbline 226
.dbline 227
; NOP();
nop
.dbline 228
; NOP();
nop
.dbline 229
; CLR_SCLK();
.dbline 229
cbi 0x12,3
.dbline 229
.dbline 229
.dbline 230
; NOP();
nop
.dbline 231
; CLR_IO();
.dbline 231
cbi 0x12,4
.dbline 231
.dbline 231
.dbline 232
; temp >>= 1;
lsr R20
.dbline 233
; }
L134:
.dbline 215
inc R22
L136:
.dbline 215
cpi R22,7
brlo L133
X29:
.dbline 234
; SET_IO();
.dbline 234
sbi 0x12,4
.dbline 234
.dbline 234
.dbline 235
; NOP();
nop
.dbline 236
; SET_SCLK();
.dbline 236
sbi 0x12,3
.dbline 236
.dbline 236
.dbline 237
; SET_IO_INPUT();
.dbline 237
cbi 0x11,4
.dbline 237
.dbline 237
.dbline 238
; NOP();
nop
.dbline 239
; for(i=0; i<8; i++)
clr R22
xjmp L142
L139:
.dbline 240
; {
.dbline 241
; CLR_SCLK();
.dbline 241
cbi 0x12,3
.dbline 241
.dbline 241
.dbline 242
; NOP();
nop
.dbline 243
; if((IO_PIN & IO) == 0)
sbic 0x10,4
rjmp L143
X30:
.dbline 244
; {
.dbline 245
; temp &= ~0x80;
andi R20,127
.dbline 246
; }
xjmp L144
L143:
.dbline 248
; else
; {
.dbline 249
; temp |= 0x80;
ori R20,128
.dbline 250
; }
L144:
.dbline 252
; //temp >>=1;
; if(i<7)
cpi R22,7
brsh L145
X31:
.dbline 253
; {
.dbline 254
; SET_SCLK();
.dbline 254
sbi 0x12,3
.dbline 254
.dbline 254
.dbline 255
; temp >>=1;
lsr R20
.dbline 256
; }
xjmp L146
L145:
.dbline 258
; else
; {
.dbline 259
; CLR_SCLK();
.dbline 259
cbi 0x12,3
.dbline 259
.dbline 259
.dbline 260
; }
L146:
.dbline 261
; NOP();
nop
.dbline 262
; NOP();
nop
.dbline 263
; }
L140:
.dbline 239
inc R22
L142:
.dbline 239
cpi R22,8
brlo L139
X32:
.dbline 264
; CLR_IO();
.dbline 264
cbi 0x12,4
.dbline 264
.dbline 264
.dbline 265
; NOP();
nop
.dbline 266
; CLR_RST();
.dbline 266
cbi 0x12,5
.dbline 266
.dbline 266
.dbline 267
; return (temp);
mov R16,R20
.dbline -2
L130:
.dbline 0 ; func end
ld R22,y+
ld R20,y+
ret
.dbsym r temp 20 c
.dbsym r i 22 c
.dbsym r Address 18 c
.dbsym r RAM_CLOCK 16 c
.dbend
.dbfunc e DS18B20 _DS18B20 fV
; i -> R10
; Tl -> R12
; Th -> R10
.even
_DS18B20::
st -y,R10
st -y,R12
.dbline -1
.dbline 271
; }
; /******************************************/
; void DS18B20(void)
; {
.dbline 273
; uint8_t Th, Tl, i;
; i=Init_18b20();
xcall _Init_18b20
.dbline 274
; Write_1_byte(0xcc);
ldi R16,204
xcall _Write_1_byte
.dbline 275
; Write_1_byte(0x44);
ldi R16,68
xcall _Write_1_byte
.dbline 276
; Delay_nms(100);
ldi R16,100
ldi R17,0
xcall _Delay_nms
.dbline 277
; i=Init_18b20();
xcall _Init_18b20
.dbline 278
; Write_1_byte(0xcc);
ldi R16,204
xcall _Write_1_byte
.dbline 279
; Write_1_byte(0xbe);
ldi R16,190
xcall _Write_1_byte
.dbline 280
; Tl=Read_1_byte();
xcall _Read_1_byte
mov R10,R16
mov R12,R10
.dbline 281
; Th=Read_1_byte();
xcall _Read_1_byte
mov R10,R16
.dbline 282
; Temperature(Th,Tl);
mov R18,R12
xcall _Temperature
.dbline 284
; //Temperature(12,45);
; Delay_nms(100);
ldi R16,100
ldi R17,0
xcall _Delay_nms
.dbline -2
L147:
.dbline 0 ; func end
ld R12,y+
ld R10,y+
ret
.dbsym r i 10 c
.dbsym r Tl 12 c
.dbsym r Th 10 c
.dbend
.area bss(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\DS1302_Mega16.c
_g_second::
.blkb 1
.dbsym e g_second _g_second c
_g_mintue::
.blkb 1
.dbsym e g_mintue _g_mintue c
_g_hour::
.blkb 1
.dbsym e g_hour _g_hour c
_g_day::
.blkb 1
.dbsym e g_day _g_day c
_g_date::
.blkb 1
.dbsym e g_date _g_date c
_g_month::
.blkb 1
.dbsym e g_month _g_month c
_g_year::
.blkb 1
.dbsym e g_year _g_year c
_data_temp::
.blkb 1
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
.dbsym e data_temp _data_temp c
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L113:
.blkb 5
.area idata
.byte 58,32,32,58,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L112:
.blkb 9
.area idata
.byte 50,48,32,32,46,32,32,46,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L68:
.blkb 4
.area idata
.byte 46,57,51,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L66:
.blkb 4
.area idata
.byte 46,56,55,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L64:
.blkb 4
.area idata
.byte 46,56,49,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L62:
.blkb 4
.area idata
.byte 46,55,53,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L60:
.blkb 4
.area idata
.byte 46,54,56,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L58:
.blkb 4
.area idata
.byte 46,54,49,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L56:
.blkb 4
.area idata
.byte 46,53,54,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L54:
.blkb 4
.area idata
.byte 46,53,48,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L52:
.blkb 4
.area idata
.byte 46,52,51,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L50:
.blkb 4
.area idata
.byte 46,51,55,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L48:
.blkb 4
.area idata
.byte 46,51,49,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L46:
.blkb 4
.area idata
.byte 46,50,53,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L44:
.blkb 4
.area idata
.byte 46,49,56,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L42:
.blkb 4
.area idata
.byte 46,49,50,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L40:
.blkb 4
.area idata
.byte 46,48,54,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
L38:
.blkb 4
.area idata
.byte 46,48,48,0
.area data(ram, con, rel)
.dbfile E:\MyDesign\ICCAVR\ATmega16_DEV\DS1302\LCD_1602_4wires.h
; }
; /*****************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -