📄 adc_solve.lst
字号:
C51 COMPILER V7.00 ADC_SOLVE 01/09/2007 15:35:17 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE ADC_SOLVE
OBJECT MODULE PLACED IN adc_solve.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE adc_solve.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 ////////////////////////////////////////////////////
2 /* adc_solve.c */
3 ///////////////////////////////////////////////////
4 #include "STC5410AD.H"
5 #include <ABSACC.H>
6 #include "uuu.h"
7 #include "citation.h"
8 #define Lower_limit 102 //保护下限150-->220V 75-->110V
9 /////////////////////////////////////////////////////
10 /*****************************************************
11 * 功能:A/D采样
12 * 描述:250uS一次,奇次采RC,偶次采NC
13 ******************************************************/
14 void ad_gather(void)
15 { bit flag=0;
16 1 union{
17 1 uchar c[2];
18 1 uint x;
19 1 }temp;
20 1 uchar mem_stk;
21 1 mem_stk=bbyte;
22 1 //---------------------
23 1 if(alternation)
24 1 {
25 2
26 2 ADC_CONTR=0xe0; //电流
27 2 //delay(1);
28 2 ADC_CONTR|=0x08;
29 2 while(!flag)
30 2 {
31 3 bbyte=ADC_CONTR;
32 3 flag=a4;
33 3 }
34 2 temp.c[0]=ADC_DATA;
35 2 temp.c[1]=0x00;
36 2 temp.x>>=6;
37 2 temp.c[1]+=ADC_LOW2;
38 2 ADC_CONTR=0xe1;
39 2 adiii40[gather_num]=temp.x;
40 2 alternation=0;//交替采样
41 2
42 2 }
43 1 else
44 1 {
45 2 ADC_CONTR=0xe1; //电压
46 2 //delay(1);
47 2 ADC_CONTR|=0x08;
48 2 while(!flag)
49 2 {
50 3 bbyte=ADC_CONTR;
51 3 flag=a4;
52 3 }
53 2 //ADC_CONTR=0xe2;
54 2 temp.c[0]=ADC_DATA;
55 2 temp.c[1]=0x00;
C51 COMPILER V7.00 ADC_SOLVE 01/09/2007 15:35:17 PAGE 2
56 2 temp.x>>=6;
57 2 temp.c[1]+=ADC_LOW2;
58 2 ADC_CONTR=0xe0;
59 2 aduuu40[gather_num]=temp.x;
60 2 alternation=1;//交替采样
61 2 gather_num++;
62 2 if (gather_num>39)
63 2 {
64 3 gather_num=0;adok=1;
65 3
66 3 }
67 2
68 2 }
69 1
70 1 bbyte=mem_stk; //临时堆栈
71 1 }
72 /***************************************************
73 * 功能:A/D转换
74 ****************************************************/
75 void adc_solve(void)
76 {
77 1 if(adok)
78 1 {
79 2 adok=0;
80 2 }
81 1 }
82 /***************************************************
83 * 功能:电源失落检查
84 ****************************************************/
85 void power_check(void)
86 { uint *pi;
87 1 uchar checknum,i;
88 1 uint u;
89 1 checknum=0;
90 1 pi=&aduuu40;
91 1 for(i=0;i<40;i++)
92 1 { u=*(pi+i);
93 2 if(u>505)u-=505;
94 2 else u=505-u;
95 2 if(u<Lower_limit)
96 2 {
97 3 checknum++;
98 3 if(checknum>9)break;
99 3 }
100 2 else
101 2 {
102 3 if(checknum<9)checknum=0;
103 3 }
104 2 }
105 1 if(checknum>9)
106 1 {
107 2 uuu_fault=1; //电压有丢失
108 2 OUTDJ=1;
109 2 power_drop_time=8000;
110 2 }
111 1 else
112 1 {
113 2 uuu_fault=0; //电压恢复
114 2 if(power_drop_time==0) OUTDJ=0;
115 2
116 2 }
117 1 }
C51 COMPILER V7.00 ADC_SOLVE 01/09/2007 15:35:17 PAGE 3
118 /***************************************************
119 * 功能:计算最大值
120 ****************************************************/
121 /*uint max(uint *pi)
122 { uint temp;
123 uchar i;
124 temp=0;
125 for(i=0;i<40;i++)
126 {
127 if(temp<*pi) temp=*pi;
128 pi++;
129 }
130 return(temp);
131 }*/
132 /***************************************************
133 * 功能:计算平均值
134 ****************************************************/
135 /*uint average(uint *pi)
136 { uint temp;
137 uchar i;
138 ulong x;
139 x=0;
140 temp=0;
141 for(i=0;i<40;i++)
142 {
143 x+=*pi;
144 pi++;
145 }
146 temp=x/40;
147 return(temp);
148 }*/
149
150
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 294 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -