📄 lcd1602.lst
字号:
136 1 P1 = 0x24;// LCD_EN = 1;
137 1 lck = 1;
138 1
139 1 _nop_();
140 1 _nop_();
141 1 _nop_();
142 1 _nop_();
143 1
144 1 lck = 0;
145 1 P1 = 0x00;//LCD_EN = 0;
146 1 lck = 1;
147 1 }
148
149 /*******************************************************************/
150 /* */
-
151 /* 设定显示位置 */
-
152 /* */
-
153 /*******************************************************************/
154
155 void lcd_pos(uchar pos)
156 {
157 1 lcd_wcmd(pos|0x80); //数据指针=80+地址变量
C51 COMPILER V7.06 LCD1602 06/17/2007 07:59:07 PAGE 4
158 1 }
159
160 /*******************************************************************/
161 /* */
-
162 /* LCD初始化设定 */
-
163 /* */
-
164 /*******************************************************************/
165
166 void lcd_init()
167 {
168 1 delay(15); //等待LCD电源稳定
169 1 lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据
170 1 delay(5);
171 1 lcd_wcmd(0x38);
172 1 delay(5);
173 1 lcd_wcmd(0x38);
174 1 delay(5);
175 1
176 1 lcd_wcmd(0x0c); //显示开,关光标
177 1 delay(5);
178 1 lcd_wcmd(0x06); //移动光标
179 1 delay(5);
180 1 lcd_wcmd(0x01); //清除LCD的显示内容
181 1 delay(5);
182 1 }
183
184 /*******************************************************************/
185 /* */
-
186 /* 清屏子程序 */
-
187 /* */
-
188 /*******************************************************************/
189
190 void lcd_clr()
191 {
192 1 lcd_wcmd(0x01); //清除LCD的显示内容
193 1 delay(5);
194 1 }
195
196 /*******************************************************************/
197 /* */
-
198 /* 闪动子程序 */
-
199 /* */
-
200 /*******************************************************************/
201
202 void flash()
203 {
204 1 delay(600); //控制停留时间
205 1 lcd_wcmd(0x08); //关闭显示
206 1 delay(100); //延时
207 1 lcd_wcmd(0x0c); //开显示
208 1 delay(100);
209 1 lcd_wcmd(0x08); //关闭显示
210 1 delay(100); //延时
C51 COMPILER V7.06 LCD1602 06/17/2007 07:59:07 PAGE 5
211 1 lcd_wcmd(0x0c); //开显示
212 1 delay(100);
213 1 lcd_wcmd(0x08); //关闭显示
214 1 delay(100); //延时
215 1 lcd_wcmd(0x0c); //开显示
216 1 delay(100);
217 1 }
218
219 /*******************************************************************/
220 /* */
-
221 /* 主程序 */
-
222 /* */
-
223 /*******************************************************************/
224
225 main()
226 {
227 1 uchar i,j;
228 1 delay(10);
229 1 lcd_init(); //初始化LCD
230 1
231 1 while(1)
232 1 {
233 2 lcd_clr();
234 2
235 2 lcd_pos(0x10); //设置显示位置为第一行第17列
236 2 i = 0;
237 2
238 2 while(dis1[i] != '\0')
239 2 { //显示字符" Happy "
240 3 lcd_wdat(dis1[i]);
241 3 i++;
242 3 }
243 2
244 2 lcd_pos(0x50); //设置显示位置为第二行第17列
245 2 i = 0;
246 2
247 2 while(dis2[i] != '\0')
248 2 {
249 3 lcd_wdat(dis2[i]); //显示字符" NEW YEAR "
250 3 i++;
251 3 }
252 2
253 2 for(j=0;j<16;j++) //向左移动16格
254 2 {
255 3 lcd_wcmd(0x18); //字符同时左移一格
256 3 delay(100); //控制移动时间
257 3 }
258 2
259 2 flash(); //闪动三次
260 2
261 2 }
262 1 }
263
264
265 /**********************************结束*****************************/
266
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.06 LCD1602 06/17/2007 07:59:07 PAGE 6
CODE SIZE = 358 ----
CONSTANT SIZE = 35 ----
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 + -