📄 main.lst
字号:
200 2
201 2 }
202 1 }
203
204 void reset(void)
205 {
206 1 //RESET CHIP
207 1 RES = 0;
208 1 delay(100);
209 1 RES = 1;
210 1 delay(100);
211 1
212 1 }
213
214
215
216 void ini_lcd(void)
217 {
218 1
219 1 //INI_CODE
220 1
221 1 comm_out(0xA0);// ADC select
222 1 comm_out(0xA6);// Sets the LCD display normal/reverse
223 1
224 1 comm_out(0xA2);// Sets the LCD drive voltage bias ratio 1/9
225 1
226 1 comm_out(0x2F);// Power control set
227 1 comm_out(0x24);// V0 Voltage Regulator Internal Resistor Ratio Set
228 1
229 1
230 1 comm_out(0x81);// Electronic volume mode set
231 1 comm_out(0x29);// 3F
232 1
233 1
234 1 comm_out(0xAF);// display on
235 1 }
236
237
238
239
240 void setPageAddress(unsigned char i)
241 {
C51 COMPILER V7.50 MAIN 03/10/2005 08:04:12 PAGE 5
242 1 comm_out(0xb0+i);
243 1 }
244
245
246 void setColAddress(unsigned char i)
247 {
248 1
249 1
250 1 if(i<=16)
251 1 {
252 2 comm_out(0x00+i);
253 2 comm_out(0x10);
254 2 }
255 1 else
256 1 {
257 2 comm_out(0x00+i%16);
258 2 comm_out(0x10+i/16);
259 2 }
260 1
261 1 }
262
263
264 void dispData(unsigned char s_page,e_page,s_col,e_col,unsigned char dispdata,unsigned char dly)
265 {
266 1 unsigned char i,j,page_num,col_num;
267 1 page_num = e_page - s_page+1;
268 1 col_num = e_col - s_col+1;
269 1
270 1 for (i=s_page;i<(s_page+page_num);i++ )
271 1 {
272 2 setPageAddress(i);
273 2 setColAddress(s_col);
274 2
275 2 for(j=0;j<col_num;j++)
276 2 {
277 3 data_out(dispdata);
278 3 delay(dly);
279 3 }
280 2
281 2
282 2 }
283 1
284 1 }
285
286
287 //显示定制图案
288 void dispGraphic(unsigned char s_page, e_page,s_col,e_col,unsigned char code *graphicData,unsigned char d
-ly)
289 {
290 1 unsigned char i,j,k,page_num,col_num;
291 1 page_num = e_page - s_page+1;
292 1 col_num = e_col - s_col+1;
293 1
294 1 for (i=s_page;i<s_page+page_num;i++ )
295 1 {
296 2 setPageAddress(i);
297 2 setColAddress(s_col);
298 2
299 2 for(j=0;j<(col_num/8+1);j++)
300 2 {
301 3
302 3
C51 COMPILER V7.50 MAIN 03/10/2005 08:04:12 PAGE 6
303 3 for(k=0;k<8;k++)
304 3 {
305 4 data_out(graphicData[k]);
306 4 delay(dly);
307 4 }
308 3
309 3 }
310 2
311 2 }
312 1 }
313
314
315 //显示定制图片
316 void dispPic(unsigned char s_page, e_page, s_col,e_col,unsigned char code *pictrue)
317 {
318 1 unsigned char i,j,page_num,col_num;
319 1 page_num = e_page - s_page+1;
320 1 col_num = e_col - s_col+1;
321 1
322 1 for (i=s_page;i<(s_page+page_num);i++ )
323 1 {
324 2 setPageAddress(i);
325 2 setColAddress(s_col);
326 2 for(j=0;j<col_num;j++)
327 2 {
328 3
329 3 data_out(*pictrue);
330 3 pictrue ++;
331 3 }
332 2 }
333 1
334 1 }
335
336
337 /*******************************************************************************
338 * 主程序
339 *******************************************************************************/
340 void main(void)
341 {
342 1
343 1
344 1 selectSeries(0); // 选择8080时序
345 1 reset(); // 复位LCD
346 1
347 1 CS1 = 0; // 片选有效
348 1
349 1 ini_lcd(); // 初始化LCD
350 1 while(1)
351 1 {
352 2
353 2
354 2 //利用dispGraphic函数,显示定制图案
355 2
356 2 dispGraphic(0,8,0,127,test_graphic1,0); //全显
357 2 delay(DELAY_TIME);
358 2
359 2 dispGraphic(0,7,0,127,test_graphic2,0); //隔行
360 2 delay(DELAY_TIME);
361 2
362 2 dispGraphic(0,7,0,127,test_graphic3,0); //隔列
363 2 delay(DELAY_TIME);
364 2
C51 COMPILER V7.50 MAIN 03/10/2005 08:04:12 PAGE 7
365 2 dispGraphic(0,7,0,127,test_graphic4,0); //斜角图案
366 2 delay(DELAY_TIME);
367 2
368 2 dispGraphic(0,7,0,127,test_graphic5,0); //图案Q
369 2 delay(DELAY_TIME);
370 2
371 2 dispGraphic(0,7,0,127,test_graphic0,0); //清屏
372 2 delay(DELAY_TIME);
373 2
374 2
375 2 //显示图片
376 2 dispPic(0,7,0,127,test_pic1);
377 2 delay(DELAY_TIME);
378 2
379 2 dispData(0,8,0,127,0x00,0); //清屏
380 2 delay(DELAY_TIME);
381 2
382 2
383 2 }
384 1
385 1 }
386
387
388
389 /******************************************************************************
390 ** 文件结束
391 *******************************************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 938 ----
CONSTANT SIZE = 1504 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 52 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -