📄 12864.lst
字号:
C51 COMPILER V7.50 12864 09/14/2007 08:15:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN .\12864.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE D:\Documents and Settings\hp\桌面\12864.c LARGE ROM(SMALL) BROWSE DEBUG OBJ
-ECTEXTEND PRINT(.\12864.lst) OBJECT(.\12864.obj)
line level source
1 #include <c8051f020.H>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 #define LCD_PORT P2
7 #define Left 1
8 #define Right 2
9 sbit LCD_Busy=P2^7;
10
11
12 sbit LCD_EN = P3^5;
13 sbit LCD_RS = P3^7;
14 sbit LCD_RW = P3^6;
15 sbit LCD_RST= P1^5;
16 sbit LCD_CS2= P1^6;
17 sbit LCD_CS1= P1^7;
18
19 uchar DisBuf[32],Page_Num,Clm_Num;
20
21 void Delay_us(unsigned int DelayTime)
22 {unsigned char i,j,k;
23 1 for(k=0;k<220;k++);
24 1 while(DelayTime) DelayTime--;
25 1 }
*** WARNING C280 IN LINE 22 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\12864.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 22 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\12864.C: 'j': unreferenced local variable
26
27 void Delay_x10ms(unsigned char DelayTime)
28 {
29 1 unsigned char i,j,k;
30 1 for(i=0;i<DelayTime;i++)
31 1 for(j=0;j<20;j++)
32 1 for(k=0;k<220;k++) {;}
33 1 }
34
35
36 void LCD_WriteCommand(uchar Command, uchar CS_Num)
37 {
38 1 LCD_Check_Busy();
*** WARNING C206 IN LINE 38 OF D:\DOCUMENTS AND SETTINGS\HP\桌面\12864.C: 'LCD_Check_Busy': missing function-prototype
39 1 if(CS_Num==1) /*选择左半屏*/
40 1 {
41 2 LCD_CS1 = 0;
42 2 LCD_CS2 = 1;
43 2 }
44 1 else if(CS_Num==2) /*选择右半屏*/
45 1 {
46 2 LCD_CS1 = 1;
47 2 LCD_CS2 = 0;
48 2 }
49 1 LCD_EN = 0; /* 使能信号为L */
50 1 LCD_RS = 0; /* 置寄存器选择为L */
51 1 LCD_RW = 0; /* 置读/写选择为L */
C51 COMPILER V7.50 12864 09/14/2007 08:15:33 PAGE 2
52 1 LCD_PORT = Command; /* 将控制指令代码输出到的数据端口 */
53 1 LCD_EN = 1; /* 使能信号为H */
54 1 Delay_us(1); /* 延时2us */
55 1 LCD_EN = 0; /* 使能信号为L */
56 1 LCD_CS1 = 0; /* 置片选1为L */
57 1 LCD_CS2 = 0; /* 置片选2为L */
58 1 }
59
60
61 /*----------------------------------------------------------------------------
62 下面这个函数用于向液晶模块写入显示数据。
63 函数入口参数:Data------ 向液晶模块写入的显示数据 。
64 CS_Num-------左右半屏的选数值
65 ----------------------------------------------------------------------------*/
66 void LCD_WriteData(uchar Data,uchar CS_Num)
67 {
68 1 LCD_Check_Busy();
69 1 if(CS_Num==1) /*选择左半屏*/
70 1 {
71 2 LCD_CS1 = 0;
72 2 LCD_CS2 = 1;
73 2 }
74 1 else if(CS_Num==2) /*选择右半屏*/
75 1 {
76 2 LCD_CS1 = 1;
77 2 LCD_CS2 = 0;
78 2 }
79 1 LCD_EN = 0;
80 1 LCD_RS = 1; /* 置寄存器选择为H */
81 1 LCD_RW = 0; /* 置读/写选择为L */
82 1 LCD_PORT = Data; /* 将显示数据输出到的数据端口 */
83 1 LCD_EN = 1; /* 使能信号为H */
84 1 Delay_us(1); /* 延时2us */
85 1 LCD_EN = 0; /* 使能信号为L */
86 1 LCD_CS1= 0; /* 置片选1为L */
87 1 LCD_CS2= 0; /* 置片选2为L */
88 1 }
89
90
91
92
93
94 /*---------------------------------------------------------------------------
95 下面这个函数用于液晶模块的清屏。
96 ---------------------------------------------------------------------------*/
97 void LCD_CLR(uchar Side_Num)
98 {
99 1 uchar i,k,COM;
100 1
101 1 for(i=0;i<8;i++)
102 1 {
103 2 COM=0xB8+i;
104 2 LCD_WriteCommand(COM,Side_Num);
105 2 COM=0x40;
106 2 LCD_WriteCommand(COM,Side_Num);
107 2
108 2 for(k=0;k<64;k++)
109 2 {
110 3 LCD_WriteData(0x00,Side_Num);
111 3 }
112 2 }
113 1 Delay_us(2);
C51 COMPILER V7.50 12864 09/14/2007 08:15:33 PAGE 3
114 1 }
115
116
117 /*---------------------------------------------------------------------------
118 下面这个函数用于向液晶模块初始化。
119 如果没有写完一个半屏的数据就要充分结合此函数来达到要显示的效果
120 ---------------------------------------------------------------------------*/
121 void LCD_Initial(void)
122 {
123 1 LCD_RST = 0; /* 置复位信号为低电平 */
124 1 Delay_us(2);
125 1 LCD_RST = 1; /* 置复位信号为高电平 */
126 1 LCD_WriteCommand(0x3F,Left); /*显示开*/
127 1 LCD_WriteCommand(0x3F,Right);
128 1 LCD_WriteCommand(0xC0,Left); /*起始行*/
129 1 LCD_WriteCommand(0xC0,Right);
130 1 LCD_WriteCommand(0xB8,Left); /*起始页*/
131 1 LCD_WriteCommand(0xB8,Right);
132 1 LCD_WriteCommand(0x40,Left); /*起始列*/
133 1 LCD_WriteCommand(0x40,Right);
134 1 }
135
136
137
138 /*---------------------------------------------------------------------------
139 下面这个函数为主函数,根据程序要实现的功能写相应的应用程序
140 ---------------------------------------------------------------------------*/
141 void main(void)
142 {
143 1 XBR2=0x40;
144 1 LCD_Initial();
145 1 Delay_x10ms(250);
146 1 LCD_CLR(Left);
147 1 LCD_CLR(Right);
148 1 LCD_WriteCommand(0xB8,Left);
149 1 LCD_WriteCommand(0x40,Left);
150 1 LCD_WriteData(0x01,1);
151 1
152 1 /*
153 1 LCD_Graph_Play(Table1,Left);
154 1 LCD_Graph_Play(Table2,Right);
155 1 LCD_Play(6,0,4,Table8,Left);
156 1 LCD_Play(6,0,4,Table9,Right);
157 1 Delay_x10ms(250);
158 1 Delay_x10ms(250);
159 1 Delay_x10ms(250);
160 1 Delay_x10ms(250);
161 1 LCD_Graph_Play(Table5,Left);
162 1 LCD_Graph_Play(Table5,Right);
163 1 LCD_Play(6,0,4,Table3,Left);
164 1 LCD_Play(6,0,4,Table4,Right);
165 1 Delay_x10ms(250);
166 1 Delay_x10ms(250);
167 1 Delay_x10ms(250);
168 1 Delay_x10ms(250);
169 1 LCD_Graph_Play(Table6,Left);
170 1 LCD_Graph_Play(Table7,Right);
171 1 Delay_x10ms(250);
172 1 Delay_x10ms(250);
173 1 Delay_x10ms(250);
174 1 Delay_x10ms(250); */
175 1 }
C51 COMPILER V7.50 12864 09/14/2007 08:15:33 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 326 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 34 9
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -