cl_main.lst
来自「51单片机读写nor flash 读出flash 的ID」· LST 代码 · 共 756 行 · 第 1/5 页
LST
756 行
578 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
579 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
580 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0XFF,0XFF,0XFF,0X2F,0X2F,0X2F,0X2F,0X2F,
581 0X2F,0X2F,0X2F,0X4F,0X4F,0X72,0XB6,0X6F,0X25,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
582 0X00,0X00,0X05,0X2A,0X4E,0X4A,0X2A,0X4F,0X4F,0X4F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
583 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
584 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
585 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
586 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
587 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
588 0XFF,0XFF,0XFF,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X4F,0X2F,0X73,0X72,0X96,0X29,
589 0X4D,0X92,0X6E,0X00,0X00,0X00,0X00,0X25,0X00,0X00,0X25,0X4E,0X4F,0X4F,0X2F,0X2F,
590 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
591 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
592 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
593 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
594 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
595 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0XFF,0XFF,0XFF,0X2F,0X2F,0X2F,0X2F,0X2F,
596 0X4F,0X2F,0X4F,0X4F,0X97,0X72,0X72,0X00,0X25,0X6E,0X49,0X00,0X00,0X05,0X2A,0X73,
597 0X4F,0X2A,0X4F,0X4F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
598 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
599 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
600 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
601 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
602 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
603 0XFF,0XFF,0XFF,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X4F,0X53,0X97,0X93,0X4A,0X00,
604 0X00,0X05,0X25,0X01,0X01,0X2A,0X4F,0X4F,0X4F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
605 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
606 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
607 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
608 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
609 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
C51 COMPILER V7.07 CL_MAIN 04/23/2009 11:39:01 PAGE 11
610 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0XFF,0XFF,0XFF,0X2F,0X2F,0X2F,0X2F,0X2F,
611 0X2F,0X4F,0X4F,0X4E,0X4D,0X4A,0X26,0X00,0X05,0X4A,0X6F,0X6E,0X4A,0X4F,0X4F,0X2F,
612 0X2F,0X4F,0X2F,0X2F,0X4F,0X4F,0X2F,0X4F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
613 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
614 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
615 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
616 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
617 0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,0X2F,
618 0X1B,0X59,0XE0,0X00,0Xc0,0x00,0X85,0X20,0X1B,0X50,0XFF,
619 };
620
621
622
623
624
625
626 void init_clock(void);
627 void init_clock(void)
628 {
629 EA = 0;
630 // IE = 0x02; // Enable Timer 0 interrupt
631 SCON = 0x50; // setup serial port control, serial mode 1
632 TMOD = 0x21;
633 TH1 = 0xfa; // 9600 BAUD @ 22.1184MHz
634 TCON = 0x50; // TR0 = TR1 = 1, start timer
635 // TR1 = 1;
636 EA = 1;
637
638 }
639
640
641
642 extern BYTE ReadFlashOneByte( BYTE SectorStart,unsigned int AbsDra)
643 {
644 BYTE xdata *Temp;
645 unsigned int i;
646 unsigned int iSector;
647 BYTE iBlockNum;
648 BYTE FlashData;
649 // CS_FLASH088_OPEN();
650 i = AbsDra ;
651 iSector=SectorStart+i/4096;
652 iBlockNum=iSector>>4;
653 iSector=iSector%16;
654 // SELECT_PAGE(iBlockNum); //写待读数据页号即A19-A16
655
656 Temp=(BYTE xdata*)0x0;
657 Temp=(BYTE xdata *) ((iSector<<12)|(int)Temp);
658 FlashData = *(Temp+(i%4096));
659 // CS_DISPLAY_OPEN();
660 return (FlashData);
661 }
662
663
664
665 void main( )
666 {
667 unsigned int i;
668 BYTE xdata *Temp;
669 unsigned int len;
670 BYTE idata k;
671 BYTE iSector;
C51 COMPILER V7.07 CL_MAIN 04/23/2009 11:39:01 PAGE 12
672 BYTE iBlockNum;
673 BYTE SectorStart;
674 AUXR=0x02;
675 // CS_ALL_OPEN();
676 // CS_FLASH088_OPEN();
677
678 SectorStart=0x01; //待写入数据的起始扇区号
679 len=9644; //要写入数据的字节长度
680 Program_Flash_VF088(StartPicture,SectorStart,len); //将picturelibbird数组存入FLASH
681 Delay_Nano_Seconds(250);
682
683 k=0; //存入数据与读出数据是否相同标志
684
685 for (i=0;i<len;i++)
686 {
687 iSector=SectorStart+i/4096;
688 iBlockNum=iSector>>4;
689 iSector=iSector%16;
690 SELECT_PAGE(iBlockNum); //写待读数据页号即A19-A16
-
691
692 Temp=(BYTE xdata*)0x0;
693 Temp=(BYTE xdata *) ((iSector<<12)|(int)Temp);
694 if(StartPicture[i]!=*(Temp+(i%4096))) //判断读出数据与写入数据是否相同
695 k=1; //不相同,则置标志位为1
696 //printf("data = %bx\n", *(Temp+(i%4096)));
697
698 }
699 // CS_DISPLAY_OPEN();
700 if(!k)
701 {
702 //读出数据与定入数据相同,显示红屏
703 Delay(5);
704 }
705
706 init_clock();
707
708 while(1)
709 {
710
711 }
712
713 }
714
715
716
717
C51 COMPILATION COMPLETE. 0 WARNING(S), 4 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?