📄 lcd.lst
字号:
226 1 LCD_objectSendByte4(0x2CC0);
227 1 LCD_objectSendByte4(0x68F0);
228 1 LCD_objectSendByte4(0);
229 1 CLEAR_LCD_STROBE;
230 1
231 1 LCD_objectSendByte1(0x42); /* Address */
232 1 SET_LCD_STROBE; /* CE */
233 1
234 1 LCD_objectSendByte4(0x0B04);
235 1 LCD_objectSendByte4(0x0FC0);
236 1 LCD_objectSendByte4(0);
237 1 LCD_objectSendByte4(0x8000);
238 1 CLEAR_LCD_STROBE;
239 1
240 1 LCD_objectSendByte1(0x42); /* Address */
241 1 SET_LCD_STROBE; /* CE */
242 1
243 1 LCD_objectSendByte4(0xFA00);
244 1 LCD_objectSendByte4(0x04DC);
245 1 LCD_objectSendByte4(0);
246 1 LCD_objectSendByte4(0x4000);
247 1 CLEAR_LCD_STROBE;
248 1 CLEAR_LCD_DATA;
249 1
250 1 }
251
252
253 void updateDisplay_Char(void)
254 {
255 1 unsigned char Char_4 = 0;
256 1 unsigned char Char_5 = 0;
257 1 unsigned char Char_6 = 0;
258 1 unsigned char Char_7 = 0;
259 1 unsigned char Char_8 = 0;
260 1 unsigned char Char_9 = 0;
261 1 unsigned char Char_10 = 0;
262 1
263 1 if(Display_Char == 0xBDCAA){ /*MEMORY*/
264 2 Char_9 = Chanel/10;
265 2 Char_10 = Chanel%10;
266 2 } else {
267 2 Char_9 = 10;
268 2 Char_10 = 10;
269 2 }
270 1
271 1 if(Display_Char == 0xE0BAA){ /*VOLUME*/
272 2 Char_9 = volume_level/10;
273 2 Char_10 = volume_level%10;
274 2 } else {
275 2 Char_9 = 10;
276 2 Char_10 = 10;
277 2 }
278 1
279 1 Char_8 = Display_Char & 0x0F;
280 1 Display_Char >>=4;
281 1 Char_7 = Display_Char & 0x0F;
282 1 Display_Char >>=4;
283 1 Char_6 = Display_Char & 0x0F;
284 1 Display_Char >>=4;
285 1 Char_5 = Display_Char & 0x0F;
286 1 Display_Char >>=4;
C51 COMPILER V6.23a LCD 08/20/2002 17:07:42 PAGE 6
287 1 Char_4 = Display_Char & 0x0F;
288 1 Display_Char >>=4;
289 1
290 1
291 1 SET_LCD_DOUT;
292 1 CLEAR_LCD_STROBE;
293 1 CLEAR_LCD_DATA;
294 1 SET_LCD_CLK;
295 1
296 1
297 1 CLEAR_LCD_STROBE;
298 1 LCD_objectSendByte1(0x42);
299 1 SET_LCD_STROBE;
300 1
301 1 LCD_objectSendByte4(0);
302 1 LCD_objectSendByte4(seg4_char[Char_4]);
303 1 LCD_objectSendByte4(seg5_char[Char_5] | seg6_char_H[Char_6]);
304 1 LCD_objectSendByte4(0);
305 1 CLEAR_LCD_STROBE;
306 1
307 1 LCD_objectSendByte1(0x42);
308 1 SET_LCD_STROBE;
309 1
310 1 LCD_objectSendByte4(seg6_char_L[Char_6] | seg7_char[Char_7]);
311 1 LCD_objectSendByte4(seg8_char[Char_8]);
312 1 LCD_objectSendByte4(seg9_char[Char_9] | seg10_char_H[Char_10]);
313 1 LCD_objectSendByte4(0x8000);
314 1 CLEAR_LCD_STROBE;
315 1
316 1 LCD_objectSendByte1(0x42);
317 1 SET_LCD_STROBE;
318 1
319 1 LCD_objectSendByte4(seg10_char_L[Char_10]);
320 1 LCD_objectSendByte4(0);
321 1 LCD_objectSendByte4(0);
322 1 LCD_objectSendByte4(0x4000);
323 1 CLEAR_LCD_STROBE;
324 1 CLEAR_LCD_DATA;
325 1
326 1 }
327
328
329
330 void LCD_objectSendByte1(unsigned char SendByte)
331 {
332 1 unsigned char i;
333 1
334 1 for (i = 0; i < 8; i++) {
335 2 if (SendByte & 0x01) {
336 3 SET_LCD_DATA;
337 3 } else {
338 3 CLEAR_LCD_DATA;
339 3 }
340 2
341 2 CLEAR_LCD_CLK;
342 2 CLEAR_LCD_CLK;
343 2 SendByte >>= 1;
344 2 SET_LCD_CLK;
345 2
346 2 }
347 1 }
348
C51 COMPILER V6.23a LCD 08/20/2002 17:07:42 PAGE 7
349
350
351 void LCD_objectSendByte4(unsigned int dispdata)
352 {
353 1 unsigned int i;
354 1
355 1 dispdata >>= 2;
356 1 for (i = 0; i < 14; i++){
357 2 if (dispdata & 0x01) {
358 3 SET_LCD_DATA;
359 3 } else {
360 3 CLEAR_LCD_DATA;
361 3 }
362 2
363 2 CLEAR_LCD_CLK;
364 2 dispdata >>= 1;
365 2 SET_LCD_CLK;
366 2 }
367 1
368 1 }
369
370
371
372
373 unsigned char Read_key(void)
374 {
375 1 unsigned char i;
376 1 unsigned long key_value = 0;
377 1
378 1 if(LCD_DOUT) return 0;
379 1
380 1 CLEAR_LCD_STROBE;
381 1 LCD_objectSendByte1(0x43); /* Address */
382 1
383 1 SET_LCD_STROBE;
384 1 CLEAR_LCD_CLK;
385 1
386 1 for (i = 0; i < 32; i++)
387 1 {
388 2 key_value >>=1;
389 2
390 2 SET_LCD_CLK;
391 2 if(LCD_DOUT){
392 3 key_value |= 0x80000000;
393 3 }
394 2
395 2 CLEAR_LCD_CLK;
396 2 }
397 1
398 1 CLEAR_LCD_STROBE;
399 1 SET_LCD_DOUT;
400 1
401 1
402 1 key_value |= 0x302013;
403 1
404 1 if((key_value & 0x0000FF) != 0x000013){
405 2 KeyData = key_value & 0xFF;
406 2
407 2 } else if((key_value & 0x00FF00) != 0x002000){
408 2 key_value >>= 8;
409 2 KeyData = key_value & 0xFF;
410 2
C51 COMPILER V6.23a LCD 08/20/2002 17:07:42 PAGE 8
411 2 } else if((key_value & 0xFF0000) != 0x300000){
412 2 key_value >>= 16;
413 2 KeyData = key_value & 0xFF; /* jy add & chang */
414 2 }
415 1
416 1
417 1 if(timer2 == 0) Old_key = 0;
418 1
419 1 if(KeyData == Old_key){
420 2 return 0;
421 2 } else {
422 2 Old_key = KeyData;
423 2 return KeyData;
424 2 }
425 1
426 1 }
427
428
429 #if 0
void LCD_Turn_char(void)
{
CLEAR_LCD_STROBE; /* CE */
LCD_objectSendByte1(0x42); /* Address */
SET_LCD_STROBE; /* CE */
LCD_objectSendByte4(0);
LCD_objectSendByte4(0);
LCD_objectSendByte4(0);
LCD_objectSendByte4(0);
CLEAR_LCD_STROBE;
LCD_objectSendByte1(0x42); /* Address */
SET_LCD_STROBE; /* CE */
LCD_objectSendByte4(0);
LCD_objectSendByte4(0);
LCD_objectSendByte4(0);
LCD_objectSendByte4(0x8000);
CLEAR_LCD_STROBE;
LCD_objectSendByte1(0x42); /* Address */
SET_LCD_STROBE; /* CE */
LCD_objectSendByte4(turn_char[_timer0]);
LCD_objectSendByte4(0);
LCD_objectSendByte4(0);
LCD_objectSendByte4(0x4000);
CLEAR_LCD_STROBE;
//CLEAR_LCD_DOUT;
}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1622 ----
CONSTANT SIZE = 316 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 14
IDATA SIZE = 6 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V6.23a LCD 08/20/2002 17:07:42 PAGE 9
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -