-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlcd1602.LST
More file actions
149 lines (139 loc) · 7.32 KB
/
lcd1602.LST
File metadata and controls
149 lines (139 loc) · 7.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
C51 COMPILER V9.60.7.0 LCD1602 04/10/2026 12:35:33 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN lcd1602.OBJ
COMPILER INVOKED BY: E:\Keil uVision5\C51\BIN\C51.EXE lcd1602.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "lcd1602.h"
3 /******************************************************************************/
4 /* 函数名称 : delay */
5 /* 函数描述 : 延时函数 */
6 /* 输入参数 : x */
7 /* 参数描述 : 延时时间 */
8 /* 返回值 : 无 */
9 /******************************************************************************/
10 void delay(uint x)
11 {
12 1 uint a,b;
13 1 for(a = x;a > 0;a--)
14 1 {
15 2 for(b = 10;b > 0;b--)
16 2 {
17 3 ;
18 3 }
19 2 }
20 1 }
21
22
23 /******************************************************************************/
24 /* 函数名称 : write_com */
25 /* 函数描述 : 1602写命令函数 */
26 /* 输入参数 : com */
27 /* 参数描述 : 控制命令 */
28 /* 返回值 : 无 */
29 /******************************************************************************/
30
31 void write_com(uchar com)
32 {
33 1 P2 = com;
34 1 rs = 0;
35 1 lcden = 0;
36 1 delay(10);
37 1 lcden = 1;
38 1 delay(10);
39 1 lcden = 0;
40 1 }
41 /******************************************************************************/
42 /* 函数名称 : write_date */
43 /* 函数描述 : 1602写数据函数 */
44 /* 输入参数 : date */
45 /* 参数描述 : 要写入的数据 */
46 /* 返回值 : 无 */
47 /******************************************************************************/
48
49 void write_date(uchar date)
50 {
51 1 P2 = date;
52 1 rs = 1;
53 1 lcden = 0;
54 1 delay(10);
55 1 lcden = 1;
C51 COMPILER V9.60.7.0 LCD1602 04/10/2026 12:35:33 PAGE 2
56 1 delay(10);
57 1 lcden = 0;
58 1 }
59 /******************************************************************************/
60 /* 函数名称 : initLCD */
61 /* 函数描述 : 1602初始化函数 */
62 /* 输入参数 : 无 */
63 /* 参数描述 : 无 */
64 /* 返回值 : 无 */
65 /******************************************************************************/
66
67 void initLCD(void)
68 {
69 1
70 1 write_com(0x38);
71 1 delay(20);
72 1 write_com(0x0f);
73 1 delay(20);
74 1 write_com(0x06);
75 1 delay(20);
76 1 write_com(0x01);
77 1 delay(20);
78 1 }
79
80 /******************************************************************************/
81 /* 函数名称 : display */
82 /* 函数描述 : 显示数字 */
83 /* 输入参数 : number,address */
84 /* 参数描述 : number写入的数据,address地址 */
85 /* 返回值 : 无 */
86 /******************************************************************************/
87
88 void display(int number,uchar address)
89 {
90 1 uchar b,c,d,e;
91 1 b= (number / 1000);
92 1 c= (number / 100) % 10;
93 1 d = (number / 10) % 10;
94 1 e = number % 10;
95 1
96 1 write_com(0x80 + address);
97 1 write_date(b + 48);
98 1 write_date(c + 48);
99 1 write_date(d + 48);
100 1 write_date(46); //小数点的ASCII
101 1 write_date(e + 48);
102 1 write_date(99); //"c"的ASCII
103 1 write_date(109); //"m"的ASCII
104 1 }
105
106 /******************************************************************************/
107 /* 函数名称 : display_char */
108 /* 函数描述 : 显示字符串函数 */
109 /* 输入参数 : point,address */
110 /* 参数描述 : 写入的字符串的地址指针 1602显示对应的地址 */
111 /* 返回值 : 无 */
112 /******************************************************************************/
113 void display_char(uchar *point,uchar address)
114 {
115 1 uchar i;
116 1 write_com(0x80 + address);
117 1 for(i = 0;i < 16; i++)
C51 COMPILER V9.60.7.0 LCD1602 04/10/2026 12:35:33 PAGE 3
118 1 {
119 2 write_date(*point);
120 2 point++;
121 2 }
122 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 266 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)