📄 18b20.txt
字号:
;;;274 read_bytes (9);
000218 e3a00009 MOV r0,#9
00021c ebfffffe BL read_bytes
;;;275 if (CRC(9)==0) //校验正确
000220 e3a00009 MOV r0,#9
000224 ebfffffe BL ||CRC||
000228 e3500000 CMP r0,#0
00022c 1a000010 BNE |L1.628|
;;;276 {
;;;277 Temperature = temp_buff[1]*0x100 + temp_buff[0];
000230 e59f019c LDR r0,|L1.980|
000234 e5d00000 LDRB r0,[r0,#0] ; temp_buff
000238 e59f1194 LDR r1,|L1.980|
00023c e5d11001 LDRB r1,[r1,#1] ; temp_buff
000240 e0800401 ADD r0,r0,r1,LSL #8
000244 e59f1190 LDR r1,|L1.988|
000248 e5810000 STR r0,[r1,#0] ; Temperature
;;;278 // Temperature *= 0.625;
;;;279 Temperature /= 16;
00024c e2810000 ADD r0,r1,#0
000250 e5900000 LDR r0,[r0,#0] ; Temperature
000254 e1a00220 LSR r0,r0,#4
000258 e5810000 STR r0,[r1,#0] ; Temperature
;;;280 uart_printf(" %0.4fmmmm",Temperature);
00025c e2810000 ADD r0,r1,#0
000260 e5901000 LDR r1,[r0,#0] ; Temperature
000264 e28f0f5d ADR r0,|L1.992|
000268 ebfffffe BL uart_printf
;;;281 TempDelay(1);
00026c e3a00001 MOV r0,#1
000270 ebfffffe BL TempDelay
|L1.628|
;;;282 }
;;;283 }
000274 e8bd4010 POP {r4,lr}
000278 e12fff1e BX lr
;;;284
ENDP
Config18b20 PROC
;;;298
;;;299 {
00027c e52de004 PUSH {lr}
;;;300
;;;301 Init18b20();
000280 ebfffffe BL Init18b20
;;;302 WriteByte(0xcc); //skip rom
000284 e3a000cc MOV r0,#0xcc
000288 ebfffffe BL WriteByte
;;;303 WriteByte(0x4e); //write scratchpad
00028c e3a0004e MOV r0,#0x4e
000290 ebfffffe BL WriteByte
;;;304 WriteByte(0x19); //上限
000294 e3a00019 MOV r0,#0x19
000298 ebfffffe BL WriteByte
;;;305 WriteByte(0x1a); //下限
00029c e3a0001a MOV r0,#0x1a
0002a0 ebfffffe BL WriteByte
;;;306 WriteByte(0x7f); //set 11 bit (0.125)
0002a4 e3a0007f MOV r0,#0x7f
0002a8 ebfffffe BL WriteByte
;;;307 Init18b20();
0002ac ebfffffe BL Init18b20
;;;308 WriteByte(0xcc); //skip rom
0002b0 e3a000cc MOV r0,#0xcc
0002b4 ebfffffe BL WriteByte
;;;309 WriteByte(0x48); //保存设定值
0002b8 e3a00048 MOV r0,#0x48
0002bc ebfffffe BL WriteByte
;;;310 Init18b20();
0002c0 ebfffffe BL Init18b20
;;;311 WriteByte(0xcc); //skip rom
0002c4 e3a000cc MOV r0,#0xcc
0002c8 ebfffffe BL WriteByte
;;;312 WriteByte(0xb8); //回调设定值
0002cc e3a000b8 MOV r0,#0xb8
0002d0 ebfffffe BL WriteByte
;;;313 }
0002d4 e49de004 POP {lr}
0002d8 e12fff1e BX lr
;;;314
ENDP
ReadID PROC
;;;327 void ReadID (void)//读取器件 id
;;;328 {
0002dc e92d4010 PUSH {r4,lr}
;;;329
;;;330 Init18b20();
0002e0 ebfffffe BL Init18b20
;;;331 WriteByte(0x33); //read rom
0002e4 e3a00033 MOV r0,#0x33
0002e8 ebfffffe BL WriteByte
;;;332 read_bytes(8);
0002ec e3a00008 MOV r0,#8
0002f0 ebfffffe BL read_bytes
;;;333 uart_printf(" %0.4fmmmm",*p);
0002f4 e59f00d4 LDR r0,|L1.976|
0002f8 e5900000 LDR r0,[r0,#0] ; p
0002fc e5d01000 LDRB r1,[r0,#0]
000300 e28f00d8 ADR r0,|L1.992|
000304 ebfffffe BL uart_printf
;;;334 }
000308 e8bd4010 POP {r4,lr}
00030c e12fff1e BX lr
;;;335
ENDP
TemperatuerResult PROC
;;;348 void TemperatuerResult(void)
;;;349 {
000310 e92d4010 PUSH {r4,lr}
;;;350 rGPECON = (rGPECON & 0xf3ff) | 0x0800; //set GE11
000314 e3a00456 MOV r0,#0x56000000
000318 e5900040 LDR r0,[r0,#0x40]
00031c e59f10c8 LDR r1,|L1.1004|
000320 e0000001 AND r0,r0,r1
000324 e3800b02 ORR r0,r0,#0x800
000328 e3a01456 MOV r1,#0x56000000
00032c e5810040 STR r0,[r1,#0x40]
;;;351 rGPEUP = rGPEUP & 0xf7ff;
000330 e3a00456 MOV r0,#0x56000000
000334 e5900048 LDR r0,[r0,#0x48]
000338 e59f1088 LDR r1,|L1.968|
00033c e0000001 AND r0,r0,r1
000340 e3a01456 MOV r1,#0x56000000
000344 e5810048 STR r0,[r1,#0x48]
;;;352
;;;353
;;;354 p = id_buff;
000348 e59f00a0 LDR r0,|L1.1008|
00034c e59f107c LDR r1,|L1.976|
000350 e5810000 STR r0,[r1,#0] ; p
;;;355 ReadID();
000354 ebfffffe BL ReadID
;;;356 Config18b20();
000358 ebfffffe BL Config18b20
;;;357 Init18b20 ();
00035c ebfffffe BL Init18b20
;;;358 WriteByte(0xcc); //skip rom
000360 e3a000cc MOV r0,#0xcc
000364 ebfffffe BL WriteByte
;;;359 WriteByte(0x44); //Temperature convert
000368 e3a00044 MOV r0,#0x44
00036c ebfffffe BL WriteByte
;;;360 Init18b20 ();
000370 ebfffffe BL Init18b20
;;;361 WriteByte(0xcc); //skip rom
000374 e3a000cc MOV r0,#0xcc
000378 ebfffffe BL WriteByte
;;;362 WriteByte(0xbe); //read Temperature
00037c e3a000be MOV r0,#0xbe
000380 ebfffffe BL WriteByte
;;;363 p = temp_buff;
000384 e59f0048 LDR r0,|L1.980|
000388 e59f1040 LDR r1,|L1.976|
00038c e5810000 STR r0,[r1,#0] ; p
;;;364 GemTemp();
000390 ebfffffe BL GemTemp
;;;365
;;;366 }
000394 e8bd4010 POP {r4,lr}
000398 e12fff1e BX lr
;;;367
ENDP
delay_us PROC
;;;370 unsigned char i;
;;;371 for(;n>0;n--)
00039c ea000006 B |L1.956|
|L1.928|
;;;372 {
;;;373 for(i=0;i<10;i++)
0003a0 e3a01000 MOV r1,#0
0003a4 ea000001 B |L1.944|
|L1.936|
0003a8 e2812001 ADD r2,r1,#1
0003ac e20210ff AND r1,r2,#0xff
|L1.944|
0003b0 e351000a CMP r1,#0xa
0003b4 bafffffb BLT |L1.936|
0003b8 e2400001 SUB r0,r0,#1 ;371
|L1.956|
0003bc e3500000 CMP r0,#0 ;371
0003c0 cafffff6 BGT |L1.928|
;;;374 {;}
;;;375 }
;;;376 }
0003c4 e12fff1e BX lr
ENDP
|L1.968|
0003c8 0000f7ff DCD 0x0000f7ff
|L1.972|
0003cc 00000000 DCD flag
|L1.976|
0003d0 00000000 DCD p
|L1.980|
0003d4 00000000 DCD temp_buff
|L1.984|
0003d8 00000000 DCD CrcTable
|L1.988|
0003dc 00000000 DCD Temperature
|L1.992|
0003e0 2025302e DCB " %0."
0003e4 34666d6d DCB "4fmm"
0003e8 6d6d0000 DCB "mm\0\0"
|L1.1004|
0003ec 0000f3ff DCD 0x0000f3ff
|L1.1008|
0003f0 00000000 DCD id_buff
AREA ||.data||, DATA, ALIGN=2
CrcTable
000000 005ebce2 DCB 0x00,0x5e,0xbc,0xe2
000004 613fdd83 DCB 0x61,0x3f,0xdd,0x83
000008 c29c7e20 DCB 0xc2,0x9c,0x7e,0x20
00000c a3fd1f41 DCB 0xa3,0xfd,0x1f,0x41
000010 9dc3217f DCB 0x9d,0xc3,0x21,0x7f
000014 fca2401e DCB 0xfc,0xa2,0x40,0x1e
000018 5f01e3bd DCB 0x5f,0x01,0xe3,0xbd
00001c 3e6082dc DCB 0x3e,0x60,0x82,0xdc
000020 237d9fc1 DCB 0x23,0x7d,0x9f,0xc1
000024 421cfea0 DCB 0x42,0x1c,0xfe,0xa0
000028 e1bf5d03 DCB 0xe1,0xbf,0x5d,0x03
00002c 80de3c62 DCB 0x80,0xde,0x3c,0x62
000030 bee0025c DCB 0xbe,0xe0,0x02,0x5c
000034 df81633d DCB 0xdf,0x81,0x63,0x3d
000038 7c22c09e DCB 0x7c,0x22,0xc0,0x9e
00003c 1d43a1ff DCB 0x1d,0x43,0xa1,0xff
000040 4618faa4 DCB 0x46,0x18,0xfa,0xa4
000044 27799bc5 DCB 0x27,0x79,0x9b,0xc5
000048 84da3866 DCB 0x84,0xda,0x38,0x66
00004c e5bb5907 DCB 0xe5,0xbb,0x59,0x07
000050 db856739 DCB 0xdb,0x85,0x67,0x39
000054 bae40658 DCB 0xba,0xe4,0x06,0x58
000058 1947a5fb DCB 0x19,0x47,0xa5,0xfb
00005c 7826c49a DCB 0x78,0x26,0xc4,0x9a
000060 653bd987 DCB 0x65,0x3b,0xd9,0x87
000064 045ab8e6 DCB 0x04,0x5a,0xb8,0xe6
000068 a7f91b45 DCB 0xa7,0xf9,0x1b,0x45
00006c c6987a24 DCB 0xc6,0x98,0x7a,0x24
000070 f8a6441a DCB 0xf8,0xa6,0x44,0x1a
000074 99c7257b DCB 0x99,0xc7,0x25,0x7b
000078 3a6486d8 DCB 0x3a,0x64,0x86,0xd8
00007c 5b05e7b9 DCB 0x5b,0x05,0xe7,0xb9
000080 8cd2306e DCB 0x8c,0xd2,0x30,0x6e
000084 edb3510f DCB 0xed,0xb3,0x51,0x0f
000088 4e10f2ac DCB 0x4e,0x10,0xf2,0xac
00008c 2f7193cd DCB 0x2f,0x71,0x93,0xcd
000090 114fadf3 DCB 0x11,0x4f,0xad,0xf3
000094 702ecc92 DCB 0x70,0x2e,0xcc,0x92
000098 d38d6f31 DCB 0xd3,0x8d,0x6f,0x31
00009c b2ec0e50 DCB 0xb2,0xec,0x0e,0x50
0000a0 aff1134d DCB 0xaf,0xf1,0x13,0x4d
0000a4 ce90722c DCB 0xce,0x90,0x72,0x2c
0000a8 6d33d18f DCB 0x6d,0x33,0xd1,0x8f
0000ac 0c52b0ee DCB 0x0c,0x52,0xb0,0xee
0000b0 326c8ed0 DCB 0x32,0x6c,0x8e,0xd0
0000b4 530defb1 DCB 0x53,0x0d,0xef,0xb1
0000b8 f0ae4c12 DCB 0xf0,0xae,0x4c,0x12
0000bc 91cf2d73 DCB 0x91,0xcf,0x2d,0x73
0000c0 ca947628 DCB 0xca,0x94,0x76,0x28
0000c4 abf51749 DCB 0xab,0xf5,0x17,0x49
0000c8 0856b4ea DCB 0x08,0x56,0xb4,0xea
0000cc 6937d58b DCB 0x69,0x37,0xd5,0x8b
0000d0 5709ebb5 DCB 0x57,0x09,0xeb,0xb5
0000d4 36688ad4 DCB 0x36,0x68,0x8a,0xd4
0000d8 95cb2977 DCB 0x95,0xcb,0x29,0x77
0000dc f4aa4816 DCB 0xf4,0xaa,0x48,0x16
0000e0 e9b7550b DCB 0xe9,0xb7,0x55,0x0b
0000e4 88d6346a DCB 0x88,0xd6,0x34,0x6a
0000e8 2b7597c9 DCB 0x2b,0x75,0x97,0xc9
0000ec 4a14f6a8 DCB 0x4a,0x14,0xf6,0xa8
0000f0 742ac896 DCB 0x74,0x2a,0xc8,0x96
0000f4 154ba9f7 DCB 0x15,0x4b,0xa9,0xf7
0000f8 b6e80a54 DCB 0xb6,0xe8,0x0a,0x54
0000fc d7896b35 DCB 0xd7,0x89,0x6b,0x35
flag
000100 00000000 DCD 0x00000000
Temperature
000104 00000000 DCD 0x00000000
id_buff
% 8
p
000110 00000000 DCD 0x00000000
crc_data
000114 00 DCB 0x00
AREA ||.bss||, DATA, NOINIT, ALIGN=0
temp_buff
% 9
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -