📄 lcd12864.lst
字号:
C51 COMPILER V8.02 LCD12864 01/26/2007 11:51:04 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 TABS(8)
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3
4
5 #define Dataport P0 //LCD数据线
6
7 sbit RS=P2^2; // 数据\指令 选择
8 sbit RW=P2^1; // 读\写 选择
9 sbit EN=P2^0; // 读\写使能
10 sbit cs1=P2^4; // 片选1
11 sbit cs2=P2^3; // 片选2
12
13 #define uint unsigned int
14 #define uchar unsigned uchar
15 /********************************/
16 /* 定义中文字库 */
17 /********************************/
18
19 unsigned char code Hzk[]={
20 /*-- 文字: 中 --*/
21 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
22 0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
23 0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
24
25 /*-- 文字: 国 --*/
26 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
27 0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
28 0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,
29
30 /*-- 文字: 人 --*/
31 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
32 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33 0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x01,0x06,0x0C,0x18,0x30,0x60,0x20,0x00,
34
35 /*-- 文字: 民 --*/
36 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
37 0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0xF2,0x92,0x92,0x92,0x9E,0x80,0x80,0x00,0x00,
38 0x00,0x00,0xFF,0x40,0x20,0x10,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0xF0,0x00,0x00,
39
40 /*-- 文字: 解 --*/
41 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
42 0x08,0xF4,0x57,0x54,0xFC,0x54,0xF0,0x42,0xA2,0x1E,0x02,0xA2,0x62,0x3E,0x00,0x00,
43 0x80,0x7F,0x02,0x02,0x5F,0x82,0x7F,0x0A,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x00,
44
45 /*-- 文字: 放 --*/
46 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
47 0x08,0x08,0xF8,0x49,0x4E,0xC8,0x88,0x40,0x38,0xCF,0x0A,0x08,0x88,0x78,0x08,0x00,
48 0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x40,0x20,0x10,0x0B,0x0E,0x31,0x60,0x20,0x00,
49
50 /*-- 文字: 军 --*/
51 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
52 0x00,0x18,0x26,0x22,0xA2,0x72,0x2E,0xAA,0x22,0x22,0x22,0x32,0x22,0x0A,0x06,0x00,
53 0x00,0x10,0x10,0x12,0x13,0x12,0x12,0xFF,0x12,0x12,0x12,0x13,0x12,0x18,0x10,0x00,
54
55 /*-- 文字: 第 --*/
C51 COMPILER V8.02 LCD12864 01/26/2007 11:51:04 PAGE 2
56 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
57 0x10,0x08,0x04,0xD3,0x56,0x5A,0x52,0x5A,0xF4,0x53,0x56,0x5A,0x72,0x02,0x02,0x00,
58 0x00,0x20,0x20,0x23,0x12,0x12,0x0A,0x06,0xFF,0x02,0x02,0x12,0x22,0x1E,0x00,0x00,
59
60 /*-- 文字: 三 --*/
61 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
62 0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
63 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
64
65 /*-- 文字: 三 --*/
66 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
67 0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
68 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
69
70 /*-- 文字: 零 --*/
71 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
72 0x00,0x0C,0x04,0x55,0x55,0x55,0x85,0x7F,0x85,0x55,0x55,0x55,0x05,0x0C,0x04,0x00,
73 0x04,0x04,0x04,0x0A,0x0A,0x09,0x2A,0xCC,0x28,0x19,0x09,0x02,0x06,0x02,0x02,0x00,
74
75 /*-- 文字: 三 --*/
76 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
77 0x00,0x04,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x04,0x00,0x00,
78 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
79
80 /*-- 文字: 工 --*/
81 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
82 0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
83 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
84
85 /*-- 文字: 厂 --*/
86 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
87 0x00,0x00,0xFE,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
88 0x40,0x30,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
89
90 /*-- 文字: 导 --*/
91 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
92 0x00,0x00,0x00,0x3E,0x4A,0x4A,0x4A,0x4A,0x4A,0x4A,0xCA,0x4E,0x40,0x70,0x00,0x00,
93 0x02,0x02,0x02,0x02,0x06,0x3A,0x12,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x00,
94
95 /*-- 文字: 弹 --*/
96 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
97 0x02,0xF2,0x12,0x12,0x1E,0x00,0xF9,0x2A,0x2C,0xF8,0x28,0x2C,0x2B,0xFA,0x00,0x00,
98 0x01,0x43,0x81,0x41,0x3F,0x08,0x0B,0x09,0x09,0xFF,0x09,0x09,0x09,0x0B,0x08,0x00,
99
100 /*-- 文字: 中 --*/
101 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
102 0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
103 0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,
104
105 /*-- 文字: 心 --*/
106 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
107 0x00,0x80,0x00,0x00,0xF0,0x00,0x01,0x02,0x1C,0x08,0x00,0x40,0x80,0x00,0x00,0x00,
108 0x04,0x03,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x40,0x40,0x78,0x00,0x07,0x02,0x00,
109
110 /*-- 文字: 胡 --*/
111 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
112 0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x08,0x00,0xFE,0x12,0x12,0x12,0xFE,0x00,0x00,
113 0x00,0x3F,0x10,0x10,0x10,0x10,0x7F,0x80,0x40,0x3F,0x01,0x41,0x81,0x7F,0x00,0x00,
114
115 /*-- 文字: 国 --*/
116 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
117 0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
C51 COMPILER V8.02 LCD12864 01/26/2007 11:51:04 PAGE 3
118 0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,
119
120 /*-- 文字: 平 --*/
121 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
122 0x00,0x01,0x05,0x09,0x71,0x21,0x01,0xFF,0x01,0x41,0x21,0x1D,0x09,0x01,0x00,0x00,
123 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
124
125 /*-- 文字: --*/
126 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
127 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
128 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
129
130 /*-- 文字: --*/
131 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
132 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
133 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
134
135 /*-- 文字: --*/
136 /*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
137 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
138 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
139 };
140
141
142 /****************************************/
143 /* 定义ASCII字库8列*16行 */
144 /****************************************/
145 unsigned char code Ezk[]={
146
147 /*-- 文字: Q --*/
148 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
149 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,
150
151 /*-- 文字: Q --*/
152 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
153 0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,
154
155 /*-- 文字: 1 --*/
156 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
157 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
158
159 /*-- 文字: 3 --*/
160 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
161 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
162
163 /*-- 文字: 0 --*/
164 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
165 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
166
167 /*-- 文字: 8 --*/
168 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
169 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
170
171 /*-- 文字: 1 --*/
172 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
173 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
174
175 /*-- 文字: 3 --*/
176 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
177 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
178
179 /*-- 文字: 0 --*/
C51 COMPILER V8.02 LCD12864 01/26/2007 11:51:04 PAGE 4
180 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
181 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
182
183 /*-- 文字: 4 --*/
184 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
185 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
186
187 /*-- 文字: --*/
188 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
189 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
190
191 /*-- 文字: --*/
192 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
193 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
194
195 /*-- 文字: --*/
196 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
197 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
198
199 /*-- 文字: --*/
200 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
201 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
202
203 /*-- 文字: --*/
204 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
205 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
206
207 /*-- 文字: --*/
208 /*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
209 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
210
211
212
213 };
214
215
216 void CheckState() //状态检查,LCD是否忙?
217 {
218 1 unsigned char dat;
219 1 RS=0;
220 1 RW=1;
221 1 do{
222 2 Dataport=0x00;
223 2 EN=1;
224 2 dat=Dataport;
225 2 EN=0;
226 2 dat=0x80 & dat; //仅当第7位为0时才可操作(判别busy信号)
227 2 }while(!(dat==0x00));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -