📄 uart.lst
字号:
170 2
171 2 if(CheckKeyF==1) //键盘检测
172 2 {
173 3 CheckKey();
174 3 CheckKeyF=0;
175 3 }
176 2
177 2 if (URP > DSP) //检测新接收数据
178 2 {
179 3 if(Disflag==1) //是否需要显示
C51 COMPILER V7.01 UART 06/30/2007 11:42:50 PAGE 4
180 3 {
181 4 if(UartParaList[1]==0)
182 4 DSP=tprintf(X,Y,DSP);
183 4 else
184 4 {
185 5 Hexprintf(X,Y,DSP);
186 5 DSP++;
187 5 }
188 4 if(F) //写满了一页
189 4 {
190 5 Disflag=0; //关显示
191 5 if(UartParaList[1]==1) DSP--;
192 5 p[currentp+1]=DSP; //记录下页地址
193 5 dprintf(6,224,DownArrow);
194 5 }
195 4 }
196 3
197 3 if(RCounter!=(URP-Mydata)) //显示接收字节数
198 3 {
199 4 RCounter=(URP-Mydata);
200 4 if(RCounter==MAXLEN-1) //数据区满
201 4 {
202 5 Udprintf(20,208,"接收区已满(2k字节)");
203 5 SFRPAGE_SAVE=SFRPAGE; //关掉UART
204 5 SFRPAGE=UART0_PAGE;
205 5 REN0=0;
206 5 SFRPAGE=SFRPAGE_SAVE;
207 5 }
208 4 else //刷新数字
209 4 {
210 5 char buf[10];
211 5 sprintf(buf,"%d",RCounter);
212 5 Udprintf(32,208,buf);
213 5 }
214 4 }
215 3 }
216 2
217 2 if(Key[1].pressed==1) //检测到下键
218 2 {
219 3 if(p[currentp+1]!=Mydata) //可以向下翻页
220 3 {
221 4 currentp++;
222 4 Clear(0,208);
223 4 dprintf(1,224,UpArrow);
224 4 if(UartParaList[1]==0)
225 4 {
226 5 DSP=tprintf(0,0,p[currentp]);
227 5 if(F==0) //写完了,未写满一页,等待接收显示新数据
228 5 {
229 6 Disflag=1;
230 6 dprintf(6,224," ");
231 6 }
232 5 else //该页已写满
233 5 {
234 6 Disflag=0;
235 6 p[currentp+1]=DSP;
236 6 dprintf(6,224,DownArrow);
237 6 }
238 5 }
239 4 if(UartParaList[1]==1)
240 4 {
241 5 dprintf(6,224," ");
C51 COMPILER V7.01 UART 06/30/2007 11:42:50 PAGE 5
242 5 DSP=p[currentp];
243 5 Disflag=1;
244 5 F=0;
245 5 X=0;
246 5 Y=0;
247 5 }
248 4 }
249 3 Key[1].pressed=0;
250 3 }
251 2
252 2 if(Key[0].pressed==1) //向上翻页
253 2 {
254 3 if(currentp>0) //可以向上翻页
255 3 {
256 4 currentp--;
257 4 Clear(0,208);
258 4 if(currentp>0)
259 4 {
260 5 dprintf(1,224,UpArrow);
261 5 }
262 4 else
263 4 {
264 5 dprintf(1,224," ");
265 5 }
266 4 dprintf(6,224,DownArrow);
267 4 if(UartParaList[1]==0)
268 4 tprintf(0,0,p[currentp]);
269 4 if(UartParaList[1]==1)
270 4 {
271 5 Disflag=1;
272 5 DSP=p[currentp];
273 5 F=0;
274 5 X=0;
275 5 Y=0;
276 5 }
277 4 }
278 3 Key[0].pressed=0;
279 3 }
280 2
281 2 if(Key[5].pressed==1) //暂停
282 2 {
283 3 char temp;
284 3 SFRPAGE_SAVE=SFRPAGE; //切换Uart开关
285 3 SFRPAGE=UART0_PAGE;
286 3 REN0=~REN0;
287 3 temp=REN0;
288 3 SFRPAGE=SFRPAGE_SAVE;
289 3 if(temp==0) //当前为暂停状态
290 3 {
291 4 Udprintf(16,224,"暂停接收");
292 4 dprintf(26,224,"继续");
293 4 }
294 3 else //当前为接收状态
295 3 {
296 4 dprintf(16,224," ");
297 4 dprintf(26,224,"暂停");
298 4 }
299 3 Key[5].pressed=0;
300 3 }
301 2
302 2 if(Key[7].pressed==1) //退出串口模块
303 2 {
C51 COMPILER V7.01 UART 06/30/2007 11:42:50 PAGE 6
304 3 ClearKey(); //清按键
305 3 Clear(0,240); //清屏幕
306 3 SFRPAGE_SAVE=SFRPAGE;
307 3 SFRPAGE=UART0_PAGE;
308 3 REN0=0; //关闭Uart接受
309 3 TR1=0; //关T1
310 3 SFRPAGE=SFRPAGE_SAVE;
311 3 return;
312 3 }
313 2
314 2 if(UartParaList[2]==0) //数据返回
315 2 {
316 3 if(UBUSY==0) //Uart发送空闲
317 3 {
318 4 if( USP<URP ) //有字节需要发送
319 4 {
320 5 UBUSY=1; //Uart忙
321 5 SFRPAGE_SAVE=SFRPAGE;
322 5 SFRPAGE=UART0_PAGE;
323 5 TI0=1; //进入发送中断
324 5 SFRPAGE=SFRPAGE_SAVE;
325 5 }
326 4 }
327 3 }
328 2 }
329 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1852 ----
CONSTANT SIZE = 357 ----
XDATA SIZE = 2011 91
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 + -