📄 serial.lst
字号:
184 3 wr_lcd (comm,y+j);
185 3 wr_lcd (comm,x1+i);
186 3 wr_lcd (comm,0x30);
187 3 wr_lcd (dat,img[j*16+i*2]);
188 3 wr_lcd (dat,img[j*16+i*2+1]);
189 3 }
190 2 }
191 1 for(j=32;j<64;j++)
192 1 {
193 2 for(i=0;i<8;i++)
194 2 {
195 3 wr_lcd (comm,0x34);
196 3 wr_lcd (comm,y+j-32);
197 3 wr_lcd (comm,x2+i);
198 3 wr_lcd (comm,0x30);
199 3 wr_lcd (dat,img[j*16+i*2]);
200 3 wr_lcd (dat,img[j*16+i*2+1]);
201 3 }
202 2 }
203 1 wr_lcd (comm,0x36);
204 1 }
205 /*-------------下半屏显示图形--------------*/
206 void img_disp1 (uchar code *img)
207 {
208 1 uchar i,j;
209 1 for(j=0;j<32;j++)
210 1 {
211 2 for(i=0;i<8;i++)
212 2 {
213 3 wr_lcd (comm,0x34);
214 3 wr_lcd (comm,y+j);
215 3 wr_lcd (comm,x2+i);
216 3 wr_lcd (comm,0x30);
217 3 wr_lcd (dat,img[j*16+i*2]);
218 3 wr_lcd (dat,img[j*16+i*2+1]);
219 3 }
220 2 }
221 1 wr_lcd (comm,0x36);
222 1 }
223 /*--------------显示点阵----------------*/
224 void lat_disp (uchar data1,uchar data2)
225 {
226 1 uchar i,j,k,x;
227 1 x=x1;
228 1 for(k=0;k<2;k++)
229 1 {
230 2 for(j=0;j<16;j++)
231 2 {
232 3 for(i=0;i<8;i++)
233 3 {
234 4 wr_lcd (comm,0x34);
235 4 wr_lcd (comm,y+j*2);
236 4 wr_lcd (comm,x+i);
237 4 wr_lcd (comm,0x30);
238 4 wr_lcd (dat,data1);
239 4 wr_lcd (dat,data1);
240 4 }
241 3 for(i=0;i<8;i++)
C51 COMPILER V7.06 SERIAL 05/24/2009 04:43:52 PAGE 5
242 3 {
243 4 wr_lcd (comm,0x34);
244 4 wr_lcd (comm,y+j*2+1);
245 4 wr_lcd (comm,x+i);
246 4 wr_lcd (comm,0x30);
247 4 wr_lcd (dat,data2);
248 4 wr_lcd (dat,data2);
249 4 }
250 3 }
251 2 x=x2;
252 2 }
253 1 wr_lcd (comm,0x36);
254 1 }
255 /*-----------------------------------------------*/
256 //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
257 void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
258 {// con_disp (0xff,0xff,0x8c,0x80,2,16);x0=0x8c,y0=0x80, x1=2,y1=16
259 1 uchar i,j;
260 1 for(j=0;j<yl;j++)
261 1 {
262 2 for(i=0;i<xl;i++)
263 2 {
264 3 wr_lcd (comm,0x34);
265 3 wr_lcd (comm,y0+j);
266 3 wr_lcd (comm,x0+i);
267 3 wr_lcd (comm,0x30);
268 3 wr_lcd (dat,data1);
269 3 wr_lcd (dat,data2);
270 3 }
271 2 }
272 1 wr_lcd (comm,0x36);
273 1 }
274 /*--------------清DDRAM------------------*/
275 void clrram (void)
276 {
277 1 wr_lcd (comm,0x30);
278 1 wr_lcd (comm,0x01);
279 1 delay (180);
280 1 }
281 /*---------------------------------------*/
282 void wr_lcd (uchar dat_comm,uchar content)
283 {
284 1 uchar a,i,j;
285 1 delay (50);
286 1 a=content;
287 1 cs=1;
288 1 sclk=0;
289 1 sid=1;
290 1 for(i=0;i<5;i++)
291 1 {
292 2 sclk=1;
293 2 sclk=0;
294 2 }
295 1 sid=0; //0表示数据从MCU到LCD,即write
296 1 sclk=1;
297 1 sclk=0;
298 1 if(dat_comm)
299 1 sid=1; //data
300 1 else
301 1 sid=0; //command
302 1 sclk=1;
303 1 sclk=0;
C51 COMPILER V7.06 SERIAL 05/24/2009 04:43:52 PAGE 6
304 1 sid=0; //第一个字节最后一位规定为0
305 1 sclk=1;
306 1 sclk=0;
307 1 for(j=0;j<2;j++) //先高四位,再低四位
308 1 {
309 2 for(i=0;i<4;i++)
310 2 {
311 3 a=a<<1;
312 3 sid=CY; //CY为进位标志位,移位时用到,见reg52.h(CY=PSW^7)
313 3 sclk=1;
314 3 sclk=0;
315 3 }
316 2 sid=0;
317 2 for(i=0;i<4;i++)
318 2 {
319 3 sclk=1;
320 3 sclk=0;
321 3 }
322 2 }
323 1 }
324 /*-----------------------------------*/
325 void delay (uint us) //delay time
326 {
327 1 while(us--);
328 1 }
329 void delay1 (uint ms)
330 {
331 1 uint i,j;
332 1 for(i=0;i<ms;i++)
333 1 for(j=0;j<15;j++)
334 1 delay(1);
335 1 }
336 /*------------------主程序--------------------*/
337 void main ()
338 {
339 1 SP=0x5f;
340 1 init_lcd ();
341 1 while (1)
342 1 {
343 2 lat_disp (0x00,0x00);
344 2 chn_disp (tab1);
345 2 con_disp (0xff,0xff,0x8c,0x80,2,16);
346 2 delay1 (8000);
347 2 clrram();
348 2 lat_disp (0xcc,0xcc);
349 2 delay1 (8000);
350 2 lat_disp (0x00,0x00);
351 2 chn_disp1 (tab31);
352 2 img_disp1 (tab32);
353 2 delay1 (8000);
354 2 clrram();
355 2 lat_disp (0xff,0x00);
356 2 delay1 (8000);
357 2 img_disp (tab5);
358 2 delay1 (8000);
359 2 }
360 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1100 ----
CONSTANT SIZE = 1634 ----
C51 COMPILER V7.06 SERIAL 05/24/2009 04:43:52 PAGE 7
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 34
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 + -