📄 lcd.lst
字号:
C51 COMPILER V7.01 LCD 04/09/2009 16:38:56 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: D:\工作资料\工作\键盘程序\MedWinV2.39\Keil\C51\Bin\C51.EXE lcd.c DB OE SMALL ROM(LARGE)
stmt level source
1 #include <reg51.h>
2 //#include <intrins.h>
3 #include <string.h>
4
5 sbit CS=P2^0;
6 sbit DATA=P2^1;
7 sbit CLK=P2^2;
8
9 sbit ACC0 = ACC^0;
10 sbit ACC7 = ACC^7;
11 bit abit;
12
13 void Initial()
14 {
15 1 P0 = 0;
16 1 P1 = 0;
17 1 P2 = 0;
18 1 P3 = 0;
19 1 CS = 1;
20 1
21 1 SCON = 0x10; //串口方式0 0001 0000
22 1 }
23
24 void Delay(unsigned int i)
25 {
26 1 int k=0;
27 1 while(i--)
28 1 for(k=0;k<100;k++);
29 1 }
30
31 void SendData(char sj)
32 {
33 1 char data i=0;//,j;
34 1
35 1 CS=1;
36 1
37 1 ACC = 0xfa;
38 1 for(i=8;i>0;i--)
39 1 {
40 2 DATA = ACC7;
41 2 CLK = 0;
42 2 CLK = 1;
43 2 ACC <<= 1;
44 2 }
45 1
46 1 ACC = sj & 0xf0;
47 1 for(i=8;i>0;i--)
48 1 {
49 2 DATA = ACC7;
50 2 CLK = 0;
51 2 CLK = 1;
52 2 ACC <<= 1;
53 2 }
54 1
55 1 i = sj & 0x0f;
C51 COMPILER V7.01 LCD 04/09/2009 16:38:56 PAGE 2
56 1 i <<= 4;
57 1 ACC = i;
58 1 for(i=8;i>0;i--)
59 1 {
60 2 DATA = ACC7;
61 2 CLK = 0;
62 2 CLK = 1;
63 2 ACC <<= 1;
64 2 }
65 1
66 1 CS=0;
67 1 }
68
69 unsigned char ChangeData(unsigned char udata)
70 {
71 1 unsigned char i,temp;
72 1
73 1
74 1 ACC = udata;
75 1 for(i=8;i>0;i--)
76 1 {
77 2
78 2 abit = ACC & 0x80;
79 2 if(abit)
80 2 {
81 3 temp |= 0x80;
82 3 temp >>= 1;
83 3 }
84 2 else
85 2 {
86 3 temp >>= 1;
87 3 }
88 2 ACC <<= 1;
89 2
90 2 }
91 1 return temp;
92 1 }
93
94 void SendDataWithCOM(char sj)
95 {
96 1 char data i=0;//,j;
97 1
98 1 //CS=1;
99 1
100 1 ACC = 0xfa;
101 1 for(i=8;i>0;i--)
102 1 {
103 2 DATA = ACC7;
104 2 CLK = 0;
105 2 CLK = 1;
106 2 ACC <<= 1;
107 2 }
108 1
109 1 ACC = sj & 0xf0;
110 1 for(i=8;i>0;i--)
111 1 {
112 2 DATA = ACC7;
113 2 CLK = 0;
114 2 CLK = 1;
115 2 ACC <<= 1;
116 2 }
117 1
C51 COMPILER V7.01 LCD 04/09/2009 16:38:56 PAGE 3
118 1 i = sj & 0x0f;
119 1 i <<= 4;
120 1 ACC = i;
121 1 for(i=8;i>0;i--)
122 1 {
123 2 DATA = ACC7;
124 2 CLK = 0;
125 2 CLK = 1;
126 2 ACC <<= 1;
127 2 }
128 1
129 1 //CS=0;
130 1 }
131
132 void SendCom(char command)
133 {
134 1 char data i=0;
135 1
136 1 CS = 1;
137 1
138 1 ACC = 0xf8;
139 1 for(i=8;i>0;i--)
140 1 {
141 2 DATA = ACC7;
142 2 CLK = 0;
143 2 CLK = 1;
144 2 ACC <<= 1;
145 2 }
146 1
147 1 ACC = command & 0xf0;
148 1 for(i=8;i>0;i--)
149 1 {
150 2 DATA = ACC7;
151 2 CLK = 0;
152 2 CLK = 1;
153 2 ACC <<= 1;
154 2 }
155 1
156 1 i = command & 0x0f;
157 1 i <<= 4;
158 1 ACC = i;
159 1 for(i=8;i>0;i--)
160 1 {
161 2 DATA = ACC7;
162 2 CLK = 0;
163 2 CLK = 1;
164 2 ACC <<= 1;
165 2 }
166 1
167 1 CS=0;
168 1 }
169
170 void SendPos(unsigned char x,unsigned char y) //x是列,y是行
171 {
172 1 unsigned char xy;
173 1
174 1 if(y==0)
175 1 xy = x + 0x80;
176 1 else if(y==1)
177 1 xy = x + 0x90;
178 1 else if(y==2)
179 1 xy = x + 0x88;
C51 COMPILER V7.01 LCD 04/09/2009 16:38:56 PAGE 4
180 1 else if(y==3)
181 1 xy = x + 0x98;
182 1
183 1 SendCom(xy);
184 1 }
185
186 void SendString(unsigned char str[16],unsigned char x,unsigned char y)
187 {
188 1 unsigned char i,xy,len;
189 1
190 1 if(y==0)
191 1 xy = x + 0x80;
192 1 else if(y==1)
193 1 xy = x + 0x90;
194 1 else if(y==2)
195 1 xy = x + 0x88;
196 1 else if(y==3)
197 1 xy = x + 0x98;
198 1
199 1 SendCom(xy);
200 1
201 1 len = strlen(str);
202 1 for(i=0;i<len;i++)
203 1 SendData(*(str+i));
204 1
205 1 }
206
207 void main(void)
208 {
209 1 unsigned char i;
210 1 Initial();
211 1 SendCom(0x30);//基本指令集
212 1 Delay(10);
213 1 SendCom(0x01);//清屏
214 1 Delay(10);
215 1 SendCom(0x02);//游标回原点
216 1 Delay(10);
217 1 SendCom(0x0c);//开显示
218 1 Delay(10);
219 1 SendCom(0x80);//设定DRAM=0
220 1 Delay(10);
221 1 SendCom(0x88);//地址
222 1 Delay(10);
223 1
224 1 //for(i=0;i<20;i++)
225 1 //{
226 1 Delay(100);
227 1 SendString("威克曼雕刻机",1,0);
228 1 Delay(100);
229 1 SendString("^_^ 欢迎使用 ^_^",0,1);
230 1 // Delay(1000);
231 1 // SendCom(0x01);//清屏
232 1 // Delay(1000);
233 1 //}
234 1
235 1 //ChangeData(0xf0);
236 1
237 1
238 1 while(1);
239 1 }
*** WARNING C280 IN LINE 209 OF LCD.C: 'i': unreferenced local variable
C51 COMPILER V7.01 LCD 04/09/2009 16:38:56 PAGE 5
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 461 ----
CONSTANT SIZE = 30 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -