📄 lcdapi.lst
字号:
C51 COMPILER V7.08 LCDAPI 02/11/2006 11:18:16 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE LCDAPI
OBJECT MODULE PLACED IN LcdApi.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LcdApi.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "lcdapi.h"
2 #include "3310.h"
3 #include "asclib.h"
4 #include "hzlib.h"
5
6 /*功能:发送ASCII点阵数据
7 *性质:文件内部使用
8 *参数:列地址,行地址,字符
9 *返回:无
10 */
11 void DispAsc( uchar x, uchar y, uchar *asc )
12 {
13 1 uchar i,j,*ptr;
14 1 ptr = &ASCII816[(*asc-0x20)*16];
15 1 for( j=0; j<ASC_HEIGHT/8; j++ )
16 1 {
17 2 for( i=0; i<ASC_WIDTH;i++ )
18 2 {
19 3 LCD_SetAddr( x+i,y+j );
20 3 LCD_WriteByte(*ptr, MODE_DATA);
21 3 ptr++;
22 3 }
23 2 }
24 1 }
25
26 /*功能:发送汉字点阵数据
27 *性质:文件外部使用
28 *参数:列地址,行地址,汉字
29 *返回:0没有找到汉字,1操作成功
30 */
31 uchar DispHz( uchar x, uchar y, uchar *hz )
32 {
33 1 uchar i,m,n,hznum;
34 1 hznum = sizeof(GB_16)/sizeof(GB_16[0]);
35 1 for(i=0;i<hznum;i++)
36 1 {
37 2 if(*hz == GB_16[i].Index[0] && *(hz+1) == GB_16[i].Index[1])
38 2 break;
39 2 }
40 1 if( i==hznum ) //没有找到需要的汉字
41 1 return 0;
42 1
43 1 for( m=0; m<HZ_HEIGHT/8; m++ )
44 1 {
45 2 for( n=0; n<HZ_WIDTH; n++ )
46 2 {
47 3 LCD_SetAddr( x+n,y+m );
48 3 LCD_WriteByte(GB_16[i].HzLib[m*16+n], MODE_DATA);
49 3 }
50 2 }
51 1 return 1;
52 1 }
53
54 /*功能:混合显示ASCII及汉字
55 *性质:文件外部使用
C51 COMPILER V7.08 LCDAPI 02/11/2006 11:18:16 PAGE 2
56 *参数:列地址,行地址,字符串
57 *返回:无
58 */
59 void DispString( uchar x, uchar y, uchar *str )
60 {
61 1 while( *str )
62 1 {
63 2 if( *str<128 )
64 2 {
65 3 DispAsc( x, y, str);
66 3 str++;
67 3 x += 8;
68 3 }
69 2 else
70 2 {
71 3 DispHz( x, y, str);
72 3 str+=2;
73 3 x+=16;
74 3 }
75 2 }
76 1 }
77
78 /*功能:显示BMP位图
79 *性质:文件外部使用
80 *参数:列地址,行地址,宽度,高度,字符串
81 *返回:无
82 */
83 void DrawBmp( uchar x, uchar y, uchar xsize, uchar ysize, uchar *bmpptr )
84 {
85 1 uchar i,j,ymax;
86 1 ymax = ysize/8;
87 1 if( ysize%8 )
88 1 ymax+=1;
89 1 for( j=0; j<ymax; j++ )
90 1 {
91 2 for( i=0; i<xsize; i++ )
92 2 {
93 3 LCD_SetAddr( x+i, y+j );
94 3 LCD_WriteByte(*bmpptr++, MODE_DATA);
95 3 }
96 2 }
97 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 427 ----
CONSTANT SIZE = 1996 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 27
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 + -