📄 1602lcd.lst
字号:
C51 COMPILER V7.08 1602LCD 02/13/2006 14:41:53 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE 1602LCD
OBJECT MODULE PLACED IN 1602lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1602lcd.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /* 描述: *
2 * 1602字符型LCD显示演示程序 *
3 * 在第一行显示 Welcome to Mars! *
4 *
5 * *
6 ********************************************************************************
7 * 【声明】 此程序仅用于学习与参信息!
8 *******************************************************************************/
9
10
11 #include <reg51.h>
12 #include <intrins.h>
13
14 typedef unsigned char BYTE;
15 typedef unsigned int WORD;
16 typedef bit BOOL ;
17
18 sbit rs = P2^7; //
19 sbit rw = P2^6;
20 sbit ep = P2^5;
21
22 BYTE code dis1[] = {"Welcome to Mars!"};
23
24
25 delay(BYTE ms)
26 { // 延时子程序
27 1 BYTE i;
28 1 while(ms--)
29 1 {
30 2 for(i = 0; i< 250; i++)
31 2 {
32 3 _nop_();
33 3 _nop_();
34 3 _nop_();
35 3 _nop_();
36 3 }
37 2 }
38 1 }
39
40 BOOL lcd_bz()
41 { // 测试LCD忙碌状态
42 1 BOOL result;
43 1 rs = 0;
44 1 rw = 1;
45 1 ep = 1;
46 1 _nop_();
47 1 _nop_();
48 1 _nop_();
49 1 _nop_();
50 1 result = (BOOL)(P0 & 0x80);
51 1 ep = 0;
52 1 return result;
53 1 }
54
55 lcd_wcmd(BYTE cmd)
C51 COMPILER V7.08 1602LCD 02/13/2006 14:41:53 PAGE 2
56 { // 写入指令数据到LCD
57 1 while(lcd_bz());
58 1 rs = 0;
59 1 rw = 0;
60 1 ep = 0;
61 1 _nop_();
62 1 _nop_();
63 1 P0 = cmd;
64 1 _nop_();
65 1 _nop_();
66 1 _nop_();
67 1 _nop_();
68 1 ep = 1;
69 1 _nop_();
70 1 _nop_();
71 1 _nop_();
72 1 _nop_();
73 1 ep = 0;
74 1 }
75
76 lcd_pos(BYTE pos)
77 { //设定显示位置
78 1 lcd_wcmd(pos | 0x80);
79 1 }
80
81 lcd_wdat(BYTE dat)
82 { //写入字符显示数据到LCD
83 1 while(lcd_bz());
84 1 rs = 1;
85 1 rw = 0;
86 1 ep = 0;
87 1 P0 = dat;
88 1 _nop_();
89 1 _nop_();
90 1 _nop_();
91 1 _nop_();
92 1 ep = 1;
93 1 _nop_();
94 1 _nop_();
95 1 _nop_();
96 1 _nop_();
97 1 ep = 0;
98 1 }
99
100 lcd_init()
101 { //LCD初始化设定
102 1 lcd_wcmd(0x38); //
103 1 delay(1);
104 1 lcd_wcmd(0x0c); //
105 1 delay(1);
106 1 lcd_wcmd(0x06); //
107 1 delay(1);
108 1 lcd_wcmd(0x01); //清除LCD的显示内容
109 1 delay(1);
110 1 }
111
112 main()
113 {
114 1 BYTE i;
115 1 lcd_init(); // 初始化LCD
116 1 delay(10);
117 1 lcd_pos(1); // 设置显示位置为第一行2223第5个字符
C51 COMPILER V7.08 1602LCD 02/13/2006 14:41:53 PAGE 3
118 1 i = 0;
119 1 while(dis1[i] != '\0')
120 1 { // 显示字符Welcome to use"
121 2 lcd_wdat(dis1[i]);
122 2 i++;
123 2 }
124 1
125 1 while(1); //
126 1 }
127
128
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 172 ----
CONSTANT SIZE = 17 ----
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 + -