📄 tmp_rec.lst
字号:
C51 COMPILER V6.02 TMP_REC 03/21/2003 14:03:25 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE TMP_REC
OBJECT MODULE PLACED IN D:\NET\PRO2\TMP_REC.OBJ
COMPILER INVOKED BY: D:\WAVE\COMP51\C51.EXE D:\NET\PRO2\TMP_REC.C DB SB OE
stmt level source
1 #pragma SMALL DB OE
2 #include <reg51.h>
3 #include "tmp_rec.h"
4
5 sbit SDA = P3^0;
6 sbit SCL = P3^1;
7
8 /*************************************************************************/
9
10 void pause_short (void) {
11 1 int i;
12 1
13 1 for ( i = 0; i < 5; i++ );
14 1 }
15
16
17 /*************************************************************************/
18
19
20 void StartI2C (void) {
21 1 SDA = 1;
22 1 SCL = 1;
23 1 SDA = 0;
24 1 pause_short();
25 1 SCL = 0;
26 1 }
27
28 /*************************************************************************/
29
30 void StopI2C (void) {
31 1 SCL = 0;
32 1 SDA = 0;
33 1 SCL = 1;
34 1 pause_short();
35 1 SDA = 1;
36 1 }
37
38 /*************************************************************************/
39
40 char ReadI2C (void) {
41 1 char r;
42 1
43 1 SDA = 1; /* This just sets it to high impedence, the LM75 can still pull it low */
44 1 SCL = 1;
45 1 pause_short();
46 1 r = SDA; /* Read in bit */
47 1 SCL = 0;
48 1 pause_short();
49 1 return r;
50 1 }
51
52 /*************************************************************************/
53
54 void WriteI2C (char write_bit) {
55 1 SDA = write_bit;
C51 COMPILER V6.02 TMP_REC 03/21/2003 14:03:25 PAGE 2
56 1 SCL = 1;
57 1 pause_short();
58 1 SCL = 0;
59 1 pause_short();
60 1 }
61 /*************************************************************************/
62
63 void Address_LM75_read (void) {
64 1
65 1 WriteI2C(1);
66 1 WriteI2C(0);
67 1 WriteI2C(0);
68 1 WriteI2C(1);
69 1 WriteI2C(0);/* Note: This function only works for I2C devices at address 000 */
70 1 WriteI2C(0);/* A2 = 0 */
71 1 WriteI2C(0);/* A1 = 0 */
72 1 WriteI2C(1);/* A0 = 0 */
73 1
74 1 }
75
76 /*************************************************************************/
77
78 char temperature (void) {
79 1 char in_bit;
80 1 char check;
81 1 char t_8;
82 1 char i;
83 1
84 1 StartI2C();
85 1
86 1 Address_LM75_read();
87 1
88 1 check = ReadI2C(); /* Check for LM75 acknowledgement */
89 1
90 1 if ( check == 0 ) {
91 2 t_8 = 0;
92 2 for ( i = 7; i >= 0; i-- ) {
93 3 in_bit = ReadI2C();
94 3 t_8 = t_8 | ( in_bit << i );
95 3 }
96 2 WriteI2C(0);
97 2 for ( i = 7; i > 0; i-- ) {
98 3 in_bit = ReadI2C(); /* Read in lower 8 bits */
99 3 }
100 2 WriteI2C(0);
101 2 }
102 1 else {
103 2 t_8 = 127;
104 2 }
105 1 StopI2C();
106 1 return t_8;
107 1 }
108
109 /*************************************************************************/
110
111 unsigned char PrintTemperature (void)
112 {
113 1 unsigned char temp;
114 1 float fahr;
115 1 float remainder;
116 1 unsigned char rem;
117 1
C51 COMPILER V6.02 TMP_REC 03/21/2003 14:03:25 PAGE 3
118 1
119 1 temp = temperature();
120 1
121 1 // Convert the char to an int
122 1 fahr = 1.8 * (int)temp + 32;
123 1 remainder = fahr;
124 1 remainder = fahr - (int)fahr;
125 1 remainder = remainder * 10;
126 1 rem = ((int)remainder % 10) + 48;
127 1
128 1 GotoXY(0,0);
129 1 PrintString("Temperat");
130 1
131 1 GotoXY(1,0);
132 1 PrintString("ure:");
133 1 PrintInt( (int)fahr );
134 1 PutChar('.');
135 1 PutChar( rem );
136 1
137 1 return temp;
138 1 }
139
140 /*************************************************************************/
C51 COMPILER V6.02 TMP_REC 03/21/2003 14:03:25 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
_PutChar . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
_PrintInt. . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
PrintTemperature . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
temp . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
fahr . . . . . . . . . . . . . . . . AUTO DATA FLOAT 0001H 4
remainder. . . . . . . . . . . . . . AUTO DATA FLOAT 0005H 4
rem. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0009H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
_WriteI2C. . . . . . . . . . . . . . . PUBLIC CODE PROC 000CH -----
write_bit. . . . . . . . . . . . . . * REG * DATA CHAR 0007H 1
_GotoXY. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
Address_LM75_read. . . . . . . . . . . PUBLIC CODE PROC 0000H -----
pause_short. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA INT 0006H 2
temperature. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
in_bit . . . . . . . . . . . . . . . * REG * DATA CHAR 0003H 1
check. . . . . . . . . . . . . . . . * REG * DATA CHAR 0007H 1
t_8. . . . . . . . . . . . . . . . . * REG * DATA CHAR 0004H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA CHAR 0002H 1
ReadI2C. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
r. . . . . . . . . . . . . . . . . . * REG * DATA CHAR 0005H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
StartI2C . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
C51 COMPILER V6.02 TMP_REC 03/21/2003 14:03:25 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
SDA. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
SCL. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
StopI2C. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_PrintString . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 348 ----
CONSTANT SIZE = 14 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -