📄 lcd_data.lst
字号:
C51 COMPILER V7.06 LCD_DATA 02/05/2005 09:08:16 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE LCD_DATA
OBJECT MODULE PLACED IN lcd_data.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd_data.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <ctype.h>
3 #include <stdlib.h>
4 #include <stdio.h>
5 #include <math.h>
6 #include <intrins.h>
7 #include "define.h"
8 //#include "val.h"
9 //#include "function.h"
10 #define START_LINE 0xc0
11 #define DIS_ON 0x3f
12 #define DIS_OFF 0x3e
13 #define X_ADDRESS 0xb8
14 #define Y_ADDRESS 0x40
15 extern unsigned char dms100;
16 bit flash_bit;
17
18 void write_com(unsigned char byte)
19 {
20 1 // E=0;
21 1 // W_R=0;
22 1 DI=0;
23 1 P0=byte;
24 1 _nop_();
25 1 _nop_();
26 1 _nop_();
27 1 E=1;
28 1 _nop_();
29 1 _nop_();
30 1 _nop_();
31 1 E=0;
32 1 }
33
34 void write_data(unsigned char byte)
35 {
36 1 // E=0;
37 1 DI=1;
38 1 // W_R=0;
39 1 P0=byte;
40 1 // _nop_(); // 11 月 17 日修改
41 1 E=1;
42 1 // _nop_();
43 1 E=0;
44 1 }
45
46 /*void close_display(void)
47 {
48 CS1=1;
49 CS2=1;
50 W_R=0;
51 DI=0;
52 write_com(DIS_OFF);
53 }*/
54
55
C51 COMPILER V7.06 LCD_DATA 02/05/2005 09:08:16 PAGE 2
56 void open_display(void)
57 {
58 1 CS1=1;
59 1 CS2=1;
60 1 W_R=0;
61 1 DI=0;
62 1 write_com(START_LINE);
63 1 write_com(DIS_ON);
64 1 }
65 //-------------------------------------------------
66 // display word right left
67 //-------------------------------------------------
68
69 void display_l_word(unsigned char x,unsigned char y,unsigned char code *Rom_address)
70 {
71 1 unsigned char i;
72 1 unsigned char code *p;
73 1 CS1=1;
74 1 CS2=0;
75 1 E=0;
76 1 W_R=0;
77 1 DI=0;
78 1 write_com(x|X_ADDRESS);
79 1 write_com(y|Y_ADDRESS);
80 1 p=Rom_address;
81 1 i=16;
82 1 DI=1;
83 1 while(i--) write_data(*p++);
84 1 DI=0;
85 1 write_com((x+1)|X_ADDRESS);
86 1 write_com(y|Y_ADDRESS);
87 1 i=16;
88 1 DI=1;
89 1 while(i--) write_data(*p++);
90 1 }
91
92 void display_r_word(unsigned char x,unsigned char y,unsigned char code *Rom_address)
93 {
94 1 unsigned char i;
95 1 unsigned char code *p;
96 1 CS1=0;
97 1 CS2=1;
98 1 E=0;
99 1 W_R=0;
100 1 DI=0;
101 1 write_com(x|X_ADDRESS);
102 1 write_com(y|Y_ADDRESS);
103 1 p=Rom_address;
104 1 i=16;
105 1 DI=1;
106 1 while(i--) write_data(*p++);
107 1 DI=0;
108 1 write_com((x+1)|X_ADDRESS);
109 1 write_com(y|Y_ADDRESS);
110 1 i=16;
111 1 DI=1;
112 1 while(i--) write_data(*p++);
113 1 }
114
115 //-------------------------------------------------
116 // display line
117 //-------------------------------------------------
C51 COMPILER V7.06 LCD_DATA 02/05/2005 09:08:16 PAGE 3
118 void display_line(unsigned char x,unsigned char y,unsigned char code *Rom_address)
119 {
120 1 unsigned char i;
121 1 unsigned char code *p;
122 1 E=0;
123 1 W_R=0;
124 1 CS1=1;
125 1 CS2=0;
126 1 DI=0;
127 1 write_com(x|X_ADDRESS);
128 1 write_com(y|Y_ADDRESS);
129 1 p=Rom_address;
130 1 i=64;
131 1 DI=1;
132 1 while(i--) write_data(*p++); // left
133 1
134 1 CS1=0;
135 1 CS2=1;
136 1 DI=0;
137 1 write_com(x|X_ADDRESS);
138 1 write_com(y|Y_ADDRESS);
139 1 i=64;
140 1 DI=1;
141 1 while(i--) write_data(*p++); // right
142 1
143 1 // next page
144 1 CS1=1;
145 1 CS2=0;
146 1 DI=0;
147 1 write_com((x+1)|X_ADDRESS);
148 1 write_com(y|Y_ADDRESS);
149 1 i=64;
150 1 DI=1;
151 1 while(i--) write_data(*p++); // left
152 1
153 1 CS1=0;
154 1 CS2=1;
155 1 DI=0;
156 1 write_com((x+1)|X_ADDRESS);
157 1 write_com(y|Y_ADDRESS);
158 1 i=64;
159 1 DI=1;
160 1 while(i--) write_data(*p++);
161 1
162 1 }
163
164 /*void display_wb_line(unsigned char x,unsigned char y,unsigned char code *Rom_address)
165 {
166 unsigned char i;
167 unsigned char code *p;
168 E=0;
169 W_R=0;
170 CS1=1;
171 CS2=0;
172 DI=0;
173 write_com(x|X_ADDRESS);
174 write_com(y|Y_ADDRESS);
175 p=Rom_address;
176 i=64;
177 DI=1;
178 while(i--) write_data(~(*p++)); // left
179
C51 COMPILER V7.06 LCD_DATA 02/05/2005 09:08:16 PAGE 4
180 CS1=0;
181 CS2=1;
182 DI=0;
183 write_com(x|X_ADDRESS);
184 write_com(y|Y_ADDRESS);
185 i=64;
186 DI=1;
187 while(i--) write_data(~(*p++)); // right
188
189 // next page
190 CS1=1;
191 CS2=0;
192 DI=0;
193 write_com((x+1)|X_ADDRESS);
194 write_com(y|Y_ADDRESS);
195 i=64;
196 DI=1;
197 while(i--) write_data(~(*p++)); // left
198
199 CS1=0;
200 CS2=1;
201 DI=0;
202 write_com((x+1)|X_ADDRESS);
203 write_com(y|Y_ADDRESS);
204 i=64;
205 DI=1;
206 while(i--) write_data(~(*p++));
207
208 }*/
209
210 //-------------------------------------------------
211 // display byte right left
212 //-------------------------------------------------
213
214
215 /*void display_L_byte(unsigned char x,unsigned char y,unsigned char code *Rom_address)
216 {
217 unsigned char i;
218 unsigned char code *p;
219 CS1=1;
220 CS2=0;
221 E=0;
222 W_R=0;
223 DI=0;
224 write_com(x|X_ADDRESS);
225 write_com(y|Y_ADDRESS);
226 p=Rom_address;
227 i=8;
228 DI=1;
229 while(i--) write_data(*p++);
230 DI=0;
231 write_com((x+1)|X_ADDRESS);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -