modify2.lst
来自「液晶屏的单片机demo程序」· LST 代码 · 共 577 行 · 第 1/3 页
LST
577 行
179 0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
180 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
181
182
183 void delay(unsigned int num) //延时,执行一次延时用时约10us
184 {
185 1 while(num--);
186 1 }
187
188 void lcd_write(unsigned char dd,unsigned char aa)
189 {
190 1 unsigned char a,b;
191 1 for(a=0;a<8;a++)
192 1 {
193 2 lcda=0xb8+a;delay(1);
194 2 lcda=0x40;delay(1);
195 2 for (b=0;b<64;b++)
196 2 {
197 3 lcdc=dd;
198 3 if(aa==1)
199 3 delay(100);
200 3 }
201 2 lcdb=0xb8+a; delay(1);
202 2 lcdb=0x40; delay(1);
203 2 for (b=0;b<64;b++)
204 2 {
205 3 lcdd=dd;
206 3 if(aa==1)
207 3 delay(100);
208 3 }
209 2 }
210 1 }
211
212
213
214 /*
215 void lcd_write_array(unsigned char array[8][128]) //在(x,y)处显示数据dd
216 {
217 unsigned char x,y;
218 for(x=0;x<8;x++) //x轴页的选择
219 {
220 lcda=0xB8+x;
221 lcdb=0xB8+x;
222 lcda=0x40;
223 lcdb=0x40;
224 for(y=0;y<64;y++)
225 {
226 lcdc=array[x][y];
227 lcdd=array[x][y+64];
228 }
229 }
230 } */
231
232 void lcd_init(void) //LCD初始化程
233 {
234 1 lcda=DISPLAY_ON; //display on
235 1 lcdb=DISPLAY_ON;
236 1 lcda=STARTLINE;
237 1 lcdb=STARTLINE;
238 1 lcd_write(0x00,0);
239 1 lcd_write(0xaa,1);
240 1 delay(30000);
C51 COMPILER V7.06 MODIFY2 08/02/2005 11:06:44 PAGE 5
241 1 lcd_write(0x00,1);
242 1 lcd_write(0xff,1);
243 1 delay(30000);
244 1 lcd_write(0x00,1);
245 1 delay(30000);
246 1 /* lcd_write_array(kaiping);
247 1 delay(30000); */
248 1 }
249
250 /*
251 void lcd_write_1(unsigned char k) //i为x轴上页的选择,取值[0,7];k为向左移位的次数,取值[0,127]
252 {
253 unsigned char i,j,n;
254
255 for(i=0;i<8;i++)
256 {
257 lcda=0xb8+i;
258 lcda=0x40;
259 for(j=0,n=k;j<64;j++,n++)
260 {
261 if(n<29)
262 lcdc=tubiao[i][n];
263 else
264 lcdc=tubiao[i][n-128];
265 }
266 }
267 }
268 void lcd_write_2(unsigned char k)
269 {
270 unsigned char i,j;
271 for(i=0;i<8;i++)
272 {
273 lcdb=0xb8+i;
274 lcdb=0x40;
275 if(k<64) //移位数小于64时,第一片显示64个数,第二片从64+k开始显示
276 {
277 for(j=64+k;j<128;j++)
278 {
279 lcdd=kaiping[i][j];
280 }
281 for(j=0;j<k;j++)
282 {
283 lcdd=kaiping[i][j];
284 }
285 }
286 else //移位数大于64时,从第k-64位起显示
287 {
288 for(j=k-64;j<k;j++)
289 {
290 lcdd=kaiping[i][j];
291 }
292 }
293 }
294 }
295 void display()
296 {
297 unsigned char i,j,k,l,m,n,o;
298 lcd_clear();
299 while(1)
300 {
301 for(i=0;i<5;i++)
302 {
C51 COMPILER V7.06 MODIFY2 08/02/2005 11:06:44 PAGE 6
303 lcda=0xb8+i;
304 for(j=0;j<31;j++)
305 {
306 lcda=0x40+j;
307 lcdc=tubiao[i][j];
308 }
309 }
310 for(i=0;i<2;i++)
311 {
312 lcda=0xb8+i;
313 for(j=0;j<24;j++)
314 {
315 lcda=0x40+40+j;
316 lcdc=chang[i][j];
317 }
318 lcda=0xba+i;
319 for(k=0;k<32;k++)
320 {
321 lcda=0x40+32+k;
322 lcdc=dian[i][k];
323 }
324 lcda=0xbc+i;
325 for(l=0;l<24;l++)
326 {
327 lcda=0x40+40+l;
328 lcdc=bei[i][l];
329 }
330 lcdb=0xb8+i;
331 for(m=0;m<56;m++)
332 {
333 lcdb=0x40+m;
334 lcdd=chang[i][24+m];
335 }
336 lcdb=0xba+i;
337 for(n=0;n<64;n++)
338 {
339 lcdb=0x40+n;
340 lcdd=dian[i][32+n];
341 }
342 lcdb=0xbc+i;
343 for(o=0;o<56;o++)
344 {
345 lcdb=0x40+o;
346 lcdd=bei[i][24+o];
347 }
348 }
349 delay(300000000);
350 lcd_clear();
351 for(i=0;i<3;i++)
352 {
353 lcda=0xb8+i;
354 for(j=0;j<48;j++)
355 {
356 lcda=0x40+j;
357 lcdc=hu[i][j];
358 }
359 if(i>0)
360 {
361 for(j=0;j<16;j++)
362 {
363 lcda=0x40+j+48;
364 lcdc=ji[i-1][j];
C51 COMPILER V7.06 MODIFY2 08/02/2005 11:06:44 PAGE 7
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?