?? lcd_disp.lst
字號:
C51 COMPILER V8.08 LCD_DISP 09/25/2008 08:57:58 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LCD_DISP
OBJECT MODULE PLACED IN lcd_disp.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd_disp.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2
3 /*********************************端口定義**********************************/
4
5 sbit RS = P2^0;
6
7 sbit RW = P2^1;
8
9 sbit EP = P2^2;
10
11 #define DATA P0
12
13 /********************************顯示數據表*********************************/
14
15 unsigned char code DISP1[] = {"www.swust.edu.cn"};
16
17 unsigned char code DISP2[] = {"0816-6082308-cx"};
18
19 /*****************************************************************************
20
21 函數功能:LCD延時子程序
22
23 入口參數:time
24
25 出口參數:
26
27 *****************************************************************************/
28
29 void delayns(unsigned char time)
30 {
31 1 unsigned char i;
32 1
33 1 for(;time>0;time--)
34 1
35 1 for(i = 0; i< 250; i++) ;
36 1 }
37
38 /*****************************************************************************
39
40 函數功能:測試LCD忙碌狀態
41
42 入口參數:
43
44 出口參數:result
45
46 *****************************************************************************/
47
48 bit lcd_buzy()
49 {
50 1 bit result;
51 1
52 1 RS = 0;
53 1
54 1 RW = 1;
55 1
C51 COMPILER V8.08 LCD_DISP 09/25/2008 08:57:58 PAGE 2
56 1 EP = 1;
57 1
58 1 delayns(1); //此處延時特別重要 (必不可少)
59 1
60 1 result = (bit)(DATA & 0x80);
61 1
62 1 delayns(1);
63 1
64 1 EP = 0;
65 1
66 1 return result;
67 1 }
68
69 /*****************************************************************************
70
71 函數功能:寫指令數據到LCD子程序
72
73 入口參數:cmd
74
75 出口參數:
76
77 *****************************************************************************/
78
79 void lcd_w_order(unsigned char cmd)
80 {
81 1 while(lcd_buzy()); //判斷LCD是否忙碌
82 1
83 1 RS = 0;
84 1
85 1 RW = 0;
86 1
87 1 EP = 1;
88 1
89 1 DATA = cmd;
90 1
91 1 delayns(1);
92 1
93 1 EP = 0;
94 1 }
95
96 /*****************************************************************************
97
98 函數功能:寫入顯示數據到LCD子程序
99
100 入口參數:dat
101
102 出口參數:
103
104 *****************************************************************************/
105
106 void lcd_w_data(unsigned char dat)
107 {
108 1 while(lcd_buzy()); //判斷LCD是否忙碌
109 1
110 1 RS = 1;
111 1
112 1 RW = 0;
113 1
114 1 EP = 1;
115 1
116 1 DATA = dat;
117 1
C51 COMPILER V8.08 LCD_DISP 09/25/2008 08:57:58 PAGE 3
118 1 delayns(1);
119 1
120 1 EP = 0;
121 1 }
122
123 /*****************************************************************************
124
125 函數功能:設定顯示位置子程序
126
127 入口參數:pos
128
129 出口參數:
130
131 *****************************************************************************/
132
133 void lcd_post(unsigned char pos)
134
135 {
136 1 lcd_w_order(pos | 0x80);
137 1 }
138
139 /*****************************************************************************
140
141 函數功能:LCD初始化子程序
142
143 入口參數:
144
145 出口參數:
146
147 *****************************************************************************/
148
149 void lcd_init()
150 {
151 1 lcd_w_order(0x38); //顯示模式設置
152 1
153 1 delayns(1);
154 1
155 1 lcd_w_order(0x0c); //顯示光標設置,開顯示
156 1
157 1 delayns(1);
158 1
159 1 lcd_w_order(0x06); //顯示光標移動(右移)
160 1
161 1 delayns(1);
162 1
163 1 lcd_w_order(0x01); //清屏
164 1
165 1 delayns(1);
166 1 }
167
168 /*****************************************************************************
169
170 函數功能:主程序
171
172 入口參數:
173
174 出口參數:
175
176 *****************************************************************************/
177
178 void main(void)
179 {
C51 COMPILER V8.08 LCD_DISP 09/25/2008 08:57:58 PAGE 4
180 1 unsigned char i=0;
181 1
182 1 lcd_init(); // 初始化LCD
183 1
184 1 delayns(10);
185 1
186 1 lcd_post(0x00); //設置顯示位置
187 1
188 1 while(DISP1[i] != '\0')
189 1 {
190 2 lcd_w_data(DISP1[i]); //顯示字符
191 2
192 2 i++;
193 2 }
194 1
195 1 lcd_post(0x40); // 設置顯示位置
196 1
197 1 i = 0;
198 1
199 1 while(DISP2[i] != '\0')
200 1 {
201 2 lcd_w_data(DISP2[i]); // 顯示字符
202 2
203 2 i++;
204 2 }
205 1 while(1);
206 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 179 ----
CONSTANT SIZE = 33 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -