📄 functions.lst
字号:
C51 COMPILER V7.50 FUNCTIONS 03/06/2007 20:40:54 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE FUNCTIONS
OBJECT MODULE PLACED IN Functions.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE Functions.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "TempCtrl.h"
2
3 void FunSwitch(void);
4
5 /////////////////////////////////////////////////
6 //按键监视及Led显示
7 void Monitor()
8 {
9 1
10 1 //////////-------------------------------------------FUN键---------------------------------------------
11 1 if((KeySta & 0x01) && (FunCnt>25))
12 1 {
13 2 ///TODO:在此添加处理
14 2 if(MeterSta!=STA_MAN)
15 2 FunSwitch();//纯粹的方便看而做
16 2 ///END TODO
17 2 FunCnt=0;
18 2 FunFlag=0;//kf:905
19 2 }
20 1 else if((FunFlag && (!(KeySta & 0x01))))
21 1 {
22 2 ///TODO:在此添加处理
23 2 if(MeterSta!=STA_MAN)
24 2 FunSwitch();//纯粹的方便看而做
25 2 ///END TODO
26 2 FunFlag=0;
27 2 }
28 1 //////-----------------------------------------------MAN键-------------------------------------
29 1 if(ManFlag && (!(KeySta & 0x08)))//Man健处理
30 1 {//单次触发
31 2 ///TODO:在此添加处理
32 2 if(MeterSta!=STA_MAN)//
33 2 {//变为手动
34 3 MeterSta=STA_MAN;
35 3 LedBuf[0]=LedCode[C_Fuhao];
36 3 LedBuf[1]=LedCode[C_Fuhao];
37 3 LedBuf[2]=LedCode[C_Fuhao];
38 3 LedBuf[3]=LedCode[C_Fuhao];
39 3 MAN_ON();
40 3 AdmitFlag=1; //0
41 3 PassWordLock=1;
42 3 FFSta=0;
43 3 }
44 2 else
45 2 {//变为自动,并且锁定
46 3 MeterSta=STA_AUTO;
47 3 PassWordLock=1;
48 3
49 3 //更新显示
50 3 LedH(Temperature);
51 3 DPA();
52 3
53 3 DataTemp=Read(EP_Sv);
54 3 InputTemp=DataTemp;
55 3 InputLimit=10000;
C51 COMPILER V7.50 FUNCTIONS 03/06/2007 20:40:54 PAGE 2
56 3 LedL(DataTemp);//设定
57 3 DPB();
58 3 AdmitFlag=1;//允许上排数据更新
59 3 MAN_OFF();
60 3 }
61 2
62 2 ///END TODO
63 2 ManFlag=0;
64 2 }
65 1
66 1
67 1 /////=============================================上下键控制=================================
68 1 if((KeySta & 0x06)==0x06)
69 1 {//依赖密码来决定那种校正
70 2 if(InputCnt<10)
71 2 InputCnt+=1;
72 2 else
73 2 {//触发一次校准s
74 3 k1=Read(EP_Sr);
75 3 if(k1==3000)
76 3 FFSta=3000;//借用FFSta
77 3 else if(k1==3001)
78 3 FFSta=3001;
79 3 }
80 2 }
81 1 else if(KeySta & 0x02)//向上健优先
82 1 {
83 2 if(MeterSta==STA_MAN)
84 2 {
85 3 Output=100;
86 3 }
87 2 else if(UpCnt>InputSpeed)//8
88 2 {
89 3 ///TODO:
90 3 if(InputCnt<5)
91 3 {
92 4 InputCnt+=1;
93 4 InputSpeed=10;
94 4 InputTemp+=1;
95 4 }
96 3 else if(InputCnt<25)
97 3 {
98 4 InputCnt+=1;
99 4 InputSpeed=2;
100 4 InputTemp+=1;
101 4 }
102 3 else if(InputCnt<80)
103 3 {
104 4 InputCnt+=1;
105 4 InputSpeed=1;
106 4 InputTemp+=11;
107 4 }
108 3 else
109 3 {
110 4 // InputCnt+=1;
111 4 InputSpeed=1;
112 4 InputTemp+=111;
113 4 }
114 3
115 3 while(InputTemp>=InputLimit)
116 3 InputTemp-=InputLimit;
117 3 if(MeterSta!=STA_AUTO)
C51 COMPILER V7.50 FUNCTIONS 03/06/2007 20:40:54 PAGE 3
118 3 ShowInputTemp();
119 3 else if((MeterSta==STA_AUTO)&&(InputTemp!=DataTemp))
120 3 {////自动时可以调整设定值
121 4 Setted_Temperature=InputTemp;
122 4 PassWordLock=0;
123 4 Write(EP_Sv,InputTemp);
124 4 PassWordLock=1;
125 4 LedL(Setted_Temperature);
126 4 DPB();
127 4 DataTemp=InputTemp;
128 4 }
129 3
130 3 ///END TODO
131 3 UpCnt=0;
132 3 }
133 2 }
134 1 else if(KeySta & 0x04)
135 1 {
136 2 if(MeterSta==STA_MAN)
137 2 {
138 3 Output=-100;
139 3 }
140 2 else if(DownCnt>InputSpeed)
141 2 {
142 3 ///TODO
143 3
144 3 if(InputCnt<5)
145 3 {
146 4 InputCnt+=1;
147 4 InputSpeed=10;
148 4 InputTemp-=1;
149 4 }
150 3 else if(InputCnt<25)
151 3 {
152 4 InputCnt+=1;
153 4 InputSpeed=5;
154 4 InputTemp-=1;
155 4 }
156 3 else if(InputCnt<80)
157 3 {
158 4 InputCnt+=1;
159 4 InputSpeed=1;
160 4 InputTemp-=11;
161 4 }
162 3 else
163 3 {
164 4 // InputCnt+=1;
165 4 InputSpeed=1;
166 4 InputTemp-=111;
167 4 }
168 3
169 3 while(InputTemp<0)
170 3 InputTemp+=InputLimit;
171 3 //InputTemp=0;
172 3
173 3 if(MeterSta!=STA_AUTO)
174 3 ShowInputTemp();
175 3 else if((MeterSta==STA_AUTO)&&(InputTemp!=DataTemp))
176 3 {////自动时可以调整设定值
177 4 Setted_Temperature=InputTemp;
178 4 PassWordLock=0;
179 4 Write(EP_Sv,InputTemp);
C51 COMPILER V7.50 FUNCTIONS 03/06/2007 20:40:54 PAGE 4
180 4 PassWordLock=1;
181 4 LedL(Setted_Temperature);
182 4 DPB();
183 4 DataTemp=InputTemp;
184 4 }
185 3
186 3 ///END TODO
187 3 DownCnt=0;
188 3 }
189 2 }
190 1 else
191 1 {
192 2 if(MeterSta==STA_MAN)
193 2 {
194 3 Output=0;
195 3 }
196 2 InputCnt=0;
197 2 InputSpeed=10;
198 2 }
199 1
200 1 }
201
202 ////////////////////////////////////////////////////////////
203 //公用子函数
204 void Wait(unsigned char x)
205 {
206 1 while(x>0)
207 1 {
208 2 _nop_();
209 2 x-=1;
210 2 }
211 1 }
212
213 //Led显示
214 void LedH(unsigned int dat)
215 {
216 1 char i=0;
217 1
218 1 while(dat>=10000)
219 1 dat-=10000;
220 1 while(dat>=1000)
221 1 {
222 2 dat-=1000;
223 2 i+=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -