?? main.lst
字號:
180 4 }
181 3 }
182 2 n++; //超時計時加一
183 2 if(n>100000)return(0x00);//超時返回0
184 2 }
185 1
186 1 }
187
188 //取符合拼音字符串的10個漢字,page是取第幾頁
189 //返回的漢字串在hz[21];
190 void lcd_pinyin2hz(uchar page, uchar *pinyin,uchar *hz)
191 {
192 1 uchar i,ch;
193 1 ulong n=0;
194 1 while(inbufsign)getbyte(); //清空串口緩沖區
195 1 putbyte(0x1b);
196 1 putbyte(0x48);
197 1 putbyte(10);//在這里修改你需要返回幾個漢字
198 1 putbyte(page);
199 1 putstring(pinyin);
200 1 putbyte(0x00);
201 1 while(1)
202 1 {
203 2 if(inbufsign)//串口接收到了數據
204 2 {
205 3 if(getbyte()==0x1b)
206 3 {
207 4 for(i=0;;i++)
208 4 {
209 5 ch=getbyte();
210 5 *(hz+i)=ch;
211 5 if(ch==0)break;
212 5 }
213 4 getbyte();getbyte();
214 4
215 4 return;
216 4 }
217 3
218 3 }
219 2 n++; //超時計時加一
220 2 if(n>100000)
221 2 return;//超時返回
222 2 }
223 1
224 1 }
225
226 void delay(void)
227 {
228 1 ulong n;
229 1 uchar i;
230 1 //for(i=0;i<2;i++)
231 1 for(n=0;n<60000;n++);
232 1 }
*** WARNING C280 IN LINE 229 OF MAIN.C: 'i': unreferenced local variable
233
234 //定義一個圖片
235 uchar code pic[]={
236 0x48, 0x1c, //這兩個字節是圖形塊的長和寬,下面的才是圖形數據
237 0x00, 0x4E, 0x20, 0x00, 0x00, 0xF0, 0x40, 0x00, 0x00, 0x00, 0x7B, 0xE0, 0x01, 0x01, 0xF8, 0xC0,
238 0x00, 0x00, 0x01, 0xFF, 0x7C, 0xFF, 0xF1, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0xC6, 0xFF, 0xC1,
239 0x9F, 0xC3, 0xF8, 0x00, 0x00, 0x7F, 0xFC, 0xFF, 0xF3, 0x0F, 0xBF, 0xC0, 0x00, 0x00, 0x7F, 0xE6,
240 0x1F, 0xFE, 0x01, 0xFE, 0x00, 0x00, 0x00, 0x77, 0xFC, 0x07, 0xE7, 0x07, 0xFF, 0xC0, 0x00, 0x00,
C51 COMPILER V7.07 MAIN 11/19/2004 17:55:36 PAGE 5
241 0x77, 0xFB, 0x07, 0xFB, 0x87, 0xBF, 0x00, 0x00, 0x00, 0x67, 0xFF, 0xF7, 0xA7, 0x7E, 0x00, 0x00,
242 0x00, 0x00, 0x67, 0xFF, 0xF7, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x67, 0xFF, 0xEF, 0xE1, 0xFF,
243 0x98, 0x00, 0x00, 0x00, 0x63, 0xFF, 0xEF, 0xFF, 0xFF, 0xB8, 0x00, 0x44, 0x00, 0x03, 0xFF, 0xEF,
244 0xFF, 0xFF, 0xFC, 0x08, 0xC6, 0x04, 0x01, 0xFF, 0xEF, 0xFF, 0xFF, 0xF4, 0x04, 0x8E, 0x0C, 0x43,
245 0xFE, 0x6F, 0xFF, 0xFF, 0xE6, 0x05, 0x9F, 0x98, 0x43, 0xFF, 0x8F, 0xFF, 0xFB, 0xC3, 0xC7, 0x9F,
246 0x99, 0xE7, 0x7F, 0xFF, 0xFF, 0xFD, 0xC1, 0xE7, 0xFF, 0xD9, 0xE6, 0xFD, 0xFF, 0xFF, 0xDF, 0xF0,
247 0x0F, 0xFF, 0xFF, 0xA7, 0xE1, 0x9F, 0xFF, 0x0F, 0xF8, 0x5B, 0xFF, 0xEE, 0x8F, 0x81, 0x87, 0xE0,
248 0x00, 0x0C, 0x00, 0x00, 0x00, 0x1E, 0x01, 0x8F, 0x80, 0x00, 0x07, 0xC0, 0x00, 0x00, 0x3C, 0x01,
249 0x9E, 0xF3, 0xC4, 0x15, 0xE2, 0x08, 0x00, 0xF8, 0x00, 0xF8, 0x91, 0x24, 0xFC, 0x02, 0x08, 0x03,
250 0x98, 0x00, 0xE0, 0x93, 0xD4, 0x90, 0x77, 0x88, 0x7E, 0x30, 0x01, 0x80, 0xF8, 0x94, 0xEA, 0x22,
251 0x88, 0x38, 0x30, 0x07, 0x00, 0x0B, 0xD4, 0xAC, 0x2A, 0x80, 0x00, 0x60, 0x3C, 0x01, 0xE8, 0x84,
252 0xAC, 0x36, 0x88, 0x00, 0x40, 0x38, 0x00, 0x1B, 0xED, 0x76, 0x6D, 0x80
253 };
254
255 void main(void)
256 {
257 1 char i,j;
258 1 uint n;
259 1 uchar code string_num[]="7426";
260 1
261 1 uchar pinyin_buf[6][8];
262 1 serial_init();
263 1 for(n=0;n<60000;n++);
264 1
265 1
266 1 while(1)
267 1 {
268 2
269 2 lcd_cls();
270 2 lcd_string(0,"您好!歡迎使用漢顯液晶模塊!");
271 2 delay();
272 2
273 2 lcd_string(1,"反顯效果");
274 2 delay();
275 2
276 2 lcd_cls();
277 2 lcd_string(0,"現在打開光標閃爍:");
278 2 lcd_showcursor(0x01);
279 2 delay();
280 2
281 2 lcd_cls();
282 2 lcd_string(0,"現在將光標移到(8,3)位置:");
283 2 lcd_cursor(8, 3);
284 2 delay();
285 2
286 2 lcd_string(0,"您好!");
287 2 delay();
288 2
289 2 lcd_cls();
290 2 lcd_string(0,"現在關閉光標閃爍:");
291 2 lcd_showcursor(0x00);
292 2 delay();
293 2
294 2 lcd_cls();
295 2 lcd_string(0,"在(20,40)位置畫一個點:");
296 2 lcd_dot(1,20,40);
297 2 delay();
298 2
299 2 lcd_cursor(0, 0);
300 2 lcd_string(0,"再以直徑為15畫一個圓: ");
301 2 lcd_circle(1,20,40,15);
302 2 delay();
C51 COMPILER V7.07 MAIN 11/19/2004 17:55:36 PAGE 6
303 2
304 2 lcd_cursor(0, 0);
305 2 lcd_string(0,"再畫兩條線,一條實線,一條虛線:");
306 2 lcd_line(1,10,5,100,60);
307 2 lcd_line(2,10,55,100,10);
308 2 delay();
309 2
310 2 lcd_cls();
311 2 lcd_string(0,"畫一個圖片'馬到成功'");
312 2 lcd_picture(0,30,20,pic);
313 2 delay();
314 2
315 2 lcd_cls();
316 2 lcd_string(0,"現在取'7426'的拼音串");
317 2 while(inbufsign) getbyte(); //清空接收緩沖區
318 2 lcd_string(0,"返回的結果:");
319 2 j=lcd_num2pinyin(string_num, pinyin_buf);
320 2
321 2 lcd_cursor(0, 3);
322 2 for(i=0;i<j;i++)
323 2 {
324 3 if(i==0) lcd_string(1,pinyin_buf[i]);//默認反顯第一個拼音
325 3 else lcd_string(0,pinyin_buf[i]);
326 3 lcd_string(0," ");
327 3 }
328 2 delay();
329 2
330 2 lcd_cls();
331 2 lcd_cursor(0, 0);
332 2 lcd_string(0,"反顯第二個拼音:");//比如通過按鍵選到了第二個
333 2 lcd_cursor(0, 3);
334 2 for(i=0;i<j;i++)
335 2 {
336 3 if(i==1) lcd_string(1,pinyin_buf[i]);//反顯第一個拼音
337 3 else lcd_string(0,pinyin_buf[i]);
338 3 lcd_string(0," ");
339 3 }
340 2 delay();
341 2
342 2 lcd_cls();
343 2 lcd_string(0,"取這個拼音的漢字串:\r\n");
344 2
345 2 while(inbufsign) getbyte(); //清空接收緩沖區
346 2 lcd_pinyin2hz(1, pinyin_buf[1],pinyin_buf);//借用拼音的緩沖區pinyin_buf放漢字串,以節省內存
*** WARNING C182 IN LINE 346 OF MAIN.C: pointer to different objects
347 2 lcd_cursor(0, 4);
348 2 lcd_string(0,pinyin_buf[0]);
349 2 delay();delay();delay();
350 2 }
351 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1390 ----
CONSTANT SIZE = 546 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 109
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 2 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -