📄 main.lst
字号:
C51 COMPILER V9.02 MAIN 01/01/2006 04:35:29 PAGE 1
C51 COMPILER V9.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\output\main.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\list\main.lst) OBJECT(.\output\mai
-n.obj)
line level source
1 #include "reg52.h"
2 #include "intrins.h"
3
4 unsigned char text1[] = "LCD 1602 TEST" ;
5 unsigned char text2[] = "WWW.GXCT.NET" ;
6
7 sbit RS = P2^0;
8 sbit RW = P2^1;
9 sbit EN = P1^2;
10
11 void delay_ms(unsigned char t);
12 void init_1602(void);
13 void write_command(unsigned char cmd);
14 void write_data(unsigned char dat);
15 void dsp_onechar(unsigned char pos,unsigned char c);
16 void dsp_string(unsigned char line,unsigned char *p,unsigned char length);
17
18 void main(void)
19 {
20 1 init_1602();
21 1 delay_ms(15);
22 1
23 1 dsp_string(0,text1,13);
24 1 dsp_string(1,text2,12);
25 1
26 1 while(1);
27 1 }
28
29 void delay_ms(unsigned char t)
30 {
31 1 unsigned char i;
32 1 while(t--)
33 1 {
34 2 for(i=0;i<112;i++);
35 2 }
36 1 }
37
38 void write_command(unsigned char cmd)
39 {
40 1 delay_ms(5); // check busy flag
41 1 EN = 0;
42 1 RS = 0;
43 1 RW = 0;
44 1 _nop_();
45 1 EN = 1;
46 1 P0 = cmd;
47 1 EN = 0;
48 1 }
49
50 void write_data(unsigned char dat)
51 {
52 1 delay_ms(5); //busy flag check
53 1 EN = 0;
54 1 RS = 1;
C51 COMPILER V9.02 MAIN 01/01/2006 04:35:29 PAGE 2
55 1 RW = 0;
56 1 _nop_();
57 1 EN = 1;
58 1 P0 = dat;
59 1 EN = 0;
60 1 RS = 0;
61 1 }
62
63 void dsp_onechar(unsigned char pos,unsigned char c)
64 {
65 1 unsigned char p;
66 1 if (pos>=0x10)
67 1 p=pos+0xb0;
68 1 else
69 1 p=pos+0x80;
70 1 write_command(p);
71 1 write_data(c);
72 1 }
73
74 void dsp_string(unsigned char line,unsigned char *p,unsigned char length)
75 {
76 1 unsigned char l,i;
77 1 l=line<<4;
78 1 for (i=0;i<length;i++)
79 1 dsp_onechar(l++,*(p+i));
80 1 }
81
82 void init_1602(void)
83 {
84 1 delay_ms(15);
85 1 write_command(0x38);
86 1 write_command(0x38);
87 1 write_command(0x38);
88 1 write_command(0x06);
89 1 write_command(0x0c);
90 1 write_command(0x01);
91 1 }
92
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 214 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 27 7
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 + -