📄 18b20.lst
字号:
C51 COMPILER V7.09 18B20 09/17/2008 14:44:43 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE 18B20
OBJECT MODULE PLACED IN .\output\18b20.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1wire\18b20.c LARGE BROWSE INCDIR(audio\;eeprom\;extendUART\;flash\;gps\;in
-ter\;key\;mcu\;menu\;usb\;gprs\;main\;1wire\) DEBUG OBJECTEXTEND PRINT(.\output\18b20.lst) OBJECT(.\output\18b20.obj)
line level source
1 #include "1wire.h"
2 #include "18B20.h"
3 #include <stdio.h>
4 #include "16c554.h"
5 #include <string.h>
6
7 extern char debug_msg[1024];
8 void T18B20Debug(char* pVal)
9 {
10 1 /* if (1 == value)
11 1 {
12 1 sprintf(debug_msg, "有温度传感器");
13 1 siob_send(debug_msg, strlen(debug_msg));
14 1 }
15 1 else
16 1 {
17 1 sprintf(debug_msg, "无温度传感器");
18 1 siob_send(debug_msg, strlen(debug_msg));
19 1 }*/
20 1 sprintf(debug_msg, "%02bX:%02bX,%02bX:%02bX:%02bX:%02bX,%02bX:%02bX:%02bX,\r\n ", \
21 1 pVal[0], pVal[1], pVal[2], pVal[3], pVal[4], pVal[5], pVal[6], pVal[7], pVal[8]);
22 1 siob_send(debug_msg, strlen(debug_msg));
23 1 }
24
25 char ggggdebug[9];
26 long gTemperature;//值:实际温度*10000
27 unsigned char g18b20Point=0;
28 void T18B20process()
29 {
30 1 unsigned char i;
31 1 unsigned char val1, val2;
32 1 unsigned char crc;
33 1
34 1 /* i = wire1_reset();
35 1 // T18B20Debug(i);
36 1 wire1_writebyte(T18B20_READROM); //read rom
37 1 for (i=0; i<8; i++)
38 1 ggggdebug[i] = wire1_readbyte();
39 1 T18B20Debug(ggggdebug);*/
40 1
41 1 if (0 == g18b20Point)
42 1 {
43 2 g18b20Point = 1;
44 2 wire1_reset();
45 2 wire1_writebyte(T18B20_SKIPROM);
46 2 wire1_writebyte(T18B20_CONVERTT);
47 2 }
48 1 else
49 1 {
50 2 g18b20Point = 0;
51 2 wire1_reset();
52 2 wire1_writebyte(T18B20_SKIPROM);
53 2 wire1_writebyte(T18B20_READSCRATCHPAD);
54 2 for (i=0; i<9; i++)
C51 COMPILER V7.09 18B20 09/17/2008 14:44:43 PAGE 2
55 2 ggggdebug[i] = wire1_readbyte();
56 2 // T18B20Debug(ggggdebug);
57 2 }
58 1 /* i = wire1_reset();
59 1 if (1 == i)
60 1 {
61 1 //有温度传感器
62 1 wire1_writebyte(T18B20_SKIPROM);
63 1 wire1_writebyte(T18B20_CONVERTT);
64 1
65 1 wire1_reset();
66 1 wire1_writebyte(T18B20_SKIPROM);
67 1 wire1_writebyte(T18B20_READSCRATCHPAD);
68 1 val1 = wire1_readbyte();
69 1 val2 = wire1_readbyte();
70 1 for (i=0; i<7; i++)
71 1 crc = wire1_readbyte();
72 1
73 1 for (i=0; i<9; i++)
74 1 debug[i] = wire1_readbyte();
75 1 T18B20Debug(debug);
76 1 //chech crc
77 1 //compute temperature
78 1 gTemperature = ((val2&0x7)*256+val1)*625;
79 1 if (val2 > 0xf0)
80 1 gTemperature = -gTemperature;
81 1 }
82 1 else
83 1 {
84 1 //无温度传感器
85 1 }*/
86 1
87 1 }
*** WARNING C280 IN LINE 31 OF 1WIRE\18B20.C: 'val1': unreferenced local variable
*** WARNING C280 IN LINE 31 OF 1WIRE\18B20.C: 'val2': unreferenced local variable
*** WARNING C280 IN LINE 32 OF 1WIRE\18B20.C: 'crc': unreferenced local variable
88
89 static code const unsigned char dscrc_table[] = {
90 0, 94,188,226, 97, 63,221,131,194,156,126, 32,163,253, 31, 65,
91 157,195, 33,127,252,162, 64, 30, 95, 1,227,189, 62, 96,130,220,
92 35,125,159,193, 66, 28,254,160,225,191, 93, 3,128,222, 60, 98,
93 190,224, 2, 92,223,129, 99, 61,124, 34,192,158, 29, 67,161,255,
94 70, 24,250,164, 39,121,155,197,132,218, 56,102,229,187, 89, 7,
95 219,133,103, 57,186,228, 6, 88, 25, 71,165,251,120, 38,196,154,
96 101, 59,217,135, 4, 90,184,230,167,249, 27, 69,198,152,122, 36,
97 248,166, 68, 26,153,199, 37,123, 58,100,134,216, 91, 5,231,185,
98 140,210, 48,110,237,179, 81, 15, 78, 16,242,172, 47,113,147,205,
99 17, 79,173,243,112, 46,204,146,211,141,111, 49,178,236, 14, 80,
100 175,241, 19, 77,206,144,114, 44,109, 51,209,143, 12, 82,176,238,
101 50,108,142,208, 83, 13,239,177,240,174, 76, 18,145,207, 45,115,
102 202,148,118, 40,171,245, 23, 73, 8, 86,180,234,105, 55,213,139,
103 87, 9,235,181, 54,104,138,212,149,203, 41,119,244,170, 72, 22,
104 233,183, 85, 11,136,214, 52,106, 43,117,151,201, 74, 20,246,168,
105 116, 42,200,150, 21, 75,169,247,182,232, 10, 84,215,137,107, 53
106 };
107
108 /***********************************
109 *校验和是否吻合
110 *num:输入长度
111 *Src:最后一个字节为校验和,其余为内容
112 *返回值:1:是;0:否
113 ***********************************/
C51 COMPILER V7.09 18B20 09/17/2008 14:44:43 PAGE 3
114 unsigned char Ds18b20_crc(unsigned char num,unsigned char *Src)
115 {
116 1 unsigned char i;
117 1 unsigned char crcdata = 0;
118 1 for ( i = 0; i < num-1; i++ )
119 1 {
120 2 crcdata = crcdata ^ (*Src); Src++;
121 2 crcdata = dscrc_table[crcdata];
122 2 }
123 1 if (crcdata==*Src)
124 1 return 1;
125 1 else
126 1 return 0;
127 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 281 ----
CONSTANT SIZE = 314 ----
XDATA SIZE = 14 8
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -