📄 lcm_drive.lst
字号:
C51 COMPILER V7.50 LCM_DRIVE 08/21/2007 11:05:02 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCM_DRIVE
OBJECT MODULE PLACED IN LCM_DRIVE.OBJ
COMPILER INVOKED BY: C:\Program Files\kei51\C51\BIN\C51.EXE LCM_DRIVE.c OPTIMIZE(2,SPEED) BROWSE INTVECTOR(0X8000) DEFIN
-E(MONITOR51) DEBUG OBJECTEXTEND
line level source
1 /***********************************************************************
2 * 文件名:LCM_DRIVE.C
3 * 功能:图形液晶TG12864B-2驱动程序。
4 * 说明:在LCM_DRIVE.H文件中定义了LCM操作地址,左半屏的写命令操作地址为2004H,写
5 * 数据操作地址为2005H,右半屏的写命令操作地址为2000H,写数据操作地址为2001H;
6 * 由于GRAPHICS.C中使用了disp_buf作为作图缓冲区,所以LCM_WriteByte()、LCM_
7 * DispFill()均要更新disp_buf。
8 ***********************************************************************/
9 #include "CONFIG.H"
10 uint8 xdata disp_buf[LCM_YMAX/8][LCM_XMAX];
11
12 /* LCM复位控制脚定义 */
13 sbit LCM_RST = P1^0;
14
15 /***********************************************************************
16 * 名称:LCM_Wr1Command()
17 * 功能:写命令子程序,所选屏为左半屏(CS1)。
18 * 入口参数:command 要写入LCM的命令字
19 ***********************************************************************/
20 #define LCM_Wr1Command(command) LCMCS1W_COM = command
21
22 /***********************************************************************
23 * 名称:LCM_Wr2Command()
24 * 功能:写命令子程序,所选屏为右半屏(CS2)。
25 * 入口参数:command 要写入LCM的命令字
26 ***********************************************************************/
27 #define LCM_Wr2Command(command) LCMCS2W_COM = command
28
29 /***********************************************************************
30 * 名称:LCM_Wr1Data()
31 * 功能:写数据子程序,所选屏为左半屏(CS1)。
32 * 入口参数:wrdata 要写入LCM的数据
33 ***********************************************************************/
34 #define LCM_Wr1Data(wrdata) LCMCS1W_DAT = wrdata
35
36 /***********************************************************************
37 * 名称:LCM_Wr2Data()
38 * 功能:写数据子程序,所选屏为右半屏(CS2)。
39 * 入口参数:wrdata 要写入LCM的数据
40 ***********************************************************************/
41 #define LCM_Wr2Data(wrdata) LCMCS2W_DAT = wrdata
42
43
44 /***********************************************************************
45 * 名称:LCM_DispIni()
46 * 功能:LCM显示初始化。使能显示,设置显示起始行为0并清屏。
47 * 入口参数:无
48 * 出口参数:无
49 ***********************************************************************/
50 void LCM_DispIni(void)
51 { uint16 i;
52 1
53 1 LCM_RST = 0; // 复位驱动芯片
54 1 for(i=0; i<500; i++);
C51 COMPILER V7.50 LCM_DRIVE 08/21/2007 11:05:02 PAGE 2
55 1 LCM_RST = 1;
56 1
57 1 LCM_Wr1Command(LCM_DISPON); // 打开显示
58 1 LCM_Wr1Command(LCM_STARTROW); // 设置显示起始行为0
59 1 LCM_Wr2Command(LCM_DISPON);
60 1 LCM_Wr2Command(LCM_STARTROW);
61 1 LCM_DispClr(); // 清屏
62 1
63 1 LCM_Wr1Command(LCM_ADDRSTRY+0); // 设置页(8个行)地址
64 1 LCM_Wr1Command(LCM_ADDRSTRX+0); // 设置列地址,即列
65 1 LCM_Wr2Command(LCM_ADDRSTRY+0);
66 1 LCM_Wr2Command(LCM_ADDRSTRX+0);
67 1 }
68
69 /***********************************************************************
70 * 名称:LCM_DispFill()
71 * 功能:向显示屏填充数据
72 * 入口参数:filldata 要写入LCM的填充数据
73 * 出口参数:无
74 * 说明:会更新disp_buf相应存储单元
75 ***********************************************************************/
76 void LCM_DispFill(uint8 filldata)
77 { uint8 x, y;
78 1
79 1 LCM_Wr1Command(LCM_STARTROW); // 设置显示起始行为0
80 1 LCM_Wr2Command(LCM_STARTROW);
81 1
82 1 for(y=0; y<8; y++)
83 1 { LCM_Wr1Command(LCM_ADDRSTRY+y); // 设置页(8个行)地址
84 2 LCM_Wr1Command(LCM_ADDRSTRX); // 设置列地址
85 2 LCM_Wr2Command(LCM_ADDRSTRY+y);
86 2 LCM_Wr2Command(LCM_ADDRSTRX);
87 2
88 2 for(x=0; x<64; x++)
89 2 { LCM_Wr1Data(filldata);
90 3 LCM_Wr2Data(filldata);
91 3 disp_buf[y][x] = filldata;
92 3 disp_buf[y][x+64] = filldata;
93 3 }
94 2 }
95 1 }
96
97
98 /* ASCII码对应的点阵数据表 */
99 uint8 code ASCII_TAB20[80] = { 0x00, 0x00, 0x00, 0x00, 0x00,
100 0x00, 0x00, 0x9e, 0x00, 0x00,
101 0x00, 0x0e, 0x00, 0x0e, 0x00,
102 0x28, 0xfe, 0x28, 0xfe, 0x28,
103 0x48, 0x54, 0xfe, 0x54, 0x24,
104 0x46, 0x26, 0x10, 0xc8, 0xc4,
105 0x6c, 0x92, 0xaa, 0x44, 0xa0,
106 0x00, 0x0a, 0x06, 0x00, 0x00,
107 0x00, 0x38, 0x44, 0x82, 0x00,
108 0x00, 0x82, 0x44, 0x38, 0x00,
109 0x28, 0x10, 0x7c, 0x10, 0x28,
110 0x10, 0x10, 0x7c, 0x10, 0x10,
111 0x00, 0xa0, 0x60, 0x00, 0x00,
112 0x10, 0x10, 0x10, 0x10, 0x10,
113 0x00, 0xc0, 0xc0, 0x00, 0x00,
114 0x40, 0x20, 0x10, 0x08, 0x04
115 };
116
C51 COMPILER V7.50 LCM_DRIVE 08/21/2007 11:05:02 PAGE 3
117 uint8 code ASCII_TAB30[80] = { 0x7C, 0xA2, 0x92, 0x8A, 0x7C, //'0'
118 0x00, 0x84, 0xFE, 0x80, 0x00, //'1'
119 /*
120 0x00, 0x84, 0xFE, 0x80, 0x00,对应1-5列
121 显示 ' 1 '
122 0 1 2 3 4 5 6 7
123 7 . . . . . . . .
124 6 . . . 1 . . . .
125 5 . . 1 1 . . . .
126 4 . . . 1 . . . .
127 3 . . . 1 . . . .
128 2 . . . 1 . . . .
129 1 . . . 1 . . . .
130 0 . . 1 1 1 . . .
131 */
132
133 0x84, 0xC2, 0xA2, 0x92, 0x8C, //'2'
134 0x42, 0x82, 0x8A, 0x96, 0x62, //'3'
135 0x30, 0x28, 0x24, 0xFE, 0x20, //'4'
136 0x4E, 0x8A, 0x8A, 0x8A, 0x72, //'5'
137 0x78, 0x94, 0x92, 0x92, 0x60, //'6'
138 0x02, 0xE2, 0x12, 0x0A, 0x06, //'7'
139 0x6C, 0x92, 0x92, 0x92, 0x6C, //'8'
140 0x0C, 0x92, 0x92, 0x52, 0x3C, //'9'
141 0x00, 0x6C, 0x6C, 0x00, 0x00,
142 0x00, 0xAC, 0x6C, 0x00, 0x00,
143 0x10, 0x28, 0x44, 0x82, 0x00,
144 0x28, 0x28, 0x28, 0x28, 0x28,
145 0x00, 0x82, 0x44, 0x28, 0x10,
146 0x04, 0x02, 0xA2, 0x12, 0x0C
147 };
148
149 uint8 code ASCII_TAB40[80] = { 0x64, 0x92, 0xF2, 0x82, 0x7C,
150 0xFC, 0x22, 0x22, 0x22, 0xFC,
151 0xFE, 0x92, 0x92, 0x92, 0x6C,
152 0x7C, 0x82, 0x82, 0x82, 0x44,
153 0xFE, 0x82, 0x82, 0x44, 0x38,
154 0xFE, 0x92, 0x92, 0x92, 0x82,
155 0xFE, 0x12, 0x12, 0x12, 0x02,
156 0x7C, 0x82, 0x92, 0x92, 0xF4,
157 0xFE, 0x10, 0x10, 0x10, 0xFE,
158 0x00, 0x82, 0xFE, 0x82, 0x00,
159 0x40, 0x80, 0x82, 0x7E, 0x02,
160 0xFE, 0x10, 0x28, 0x44, 0x82,
161 0xFE, 0x80, 0x80, 0x80, 0x80,
162 0xFE, 0x04, 0x18, 0x04, 0xFE,
163 0xFE, 0x08, 0x10, 0x20, 0xFE,
164 0x7C, 0x82, 0x82, 0x82, 0x7C
165 };
166
167 uint8 code ASCII_TAB50[80] = { 0xFE, 0x12, 0x12, 0x12, 0x0C,
168 0x7C, 0x82, 0xA2, 0x42, 0xBC,
169 0xFE, 0x12, 0x32, 0x52, 0x8C,
170 0x8C, 0x92, 0x92, 0x92, 0x62,
171 0x02, 0x02, 0xFE, 0x02, 0x02,
172 0x7E, 0x80, 0x80, 0x80, 0x7E,
173 0x3E, 0x40, 0x80, 0x40, 0x3E,
174 0x7E, 0x80, 0x70, 0x80, 0x7E,
175 0xC6, 0x28, 0x10, 0x28, 0xC6,
176 0x0E, 0x10, 0xE0, 0x10, 0x0E,
177 0xC2, 0xA2, 0x92, 0x8A, 0x86,
178 0x00, 0xFE, 0x82, 0x82, 0x00,
C51 COMPILER V7.50 LCM_DRIVE 08/21/2007 11:05:02 PAGE 4
179 0x04, 0x08, 0x10, 0x20, 0x40,
180 0x00, 0x82, 0x82, 0xFE, 0x00,
181 0x08, 0x04, 0x02, 0x04, 0x08,
182 0x80, 0x80, 0x80, 0x80, 0x80
183 };
184
185 uint8 code ASCII_TAB60[80] = { 0x00, 0x02, 0x04, 0x08, 0x00,
186 0x40, 0xA8, 0xA8, 0xA8, 0xF0,
187 0xFE, 0x90, 0x88, 0x88, 0x70,
188 0x70, 0x88, 0x88, 0x88, 0x40,
189 0x70, 0x88, 0x88, 0x90, 0xFE,
190 0x70, 0xA8, 0xA8, 0xA8, 0x30,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -