📄 main.lst
字号:
160 {//定时
161 1 TF2=0;
162 1
163 1 SampleTimeCnt++;
164 1 if(SampleTimeCnt==100)////1s/
165 1 {////
166 2 SampleTimeCnt=0;
167 2
168 2 TR0=0;///--
169 2 TpTL0=TL0;
170 2 TL0=0;
171 2 TpTH0=TH0;
172 2 TH0=0;
173 2 TR0=1;///--
174 2
175 2 OverCnt=0;
176 2 SampleFlag=1;
177 2 }
178 1 //输出下限处理
179 1 /*
C51 COMPILER V7.50 MAIN 03/06/2007 20:40:55 PAGE 4
180 1 if(Output!=TwinOutput)
181 1 {//新一轮输出
182 1 if((Output<MinOutputLimit)&&(Output>-MinOutputLimit))
183 1 {
184 1 SpareOutput+=Output;
185 1 Output=0;
186 1 }
187 1 else
188 1 {
189 1 Output+=SpareOutput;
190 1 SpareOutput=0;
191 1 }
192 1 }
193 1 if((Output==0)&&((SpareOutput>MinOutputLimit)||(SpareOutput<-MinOutputLimit)))
194 1 {
195 1 Output=SpareOutput;
196 1 SpareOutput=0;
197 1 }
198 1 */
199 1
200 1 if(Output>0)
201 1 {
202 2 PosOutput();
203 2 R_ON();
204 2 L_OFF();
205 2 Output--;
206 2 }
207 1 else if(Output<0)
208 1 {
209 2 NegOutput();
210 2 L_ON();
211 2 R_OFF();
212 2 Output++;
213 2 }
214 1 else
215 1 {
216 2 OffOutput();
217 2 L_OFF();
218 2 R_OFF();
219 2 }
220 1 TwinOutput=Output;
221 1 }
222
223 void time1() interrupt 3
224 {
225 1 TF1=0;
226 1 if(LedCnt>=8)
227 1 {
228 2 P_KEY=1;
229 2 LedCnt=0;
230 2 LedBitCnt=0x01;
231 2 }
232 1 P2=0xff-LedBitCnt;
233 1 P0=LedBuf[LedCnt];
234 1
235 1 //
236 1 if(LedCnt<4)
237 1 {//前4bit,读按键
238 2 // P_KEY=1;//拉高,任外面拉低以确认按键
239 2 _nop_();
240 2 _nop_();
241 2 switch(LedBitCnt)
C51 COMPILER V7.50 MAIN 03/06/2007 20:40:55 PAGE 5
242 2 {
243 3 case 0x01://Fun
244 3 if(P_KEY)
245 3 {
246 4 KeySta|=0x01;
247 4 FunFlag=1;
248 4 FunCnt+=1;
249 4 DlySecond=11;//10s
250 4 }
251 3 else
252 3 {
253 4 KeySta &= (0xff-0x01);
254 4 FunCnt=0;
255 4 }
256 3 break;
257 3 case 0x02://Up
258 3 if(P_KEY)
259 3 {
260 4 KeySta|=0x02;
261 4 UpCnt+=1;
262 4 DlySecond=11;//10s
263 4 }
264 3 else
265 3 {
266 4 KeySta &= (0xff-0x02);
267 4 UpCnt=0;
268 4 }
269 3 break;
270 3 case 0x04://Down
271 3 if(P_KEY)
272 3 {
273 4 KeySta|=0x04;
274 4 DownCnt+=1;
275 4 DlySecond=11;//10s
276 4 }
277 3 else
278 3 {
279 4 KeySta &= (0xff-0x04);
280 4 DownCnt=0;
281 4 }
282 3 break;
283 3 case 0x08://Man
284 3 if(P_KEY)
285 3 {
286 4 KeySta|=0x08;
287 4 ManFlag=1;
288 4 DlySecond=11;//10s
289 4 }
290 3 else
291 3 KeySta &= (0xff-0x08);
292 3 break;
293 3 default:
294 3 ;
295 3 }
296 2 }
297 1 else
298 1 {//后4bit,显示状态
299 2 if(LedBitCnt & KeySta)//
300 2 P_KEY=0;//亮
301 2 else
302 2 P_KEY=1;//灭
303 2 }
C51 COMPILER V7.50 MAIN 03/06/2007 20:40:55 PAGE 6
304 1
305 1 LedCnt++;
306 1 LedBitCnt<<=1;
307 1
308 1 TH1=0xfc;
309 1 TL1=0x18;
310 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 952 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
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 + -