?? hx8303.lst
字號:
253 4 otp_value=0x00;
254 4 wr_com8080(otp_value);*/
255 4 }
256 3 }
257 2 }
258 1 next:
259 1 //==========================
260 1 RS=1;
261 1 //==========================
262 1 }
263 //=======================================================================
264 void pic_wait(uint count)
265 {
266 1 uint i,j,k;
267 1 if(autorun0==0)
268 1 {
269 2 for(i=0;i<count;i++)
270 2 for(j=0;j<10;j++)
271 2 for(k=0;k<120;k++)
272 2 {
273 3 if(KEY1!=1)
274 3 {
275 4 autorun0=1;
276 4 goto next;
277 4 }
278 3 //==========================
279 3 if(KEY7!=1)
280 3 {
281 4 while(KEY7!=1)
282 4 {
283 5 ;
284 5 }
285 4 kk=1000;
286 4 goto next;
287 4 }
288 3 }
289 2 }
290 1 else
291 1 {
292 2 while(1)
293 2 {
294 3 if(KEY1!=1)
295 3 {
296 4 for(i=0;i<100;i++)
297 4 for(j=0;j<100;j++)
298 4 {
299 5 ;
300 5 }
301 4 while(KEY1==0)
302 4 {
303 5 ;
C51 COMPILER V7.05 HX8303 09/10/2005 16:46:19 PAGE 6
304 5 }
305 4 goto next;
306 4 }
307 3 //==========================
308 3 if(KEY7!=1)
309 3 {
310 4 while(KEY7!=1)
311 4 {
312 5 ;
313 5 }
314 4 kk=1000;
315 4 goto next;
316 4 }
317 3 //==========================
318 3 DelayX10ms(25);
319 3 if(KEY2==0)
320 3 {
321 4 while(KEY2==0)
322 4 {
323 5 ;
324 5 }
325 4 /*wr_com8080(0x2a);
326 4 otp_value=otp_value+1;
327 4 if(otp_value==256)
328 4 otp_value=0xff;
329 4 wr_com8080(otp_value);*/
330 4 }
331 3 //==========================
332 3 if(KEY4==0)
333 3 {
334 4 while(KEY4==0)
335 4 {
336 5 ;
337 5 }
338 4 /*wr_com8080(0x2a);
339 4 otp_value=otp_value-1;
340 4 if(otp_value==-1)
341 4 otp_value=0x00;
342 4 wr_com8080(otp_value);*/
343 4 }
344 3 }
345 2 }
346 1 next:
347 1 //==========================
348 1 RS=1;
349 1 //==========================
350 1 }
351 //=============END===========================================================
352 //=============K9F5608U0A===============
353 //=============RESET====================
354 void reset(void)
355 {
356 1 MCE=0;
357 1 MR_B=1;
358 1 MRE=1;
359 1 MWE=1;
360 1 MCLE=0;
361 1 MALE=0;
362 1 P1=0xff;
363 1 MCLE=1;
364 1 MALE=0;
365 1 MWE=0;
C51 COMPILER V7.05 HX8303 09/10/2005 16:46:19 PAGE 7
366 1 MWE=0;
367 1 MWE=0;
368 1 MWE=1;
369 1 MWE=1;
370 1 MWE=1;
371 1 MCLE=0;
372 1 MALE=0;
373 1 while(MR_B==0)
374 1 {
375 2 ;
376 2 }
377 1 }
378 //============命令輸出函數(shù)=================
379 void writecomd(unsigned char comd)
380 {
381 1 P1=comd;
382 1 MCLE=1;
383 1 MALE=0;
384 1 MWE=0;
385 1 MWE=0;
386 1 MWE=1;
387 1 MWE=1;
388 1 MCLE=0;
389 1 MALE=0;
390 1 }
391 //============地址輸出函數(shù)====================
392 void writeaddr(uchar raddrl,uchar raddrh)
393 {
394 1 P1=0x00;
395 1 MCLE=0;
396 1 MALE=1;
397 1 MWE=0;
398 1 MWE=0;
399 1 MWE=1;
400 1 MWE=1;
401 1 P1=raddrl;
402 1 MWE=0;
403 1 MWE=0;
404 1 MWE=1;
405 1 MWE=1;
406 1 P1=raddrh;
407 1 MWE=0;
408 1 MWE=0;
409 1 MWE=1;
410 1 MWE=1;
411 1 MCLE=0;
412 1 MALE=0;
413 1 }
414 //=============數(shù)據(jù)輸出函數(shù)=============
415 void writedata(void)
416 {
417 1 P1= *pointer;
418 1 MWE=0;
419 1 MWE=0;
420 1 MWE=1;
421 1 MWE=1;
422 1 pointer++;
423 1 }
424 //=============讀操作==================
425 uchar readsta(void)
426 {
427 1 unsigned char soop;
C51 COMPILER V7.05 HX8303 09/10/2005 16:46:19 PAGE 8
428 1 P1MDOUT=0x00;
429 1 P1=0xff;
430 1 DelayX1ms(20);
431 1 MRE=0;
432 1 MRE=0;
433 1 soop=P1;
434 1 MRE=1;
435 1 P1MDOUT=0xff;
436 1 return(soop);
437 1 }
438 //==============整塊擦除1塊=32pages 共2048塊====
439 uchar blockerase(uint block)
440 {
441 1 unsigned char result;
442 1 writecomd(0x60);
443 1 block=block*32;
444 1 P1=block&0x00ff;
445 1 MCLE=0;
446 1 MALE=1;
447 1 MWE=0;
448 1 MWE=0;
449 1 MWE=0;
450 1 MWE=1;
451 1 MWE=1;
452 1 MWE=1;
453 1 P1=(block&0xff00)>>8;
454 1 MWE=0;
455 1 MWE=0;
456 1 MWE=0;
457 1 MWE=1;
458 1 MWE=1;
459 1 MWE=1;
460 1 MCLE=0;
461 1 MALE=0;
462 1 writecomd(0xd0);
463 1 while(MR_B==0)
464 1 {
465 2 ;
466 2 }
467 1 writecomd(0x70);
468 1 result=readsta();
469 1 if((result&0x01)== 1)
470 1 {
471 2 return(1);
472 2 }//出錯處理
473 1 else
474 1 return(0);
475 1 }
476 //==============整頁寫入的詳細代碼======
477 uchar pagewrite(uchar raddrl,uchar raddrh)
478 {
479 1 int i;
480 1 unsigned char result;
481 1 pointer = &buffer;
482 1 writecomd(0x00);//必須指出開始地址
483 1 writecomd(0x80);
484 1 writeaddr(raddrl,raddrh);
485 1 for(i=0;i<512;i++)
486 1 {
487 2 writedata();
488 2 }
489 1 writecomd(0x10);
C51 COMPILER V7.05 HX8303 09/10/2005 16:46:19 PAGE 9
490 1 while(MR_B==0)
491 1 {
492 2 ;
493 2 }
494 1 writecomd(0x70);
495 1 result=readsta();
496 1 if((result&0x01) == 1)
497 1 {
498 2 return(1);
499 2 }//出錯處理
500 1 else
501 1 return(0);
502 1 }
503 //===============
504 //-----------------------------------------------------------------------------
505 // SYSCLK_Init
506 //-----------------------------------------------------------------------------
507 //
508 // This routine initializes the system clock to use the internal 24.5MHz / 8
509 // oscillator as its clock source. Also enables missing clock detector reset.
510 //
511 void SYSCLK_Init (void)
512 {
513 1 OSCICN = 0x80; // IOSCEN IFRDY 0 0 0 0 IFCN1 IFCN0 (sfr OSCICN=0xB2;內(nèi)部振蕩器
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -