📄 12864字库.lst
字号:
154 2 X = 0x98;
155 2 }
156 1 else;
157 1 Y= X + Y;
158 1 lcdWriteCommand(Y);
159 1 while (*msg)
160 1 {
161 2 lcdWriteData(*msg++);
162 2 delayMs(speed);
163 2 }
164 1 }
165
166 /*===================================================*/
167 void DisplayOneChar(unsigned char X,unsigned char Y,unsigned int speed,unsigned char ddata1)
168 { if (X==0)
169 1 {
170 2 X = 0x80;
171 2 lcdWriteCommand(X);
172 2 }
173 1 else if (X==16)
174 1 {
175 2 X = 0x90;
176 2 lcdWriteCommand(X);
177 2 }
178 1 else if (X == 32)
C51 COMPILER V8.02 12864字库 08/10/2007 02:44:31 PAGE 4
179 1 {
180 2 X = 0x88;
181 2 lcdWriteCommand(X);
182 2 }
183 1 else if (X == 48)
184 1 {
185 2 X = 0x98;
186 2 lcdWriteCommand(X);
187 2 }
188 1 else;
189 1 Y= X + Y;
190 1
191 1 delayMs(speed);
192 1 lcdWriteData(ddata1);
193 1
194 1 }
195 //===============================================
196 /*===================================================*/
197 void backspace(void)
198 {
199 1
200 1 if(DisNum>=0&&DisNum<16)
201 1
202 1 {
203 2 if(DisNum%2!=0)
204 2 {
205 3 prindata[prnum]=0x20;
206 3 lcdWriteCommand(0x80+DisNum/2);
207 3 lcdWriteData(prindata[prnum-1]);
208 3 lcdWriteData(prindata[prnum]);
209 3 DisNum--;
210 3 }
211 2 else
212 2 {
213 3 prindata[prnum]=0x20;
214 3 lcdWriteCommand(0x80+DisNum/2);
215 3 lcdWriteData(prindata[prnum]);
216 3 prnum=prnum-1;
217 3 DisNum--;
218 3 }
219 2 }
220 1 else
221 1 if(DisNum>=16&&DisNum<32)
222 1 {
223 2 if(DisNum%2!=0)
224 2 {
225 3 prindata[prnum]=0x20;
226 3 lcdWriteCommand(0x90+DisNum/2);
227 3 lcdWriteData(prindata[prnum-1]);
228 3 lcdWriteData(prindata[prnum]);
229 3 prnum=prnum-1;
230 3 DisNum--;
231 3 }
232 2 else
233 2 {
234 3 prindata[prnum]=0x20;
235 3 lcdWriteCommand(0x90+DisNum/2);
236 3 lcdWriteData(prindata[prnum]);
237 3 prnum=prnum-1;
238 3 DisNum--;
239 3 }
240 2 }
C51 COMPILER V8.02 12864字库 08/10/2007 02:44:31 PAGE 5
241 1
242 1
243 1
244 1
245 1
246 1
247 1 }
248 //===============================================
249 void lcdClear (void)
250 {
251 1 lcdWriteCommand(0x01);
252 1 }
253 //===============================================
254 void lcdInit (void)
255 {
256 1 delayMs(40);
257 1 delayMs(1);
258 1 lcdWriteCommand(0x01);//清除显示
259 1 lcdWriteCommand(0x30);//30H--基本指令操作
260 1 lcdWriteCommand(0x0d);//开显示,关光标,不闪烁
261 1 lcdWriteCommand(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。
262 1
263 1 }
264 //===============================================
265 void delaySec (uchar sec)
266 {
267 1 uchar i;
268 1 while (--sec)
269 1 {
270 2 for (i = 0; i < 200; i++)
271 2 {
272 3 delayMs (6);
273 3 }
274 2 }
275 1 }
276
277 void main(void)
278 { init();//打印机初始化
279 1 lcdInit ();
280 1 DisplayListChar(0, 0, 1, " ");
281 1 DisplayListChar(1, 0, 1, " 海军工程大学 ");
282 1 DisplayListChar(2, 0, 100, "系统初始化 .....");
283 1 DisplayListChar(3, 0, 100, "................");
284 1 delaySec(6);
285 1 lcdClear();
286 1 IT1 = 0; //设外部中断1为低电平触发
287 1 EA = 1;
288 1 EX1 = 1; //开中断
289 1
290 1 do
291 1 {
292 2 if (BF) //bf0=0
293 2 Decode(KeyV);
294 2 else
295 2 EA = 1; //开中断
296 2 }
297 1 while(1);
298 1 }
299
300 void Keyboard_out(void) interrupt 2
301 {
302 1 if ((IntNum > 0) && (IntNum < 9)) //intnum0=0
C51 COMPILER V8.02 12864字库 08/10/2007 02:44:31 PAGE 6
303 1 {
304 2 KeyV = KeyV >> 1; //因键盘数据是低>>高,结合上一句所以右移一位
305 2 if (Key_Data) KeyV = KeyV | 0x80; //当键盘数据线为1时为1到最高位
306 2 }
307 1 IntNum++;
308 1 while (!Key_CLK); //等待PS/2CLK拉高
309 1
310 1 if (IntNum > 10)
311 1 {
312 2 IntNum = 0; //当中断11次后表示一帧数据收完,清变量准备下一次接收
313 2 BF = 1; //标识有字符输入完了
314 2 EA = 0; //关中断等显示完后再开中断 (注:如这里不用BF和关中断直接调Decode()则所Decode中所调用的所有函数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -