📄 analog.lst
字号:
C51 COMPILER V8.08 ANALOG 11/04/2008 18:45:33 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE ANALOG
OBJECT MODULE PLACED IN Analog.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.exe Analog.c DB OE
line level source
1 //-----------------------------------------------------------------------------
2 // 这部分程序是利用040内部温度传感器采集出温度值及电压的值,然后通过
3 //以太网将这些值发送出去的.
4 //-----------------------------------------------------------------------------
5 #include <string.h>
6 #include "global.h"
7 #include "C8051f340.h"
8 ///#include "net.h"
9 #include "analog.h"
10
11 extern char xdata text[];
12 UINT idata cpu_temperature, air_temperature, cpu_voltage;
13 UCHAR idata mux_select;
14
15 sfr16 ADC0 = 0xbe;
16
17 //--------------------------------------------------------------------------
18 // 初始化ADC
19 //--------------------------------------------------------------------------
20 void init_adc(void)
21 {
22 1 /*
23 1 ADC0CN = 0x81;
24 1 REF0CN = 0x07;
25 1
26 1 mux_select = MUX_CPU_TEMP;
27 1 /// AMX0SL = MUX_CPU_TEMP;
28 1 ADC0CF = (SYSCLK/2500000) << 3;
29 1 EIE2 &= ~0x02;
30 1 EIE1 &= ~0x04;
31 1 */
32 1 }
33
34
35
36 //--------------------------------------------------------------------------
37 // This function is a little state machine which reads one analog
38 // inputs at a time, out of the 3 possible inputs
39 // 1. On-chip temperature 片内温度
40 // 2. External air temperature
41 // 3. CPU operating voltage CPu的工作电压
42 //--------------------------------------------------------------------------
43 void read_analog_inputs(void)
44 {
45 1 /*
46 1 ULONG idata temp_long;
47 1
48 1 AD0INT = 0;
49 1 AD0BUSY = 1;
50 1 while (AD0INT == 0);
51 1 switch (mux_select)
52 1 {
53 1 case MUX_CPU_TEMP:
54 1 temp_long = ADC0*2 - 42380;
55 1 temp_long= (temp_long * 100L) / 156;
C51 COMPILER V8.08 ANALOG 11/04/2008 18:45:33 PAGE 2
56 1 cpu_temperature=temp_long;
57 1 /// AMX0SL = MUX_CPU_VOLTS;
58 1 mux_select = MUX_CPU_VOLTS;
59 1 break;
60 1
61 1 case MUX_CPU_VOLTS:
62 1 temp_long = ADC0;
63 1 temp_long = 24*temp_long/655;
64 1 cpu_voltage = temp_long;
65 1 /// AMX0SL = MUX_AIR_TEMP;
66 1 mux_select = MUX_AIR_TEMP;
67 1 break;
68 1
69 1 case MUX_AIR_TEMP:
70 1 temp_long = ADC0;
71 1 temp_long = 24*temp_long/655;
72 1 air_temperature = temp_long;
73 1 /// AMX0SL = MUX_CPU_TEMP;
74 1 mux_select = MUX_CPU_TEMP;
75 1 break;
76 1
77 1 default:
78 1 /// AMX0SL = MUX_CPU_TEMP;
79 1 mux_select = MUX_CPU_TEMP;
80 1 break;
81 1 }
82 1 */
83 1 }
84
85
86
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 7 ----
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 + -