📄 1335c51.lst
字号:
202
203 /***************************************/
204 void TestDisplay()
205 {
206 1 Uchar i;
207 1 for(i=0;i<12;i++) //目前测脉冲个数,所以是12,真正测多少秒时,换成13
208 1 {
209 2 Rslt0[i]=temp[i];
210 2 }
211 1 }
212
213
214 /*************************转换成ASC码************************/
215 void TryDisplay(Uchar x,Uchar y,Uchar*ptr)
216 {
217 1 Uchar i,c1;
218 1 /* if(ptr=SET0) c1=6;
219 1 else if(ptr=Rslt0) c1=13;
220 1 else c1=7;
221 1 */
222 1 // c1=sizeof(ptr)/sizeof(Uchar);
223 1 for(i=0;i<6;i++)
224 1 {
225 2 switch(ptr[i])
226 2 {
227 3 case 0:dprintf(x,y,ASC0,0); break;
228 3 case 1:dprintf(x,y,ASC1,0); break;
229 3 case 2:dprintf(x,y,ASC2,0); break;
230 3 case 3:dprintf(x,y,ASC3,0); break;
231 3 case 4:dprintf(x,y,ASC4,0); break;
232 3 case 5:dprintf(x,y,ASC5,0); break;
233 3 case 6:dprintf(x,y,ASC6,0); break;
234 3 case 7:dprintf(x,y,ASC7,0); break;
235 3 case 8:dprintf(x,y,ASC8,0); break;
236 3 case 9:dprintf(x,y,ASC9,0); break;
237 3 default: dprintf(x,y,ASCdot,0);
238 3 }
C51 COMPILER V8.08 1335C51 04/26/2008 21:36:20 PAGE 5
239 2 x++;
240 2 }
241 1 }
*** WARNING C280 IN LINE 217 OF 1335C51.C: 'c1': unreferenced local variable
242
243 void TryDisplay13(Uchar x,Uchar y,Uchar*ptr)
244 {
245 1 Uchar i,c1;
246 1 // c1=sizeof(ptr);
247 1 for(i=0;i<13;i++)
248 1 {
249 2 switch(ptr[i])
250 2 {
251 3 case 0:dprintf(x,y,ASC0,0); break;
252 3 case 1:dprintf(x,y,ASC1,0); break;
253 3 case 2:dprintf(x,y,ASC2,0); break;
254 3 case 3:dprintf(x,y,ASC3,0); break;
255 3 case 4:dprintf(x,y,ASC4,0); break;
256 3 case 5:dprintf(x,y,ASC5,0); break;
257 3 case 6:dprintf(x,y,ASC6,0); break;
258 3 case 7:dprintf(x,y,ASC7,0); break;
259 3 case 8:dprintf(x,y,ASC8,0); break;
260 3 case 9:dprintf(x,y,ASC9,0); break;
261 3 default: dprintf(x,y,ASCdot,0);
262 3 }
263 2 x--;
264 2 }
265 1 }
*** WARNING C280 IN LINE 245 OF 1335C51.C: 'c1': unreferenced local variable
266
267 /*******************************keytest*************/
268
269 void KeyDisplay(Uchar x,Uchar y,Uchar val)
270 {
271 1 // Uchar i,c1;
272 1 /* if(ptr=SET0) c1=6;
273 1 else if(ptr=Rslt0) c1=13;
274 1 else c1=7;
275 1 */
276 1 // c1=sizeof(ptr)/sizeof(Uchar);
277 1 switch(val)
278 1 {
279 2 case 0:dprintf(x,y,ASC0,0); break;
280 2 case 1:dprintf(x,y,ASC1,0); break;
281 2 case 2:dprintf(x,y,ASC2,0); break;
282 2 case 3:dprintf(x,y,ASC3,0); break;
283 2 case 4:dprintf(x,y,ASC4,0); break;
284 2 case 5:dprintf(x,y,ASC5,0); break;
285 2 case 6:dprintf(x,y,ASC6,0); break;
286 2 case 7:dprintf(x,y,ASC7,0); break;
287 2 case 8:dprintf(x,y,ASC8,0); break;
288 2 case 9:dprintf(x,y,ASC9,0); break;
289 2 default: dprintf(x,y,ASCdot,0);
290 2 }
291 1 x--;
292 1
293 1 }
294
295
296 //============================== 西文显示演示程序 ==============================
297 // 仅仅用于文本方式下的西文字符串显示,本函数只写入第3显示区
298
C51 COMPILER V8.08 1335C51 04/26/2008 21:36:20 PAGE 6
299 void TextDisp( Uchar Ox,Uchar Oy, Uchar code *ptr ) {
300 1
301 1 Uchar TexLength=0,ii;
302 1 Uint iTemp;
303 1
304 1 while(ptr[TexLength]>0x1f) {TexLength++;}; // 获取字串长度
305 1
306 1 iTemp = Oy*paraP9+Ox;
307 1 WriteCommand( CsrForm ); // 光标形状设置,代码0x5d
308 1 WriteData( 0x07 ); // 设置光标水平点为CSX=8
309 1 WriteData( 0x07 ); // 光标为块状形式,垂直点为CSY=8
310 1
311 1 WriteCommand( Ovlay ); // 显示合成方式设置.代码0x5b
312 1 WriteData( 0x01 ); // 设置参数:显示3区为文本属性,二重xor合成
313 1
314 1 WriteCommand( DispOn ); // 写入指令DISP ON/OFF代码,后续参数:
315 1 WriteData( 0x56 ); // 01 01 01 10显示1~4区开显示,光标闪烁显示
316 1
317 1 iTemp = (Uint)Oy * paraP9 + Ox; // 光标位置到实际ram地址换算
318 1
319 1 WriteCommand( CsrDirR ); // 自动右移光标指向
320 1
321 1 WriteCommand( CsrW ); // 制定光标位置
322 1 WriteData( (Uchar)(iTemp &0xff) ); // 设置光标地址CSR
323 1 WriteData( (Uchar)(iTemp /256 + BasePart3) ); // 加入显示三区起始地址SAD2H
324 1
325 1 WriteCommand( mWrite ); // 当前位置写入数据指令
326 1
327 1 for(ii=0;ii < TexLength;ii++) {
328 2
329 2 WriteData( ptr[ii] ); // 写入显示字符代码
330 2 }
331 1 DelayMs(350);
332 1 }
333
334 /*==============================================================================
335 ; 该汉字字模是根据清华蓬远公司提供的PICKHZ.EXE软件从计算机中提取的汉字 16x16
336 点阵字模, 其排列顺序是: 前16字节为汉字左半部分(自上而下), 后16字节为汉字右
337 半部分(自上而下). 下面提供的在文本方式下汉字的写入子程序可以在文本显示区任意
338 地方写入汉字. 程序如下:
339 ;------------ 文本方式下汉字写入子程序 ------------
340 ; 在文本方式下汉字显示演示程序段
341 ==============================================================================*/
342 void PutWordInAlpha( void ) {
343 1 // return; // 首先建立CGRAM,
344 1
345 1 WriteCommand( Ovlay ); // 显示合成方式设置.代码0x5b
346 1 WriteData( 0x01 ); // 设置参数:显示3区为文本属性,二重xor合成
347 1
348 1 BuildCgram( 0,8 ); // 调建立CGRAM子程序设置写入字模量八个汉字模
349 1
350 1 // 开始调用显示cgram内所建立的汉字模
351 1 PutCdotInAlpha(28,24,0x88); // 调文本方式下汉字写入子程序,88H= "文"
352 1 PutCdotInAlpha(30,24,0x8c); // 调文本方式下汉字写入子程序,8cH= "本"
353 1 PutCdotInAlpha(32,24,0x90); // 调文本方式下汉字写入子程序,90H= "方"
354 1 PutCdotInAlpha(34,24,0x94); // 调文本方式下汉字写入子程序,94H= "式"
355 1 PutCdotInAlpha(36,24,0x80); // 调文本方式下汉字写入子程序,80H= "测"
356 1 PutCdotInAlpha(38,24,0x84); // 调文本方式下汉字写入子程序,84H= "试"
357 1 DelayMs(50);
358 1 }
359
360 //; 图形方式下汉字显示方法,x方向2字节一个汉字
C51 COMPILER V8.08 1335C51 04/26/2008 21:36:20 PAGE 7
361 void PutWordInGraph( void ) {
362 1 //x坐标以半个汉字定位左起0开始计算
363 1 //y坐标以像素行定位,顶部0开始计算
364 1 //汉字码以点阵码列表所对应32字节位单位进界,从0开始计算
365 1
366 1
367 1 /* PutCdotInGraph(0,0,30,16);
368 1 PutCdotInGraph(2,0,0,16);
369 1 PutCdotInGraph(4,0,2,16);
370 1 PutCdotInGraph(6,0,3,16);
371 1 PutCdotInGraph(8,0,4,16);
372 1 PutCdotInGraph(10,0,7,16);
373 1 PutCdotInGraph(12,0,8,16);
374 1 PutCdotInGraph(14,0,11,16); //延时继电器测试状态
375 1 PutCdotInGraph(16,0,12,16);
376 1
377 1 */
378 1
379 1 PutCdotInGraph(0,32,26,16,1); // 通
380 1 PutCdotInGraph(2,32,27,16,1); //道
381 1
382 1 /* PutCdotInGraph(5,32,17,16);
383 1 PutCdotInGraph(7,32,18,16);
384 1 PutCdotInGraph(9,32,19,16); //设置值
385 1 */
386 1 PutCdotInGraph(14,32,38,16,1); //实测值
387 1 PutCdotInGraph(16,32,7,16,1);
388 1 dprintf(18,32,DanWei1,1);
389 1
390 1 PutCdotInGraph(26,24,21,16,1); //绝对误差
391 1 PutCdotInGraph(28,24,22,16,1);
392 1 PutCdotInGraph(26,40,23,16,1);
393 1 dprintf(28,40,DanWei3,1);
394 1
395 1 PutCdotInGraph(34,24,25,16,1);
396 1 PutCdotInGraph(36,24,22,16,1);
397 1 PutCdotInGraph(34,40,23,16,1); //相对误差
398 1 dprintf(36,40,DanWei4,1);
399 1
400 1
401 1
402 1
403 1 }
404
405 void PutWordInGraph1( void )
406 {
407 1
408 1
409 1 PutCdotInGraph(0,0,15,16);
*** WARNING C209 IN LINE 409 OF 1335C51.C: '_PutCdotInGraph': too few actual parameters
410 1 PutCdotInGraph(2,0,31,16);
*** WARNING C209 IN LINE 410 OF 1335C51.C: '_PutCdotInGraph': too few actual parameters
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -