📄 lcd.lst
字号:
C51 COMPILER V7.06 LCD 01/02/2000 11:14:25 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN Lcd.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Lcd.c LARGE OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <string.h>
2 #include <stdlib.h>
3 #include "C8051f.h"
4 #include "Lcd.h"
5
6 bit RS_STU;
7 unsigned char bdata TA;
8
9 sbit ACC0 = TA^0;
10 sbit ACC1 = TA^1;
11 sbit ACC2 = TA^2;
12 sbit ACC3 = TA^3;
13 sbit ACC4 = TA^4;
14 sbit ACC5 = TA^5;
15 sbit ACC6 = TA^6;
16 sbit ACC7 = TA^7;
17
18 #define CS Lcd_CS
19 #define STD Lcd_STD
20 #define SCLK Lcd_SCLK
21
22 unsigned char code dish[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
23 unsigned char code disb[]={0x80,0x90,0x88,0x98};
24 void Delay1ms(unsigned char T);
25
26 void Lcd_Delay(unsigned char hjs)
27 {
28 1 do
29 1 {
30 2 if(hjs == 0)
31 2 break;
32 2 hjs = hjs-1;
33 2 }while(1);
34 1
35 1 }
36
37 void Lcd_Delay2(unsigned int hj)
38 {
39 1 do
40 1 {
41 2 if(hj == 0)
42 2 break;
43 2 Lcd_Delay(255);
44 2 hj = hj-1;
45 2 }while(1);
46 1 }
47
48 void Lcd_CLK()
49 {
50 1 Lcd_Delay(10);
51 1 SCLK=1;
52 1 Lcd_Delay(10);
53 1 SCLK=0;
54 1 }
55
C51 COMPILER V7.06 LCD 01/02/2000 11:14:25 PAGE 2
56 void Lcd_WR(unsigned char gg)
57 {
58 1 unsigned baka;
59 1 // EA = 0;
60 1 TA = gg;
61 1 CS = 1;
62 1 STD = 1;
63 1 SCLK = 0;
64 1
65 1 for(baka = 0; baka<5; baka++)
66 1 {
67 2 Lcd_CLK();
68 2 }
69 1
70 1 STD = 0;
71 1 Lcd_CLK();
72 1
73 1 if(RS_STU)
74 1 {
75 2 STD = 1;
76 2 }
77 1 else
78 1 {
79 2 STD = 0;
80 2 }
81 1 Lcd_CLK();
82 1
83 1 STD = 0;
84 1 Lcd_CLK();
85 1 for(baka = 0; baka<4; baka++)
86 1 {
87 2 if(ACC7)
88 2 {
89 3 STD = 1;
90 3 }
91 2 else
92 2 {
93 3 STD = 0;
94 3 }
95 2 Lcd_CLK();
96 2 TA = TA<<1;
97 2 }
98 1
99 1 STD = 0;
100 1 for(baka = 0; baka<4; baka++)
101 1 {
102 2 Lcd_CLK();
103 2 }
104 1
105 1 for(baka = 0; baka<4; baka++)
106 1 {
107 2 if(ACC7)
108 2 {
109 3 STD = 1;
110 3 }
111 2 else
112 2 {
113 3 STD = 0;
114 3 }
115 2 Lcd_CLK();
116 2 TA = TA<<1;
117 2 }
C51 COMPILER V7.06 LCD 01/02/2000 11:14:25 PAGE 3
118 1
119 1 STD = 0;
120 1 for(baka = 0; baka<4; baka++)
121 1 {
122 2 Lcd_CLK();
123 2 }
124 1 Lcd_Delay(100);
125 1 // EA=1;
126 1 }
127
128 void Lcd_Input(unsigned char gg)
129 {
130 1 Lcd_Delay2(1);
131 1 RS_STU = 0;
132 1 Lcd_WR(gg);
133 1 }
134
135 void Lcd_Displ(unsigned char gg)
136 {
137 1 Lcd_Delay2(1);
138 1 RS_STU = 1;
139 1 Lcd_WR(gg);
140 1 }
141
142 void Lcd_DisD(unsigned int gg)
143 {
144 1 unsigned char g1;
145 1 unsigned char g2;
146 1 unsigned char temp;
147 1 unsigned int hh;
148 1
149 1 g1 = 0;
150 1 hh = 10000;
151 1 for(temp = 0; temp<5; temp++)
152 1 {
153 2 g2 = gg/hh;
154 2 gg = gg-g2*hh;
155 2 hh = hh/10;
156 2 if(g2 != 0)
157 2 {
158 3 g1 = 1;
159 3 }
160 2 if((g1 == 1)||(temp == 4))
161 2 {
162 3 Lcd_Displ(dish[g2]);
163 3 }
164 2 }
165 1 }
166
167 void Lcd_CLS()
168 {
169 1 Lcd_Input(0x01);
170 1 Lcd_Delay2(100);
171 1 }
172
173
174 void Lcd_Initil()
175 {
176 1 Lcd_RST = 1;
177 1 Delay1ms(200);
178 1 RS_STU = 0;
179 1 Lcd_Delay2(100);
C51 COMPILER V7.06 LCD 01/02/2000 11:14:25 PAGE 4
180 1 Lcd_Input(0x30);
181 1 Lcd_Delay2(100);
182 1 Lcd_Input(0x30);
183 1 Lcd_Delay2(100);
184 1 Lcd_Input(0x30);
185 1 Lcd_Delay2(100);
186 1 Lcd_Input(0x30);
187 1 Lcd_Delay2(100);
188 1 Lcd_Input(0x01);
189 1 Lcd_Delay2(100);
190 1 Lcd_Input(0x06);
191 1 Lcd_Delay2(100);
192 1 Lcd_Input(0x0c);
193 1 Lcd_Delay2(100);
194 1 }
195
196 void Lcd_Dis(unsigned char ly,unsigned char lx,unsigned char *str)
197 {
198 1 unsigned char temp;
199 1
200 1 // Initil();
201 1
202 1 // Lcd_Input(0x01);
203 1 // Lcd_Delay2(100);
204 1 temp = disb[ly] + lx;
205 1 Lcd_Input(temp);
206 1 temp = 0;
207 1 do
208 1 {
209 2 if(str[temp] == 0)
210 2 break;
211 2 Lcd_Displ(str[temp]);
212 2 temp++;
213 2 }while(1);
214 1 }
215
216 void Lcd_Display(unsigned char *str)
217 {
218 1 unsigned char temp;
219 1 temp = 0;
220 1 do
221 1 {
222 2 if(str[temp] == 0) break;
223 2 Lcd_Displ(str[temp]);
224 2 temp++;
225 2 }while(1);
226 1 }
227
228 void Lcd_Draw(unsigned char *str)
229 {
230 1 unsigned char kk,k1;
231 1 Lcd_CLS();
232 1 Lcd_Input(0x34);
233 1 Lcd_Input(0x34);
234 1 Lcd_Input(0x80);
235 1 Lcd_Input(0x80);
236 1 Lcd_Input(0x30);
237 1 Lcd_Input(0x30);
238 1 for(kk = 0; kk < 32; kk++)
239 1 {
240 2 Lcd_Input(0x34);
241 2 Lcd_Input(0x34);
C51 COMPILER V7.06 LCD 01/02/2000 11:14:25 PAGE 5
242 2 Lcd_Input(0x80+kk);
243 2 Lcd_Input(0x80);
244 2 Lcd_Input(0x30);
245 2 Lcd_Input(0x30);
246 2 for(k1 = 0; k1<16; k1++)
247 2 {
248 3 Lcd_Displ(str[kk*32+k1]);
249 3 Lcd_Displ(str[kk*32+k1+1]);
250 3 }
251 2 }
252 1 Lcd_Input(0x34);
253 1 Lcd_Input(0x36);
254 1 Lcd_Input(0x30);
255 1 Lcd_Input(0x30);
256 1 }
257
258 void CursorMove(unsigned char y, unsigned char x, bit CursorOnOff)
259 {
260 1 unsigned char temp;
261 1 temp = disb[y] + x;
262 1 Lcd_Input(temp);
263 1 Lcd_Delay2(100);
264 1
265 1 temp = 0x0e;
266 1 if (CursorOnOff == 0)
267 1 {
268 2 temp &= 0xfd;
269 2 }
270 1
271 1 Lcd_Input(temp);
272 1 Lcd_Delay2(100);
273 1 }
274
275
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1277 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = 33 ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -