📄 pp.lst
字号:
175 5 PaintFlag=1;
176 5 }
177 4 break;
178 4 case 11:
C51 COMPILER V7.01 PP 06/30/2007 11:42:52 PAGE 4
179 4 if(ADDAParaList[5]>0)
180 4 {
181 5 ADDAParaList[5]-=10;
182 5 putufig(9,16*11, ADDAParaList[5],3,0,' ');
183 5 PaintFlag=1;
184 5 }
185 4 break;
186 4 default:
187 4 break;
188 4 }
189 3 }
190 2
191 2 if(Key[3].pressed==1) //检测到+键
192 2 {
193 3 Key[3].pressed=0;
194 3 switch(ItemSel)
195 3 {
196 4 case 1:
197 4 if(ADDAParaList[0]==0)
198 4 {
199 5 ADDAParaList[0]=1;
200 5 dprintf(12,16*2,"盅");
201 5 dprintf(2,16*2,"妚");
202 5 PaintFlag=1;
203 5 dprintf(2,16*9, "上升比: %");
204 5 putufig(9,16*9, ADDAParaList[3],3,0,' ');
205 5 dprintf(2,16*10,"高电平: %");
206 5 putufig(9,16*10, ADDAParaList[4],3,0,' ');
207 5 dprintf(2,16*11,"下降比: %");
208 5 putufig(9,16*11, ADDAParaList[5],3,0,' ');
209 5 }
210 4 case 9:
211 4 if(ADDAParaList[3]+ADDAParaList[4]+ADDAParaList[5]<=90)
212 4 {
213 5 ADDAParaList[3]+=10;
214 5 putufig(9,16*9, ADDAParaList[3],3,0,' ');
215 5 PaintFlag=1;
216 5 }
217 4 break;
218 4 case 10:
219 4 if(ADDAParaList[3]+ADDAParaList[4]+ADDAParaList[5]<=90)
220 4 {
221 5 ADDAParaList[4]+=10;
222 5 putufig(9,16*10, ADDAParaList[4],3,0,' ');
223 5 PaintFlag=1;
224 5 }
225 4 break;
226 4 case 11:
227 4 if(ADDAParaList[3]+ADDAParaList[4]+ADDAParaList[5]<=90)
228 4 {
229 5 ADDAParaList[5]+=10;
230 5 putufig(9,16*11, ADDAParaList[5],3,0,' ');
231 5 PaintFlag=1;
232 5 }
233 4 default:
234 4 break;
235 4 }
236 3 MovHand=1;
237 3 }
238 2
239 2 if(Key[7].pressed==1) //确定键
240 2 {
C51 COMPILER V7.01 PP 06/30/2007 11:42:52 PAGE 5
241 3 ClearKey();
242 3 Clear(0,240);
243 3 return;
244 3 }
245 2 }//while(1)
246 1 }
247
248 //并口端口初始化
249 void PP_Port_Ini()
250 {
251 1 P4MDOUT = 0xF0; //P4高四位输出,低四位输入
252 1 P4 |= 0x0F;
253 1 Wait = 0;
254 1 Intr = 1;
255 1 OE = 0;
256 1 P7MDOUT |= 0x0C;
257 1 }
258
259 //EPP模式单片机端程序(EPP时序),发送PPSendBuf中数据,接收则存入PPReceBuf
260 void EPP_SLAVE()
261 {
262 1 if(!DStrb) //等待PC端信号
263 1 {
264 2 OE=0;
265 2 if(Write) //PC端要求读,发送PPSendBuf中数据
266 2 {
267 3 P6MDOUT = 0xFF; //P6输出模式
268 3 DIR = 1; //控制74HC245
269 3
270 3 P6 = PPSendBuf[PSendCnt]; //发送数据
271 3 Wait = 1; //通知主机数据准备好
272 3 while(!DStrb); //主机返回读成功信号
273 3 Wait = 0; //等待下次传输
274 3 PSendCnt++;
275 3 }
276 2 else //PC端要求写,接收数据存入PPReceBuf
277 2 {
278 3 P6MDOUT=0x00; //配置P6为数字输入 (数字输入=漏极开路+SFR写1)
279 3 P6=0xFF;
280 3 DIR = 0; //控制74HC245
281 3
282 3 Wait = 1; //返回接收成功信号
283 3 while(!DStrb); //主机确认数据准备好
284 3 PPReceBuf[PReceCnt]=P6; //保存数据
285 3 Wait = 0; //等待下次传输
286 3
287 3 if(PPReceBuf[PReceCnt]==0 || PReceCnt==0xFF)
288 3 disflag=1;
289 3 PReceCnt++;
290 3 RecvTotal++;
291 3 }
292 2 }
293 1 }
294
295 void ADDA()
296 {
297 1 PPSetUp(); //0123456789012345678901234567890123456789
298 1 Udprintf(0,208," 接收字节数: 0Byte ");
299 1 dprintf(35,16*14, "退出");
300 1 PP_Port_Ini();
301 1 PReceCnt=0;
302 1
C51 COMPILER V7.01 PP 06/30/2007 11:42:52 PAGE 6
303 1 RecvTotal=0;
304 1 X=0;Y=0;F=0;
305 1 while(1)
306 1 {
307 2 EPP_SLAVE();
308 2
309 2 if(CheckKeyF==1) //键盘检测
310 2 {
311 3 CheckKey();
312 3 CheckKeyF=0;
313 3 }
314 2
315 2 if(disflag)
316 2 {
317 3 char *p;
318 3 OE = 1;
319 3 //显示接受到的字符
320 3 p=tprintf(X,Y,PPReceBuf);
321 3 while(F)
322 3 {
323 4 Clear(0,208);
324 4 X=0;Y=0;F=0;
325 4 tprintf(X,Y,p);
326 4 }
327 3 putufig(13,16*13,RecvTotal,5,1,' ');
328 3 OE = 0;
329 3 PReceCnt=0;
330 3 disflag=0;
331 3 }
332 2
333 2 if(Key[7].pressed==1)
334 2 {
335 3 OE = 1;
336 3 ClearKey();
337 3 Clear(0,240);
338 3 return;
339 3 }
340 2 }
341 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1992 ----
CONSTANT SIZE = 464 ----
XDATA SIZE = 521 5
PDATA SIZE = ---- ----
DATA SIZE = 4 3
IDATA SIZE = ---- ----
BIT SIZE = 1 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -