📄 adc.lst
字号:
C51 COMPILER V7.06 ADC 10/30/2008 13:20:05 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ADC
OBJECT MODULE PLACED IN ADC.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ADC.C OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"include.h"
2
3 uint32 xdata sum[10];
4 /*********************************************************************************************************
5 ** 函数名称: void delaynms(uint16 n)
6 ** 功能描述: 延时函数
7 ** 输 入: 无
8 ** 输 出: 无
9 ** 全局变量:
10 ** 调用模块:
11 **
12 ** 作 者: 李伟
13 ** 日 期: 2008年12月09日
14 **-------------------------------------------------------------------------------------------------------
15 ** 修 改 人:
16 ** 日 期:
17 **-------------------------------------------------------------------------------------------------------
18 ********************************************************************************************************/
19 void delaynms(uint16 n) //延时1mS
20 {
21 1 uint16 i;
22 1 while(n>0)
23 1 {
24 2 for(i=0;i<490;i++)
25 2 {}
26 2 n--;
27 2 }
28 1 }
29 /*********************************************************************************************************
30 ** 函数名称: uint16 Get_AD_Result(void)
31 ** 功能描述: 获取ADC转换结果函数
32 ** 输 入: 无
33 ** 输 出: 无
34 ** 全局变量:
35 ** 调用模块:
36 **
37 ** 作 者: 李伟
38 ** 日 期: 2008年12月09日
39 **-------------------------------------------------------------------------------------------------------
40 ** 修 改 人:
41 ** 日 期:
42 **-------------------------------------------------------------------------------------------------------
43 ********************************************************************************************************/
44 uint16 Get_AD_Result(void)
45 {
46 1 uint16 ADH;
47 1 uint16 ADL;
48 1 ADC_DATA = 0x00;
49 1 ADC_LOW2 = 0x00;
50 1 ADC_CONTR|= 0x08;
51 1 delaynms(2);
52 1 while(ADC_CONTR&0x10 != 0x10);
53 1 ADC_CONTR &= 0xe7; //0xe7;
54 1 ADH = ADC_DATA<<2;
55 1 ADL = ADC_LOW2&0x03;
C51 COMPILER V7.06 ADC 10/30/2008 13:20:05 PAGE 2
56 1 ADH = ADH|ADL;
57 1 return(ADH);
58 1 }
59 /*********************************************************************************************************
60 ** 函数名称: void SetChannel(uint8 chnum)
61 ** 功能描述: ad通道设置函数
62 ** 输 入: 无
63 ** 输 出: 无
64 ** 全局变量:
65 ** 调用模块:
66 **
67 ** 作 者: 李伟
68 ** 日 期: 2008年12月09日
69 **-------------------------------------------------------------------------------------------------------
70 ** 修 改 人:
71 ** 日 期:
72 **-------------------------------------------------------------------------------------------------------
73 ********************************************************************************************************/
74 void SetChannel(uint8 chnum) //chnum:channel number
75 {
76 1 switch (chnum)
77 1 {
78 2 case 0 :
79 2 {
80 3 A12 = 0; //选通U9-138译码器
81 3 A11 = 0; //E1
82 3 A10 = 0; //选中第1路电池 A10
83 3 A9 = 0; //A9
84 3 A8 = 0; //A8
85 3 }break;
86 2 case 1:
87 2 {
88 3 A12 = 0; //选通U9-138译码器
89 3 A11 = 0; //E1
90 3 A10 = 0; //选中第2路电池 A10
91 3 A9 = 0; //A9
92 3 A8 = 1; //A8
93 3 }break;
94 2 case 2:
95 2 {
96 3 A12 = 0; //选通U9-138译码器
97 3 A11 = 0; //E1
98 3 A10 = 0; //选中第3路电池 A10
99 3 A9 = 1; //A9
100 3 A8 = 0; //A8
101 3 }break;
102 2 case 3 :
103 2 {
104 3 A12 = 0; //选通U9-138译码器
105 3 A11 = 0; //E1
106 3 A10 = 0; //选中第4路电池 A10
107 3 A9 = 1; //A9
108 3 A8 = 1; //A8
109 3 }break;
110 2 case 4:
111 2 {
112 3 A12 = 0; //选通U9-138译码器
113 3 A11 = 0; //E1
114 3 A10 = 1; //选中第5路电池 A10
115 3 A9 = 0; //A9
116 3 A8 = 0; //A8
117 3 }break;
C51 COMPILER V7.06 ADC 10/30/2008 13:20:05 PAGE 3
118 2 case 5:
119 2 {
120 3 A12 = 0; //选通U9-138译码器
121 3 A11 = 0; //E1
122 3 A10 = 1; //选中第6路电池 A10
123 3 A9 = 0; //A9
124 3 A8 = 1; //A8
125 3 }break;
126 2 case 6 :
127 2 {
128 3 A12 = 0; //选通U9-138译码器
129 3 A11 = 0; //E1
130 3 A10 = 1; //选中第7路电池 A10
131 3 A9 = 1; //A9
132 3 A8 = 0; //A8
133 3 }break;
134 2 case 7:
135 2 {
136 3 A12 = 0; //选通U9-138译码器
137 3 A11 = 0; //E1
138 3 A10 = 1; //选中第8路电池 A10
139 3 A9 = 1; //A9
140 3 A8 = 1; //A8
141 3 }break;
142 2 case 8: //选通U10-138译码器
143 2 {
144 3 A12 = 0; //选通U10-138译码器
145 3 A11 = 1; //E3
146 3 A10 = 0; //选中第1路电池
147 3 A9 = 0; //A9
148 3 A8 = 0; //A8
149 3 }break;
150 2 case 9 :
151 2 {
152 3 A12 = 0; //选通U10-138译码器
153 3 A11 = 1; //E3
154 3 A10 = 0; //选中第2路电池
155 3 A9 = 0; //A9
156 3 A8 = 1; //A8
157 3 }break;
158 2 case 10:
159 2 {
160 3 A12 = 0; //选通U10-138译码器
161 3 A11 = 1; //E3
162 3 A10 = 0; //选中第3路电池
163 3 A9 = 1; //A9
164 3 A8 = 0; //A8
165 3 }break;
166 2 case 11:
167 2 {
168 3 A12 = 0; //选通U10-138译码器
169 3 A11 = 1; //E3
170 3 A10 = 0; //选中第4路电池
171 3 A9 = 1; //A9
172 3 A8 = 1; //A8
173 3 }break;
174 2 case 12 :
175 2 {
176 3 A12 = 0; //选通U10-138译码器
177 3 A11 = 1; //E3
178 3 A10 = 1; //选中第5路电池
179 3 A9 = 0; //A9
C51 COMPILER V7.06 ADC 10/30/2008 13:20:05 PAGE 4
180 3 A8 = 0; //A8
181 3 }break;
182 2 case 13:
183 2 {
184 3 A12 = 0; //选通U10-138译码器
185 3 A11 = 1; //E3
186 3 A10 = 1; //选中第6路电池
187 3 A9 = 0; //A9
188 3 A8 = 1; //A8
189 3 }break;
190 2 case 14:
191 2 {
192 3 A12 = 0; //选通U10-138译码器
193 3 A11 = 1; //E3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -