📄 main.lst
字号:
C51 COMPILER V7.10 MAIN 11/19/2006 16:44:31 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2
3 //----------------引脚配置
4 sbit E=P2^0; //(SCLK)
5 sbit RW=P2^1; //(SID)
6 sbit RS=P2^2; //(CS)
7
8
9 //-----------------延时参数
10 void Delay(unsigned char t)
11 {unsigned int a;
12 1 while(t--)
13 1 {for(a=1;a<2000;a++);
14 2 }
15 1 }
16
17
18 //-----------------写数据
19 void WriteData(unsigned char DB)
20 {unsigned char i,temp;
21 1 RS=1;
22 1 RW=1;
23 1 E=0;
24 1 E=1; //-1
25 1 E=0;
26 1 E=1; //-2
27 1 E=0;
28 1 E=1; //-3
29 1 E=0;
30 1 E=1; //-4
31 1 E=0;
32 1 E=1; //-5
33 1 E=0;
34 1 RW=0;
35 1 E=1; //-6
36 1 E=0;
37 1 RW=1;
38 1 E=1; //-7
39 1 E=0;
40 1 RW=0;
41 1 E=1; //-8
42 1 E=0;
43 1 temp=DB;
44 1 for(i=0;i<4;i++)
45 1 {temp=temp&0x80;
46 2 if(temp==0x80)
47 2 {RW=1;
48 3 E=1;
49 3 E=0;
50 3 }
51 2 else
52 2 {RW=0;
53 3 E=1;
54 3 E=0;
55 3 }
C51 COMPILER V7.10 MAIN 11/19/2006 16:44:31 PAGE 2
56 2 DB=DB<<1;
57 2 temp=DB;
58 2 }
59 1
60 1 RW=0;
61 1 E=1; //-1
62 1 E=0;
63 1 E=1; //-2
64 1 E=0;
65 1 E=1; //-3
66 1 E=0;
67 1 E=1; //-4
68 1 E=0;
69 1
70 1 temp=DB;
71 1 for(i=0;i<4;i++)
72 1 {temp=temp&0x80;
73 2 if(temp==0x80)
74 2 {RW=1;
75 3 E=1;
76 3 E=0;
77 3 }
78 2 else
79 2 {RW=0;
80 3 E=1;
81 3 E=0;
82 3 }
83 2 DB=DB<<1;
84 2 temp=DB;
85 2 }
86 1
87 1 RW=0;
88 1 E=1; //-1
89 1 E=0;
90 1 E=1; //-2
91 1 E=0;
92 1 E=1; //-3
93 1 E=0;
94 1 E=1; //-4
95 1 E=0;
96 1 RS=1;
97 1 Delay(1);
98 1 }
99
100 //--------------------写命名
101 void WriteCMD(unsigned char DB)
102 {unsigned char i,temp;
103 1 RS=1;
104 1 RW=1;
105 1 E=0;
106 1 E=1; //-1
107 1 E=0;
108 1 E=1; //-2
109 1 E=0;
110 1 E=1; //-3
111 1 E=0;
112 1 E=1; //-4
113 1 E=0;
114 1 E=1; //-5
115 1 E=0;
116 1 RW=0;
117 1 E=1; //-6
C51 COMPILER V7.10 MAIN 11/19/2006 16:44:31 PAGE 3
118 1 E=0;
119 1 E=1; //-7
120 1 E=0;
121 1 E=1; //-8
122 1 E=0;
123 1
124 1 temp=DB;
125 1 for(i=0;i<4;i++)
126 1 {temp=temp&0x80;
127 2 if(temp==0x80)
128 2 {RW=1;
129 3 E=1;
130 3 E=0;
131 3 }
132 2 else
133 2 {RW=0;
134 3 E=1;
135 3 E=0;
136 3 }
137 2 DB=DB<<1;
138 2 temp=DB;
139 2 }
140 1
141 1 RW=0;
142 1 E=1; //-1
143 1 E=0;
144 1 E=1; //-2
145 1 E=0;
146 1 E=1; //-3
147 1 E=0;
148 1 E=1; //-4
149 1 E=0;
150 1
151 1 temp=DB;
152 1 for(i=0;i<4;i++)
153 1 {temp=temp&0x80;
154 2 if(temp==0x80)
155 2 {RW=1;
156 3 E=1;
157 3 E=0;
158 3 }
159 2 else
160 2 {RW=0;
161 3 E=1;
162 3 E=0;
163 3 }
164 2 DB=DB<<1;
165 2 temp=DB;
166 2 }
167 1
168 1 RW=0;
169 1 E=1; //-1
170 1 E=0;
171 1 E=1; //-2
172 1 E=0;
173 1 E=1; //-3
174 1 E=0;
175 1 E=1; //-4
176 1 E=0;
177 1 RS=1;
178 1 Delay(1);
179 1
C51 COMPILER V7.10 MAIN 11/19/2006 16:44:31 PAGE 4
180 1 }
181
182 /**********************************************
183 函数名:LCD_AT(unsigned char AC)
184 功能:定义字显示位置
185 入口参数:AC (为1,2,3,4)显示行位置
186 出口参数:无
187 **********************************************/
188 void LCD_At(unsigned char AC)
189 {if(AC==1)
190 1 WriteCMD(0x80);
191 1 if(AC==2)
192 1 WriteCMD(0x90);
193 1 if(AC==3)
194 1 WriteCMD(0x88);
195 1 if(AC==4)
196 1 WriteCMD(0x98);
197 1 }
198
199 /*********************************************
200 函数名:LCD_Ini()
201 功能:12864初始化
202 入口参数:无
203 出口参数:无
204 *********************************************/
205 void LCD_Ini()
206 {Delay(20);
207 1 WriteCMD(0x30);
208 1 Delay(5);
209 1 WriteCMD(0x30); //function set
210 1 Delay(1);
211 1 WriteCMD(0x08); //display off
212 1 Delay(1);
213 1 WriteCMD(0x01); //display clear
214 1 Delay(1);
215 1 WriteCMD(0x03); //entry mode set
216 1 Delay(1);
217 1 WriteCMD(0x40); //set AC
218 1 Delay(1);
219 1 WriteCMD(0x0c); //display on
220 1 Delay(1);
221 1 }
222
223
224 /*****************************************
225 函数名:LCD_Printf(char *GB)
226 功能:显示中文字符串
227 入口参数:*GB 字符串指针
228 出口参数:无
229 *****************************************/
230 void LCD_Printf(char *GB) //显示字符串
231 {for(;*GB != 0;GB++)
232 1 {WriteData(*GB);
233 2 }
234 1 }
235
236
237 /*****************************************
238 函数名:LCD_To(unsigned char Y,unsigned char X)
239 功能:字符定位
240 入口参数:Y,X位置参数,Y行参数,X列参数
241 出口参数:无
C51 COMPILER V7.10 MAIN 11/19/2006 16:44:31 PAGE 5
242 *****************************************/
243 void LCD_To(unsigned char Y,unsigned char X) //定位
244 {unsigned char at;
245 1 if(Y>5) return;
246 1 if(X>9) return;
247 1 if(Y==1) at=0x80+X;
248 1 if(Y==2) at=0x90+X;
249 1 if(Y==3) at=0x88+X;
250 1 if(Y==4) at=0x98+X;
251 1 WriteCMD(at);
252 1
253 1 }
254
255
256 /*****************************************
257 函数名:LCD_Print(unsigned char Y,unsigned char X,char *TXT)
258 功能:字符串定位显示
259 入口参数:Y,X位置参数,Y行参数,X列参数,*TXT显示字符串
260 出口参数:无
261 *****************************************/
262 void LCD_Print(unsigned char Y,unsigned char X,char *TXT) //定位显示字符串
263 {LCD_To(Y,X);
264 1 for(;*TXT != 0;TXT++)
265 1 {WriteData(*TXT);
266 2 }
267 1 }
268
269
270 void main(void)
271 {LCD_Ini();
272 1 while(1)
273 1 {LCD_At(2);
274 2 LCD_Printf("你好吗我的爱人");
275 2 }
276 1 }
277
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 525 ----
CONSTANT SIZE = 15 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -