📄 disp.lst
字号:
217 2 n /= 10;
218 2 }
219 1 }
220
221
222 /***************************************
223
224 显示一个字符
225 入口参数:字符(只支持ASCII码字符)
226
227 ****************************************/
228 void DispChr(INT8U cv)
229 {
230 1 INT8U *pF;
231 1 INT8U len,n,row,col;
232 1
233 1 row = CurRow;
234 1 col = CurCol;
235 1 len = FontAttr[CurFont][0] * FontAttr[CurFont][1];
236 1 pF = (INT8U *)FontAdr[CurFont];
237 1 pF += cv*len;
238 1
239 1 n = 0;
240 1 while (1)
241 1 {
C51 COMPILER V7.50 DISP 12/15/2008 13:48:56 PAGE 5
242 2 LCD_Disp_Pic(pF+n*FontAttr[CurFont][0],FontAttr[CurFont][0]);
243 2 n ++;
244 2 if (n>= FontAttr[CurFont][1])
245 2 break;
246 2 CurRow ++;
247 2 CurCol = col;
248 2 }
249 1 CurRow = row;
250 1 }
251
252 /***************************************
253
254 显示一个字符串
255 入口参数:字符串指针(只支持ASCII码字符)
256
257 ****************************************/
258 void DispStr(char *str)
259 {
260 1 while (*str != 0)
261 1 {
262 2 DispChr(*str);
263 2 str++;
264 2 }
265 1 }
266 /***************************************
267
268 显示一个汉字
269 入口参数:汉字字符编号(见font.h)
270
271 ****************************************/
272 void DispHZ(INT8U cv)
273 {
274 1 INT8U *pF;
275 1 INT8U n,row,col;
276 1
277 1 row = CurRow;
278 1 col = CurCol;
279 1
280 1 pF = (INT8U *)FontHZ14x14;
281 1 pF += cv*(14*2);
282 1
283 1 n = 0;
284 1 while (1)
285 1 {
286 2 LCD_Disp_Pic(pF+n*14,14);
287 2 n++;
288 2 if (n>= 2)
289 2 break;
290 2 CurRow ++;
291 2 CurCol = col;
292 2 }
293 1 CurRow = row;
294 1 }
295
296 /***************************************
297
298 显示一个浮点数
299 注:无超显示范围判断
300 使用全部的显示区域
301
302 ****************************************/
303 void DispFloat(float val,INT8U Len)
C51 COMPILER V7.50 DISP 12/15/2008 13:48:56 PAGE 6
304 {
305 1 INT8U IntLen,n;
306 1 INT32U iv,ivf;
307 1
308 1 /* 符号位处理 */
309 1 if (val < 0)
310 1 {
311 2 DispChr('-');
312 2 val = -val;
313 2 Len --;
314 2 }
315 1
316 1 /* 整数位数计算 */
317 1 IntLen = GetIntLen((INT32U)val);
318 1
319 1 /* 整数部分 */
320 1 iv = (INT32U)val;
321 1 /* 显示整数部分 */
322 1 DispInt(iv,IntLen);
323 1 /* 显示小数点 */
324 1 DispChr('.');
325 1
326 1 /* */
327 1 val -= iv;
328 1 for (n=0;n<(Len-IntLen);n++)
329 1 {
330 2 val *= 10;
331 2 }
332 1 ivf = (INT32U)val;
333 1 ivf += 5;
334 1 ivf /= 10;
335 1
336 1
337 1 /* 显示小数部分 */
338 1 DispInt((INT32U)ivf,Len-IntLen-1);
339 1 }
340
341 /***************************************
342
343 显示清屏
344
345 ****************************************/
346 void DispCls(void)
347 {
348 1 char i;
349 1
350 1 for (i=0;i<8;i++)
351 1 {
352 2 DispXYSet(i,0);
353 2 LCD_Disp_Pattern(0x00,128);
354 2 }
355 1 }
356
357
358
359 /***************************************
360
361 屏初始化
362
363 ****************************************/
364 void DispInit(void)
365 {
C51 COMPILER V7.50 DISP 12/15/2008 13:48:56 PAGE 7
366 1 INT16U i;
367 1 Pin_CS1 = 0;
368 1 Pin_CS2 = 0;
369 1
370 1 for (i=0;i<5000;i++)
371 1 Pin_RST = 0;
372 1 for (i=0;i<5000;i++)
373 1 Pin_RST=1; //使RST无效后延时一段时间(若不,则后续指令无效,原12864无需亦可???延时取255还不够!!!)
374 1
375 1 Pin_E=0;
376 1 Pin_RS=1;
377 1 Pin_RW=1;
378 1
379 1 Pin_CS1 = 1;
380 1
381 1 LCD_Cmd(0x3F); //LCD_ON
382 1 LCD_Cmd(0xC0|0); //LCD_STARTLINE
383 1 LCD_Cmd(0xB8|0); //LCD_ROW
384 1 LCD_Cmd(0x40|0); //LCD_COL
385 1
386 1 Pin_CS1 = 0;
387 1
388 1
389 1 Pin_CS2 = 1;
390 1
391 1 LCD_Cmd(0x3F); //LCD_ON
392 1 LCD_Cmd(0xC0|0); //LCD_STARTLINE
393 1 LCD_Cmd(0xB8|0); //LCD_ROW
394 1 LCD_Cmd(0x40|0); //LCD_COL
395 1
396 1 Pin_CS2 = 0;
397 1
398 1 CurCol = 0;
399 1 CurRow = 0;
400 1 }
401
402 /***************************************
403
404 设置当前的显示坐标
405 入口参数:行
406 列
407
408 ****************************************/
409 void DispXYSet(INT8U Row,INT8U Col)
410 {
411 1 CurRow = Row;
412 1 CurCol = Col;
413 1 }
414
415 /***************************************
416 设置当前的显示字体(只支持ASCII码字符)
417 入口参数:字体编号(见font.h)
418 ****************************************/
419 void DispFontSet(INT8U Font)
420 {
421 1 CurFont = Font;
422 1 }
423
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1105 ----
C51 COMPILER V7.50 DISP 12/15/2008 13:48:56 PAGE 8
CONSTANT SIZE = 5021 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 46
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 + -