pca_lcd.lst
来自「c8051f020单片机的例程」· LST 代码 · 共 322 行 · 第 1/2 页
LST
322 行
148 1 unsigned char *lcdpoint; //指向 lcddata数组的指针
149 1
150 1 LCD_Init(); //LCD初始化
151 1 P2 = 0xA0; //准备送数据
152 1 delay(5000);
153 1 lcdpoint=&onedata; //取地址
154 1 for(i=0;i<16;i++) //显示第一行字符
155 1 {
156 2 lcddata=*lcdpoint; //读出数据
157 2 P7 = lcddata; //写数据到端口
158 2 P2 = 0X20;
159 2 P2 = 0XA0; //控制LCD写数据
160 2 lcdpoint++;
161 2 delay(5000); //13ms,控制每个字符显示的时间
162 2 }
163 1
164 1 if(f>=1000) //1k
165 1 {
166 2 b=f;
167 2
168 2 c[0]=b/10000000;temp=b-c[0]*10000000;c[0]|=0x30;
169 2 c[1]=temp/1000000;temp=temp-c[1]*1000000;c[1]|=0x30;
170 2 c[2]=temp/100000;temp=temp-c[2]*100000;c[2]|=0x30;
171 2 c[3]=temp/10000;temp=temp-c[3]*10000;c[3]|=0x30;
172 2 c[4]=temp/1000;temp=temp-c[4]*1000;c[4]|=0x30;
173 2 c[5]=temp/100;temp=temp-c[5]*100;c[5]|=0x30;
174 2 c[6]=temp/10;temp=temp-c[6]*10;c[6]|=0x30;
175 2 c[7]=temp;c[7]|=0x30;
176 2 }
177 1
178 1 if(f<1000)
C51 COMPILER V7.20 PCA_LCD 09/14/2008 19:58:08 PAGE 4
179 1 {
180 2 b1=(int)f;
181 2 b2=(int)((f-b1)*1000);
182 2 d[0]=b1/100;temp=b1-d[0]*100;d[0]|=0x30;
183 2 d[1]=temp/10;temp=temp-d[1]*10;d[1]|=0x30;
184 2 d[2]=temp;d[2]|=0x30;
185 2
186 2 d[3]=b2/100;temp=b2-d[3]*100;d[3]|=0x30;
187 2 d[4]=temp/10;temp=temp-d[4]*10;d[4]|=0x30;
188 2 d[5]=temp;d[5]|=0x30;
189 2 }
190 1
191 1 if(f>=10000000) //>=10M
192 1 {
193 2 twodata[6]=c[0]; twodata[7]=c[1]; twodata[8]='.';twodata[9]=c[2];twodata[10]=c[3];
194 2 twodata[11]=c[4];twodata[12]=' '; twodata[13]='M';twodata[14]='H';twodata[15]='z';//送到第二行数组里
-
195 2 }
196 1
197 1 if(f>=1000000&&f<10000000) //1M<=F<10M
198 1 {
199 2 twodata[6]=' '; twodata[7]=c[1]; twodata[8]='.';twodata[9]=c[2];twodata[10]=c[3];
200 2 twodata[11]=c[4];twodata[12]=' '; twodata[13]='M';twodata[14]='H';twodata[15]='z';//送到第二行数组里
-
201 2 }
202 1
203 1 if(f>=100000&&f<1000000) //100K<=F<1M
204 1 {
205 2 twodata[5]=c[2];twodata[6]=c[3]; twodata[7]=c[4]; twodata[8]='.';twodata[9]=c[5];twodata[10]=c[6
-];
206 2 twodata[11]=c[7];twodata[12]=' '; twodata[13]='K';twodata[14]='H';twodata[15]='z';//送到第二行数组里
207 2 }
208 1
209 1 if(f>=10000&&f<100000) //10K<=F<100K
210 1 {
211 2 twodata[5]=' ';twodata[6]=c[3]; twodata[7]=c[4]; twodata[8]='.';twodata[9]=c[5];twodata[10]=c[6]
-;
212 2 twodata[11]=c[7];twodata[12]=' '; twodata[13]='K';twodata[14]='H';twodata[15]='z';//送到第二行数组里
213 2 }
214 1 if(f>=1000&&f<10000) //1K<=F<10K
215 1 {
216 2 twodata[5]=' ';twodata[6]=' '; twodata[7]=c[4]; twodata[8]='.';twodata[9]=c[5];twodata[10]=c[6];
217 2 twodata[11]=c[7];twodata[12]=' '; twodata[13]='K';twodata[14]='H';twodata[15]='z';//送到第二行数组里
218 2 }
219 1
220 1 if(f>=100&&f<1000) //100<=F<1K
221 1 {
222 2 twodata[5]=' ';twodata[6]=d[0]; twodata[7]=d[1];twodata[8]=d[2];twodata[9]='.';twodata[10]=d[3];
223 2 twodata[11]=d[4]; twodata[12]=d[5];twodata[13]=' ';twodata[14]='H';twodata[15]='z';//送到第二行数组里
224 2 }
225 1
226 1 if(f>=10&&f<100) //10<=F<100
227 1 {
228 2 twodata[5]=' ';twodata[6]=' '; twodata[7]=d[1];twodata[8]=d[2];twodata[9]='.';twodata[10]=d[3];
229 2 twodata[11]=d[4]; twodata[12]=d[5];twodata[13]=' ';twodata[14]='H';twodata[15]='z';//送到第二行数组里
230 2 }
231 1
232 1 if(f<10) //F<10
233 1 {
234 2 twodata[5]=' ';twodata[6]=' '; twodata[7]=' ';twodata[8]=d[2];twodata[9]='.';twodata[10]=d[3];
235 2 twodata[11]=d[4]; twodata[12]=d[5];twodata[13]=' ';twodata[14]='H';twodata[15]='z';//送到第二行数组里
236 2 }
C51 COMPILER V7.20 PCA_LCD 09/14/2008 19:58:08 PAGE 5
237 1
238 1
239 1 P2 = 0x80;
240 1 P7 = 0xc0;
241 1 P2 = 0x00;
242 1 P2 = 0x80;
243 1 delay(1000);
244 1 lcdpoint=&twodata;
245 1 for(i=0;i<16;i++) //显示第二行字符
246 1 {
247 2 lcddata=*lcdpoint;
248 2 P7 = lcddata;
249 2 P2 = 0xA0; //修改后的LCD程序
250 2 P2 = 0x20;
251 2 lcdpoint++;
252 2 delay(5000);
253 2 }
254 1
255 1 }
256
257
258 //---LCD初始化----------------------------------------
259 void LCD_Init(void)
260 {
261 1 P2 = 0X80;
262 1 delay(5000); //delay(50000);
263 1
264 1 //P7 = 0x30; //一行显示
265 1 //LCD_BUSY();
266 1 P7 = 0x38; //两行显示
267 1 P2 = 0X00;//0x08;
268 1 P2 = 0X80;//0x09;
269 1 delay(1000);
270 1
271 1 P7 = 0x0e;
272 1 P2 = 0x00;
273 1 P2 = 0x80;
274 1 delay(1000);
275 1
276 1 P7 = 0x06;
277 1 P2 = 0x00;
278 1 P2 = 0x80;
279 1 delay(5000);
280 1
281 1 P7 = 0x01;
282 1 P2 = 0x00;
283 1 P2 = 0x80;
284 1 delay(5000);
285 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2032 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- 32
PDATA SIZE = ---- ----
DATA SIZE = 17 39
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?