?? lcd12864-12.lst
字號:
C51 COMPILER V7.50 LCD12864_12 09/20/2008 15:21:10 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD12864_12
OBJECT MODULE PLACED IN lcd12864-12.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd12864-12.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "lcd12864-12.h"
2
3
4 //說明:清屏指令的執(zhí)行時間為1.6ms,其余指令的執(zhí)行時間為72us;
5
6
7
8 void LcdDelay(unsigned int num)
9 {
10 1 while(num--);
11 1 }
12
13 void LcdInit(void)
14 {
15 1 LcdWriteCmd(0x30); //0x30--基本指令操作
16 1 LcdWriteCmd(0x0c); //開顯示,關(guān)光標,不閃爍。
17 1 LcdClear(); //清除顯示
18 1 LcdWriteCmd(0x06); //指定在資料寫入或讀取時,光標的移動方向,DDRAM的地址計數(shù)器(AC)加1。
19 1 // LcdDrawClear(); //清空繪圖RAM
20 1 }
21
22 void LcdClear(void)
23 {
24 1 // LcdCheckBusy();
25 1 LCD_RS=0;
26 1 LCD_RW=0;
27 1 LCD_DATA=0x01;
28 1 LCD_E=1;
29 1 LcdDelay(80);
30 1 LCD_E=0;
31 1 LcdDelay(2500);//大于1.6ms
32 1 }
33
34 void LcdWriteCmd(unsigned char dictate)
35 {
36 1 // LcdCheckBusy();
37 1 LCD_RS=0;
38 1 LCD_RW=0;
39 1 LCD_DATA=dictate;
40 1 LcdDelay(96);
41 1 LCD_E=1;
42 1 LcdDelay(80);
43 1 LCD_E=0;
44 1 LcdDelay(140);
45 1 }
46
47 //向lcd控制芯片發(fā)送數(shù)據(jù)
48 void LcdWriteData(unsigned char datas)
49 {
50 1 // LcdCheckBusy();
51 1 LCD_RS=1;
52 1 LCD_RW=0;
53 1 LCD_DATA=datas;
54 1 LCD_E=1;
55 1 LcdDelay(80);
C51 COMPILER V7.50 LCD12864_12 09/20/2008 15:21:10 PAGE 2
56 1 LCD_E=0;
57 1 LcdDelay(140);
58 1 }
59
60 //顯示字符
61 void LcdShow(unsigned char x,unsigned char y,unsigned char *ASC_GB)
62 {
63 1 // LcdCheckBusy();
64 1 LcdSetCursor(x,y);
65 1 while(*ASC_GB)
66 1 {
67 2 LcdWriteData(*ASC_GB);
68 2 ASC_GB++;
69 2 }
70 1 }
71
72 void LcdSetCursor(unsigned char x,unsigned char y)
73 {
74 1 unsigned char xdata cursorPos[4][8]={{0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87},
75 1 {0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97},
76 1 {0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F},
77 1 {0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F}};
78 1 // LcdCheckBusy();
79 1 LcdWriteCmd(cursorPos[x][y]);
80 1 }
81
82 /*
83
84 void LcdSetState(bit bShowCursor,bit bReserverAndFlash)
85 {
86 unsigned char bdata cmd=0x0c;
87 if(bShowCursor)
88 cmd+=0x02;
89 if(bReserverAndFlash)
90 cmd+=0x01;
91 LcdWriteCmd(cmd);
92 }
93
94
95 void LcdSetCmdGather(bit isExtern)
96 {
97
98 unsigned char bdata cmd=0x32;
99 if(isExtern)
100 cmd+=0x04;
101 LcdWriteCmd(cmd);
102 }
103
104 void LcdCheckBusy()
105 {
106 LcdDelay(200);return;
107 unsigned char b;
108 P7=0xff;
109 LCD_RS=0;
110 LCD_RW=1;
111 while(1)
112 {
113 delay(100);
114 LCD_E=1;
115 delay(100);
116 b=P7&0x80;
117 if(b==0x00)
C51 COMPILER V7.50 LCD12864_12 09/20/2008 15:21:10 PAGE 3
118 {
119 LCD_E=0;
120 break;
121 }
122 }
123 }*/
124
125
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 189 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- 32
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -