📄 lcd12864.lst
字号:
C51 COMPILER V8.02 LCD12864 01/31/2009 14:04:30 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN lcd12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd12864.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "lcd12864.h"
2
3 void loop_lcd12864_is_busy(unsigned char right)
4 {
5 1 unsigned char tmp,counter=0;
6 1 do
7 1 {
8 2 if(right) tmp = LCD_RCR;
9 2 else tmp = LCD_LCR;
10 2 if(counter++>50) break;//超时跳出
11 2 }
12 1 while ((tmp|0x7f)==0xff);
13 1 }
14
15 void lcd_cmd_wr(unsigned char cmdcode,unsigned char right)
16 {
17 1 loop_lcd12864_is_busy(right);
18 1 if(right) LCD_RCW = cmdcode;
19 1 else LCD_LCW = cmdcode;
20 1 }
21
22 void lcd_data_wr(unsigned char ldata,unsigned char right)
23 {
24 1 loop_lcd12864_is_busy(right);
25 1 if(right) LCD_RDW = ldata;
26 1 else LCD_LDW = ldata;
27 1 }
28
29 void lcd12864_clr(void)
30 {
31 1 unsigned char i,j;
32 1
33 1
34 1 for(i=0;i<8;i++)
35 1 {
36 2 lcd_cmd_wr(SETY+i,0);
37 2 lcd_cmd_wr(SETX,0);
38 2 lcd_cmd_wr(SETY+i,1);
39 2 lcd_cmd_wr(SETX,1);
40 2
41 2 for(j=0;j<64;j++)
42 2 {
43 3 lcd_data_wr(0,0);
44 3 lcd_data_wr(0,1);
45 3 }
46 2 }
47 1 }
48
49 void lcd12864_init(void)
50 {
51 1 lcd_cmd_wr(DISPON,0);
52 1 lcd_cmd_wr(DISPFIRST,0);
53 1 lcd_cmd_wr(SETY,0);
54 1 lcd_cmd_wr(SETX,0);
55 1 lcd_cmd_wr(DISPON,1);
C51 COMPILER V8.02 LCD12864 01/31/2009 14:04:30 PAGE 2
56 1 lcd_cmd_wr(DISPFIRST,1);
57 1 lcd_cmd_wr(SETY,1);
58 1 lcd_cmd_wr(SETX,1);
59 1 lcd12864_clr();
60 1 }
61
62 /*图片写入函数*/
63 void lcd12864_put_xywhb(unsigned char x,y,w,h,unsigned char *bmp)
64 {
65 1 unsigned char i,j;
66 1 h = h/8;
67 1 for(i=0;i<h;i++)
68 1 {
69 2 lcd_cmd_wr(SETY+y+i,0);
70 2 lcd_cmd_wr(SETX+x,0);
71 2 for(j=0;j<w-64;j++)
72 2 lcd_data_wr(bmp[128*i+j],0);
73 2
74 2 lcd_cmd_wr(SETY+y+i,1);
75 2 lcd_cmd_wr(SETX+x,1);
76 2 for(j=64;j<w;j++)
77 2 lcd_data_wr(bmp[128*i+j],1);
78 2 }
79 1 }//*
80
81 /*8x8点阵asci字符显示*/
82 void lcd12864_put_xystr(unsigned char x,y,n,unsigned char *str)
83 {
84 1 unsigned char i;
85 1 for(i=0;i<n;i++) {
86 2 if((x+i)>63) {
87 3 lcd_cmd_wr(SETY+y,1);
88 3 lcd_cmd_wr(SETX+x+i-64,1);
89 3 lcd_data_wr(str[i],1);
90 3 }
91 2 else {
92 3 lcd_cmd_wr(SETY+y,0);
93 3 lcd_cmd_wr(SETX+x+i,0);
94 3 lcd_data_wr(str[i],0);
95 3 }
96 2 }
97 1 }//*/
98
99 /*8x8点阵asci字符显示*/
100 void lcd12864_put_clr(unsigned char x,y,n)
101 {
102 1 unsigned char i;
103 1 for(i=0;i<n;i++) {
104 2 if((x+i)>63) {
105 3 lcd_cmd_wr(SETY+y,1);
106 3 lcd_cmd_wr(SETX+x+i-64,1);
107 3 lcd_data_wr(0,1);
108 3 }
109 2 else {
110 3 lcd_cmd_wr(SETY+y,0);
111 3 lcd_cmd_wr(SETX+x+i,0);
112 3 lcd_data_wr(0,0);
113 3 }
114 2 }
115 1 }//*/
116
C51 COMPILER V8.02 LCD12864 01/31/2009 14:04:30 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 626 ----
CONSTANT SIZE = ---- ----
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 + -