📄 tlc1543.lst
字号:
C51 COMPILER V7.06 TLC1543 12/18/2007 11:18:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TLC1543
OBJECT MODULE PLACED IN TLC1543.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE TLC1543.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include "c51base.h"
3
4 void some_nop()
5 {
6 1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
7 1 }
8
9 uint ADCRead(uchar port) //从TLC1543读取采样值,形参port是采样的通道号
10 {
11 1 uint idata ad_value;
12 1 uchar i;
13 1
14 1 TCL1543_CLK=0;
15 1 TCL1543_CS=0;
16 1 port<<=4;
17 1 for (i=0;i<4;i++) //把通道号打入1543
18 1 {
19 2 TCL1543_IN = (bit)(port&0x80);
20 2 TCL1543_CLK=1;
21 2 some_nop();
22 2 TCL1543_CLK=0;
23 2 port<<=1;
24 2 }
25 1 for (i=0;i<6;i++) //填充6个TCL1543_CLK
26 1 {
27 2 TCL1543_CLK=1;
28 2 some_nop();
29 2 TCL1543_CLK=0;
30 2 }
31 1 TCL1543_CS=1;
32 1 some_nop();some_nop();some_nop();some_nop();some_nop();some_nop();
33 1 some_nop();some_nop();some_nop();some_nop();some_nop();some_nop();
34 1 some_nop();some_nop();some_nop();some_nop();some_nop();some_nop();
35 1 some_nop();some_nop();some_nop();
36 1 TCL1543_CS=0; //等待AD转换
37 1 some_nop();some_nop();some_nop();
38 1
39 1 ad_value = 0;
40 1 for (i=0;i<10;i++) //取D9,D8
41 1 {
42 2 TCL1543_OUT=1;
43 2 TCL1543_CLK=1;
44 2 ad_value <<= 1;
45 2 if (TCL1543_OUT)
46 2 ad_value|=0x01;
47 2 TCL1543_CLK=0;
48 2 }
49 1 // ad_value >>= 2;
50 1 TCL1543_CS=1;
51 1 return (ad_value);
52 1 }
53
54
55
C51 COMPILER V7.06 TLC1543 12/18/2007 11:18:08 PAGE 2
56
57 uchar GetTemper(uchar number)
58 {
59 1 uint idata value;
60 1 value = ADCRead(number);
61 1 // printf("温度通道%d-%d\n",(int)number,(int)value);
62 1 if(value<=275)
63 1 value = 0;
64 1 else if(value>=275 && value < 415)//0-15度
65 1 value = (value-270)/10;
66 1 else if(value>=415 && value <580) //16-32度
67 1 value = (value-263)/10;
68 1 else if(value>=580 && value <639) //33-39度
69 1 value = (value-255)/10;
70 1 else if(value>=639 && value <679) //40-45度
71 1 value = (value-245)/10;
72 1 else if(value>=679 && value <709) //46-47度
73 1 value = (value-235)/10;
74 1 else if(value>=709 && value <737) //48-51度
75 1 value = (value-225)/10;
76 1 else if(value>=737 && value <756) //52-55度
77 1 value = (value-215)/10;
78 1 else if(value>=756 && value <769) //56-56度
79 1 value = (value-205)/10;
80 1 else if(value>=769 && value <786) //57-59度
81 1 value = (value-195)/10;
82 1 else if(value>=786 && value <798) //60-61度
83 1 value = (value-185)/10;
84 1 else if(value>=798 && value <808) //60-61度
85 1 value = (value-175)/10;
86 1 else if(value>=808 && value <818) //60-61度
87 1 value = (value-165)/10;
88 1 else if(value>=818 && value <865) //60-61度
89 1 value = (9*value-4656)/41;
90 1 else if(value>=865 && value <912) //75-90度
91 1 value = (value-639)/3;
92 1 //printf("温度通道%d-%d\n",(int)number,(int)value);
93 1
94 1 return value;
95 1 }
96
97
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 644 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- 4
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 + -