📄 lcd.lst
字号:
C51 COMPILER V8.02 LCD 10/17/2006 16:52:41 PAGE 1
C51 COMPILER V8.02, 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 ###############################################################################
3
4 File Name : LCD.C
5
6 Version : 1.0
7
8 Programmer(s) : Unknown
9
10 Created : Unknown
11
12 Description : LCD Basic Function Implement File
13 This source file is open, so it's easy to look for through Internet.
14 Do not need to controll LCD.
15
16 Modified History
17
18 Modified : 2002/03/13
19 Description :
20
21 ###############################################################################
22 */
23
24
25
26 /*
27 ###############################################################################
28 Include Part
29 ###############################################################################
30 */
31
32 #include <lcd.h>
33
34
35
36 /*
37 ###############################################################################
38 Define Part
39 ###############################################################################
40 */
41
42 #define BUSY 0x80
43
44
45
46 /*
47 ###############################################################################
48 Grobal Variable Definition Part
49 ###############################################################################
50 */
51
52
53
54 /*
55 ###############################################################################
C51 COMPILER V8.02 LCD 10/17/2006 16:52:41 PAGE 2
56 Local Variable Definition Part
57 ###############################################################################
58 */
59
60
61
62 /*
63 ###############################################################################
64 Function Implementation Part
65 ###############################################################################
66 */
67
68 /*
69 Description : Check to be ready LCD.
70 Argument :
71 Return Value : If it's ready ,then '1',else then '-1'.
72 Note : If LCD Device is not insert actually,then return '-1'.
73 */
74 char LcdReady(void)
75 {
76 1 unsigned char flag;
77 1 while( (flag=LcdCommandR) & BUSY)
78 1 {
79 2 if(flag == 0xFF) return -1;
80 2 }
81 1 return 1;
82 1 }
83
84
85 /*
86 Description : Clear LCD.
87 Argument :
88 Return Value :
89 Note :
90 */
91 void ClrScr(void)
92 {
93 1 LcdReady();
94 1 LcdCommandW = 0x01;
95 1 }
96
97
98
99 /*
100 Description : Initialize LCD.
101 Argument :
102 Return Value : If initialization is O.K, then return '1', else then return '-1'.
103 Note
104 */
105 char InitLcd(void)
106 {
107 1 if(-1 ==LcdReady()) return -1;
108 1 LcdCommandW = 0x38;
109 1
110 1 LcdReady();
111 1 LcdCommandW = 0x0C;
112 1
113 1 ClrScr();
114 1 GotoXY(0,0);
115 1 }
116
117
C51 COMPILER V8.02 LCD 10/17/2006 16:52:41 PAGE 3
118 /*
119 Description : Move Cursor to X Column, Y Row.
120 Argument : x - Column to move(INPUT),
121 y - Row to move(INPUT),
122 Return Value :
123 Note : LCD to be offered by WIZnet is '2*16' Dimension, so Row(Argument y) is not above 1.
124 */
125 void GotoXY(unsigned char x, unsigned char y)
126 {
127 1 LcdReady();
128 1 switch(y){
129 2 case 0 : LcdCommandW = 0x80 + x; break;
130 2 case 1 : LcdCommandW = 0xC0 + x; break;
131 2 case 2 : LcdCommandW = 0x94 + x; break;
132 2 case 3 : LcdCommandW = 0xD4 + x; break;
133 2 }
134 1 }
135
136
137 /*
138 Description : Output character string in current Cursor.
139 Argument : str - Character to be output in LCD. (INPUT)
140 Return Value : Character string's Pointer to be output
141 Note :
142 */
143 char *Puts(char* str)
144 {
145 1 unsigned char i;
146 1
147 1 for (i=0; str[i] != '\0'; i++){
148 2 LcdReady();
149 2 LcdDataW = str[i];
150 2 }
151 1 return str;
152 1 }
153
154 /*
155 Description : Output 1 character in current Cursor.
156 Argument : str - Character to be output in LCD. (INPUT)
157 Return Value :
158 Note :
159 */
160 void Putch(char ch)
161 {
162 1 LcdReady();
163 1 LcdDataW = ch;
164 1 }
165
166 /*
167 ###############################################################################
168 Unused Function Implementation Part
169 ###############################################################################
170 */
171
172 #ifndef __LCD_UNUSED
/*
Description : Decide Cursor type.
Argument : type - Cursor type(INPUT)
Return Value :
Note :
*/
C51 COMPILER V8.02 LCD 10/17/2006 16:52:41 PAGE 4
void SetCursorType(unsigned char type)
{
LcdReady();
switch(type)
{
//No Cursor
case 0 : LcdCommandW = 0x0C; break;
// Normal Cursor
case 1 : LcdCommandW = 0x0E; break;
// No Cursor | Blink
case 2 : LcdCommandW = 0x0D; break;
// Normal Cursor | Blink
case 3 : LcdCommandW = 0x0F; break;
}
/*
Description : Shift to Left and Right current Cursor.
Argument : dir - Decide direction to be Shift.(INPUT) dir !=0 -> Right Shift, dir == 0 -> Left Sh
-ift
Return Value :
Note :
*/
void ShiftCursor(unsigned char dir)
{
LcdReady();
LcdCommandW = (dir ? 0x14: 0x10);
}
/*
Description : Move Cursor first Column.
Argument :
Return Value :
Note :
*/
void HomeCursor(void)
{
LcdReady();
LcdCommandW = 2;
}
#endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 169 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -