📄 lcd.lst
字号:
C51 COMPILER V7.50 LCD 08/22/2007 13:59:36 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //******************************************************************************
2 // 128*64 LCD驱动代码
3 //
4 // 2006-01-25
5 // www.CPLD-FPGA.NET
6 //******************************************************************************
7
8 #include "LCD_DEFINE.H"
9
10
11 void lcd_init(void)
12 {
13 1 LCD_DATA_OUT = 0x00;
14 1
15 1 }
16
17 void write_command(unsigned char command)
18 {
19 1
20 1 LCD_CS1 =1 ;
21 1 LCD_CS2 =1 ;
22 1 LCD_RW = 0 ;
23 1 LCD_DI = 0 ;
24 1 LCD_DATA_OUT = command;
25 1 LCD_EN = 1 ;
26 1 LCD_EN = 0 ;
27 1 }
28
29 void write_data( unsigned char LCDdata, unsigned char CS1, unsigned char CS2 )
30 {
31 1
32 1 if(CS1)
33 1 LCD_CS1 =1 ;
34 1 else
35 1 LCD_CS1 =0;
36 1
37 1 if(CS2)
38 1 LCD_CS2 =1;
39 1 else
40 1 LCD_CS2 =0;
41 1
42 1 LCD_DI = 1;
43 1 LCD_RW = 0;
44 1 LCD_DATA_OUT = LCDdata;
45 1 LCD_EN = 1;
46 1 LCD_EN = 0;
47 1 }
48
49 void clear_lcd(void)
50 {
51 1 unsigned char i,j;
52 1 for(i=0;i<8;i++)
53 1 {
54 2 write_command(SET_X|i);
55 2 write_command(SET_Y);
C51 COMPILER V7.50 LCD 08/22/2007 13:59:36 PAGE 2
56 2 for(j=0;j<128;j++)
57 2 {
58 3 if(j<=63) write_data(0,1,0);
59 3 else write_data(0,0,1);
60 3 // _NOP_();
61 3 }
62 2 }
63 1 }
64
65
66 //*chr 显示数据的地址,nRow 在显示屏上第几行,nCol 在显示屏上第几列
67 //highth 字体的高度,wideth 字体的宽度
68 //128*64有8行,128列
69 void display( unsigned char *chr, unsigned char nRow, unsigned char nCol,
70 unsigned char highth,unsigned char wideth )
71
72 {
73 1 unsigned char i,tmpCol,tmpRow,h,m;
74 1 unsigned int j;
75 1 tmpRow = nRow;
76 1 m=0;
77 1 j=0; //注意此变量的用法
78 1 for(h=0;h<highth;h=h+8)
79 1 {
80 2
81 2 write_command(SET_X|tmpRow);
82 2 tmpCol=nCol;
83 2 for(i=0;i<wideth;i++)
84 2 {
85 3 if(tmpCol<64)
86 3 {
87 4 write_command(SET_Y|tmpCol);
88 4 write_data(chr[i+j],1,0);}
89 3 else
90 3 {
91 4 write_command(SET_Y|(tmpCol-64));
92 4 write_data(chr[i+j],0,1);
93 4 }
94 3
95 3 tmpCol++;
96 3 }
97 2 m++;
98 2 j=m*wideth;
99 2 tmpRow++;
100 2 }
101 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 251 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 13
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 + -