📄 serial.lst
字号:
177 {
178 1 uchar i,j;
179 1 for(j=0;j<32;j++)
C51 COMPILER V7.10 SERIAL 08/26/2006 18:55:25 PAGE 4
180 1 {
181 2 for(i=0;i<8;i++)
182 2 {
183 3 wr_lcd (comm,0x34); //8位控制器接口,扩充功能设定,扩充指令集动作,绘图显示OFF
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 显示点阵
225
226 -------------------------------------------*/
227
228 void lat_disp (uchar data1,uchar data2)
229 {
230 1 uchar i,j,k,x;
231 1 x=x1;
232 1 for(k=0;k<2;k++)
233 1 {
234 2 for(j=0;j<16;j++)
235 2 {
236 3 for(i=0;i<8;i++)
237 3 {
238 4 wr_lcd (comm,0x34); //8位控制器接口,扩充功能设定,扩充指令集动作,绘图显示OFF
239 4 wr_lcd (comm,y+j*2); //设定绘图地址
240 4 wr_lcd (comm,x+i);
241 4 wr_lcd (comm,0x30); //基本指令集动作 ,绘图显示OFF
C51 COMPILER V7.10 SERIAL 08/26/2006 18:55:25 PAGE 5
242 4 wr_lcd (dat,data1); //写入数据
243 4 wr_lcd (dat,data1);
244 4 }
245 3 for(i=0;i<8;i++)
246 3 {
247 4 wr_lcd (comm,0x34);
248 4 wr_lcd (comm,y+j*2+1);
249 4 wr_lcd (comm,x+i);
250 4 wr_lcd (comm,0x30);
251 4 wr_lcd (dat,data2);
252 4 wr_lcd (dat,data2);
253 4 }
254 3 }
255 2 x=x2;
256 2 }
257 1 wr_lcd (comm,0x36); //扩充指令集动作 ,绘图显示ON
258 1 }
259 /*-----------------------------------------------*/
260 //当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl.
261 void con_disp (uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
262 {
263 1 uchar i,j;
264 1 for(j=0;j<yl;j++)
265 1 {
266 2 for(i=0;i<xl;i++)
267 2 {
268 3 wr_lcd (comm,0x34); //8位控制器接口,扩充功能设定,扩充指令集动作,绘图显示OFF
269 3 wr_lcd (comm,y0+j);
270 3 wr_lcd (comm,x0+i);
271 3 wr_lcd (comm,0x30); //基本指令集动作 ,绘图显示OFF
272 3 wr_lcd (dat,data1);
273 3 wr_lcd (dat,data2);
274 3 }
275 2 }
276 1 wr_lcd (comm,0x36);
277 1 }
278 /*--------------清DDRAM------------------*/
279 void clrram (void)
280 {
281 1 wr_lcd (comm,0x30);
282 1 wr_lcd (comm,0x01);
283 1 delay (180);
284 1 }
285 /*---------------------------------------------
286 发送数据或指令的函数
287 当dat_comm=1 发送的是数据, dat_comm=0则是命令.
288 待发送的数据或指令放在content中.
289 ----------------------------------------------*/
290 void wr_lcd (uchar dat_comm,uchar content)
291 {
292 1 uchar a,i,j;
293 1 delay (50);
294 1 a=content;
295 1 cs=1;
296 1 sclk=0;
297 1 std=1;
298 1 for(i=0;i<5;i++) //先输入五个连续的1 -----》是同步位字符串,此时输入记数被重置并且串行传输被同步。
299 1 {
300 2 sclk=1;
301 2 sclk=0;
302 2 }
303 1 std=0; //RW位
C51 COMPILER V7.10 SERIAL 08/26/2006 18:55:25 PAGE 6
304 1 sclk=1;
305 1 sclk=0;
306 1 if(dat_comm) //RS位
307 1 std=1; //data
308 1 else
309 1 std=0; //command
310 1 sclk=1;
311 1 sclk=0; //第8位规定为0
312 1 std=0;
313 1 sclk=1;
314 1 sclk=0;
315 1 for(j=0;j<2;j++)
316 1 {
317 2 for(i=0;i<4;i++) //每一个8位指令将被分为两个字节接收到.
318 2 {
319 3 a=a<<1;
320 3 std=CY;
321 3 sclk=1;
322 3 sclk=0;
323 3 }
324 2 std=0;
325 2 for(i=0;i<4;i++)
326 2 {
327 3 sclk=1;
328 3 sclk=0;
329 3 }
330 2 }
331 1 }
332 /*-----------------------------------*/
333 void delay (uint us) //delay time
334 {
335 1 while(us--);
336 1 }
337 void delay1 (uint ms)
338 {
339 1 uint i,j;
340 1 for(i=0;i<ms;i++)
341 1 for(j=0;j<15;j++)
342 1 delay(1);
343 1 }
344
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 991 ----
CONSTANT SIZE = 1634 ----
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 + -