📄 main.lst
字号:
C51 COMPILER V7.02b MAIN 11/12/2004 14:52:13 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include "TMP100.h"
5 #include "Led.h"
6 #include "I2C.h"
7
8 int tempbuf;
9 char tempjust;
10
11 char UartRec(void)
12 {
13 1 while(RI == 0);
14 1 RI = 0;
15 1 return(SBUF);
16 1 }
17 void UartPut(char dd)
18 {
19 1 while(TI == 0);
20 1 TI = 0;
21 1 SBUF = dd;
22 1 }
23
24 void main(void)
25 {
26 1 char idata uartbuf[10];
27 1 char uartpoint = 0;
28 1 // char ttmp;
29 1 unsigned int i;
30 1
31 1 TMOD |= 0x01;
32 1 TH0 = 0x4b;
33 1 TL0 = 0xfd;
34 1 TR0 = 1;
35 1 ET0 = 1;
36 1 EA = 1;
37 1
38 1 SCON = 0x50;
39 1 TMOD |= 0x20;
40 1 TH1 = 0xfd;
41 1 TR1 = 1;
42 1 TI = 1;
43 1
44 1 Tmp100Init();
45 1
46 1 // UartPut(0x01);
47 1 // if(UartRec() == 0x02)
48 1 // UartPut(0x02);
49 1 while(1)
50 1 {
51 2 uartbuf[0] = UartRec();
52 2 uartbuf[1] = UartRec();
53 2 uartbuf[2] = UartRec();
54 2 uartbuf[3] = '\0';
55 2 if(strcmp(uartbuf,"ge0") == 0)
C51 COMPILER V7.02b MAIN 11/12/2004 14:52:13 PAGE 2
56 2 {
57 3 for(i = 0; i < 5000; i++);
58 3 UartPut(0x00);
59 3 for(i = 0; i < 5000; i++);
60 3 UartPut(tempbuf>>8); //第一次送出高八位
61 3 for(i = 0; i < 5000; i++);
62 3 UartPut(tempbuf&0xff); //第二次送出低八位
63 3 }
64 2 else if(strncmp(uartbuf,"s0",2) == 0)
65 2 tempjust = uartbuf[2]; //取出缓冲区中的校正值
66 2 }
67 1 }
68
69 void time0_isr(void) interrupt 1
70 {
71 1 static unsigned char i;
72 1 char ledbuf[3];
73 1
74 1 TR0 = 0;
75 1 TH0 = 0x4b; //50ms
76 1 TL0 = 0xfd;
77 1
78 1 if(i++ == 10) //每0.5秒读一次
79 1 {
80 2 i = 0;
81 2 tempbuf = Tmp100Get(); //读取Tmp100当前温度
82 2
83 2 tempbuf >>= 4;
84 2 tempbuf += tempjust;
85 2 tempbuf <<= 4;
86 2
87 2 if((tempbuf >> 8) >= 100)
88 2 {
89 3 ledbuf[0] = 9;
90 3 ledbuf[1] = 9;
91 3 ledbuf[2] = 9;
92 3 LedSet(ledbuf);
93 3 }
94 2 else
95 2 {
96 3 ledbuf[0] = (unsigned char)(tempbuf >> 8) / 10; //取出十位
97 3 ledbuf[1] = (unsigned char)(tempbuf >> 8) % 10; //取出个位
98 3 ledbuf[2] = (unsigned char)((float)((tempbuf >> 4) & 0x0f) * 10 * 0.0625);
99 3 LedSet(ledbuf);
100 3 }
101 2 }
102 1 TR0 = 1;
103 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 416 ----
CONSTANT SIZE = 7 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 4
IDATA SIZE = ---- 10
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 + -