📄 text2.lst
字号:
C51 COMPILER V8.05a TEXT2 05/18/2009 10:29:09 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE TEXT2
OBJECT MODULE PLACED IN Text2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 uchar dis_buf; //显示缓存
8 uchar temp;
9
10 void delay0(uchar x); //x*0.14MS
11
12 sbit LCD_RS = P2^0;
13 sbit LCD_RW = P2^1;
14 sbit LCD_EN = P2^2;
15
16 uchar code cdis1[ ] = {" KEY NUMBER "};
17 uchar code cdis2[ ] = {" KEY-CODE: H "};
18
19 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
20
21 /*************************************************************/
22 /* */
23 /* 延时子程序 */
24 /* */
25 /*************************************************************/
26
27 void delay(uchar x)
28 { uchar j;
29 1 while((x--)!=0)
30 1 { for(j=0;j<125;j++)
31 2 {;}
32 2 }
33 1 }
34
35 /*************************************************************/
36 /* */
37 /*检查LCD忙状态 */
38 /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据 */
39 /* */
40 /*************************************************************/
41
42 bit lcd_busy()
43 {
44 1 bit result;
45 1 LCD_RS = 0;
46 1 LCD_RW = 1;
47 1 LCD_EN = 1;
48 1 delayNOP();
49 1 result = (bit)(P0&0x80);
50 1 LCD_EN = 0;
51 1 return(result);
52 1 }
53
54 /*******************************************************************/
55 /* */
C51 COMPILER V8.05a TEXT2 05/18/2009 10:29:09 PAGE 2
56 /*写指令数据到LCD */
57 /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */
58 /* */
59 /*******************************************************************/
60
61 void lcd_wcmd(uchar cmd)
62
63 {
64 1 while(lcd_busy());
65 1 LCD_RS = 0;
66 1 LCD_RW = 0;
67 1 LCD_EN = 0;
68 1 _nop_();
69 1 _nop_();
70 1 P0 = cmd;
71 1 delayNOP();
72 1 LCD_EN = 1;
73 1 delayNOP();
74 1 LCD_EN = 0;
75 1 }
76
77 /*******************************************************************/
78 /* */
79 /*写显示数据到LCD */
80 /*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */
81 /* */
82 /*******************************************************************/
83
84 void lcd_wdat(uchar dat)
85 {
86 1 while(lcd_busy());
87 1 LCD_RS = 1;
88 1 LCD_RW = 0;
89 1 LCD_EN = 0;
90 1 P0 = dat;
91 1 delayNOP();
92 1 LCD_EN = 1;
93 1 delayNOP();
94 1 LCD_EN = 0;
95 1 }
96
97 /*************************************************************/
98 /* */
99 /* LCD初始化设定 */
100 /* */
101 /*************************************************************/
102
103 void lcd_init()
104 {
105 1 delay(15);
106 1 lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据
107 1 delay(5);
108 1 lcd_wcmd(0x38);
109 1 delay(5);
110 1 lcd_wcmd(0x38);
111 1 delay(5);
112 1
113 1 lcd_wcmd(0x0c); //显示开,关光标
114 1 delay(5);
115 1 lcd_wcmd(0x06); //移动光标
116 1 delay(5);
117 1 lcd_wcmd(0x01); //清除LCD的显示内容
C51 COMPILER V8.05a TEXT2 05/18/2009 10:29:09 PAGE 3
118 1 delay(5);
119 1 }
120
121 /*************************************************************/
122 /* */
123 /* 设定显示位置 */
124 /* */
125 /*************************************************************/
126
127 void lcd_pos(uchar pos)
128 {
129 1 lcd_wcmd(pos | 0x80); //数据指针=80+地址变量
130 1 }
131
132
133
134 /*************************************************************/
135 /* */
136 /* 主程序 */
137 /* */
138 /*************************************************************/
139 main()
140 {
141 1 uchar m;
142 1 P0=0xFF; //置P0口
143 1 P2=0xFF; //置P2口
144 1 delay(10); //延时
145 1 lcd_init(); //初始化LCD
146 1
147 1 lcd_pos(0); //设置显示位置为第一行的第1个字符
148 1 m = 0;
149 1 while(cdis1[m] != '\0')
150 1 { //显示字符
151 2 lcd_wdat(cdis1[m]);
152 2 m++;
153 2 }
154 1
155 1 lcd_pos(0x40); //设置显示位置为第二行第1个字符
156 1 m = 0;
157 1 while(cdis2[m] != '\0')
158 1 {
159 2 lcd_wdat(cdis2[m]); //显示字符
160 2 m++;
161 2 }
162 1 dis_buf = 0x2d; //显示字符"-"
163 1
164 1 while(1)
165 1 {
166 2 lcd_pos(0x4c);
167 2 lcd_wdat(dis_buf); //第一位数显示
168 2 }
169 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 222 ----
CONSTANT SIZE = 34 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
C51 COMPILER V8.05a TEXT2 05/18/2009 10:29:09 PAGE 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -