📄 main.lst
字号:
215 1 WriteRec(BLUE,199,48,200,49);
216 1 //对其中的9点做镜像
217 1 WriteRec(WHITE,179,40,180,41);
218 1 WriteRec(WHITE,179,44,180,45);
219 1 WriteRec(WHITE,179,48,180,49);
220 1 WriteRec(WHITE,175,42,176,43);
221 1 WriteRec(WHITE,175,46,176,47);
222 1 WriteRec(WHITE,171,44,172,45);
223 1 WriteRec(WHITE,171,48,172,49);
224 1 WriteRec(WHITE,167,46,168,47);
225 1 WriteRec(WHITE,163,48,164,49);
226 1 //文字显示:模式选择
227 1 Write32x32(0, 0,16);//模
228 1 Write32x32(1, 32,16);//式
229 1 Write32x32(2, 64,16);//选
230 1 Write32x32(3, 96,16);//择
231 1 //文字显示:模式一
232 1 WriteRec(RED, 104, 82,111, 89);//(104,82)到(111,89)的红色矩形区域
233 1 Write24x24(0,122, 74);//模
234 1 Write24x24(1,146, 74);//式
235 1 Write24x24(4,194, 74);//一
236 1 //文字显示:模式二
237 1 WriteRec(YELLOW,104,111,111,118);//(104,111)到(111,118)的黄色矩形区域
238 1 Write24x24(0,122,103);//模
239 1 Write24x24(1,146,103);//式
240 1 Write24x24(5,194,103);//二
241 1 //文字显示:模式三
C51 COMPILER V7.02b MAIN 03/19/2008 11:28:27 PAGE 5
242 1 WriteRec(GREEN, 104,140,111,147);//(104,140)到(111,147)的绿色矩形区域
243 1 Write24x24(0,122,132);//模
244 1 Write24x24(1,146,132);//式
245 1 Write24x24(6,194,132);//三
246 1 //文字显示:模式四
247 1 WriteRec(PURPLE,104,169,111,176);//(104,169)到(111,176)的紫色矩形区域
248 1 Write24x24(0,122,161);//模
249 1 Write24x24(1,146,161);//式
250 1 Write24x24(7,194,161);//四
251 1
252 1 while(1);
253 1 }
254 /*-------------------------------------单色字节扩展函数-----------------------------------------------
255 void WriteByte( unsigned char datain) //参数:8位单色数据,前景色,背景色
256 {
257 unsigned char i,j;
258 for( i=0,j=0x80; i<8; i++,j=(j>>1))
259 {
260 WriteDAT(datain&j ? WHITE : BLUE);
261 }
262 }
263 /*-----------------------------------------------------------------------------------------------------*/
264 void SetDisp(void)// set back,front colors;clear display.
265 {
266 1 WriteCMD(0x04);//写背景色//
267 1 WriteDAT(0xdb);//灰色
268 1 WriteCMD(0x02);//写前景色//
269 1 WriteDAT(BLUE);
270 1
271 1 WriteCMD(0x08);//清屏
272 1 delay10us(30000);//delay 300ms;
273 1 WriteCMD(0x00);//CMD寄存器归零
274 1 }
275 /*---------------------------------------140 x 170 LOGO写入程序---------------------------------------
276 void WriteLogo(unsigned int j,unsigned int i)//i初始行设定,j为初始列设定
277 {
278 unsigned int x,y,n;
279 unsigned char k;
280
281 n=0;
282 for( y=i;y<i+170;y++ )//140 x 170
283 {
284 x=j;
285 WriteX(x);//列地址寄存器 写入
286 WriteY(y);//行地址寄存器 写入
287 WriteCMD(0x01);//8点写模式
288 for(k=0;k<18;k++)
289 WriteDAT(TeliLogo[n++]);
290 }
291 WriteCMD(0x00);//CMD归零
292 }
293 /*-----------------------------------------------------------------------------------------------------*/
294 void Write32x32(unsigned int m,unsigned int x,unsigned int y)
295 { //起始地址(x,y),写一个32 x 32的汉字
296 1 unsigned int i,j,n;
297 1 unsigned char k;
298 1 n=m*128; //计算地址,每个32*32点阵汉字有128个8位数据组成
299 1 for( i=y;i<y+32;i++ )
300 1 {
301 2 j=x;
302 2 WriteX(j);//列地址寄存器 写入
303 2 WriteY(i);//行地址寄存器 写入
C51 COMPILER V7.02b MAIN 03/19/2008 11:28:27 PAGE 6
304 2 WriteCMD(0x01);//8点写模式
305 2 for(k=0;k<4;k++)
306 2 WriteDAT(zk32[n++]);//写一个汉字32行中的一行,共32bits
307 2 }
308 1 WriteCMD(0x00);//CMD归零
309 1 }
310 /*----------------------------------------------------------------------------------------------------*/
311 void Write24x24(unsigned int m,unsigned int x,unsigned int y)
312 { //起始地址(x,y),写一个24 x 24的汉字
313 1 unsigned int i,j,n;
314 1 unsigned char k;
315 1 n=m*72; //计算地址,每个24*24点阵汉字有72个8位数据组成
316 1 for( i=y;i<y+24;i++ )
317 1 {
318 2 j=x;
319 2 WriteX(j);//列地址寄存器 写入
320 2 WriteY(i);//行地址寄存器 写入
321 2 WriteCMD(0x01);//8点写模式
322 2 for(k=0;k<3;k++)
323 2 WriteDAT(zk24[n++]);//写一个汉字24行中的一行,共24bits
324 2 }
325 1 WriteCMD(0x00);//CMD归零
326 1 }
327 /*----------------------------------------------------------------------------------------------------*/
328 void Write16x16(unsigned int m,unsigned int x,unsigned int y)
329 { //起始地址(x,y),写一个16 x 16的汉字
330 1 unsigned int i,j,n;
331 1 unsigned char k;
332 1 n=m*32; //计算地址,每个16*16点阵汉字有32个8位数据组成
333 1 for( i=y;i<y+16;i++ )
334 1 {
335 2 j=x;
336 2 WriteX(j);//列地址寄存器 写入
337 2 WriteY(i);//行地址寄存器 写入
338 2 WriteCMD(0x01);//8点写模式
339 2 for(k=0;k<2;k++)
340 2 WriteDAT(zk16[n++]);//写一个汉字16行中的一行,共16bits
341 2 }
342 1 WriteCMD(0x00);//CMD归零
343 1 }
344 /*----------------------------------------------------------------------------------------------------*/
345 void WriteRec(unsigned char color,unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)
346 { //画一个左上角为(x1,y1)、右下角为(x2,y2)的矩形单色区域
347 1 unsigned int x,y;
348 1 unsigned char k;
349 1
350 1 for( y=y1;y<y2+1;y++ )
351 1 {
352 2 x=x1;
353 2 WriteX(x);//列地址寄存器 写入
354 2 WriteY(y);//行地址寄存器 写入
355 2 WriteCMD(0x00);//单点写模式
356 2 for(k=0;k<x2-x1+1;k++)
357 2 WriteDAT(color);
358 2 }
359 1 WriteCMD(0x00);//CMD归零
360 1 }
361 /*----------------------------------------------------------------------------------------------------
362 void WritePic(unsigned int x,unsigned int y)
363 {
364 unsigned char k;
365 unsigned int i,j,cnt;
C51 COMPILER V7.02b MAIN 03/19/2008 11:28:27 PAGE 7
366
367 cnt=0;
368 for (i=y;i<40+y;i++)
369 {
370 j=x;
371 WriteY(i);//行地址寄存器 写入
372 WriteX(j);//列地址寄存器 写入
373 WriteCMD(0x00);//单点写模式
374 for (k=0;k<40;k++)
375 WriteDAT(rose[cnt++]);
376 }
377 }
378 /*------------------------------------------------------------------------------------------------------
379 void WriteGrid(void)//m为汉字代码,i初始行设定,j为初始列设定
380 {
381 unsigned int i, j, k, z, x, y, m;
382 i=0;
383 WriteCMD(0x00);
384 for(j=0;j<8;j++)//显示彩色方格
385 {
386 for (z=0;z<18;z++)
387 {
388 for (k=0;k<13;k++)
389 {
390 x=j*40;
391 y=z*13+k;
392 WriteX(x);
393 // WriteX(x/256);
394 WriteY(y);
395 for (m=0;m<40;m++)
396 WriteDAT(i);
397 }
398 i++;
399 }
400 }
401 }
402 /*------------------------------------------------------------------------------------------------------*/
403 void delay10us(int delay)
404 {
405 1 int delay1;
406 1 for(delay1=0;delay1<delay;delay1++)
407 1 _nop_();
408 1 _nop_();
409 1 _nop_();//delay n*20*0.5us=n*10us
410 1 }
411 /*------------------------------------------------------------------------------------------------------
412 5.6吋256色假彩屏控制器 QD13特点
413 1、快速清屏功能;只需发送一条指令,控制板在16.6毫秒内以指定的颜色对整个画面进行清屏,
414 清屏过程无须单片机的干预,极大地提高了开机和单一背景色的显示速度。
415 2、提供8点写模式;使得彩色屏的操作与单色屏一样,
416 极大地提高了汉字、英文字母、数字、以及单色位图的显示速度。
417 3、提供灵活的地址自动加一功能;地址自动加一的方向可以任意设置为X方向或Y方向。
418 地址沿X方向自动加一时,遇到行尾将自动跳到下一行的行首。
419 地址沿Y方向自动加一时,遇到列尾将自动跳到下一列的列首。
420 /*------------------------------------------------------------------------------------------------------*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1512 ----
CONSTANT SIZE = 1888 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.02b MAIN 03/19/2008 11:28:27 PAGE 8
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 + -