📄 text2.lst
字号:
216 1 while(lcd_busy()); //等待空闲
217 1 lcd_bus=lcddata; //在下沿的时候写数据
218 1 rs=1;
219 1 rw=0;
220 1 _nop_();
221 1 e=1;
222 1 _nop_();
223 1 _nop_();
224 1 e=0;
225 1 //lcd_bus=0xff;
226 1 }
227
228
229 /************液晶的清屏************/
230 void lcd_clear(void)
231 {
232 1 lcd_wrcmd(0x01); //液晶清屏控制字 并延时>40us
233 1 delay(100);
234 1 }
235
236 /***********1602液晶的初始化***************/
237 void lcd_init(void)
238 {
239 1 lcd_wrcmd(0x38); //功能设置-----8位数据接口,两行显示,5*7点阵字符显示
240 1 delay(100);
C51 COMPILER V7.20 TEXT2 07/20/2007 10:39:41 PAGE 5
241 1 lcd_wrcmd(0x0c); //显示开关控制----显示开关开,光标开关关,闪烁开关关
242 1 delay(100);
243 1 lcd_wrcmd(0x06); //输入方式设置,AC自增1, S=0;
244 1 delay(100);
245 1 lcd_wrcmd(0x01); //清屏
246 1 delay(100);
247 1 }
248
249
250 /**********4*4矩阵键盘****************/
251 /************
252 矩阵键盘
253 D---------P1.0
254 C---------P1.1
255 B---------P1.2
256 A---------P1.3
257 1---------P1.4
258 2---------P1.5
259 3---------P1.6
260 4---------P1.7
261 按键值的分布
262 D C B A
263 1〔15 14 13 12〕
264 2〔11 10 9 8〕
265 3〔 7 6 5 4〕
266 4〔 3 2 1 0〕
267 利用已有的那个按键程序
268 *************/
269 /*
270 uchar getkey_ii()
271 {
272 unsigned char keycode=0xff,temp,i;
273 P1=0x0f;
274 temp=P1&0x0f;
275 if(temp!=0x0f) //有键按下
276 {
277 // beep=0;
278 P1=0x7f;
279 for(i=0;i<4;i++)
280 {
281 temp=P1&0x0f;
282 if(temp==0x07)
283 {
284 keycode=i*4;
285 break;
286 }
287 else if(temp==0x0b)
288 {
289 keycode=i*4+1;
290 break;
291 }
292 else if(temp==0x0d)
293 {
294 keycode=i*4+2;
295 break;
296 }
297 else if(temp==0x0e)
298 {
299 keycode=i*4+3;
300 break;
301 }
302 P1=(P1>>1)|0x80;
C51 COMPILER V7.20 TEXT2 07/20/2007 10:39:41 PAGE 6
303 }
304
305 while((P1&0x0f)!=0x0f) {P1=0x0f; } //等待释放
306 // beep=1;
307
308 }
309 return keycode;
310 }
311
312 */
313
314 /************单个读键****************/
315
316 //没有按键时返回键值0;
317 //
318 //P2.3 P2.2 P2.1 P2.0
319 // 1 2 3 4
320
321 /*
322 unsigned char getkey()
323 {
324 unsigned char k,tem,keytem;
325 keytem=0;
326 tem=P2&0x0f;
327 if(tem!=0x0f)
328 {
329 for(k=0;k<10;k++) delay(250); //加延时防抖
330 tem=P2&0x0f;
331 if(tem!=0x0f)
332 { if(tem==0x07) keytem=1; // 按下去的键对应的位是0;
333 else if(tem==0x0b) keytem=2;
334 else if(tem==0x0d) keytem=3;
335 else if(tem==0x0e) keytem=4;
336 }
337 }
338 while(tem!=0x0f) tem=P2 & 0x0f; //等待按键释放
339 return(keytem);
340 }
341
342 */
343
344
345 /************无线键盘4*4****************/
346 //无线键盘的四个译码输出口从低到高依次对应于P1口的低四位
347 //下面是无线键盘的键值分布
348 // 8 4 2 1 码输出;
349 // 返回的直接就是键值 (很好用)
350
351 /*
352 uchar getkey_juzhen()
353 {
354 unsigned char keytem=0,k,tem;
355 tem=P1&0x0f;
356 for(k=0;k<10;k++) delay(100); //加延时防抖
357 tem=P1&0x0f;
358 keytem=tem;
359 while((tem=P1&0x0f)!=0); //等待按键释放
360 return(keytem);
361 }
362
363 */
364
C51 COMPILER V7.20 TEXT2 07/20/2007 10:39:41 PAGE 7
365
366 /*
367 main()
368 {
369 uchar result;
370 result=adc_tlc0838(0);
371 while(1);
372 }
373 */
374
375
376 void main()
377 {
378 1 unsigned int result,result1;
379 1 unsigned char i;
380 1 unsigned int t;
381 1 unsigned char str0[]="System of P.H.Y";
382 1 unsigned char str1[]=" 2005/7/28";
383 1 unsigned char str2[]=" 20:27";
384 1 unsigned char str3[]="v";
385 1 unsigned char str4[]=".";
386 1 unsigned char kk=0x80;
387 1 // unsigned char key;
388 1 unsigned int count1=10;
389 1 unsigned int count2=297;
390 1 delay(2);
391 1
392 1 lcd_bus=0xff;
393 1 lcd_init();
394 1 lcd_wrcmd(kk+0x00);
395 1 for(i=0;i<15;i++) lcd_wrdata(str0[i]);
396 1 for(t=0;t<1000;t++) delay(250);
397 1 lcd_clear();
398 1 while(1)
399 1 {
400 2 result=adc_tlc0838(0);
401 2 // key=getkey_ii();
402 2 // hexstoascii2(count1);
403 2 // hexstoascii3(count2);
404 2 result1=2*result;
405 2 hexstoascii3(result1);
406 2 // if(key==0)
407 2 // lcd_clear();
408 2 lcd_wrcmd(kk+0x00);
409 2 for(i=0;i<13;i++) lcd_wrdata(str1[i]);
410 2 lcd_wrcmd(kk+0x46); lcd_wrdata(d[0]);
411 2 lcd_wrcmd(kk+0x48);
412 2 for(i=1;i<3;i++) lcd_wrdata(d[i]);
413 2 lcd_wrcmd(kk+0x4a); lcd_wrdata(str3[0]);
414 2 lcd_wrcmd(kk+0x47); lcd_wrdata(str4[0]);
415 2 // }
416 2 }
417 1
418 1 }
419
420
421
422
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 725 ----
C51 COMPILER V7.20 TEXT2 07/20/2007 10:39:41 PAGE 8
CONSTANT SIZE = 170 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 50
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -