📄 ad.lst
字号:
C51 COMPILER V7.06 AD 08/06/2007 17:38:09 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE AD
OBJECT MODULE PLACED IN ad.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <absacc.h>
2 #include <intrins.h>
3 #include "variable.h"
4 #include "main.h"
5 #include "screen.h"
6 #include "ad.h"
7 unsigned int AD_Convert(void)
8 {
9 1 unsigned int data AD_Value[5],Temp;
10 1 unsigned char i,Num;
11 1 for(i=0;i<5;i++)
12 1 {
13 2
14 2 AD_C|=0x01;//SET 1 ON AD_RC
15 2 _nop_();
16 2 AD_C&=0xFE;//SET 0 ON AD_RC
17 2 _nop_();
18 2 AD_C|=0x01;//SET 1 ON AD_RC
19 2 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
20 2 while(!AD_Busy);
21 2 AD_Value[i]=AD_B*256+AD_A;
22 2 if(AD_Value[i]>32768) AD_Value[i]=32767;
23 2 Delay_1(250);
24 2 }
25 1 for(Num=0;Num<4;Num++)
26 1 {
27 2 for(i=0;i<4-Num;i++)
28 2 {
29 3 if(AD_Value[i+1]<AD_Value[i])
30 3 {
31 4 Temp=AD_Value[i+1];
32 4 AD_Value[i+1]=AD_Value[i];
33 4 AD_Value[i]=Temp;
34 4 }
35 3 }
36 2 }
37 1 Temp=0;
38 1 for(i=1;i<4;i++)
39 1 {
40 2 Temp+=AD_Value[i];
41 2 }
42 1 Temp=Temp/3;
43 1 return(Temp);
44 1 }
45
46 void DA_Convert(unsigned int data DA_Value)
47 {
48 1 DA_B=DA_Value/256;
49 1 DA_A=DA_Value%256;
50 1 }
51
52 void Num_Convert(unsigned int Val,unsigned char Num)
53 {
54 1
55 1 unsigned char i;
C51 COMPILER V7.06 AD 08/06/2007 17:38:09 PAGE 2
56 1 unsigned int y=1;
57 1 for(i=0;i<Num-1;i++)
58 1 {
59 2 y*=10;
60 2 }
61 1 for(i=0;i<Num;i++)
62 1 {
63 2 SetP_Data[i]=Val/y;
64 2 Val%=y;
65 2 y/=10;
66 2 }
67 1 }
68
69 void Temp_Test(void)
70 {
71 1 unsigned char i;
72 1 float data Temprature=0;
73 1
74 1 AD_C|=0x08;//set 1 on SW_A0
75 1 AD_C|=0x10;//set 1 on SW_A1
76 1 AD_C|=0x20;// set 1 on SW_EN
77 1 AD_C&=0xFB;//set 0 on OP_A1
78 1 AD_C|=0x02;//set 1 on OP_A0;*10 TIMES;
79 1 IO_COM=0x0C;//1 TIMES
80 1 IO_COM=0x0E;
81 1 for(i=0;i<20;i++) Delay_1(250);
82 1 Temprature=(float)(AD_Convert())/327.68;
83 1 AD_C&=0xDF;//SET 0 ON SW_EN
84 1 Comp_Data[0]=((Temprature-20)*3.93/1000+1)*SR_V_0;
85 1 Num_Convert(Comp_Data[0],4);
86 1 Set_Data(SetP_Data,4,0,1);//
87 1 Comp_Data[1]=((Temprature-20)*3.93/1000+1)*SR_V_1;
88 1 Num_Convert(Comp_Data[1],4);
89 1 Set_Data(SetP_Data,8,4,1);//
90 1 Test_Data[11]=Temprature*10;
91 1 Num_Convert(Test_Data[11],3);
92 1 if((Page_Val==0)||(Page_Val==5)||(Page_Val==6)) Set_Data(SetP_Data,11,8,1);
93 1 else if(Page_Val==1) Set_Data(SetP_Data,3,0,3);//
94 1
95 1 }
96
97 void Delay_1(unsigned char Num)
98 {
99 1 unsigned char i,m;
100 1 for(i=0;i<100;i++)
101 1 {
102 2 for(m=0;m<Num;Num++);
103 2 }
104 1 }
105
106 void Coil_Judge(void)
107 {
108 1 float Temp_R=0;
109 1 unsigned char i;
110 1 IO_B&=0xDF;//coil+ on;
111 1 AD_COM=0x0C;//Broken K6;
112 1 for(i=0;i<50;i++) Delay_1(250);//50ms
113 1 //DA_Convert(711);//5v
114 1 DA_Convert(427);//3v
115 1 for(i=0;i<20;i++) Delay_1(250);//50ms
116 1 AD_COM=0x06;//SW_A0 SET 0
117 1 AD_COM=0x08;//SW_A1 SET 0;SELECT COIL RES+
C51 COMPILER V7.06 AD 08/06/2007 17:38:09 PAGE 3
118 1 AD_COM=0x0B;//SW_EN SET 1;
119 1 AD_COM=0x03;//OP_A0 SET 1;
120 1 AD_COM=0x04;//OP_A1 SET 0; *10 TIMES;
121 1 IO_COM=0x0C;//1 TIMES
122 1 IO_COM=0x0E;
123 1 for(i=0;i<20;i++) Delay_1(250);
124 1 Temp_R=(float)AD_Convert()/3276.8;
125 1 DA_Convert(0);//0v
126 1 AD_COM=0x0A;//SW_EN SET 0;
127 1 AD_COM=0x0D;//Release K6;
128 1 if(Temp_R>=2)
129 1 {
130 2 IO_B|=0x20;//coil+ off;
131 2 IO_B&=0xBF;//coil- on;
132 2 for(i=0;i<50;i++) Delay_1(250);
133 2 }
134 1 }
135
136 bit R_Test(void)
137 {
138 1 float data R=0;
139 1 unsigned char i;
140 1 for(i=0;i<11;i++)
141 1 {
142 2 SetP_Data[i]=15;
143 2 }
144 1 Test_Data[0]=0;
145 1 AD_COM=0x0C;//Broken K6;
146 1 //DA_Convert(711);//5v
147 1 DA_Convert(427);//3v
148 1 //DA_Convert(853);//5v
149 1 for(i=0;i<30;i++) Delay_1(250);//50ms
150 1 AD_COM=0x06;//SW_A0 SET 0
151 1 AD_COM=0x08;//SW_A1 SET 0;SELECT COIL RES+
152 1 AD_COM=0x0B;//SW_EN SET 1;
153 1 //AD_COM=0x02;//OP_A0 SET 0;
154 1 //AD_COM=0x05;//OP_A1 SET 1; *100 TIMES;
155 1 AD_COM=0x03;//OP_A0 SET 1;
156 1 AD_COM=0x04;//OP_A1 SET 0; *10 TIMES;
157 1 IO_COM=0x0C;//1 TIMES
158 1 IO_COM=0x0E;
159 1 for(i=0;i<20;i++) Delay_1(250);
160 1 R=(float)(32768*3*5)/AD_Convert()-5;//r
161 1 if(R>230)
162 1 //if(R>168.5)
163 1 {
164 2 AD_COM=0x02;//OP_A0 SET 0;
165 2 AD_COM=0x05;//OP_A1 SET 1; *100 TIMES;
166 2 for(i=0;i<20;i++) Delay_1(250);
167 2 R=(float)(32768*3*5*10)/AD_Convert()-5;//r
168 2 /* if(R>674)
169 2 {
170 2 AD_COM=0x03;//OP_A0 SET 1;
171 2 AD_COM=0x05;//OP_A1 SET 1; *1000 TIMES;
172 2 for(i=0;i<20;i++) Delay_1(250);
173 2 R=(float)(32768*3*5*100)/AD_Convert()-5;//r
174 2 }*/
175 2 }
176 1 AD_COM=0x0A;//SW_EN SET 0;
177 1 AD_COM=0x0D;//Release K6;
178 1 //IO_B|=0x60;//COIL+ AND COIL- RELAY OFF;
179 1 DA_Convert(0);
C51 COMPILER V7.06 AD 08/06/2007 17:38:09 PAGE 4
180 1 for(i=0;i<20;i++) Delay_1(250);//50ms
181 1 Test_Data[0]=10*R;
182 1 if((Test_Data[0]<=Comp_Data[1])&&(Test_Data[0]>Comp_Data[0]))
183 1 {
184 2 SetP_Data[4]=14;//ok
185 2 }
186 1 else
187 1 {
188 2 SetP_Data[4]=13;//NG
189 2 IO_A&=0xFE;
190 2 IO_C&=0xFD;
191 2 }
192 1 Num_Convert(Test_Data[0],4);
193 1 if((Page_Val==0)||(Page_Val==5)||(Page_Val==6))
194 1 {
195 2 Tests_Data(SetP_Data,5,0);
196 2 }
197 1 else if(Page_Val==1) Tests_Data(SetP_Data,5,2);
198 1 if(SetP_Data[4]==13)
199 1 {
200 2 IO_B=0xFF;//off relay
201 2 return(0);
202 2 }
203 1 else return(1);
204 1 }
205
206 float ConR_Test_Child(void)
207 {
208 1 float data Con;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -