⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 LED汉字显示屏控制电路部分的程序代码。接收来自PC机的串口数据
💻 LST
📖 第 1 页 / 共 3 页
字号:
 580          void filldatrow(uchar chip,uint currentrow,uchar fillrow)
 581          {uchar i,tempb;
 582   1       uint tempw;
 583   1       for(i=0;i<32;i++)
 584   1       {tempw=currentrow*32+i;
 585   2        tempb=rd_fm1808(tempw);
 586   2        tempb=~tempb;
 587   2        tempw=(uint)(fillrow*32+i);
 588   2        P1=chip;
 589   2        XBYTE[tempw]=tempb;
 590   2       }
 591   1      }
 592          
 593          void fillonerow(void)
 594          {uint tempw;
 595   1       uchar fillrow;
 596   1       fillrow=StartRow+16;
 597   1       fillrow%=32;
 598   1       //CE4
 599   1       if(CurrentRow>=TotalRow)
 600   1       {fillblankrow(CE4,fillrow);
 601   2       }
 602   1       else
 603   1       {tempw=CurrentRow;
 604   2        filldatrow(CE4,tempw,fillrow);
 605   2       }
 606   1       //CE3
 607   1       if((CurrentRow<16)||(CurrentRow>=(TotalRow+16)))
 608   1       {fillblankrow(CE3,fillrow);
 609   2       }
 610   1       else
 611   1       {tempw=CurrentRow-16;
 612   2        filldatrow(CE3,tempw,fillrow);
 613   2       }
C51 COMPILER V7.50   MAIN                                                                  09/19/2008 13:23:34 PAGE 11  

 614   1       //CE2
 615   1       if((CurrentRow<32)||(CurrentRow>=(TotalRow+32)))
 616   1       {fillblankrow(CE2,fillrow);
 617   2       }
 618   1       else
 619   1       {tempw=CurrentRow-32;
 620   2        filldatrow(CE2,tempw,fillrow);
 621   2       }
 622   1       //CE1
 623   1       if((CurrentRow<48)||(CurrentRow>=(TotalRow+48)))
 624   1       {fillblankrow(CE1,fillrow);
 625   2       }
 626   1       else
 627   1       {tempw=CurrentRow-48;
 628   2        filldatrow(CE1,tempw,fillrow);
 629   2       }
 630   1       ++CurrentRow;
 631   1       CurrentRow%=(TotalRow+64);
 632   1       StartRow++;
 633   1       StartRow%=32;
 634   1       wrstartaddr2();
 635   1      }
 636          
 637          void init_display(void)
 638          {uchar tempb;
 639   1       uint  tempw;
 640   1       clear_idt7132();
 641   1      
 642   1       tempb=rd_fm1808(TOTALROWH);
 643   1       tempw=(uint)tempb;
 644   1       tempw<<=8;
 645   1       delay(10);
 646   1       tempb=rd_fm1808(TOTALROWL);
 647   1       TotalRow=(uint)tempb;   
 648   1       TotalRow&=0x00ff;       
 649   1       TotalRow+=tempw;        
 650   1       StartRow=0;
 651   1       CurrentRow=0;
 652   1       if(TotalRow<=MAXROW)
 653   1       {FlagDisp=FALSE;
 654   2        fillscreen();
 655   2       }
 656   1       else
 657   1       {FlagDisp=TRUE;
 658   2        fillonerow();
 659   2       }
 660   1      }
 661          
 662          void init(void)
 663          {P0=0xff;
 664   1       P1=0xff;
 665   1       P2=0xff;
 666   1       P3=0xff;
 667   1       uart_init();
 668   1       FlagUART=FALSE;
 669   1       BufAddr1=BUFHEAD1;
 670   1       init_display();
 671   1      }
 672          
 673          void main(void)
 674          {uint uicount;
 675   1       ulong ulcount;
C51 COMPILER V7.50   MAIN                                                                  09/19/2008 13:23:34 PAGE 12  

 676   1       uicount=0;
 677   1       ulcount=0;
 678   1       delay(1000);
 679   1       kmg();
 680   1       init();
 681   1       kmg();
 682   1       while(1)
 683   1       {kmg();
 684   2        if(FlagUART)              //响应到串口中断,表示有PC传新数据过来
 685   2        {t0_init();
 686   3         while(FlagUART){kmg();}  //接受数据中。。。
 687   3         kmg();
 688   3         if(BufCount1>1)
 689   3         {kmg();
 690   4          blankfm1808();
 691   4          kmg();
 692   4          code_analyse();
 693   4          kmg();
 694   4          array_addr_dat();
 695   4          kmg();
 696   4          init();
 697   4          kmg();
 698   4         }
 699   3         else
 700   3         {uart_init();}
 701   3        }
 702   2        if((++uicount>5000)&&FlagDisp)
 703   2        {fillonerow();
 704   3         uicount=0;
 705   3        }
 706   2        else if((++ulcount>10000000)&&(!FlagDisp))
 707   2        {fillscreen();
 708   3         ulcount=0;
 709   3        }
 710   2       }
 711   1      }
 712          
 713          
 714          
 715          
C51 COMPILER V7.50   MAIN                                                                  09/19/2008 13:23:34 PAGE 13  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P0 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0080H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
FlagDisp . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0002H  1
T0Count. . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0000H  2
init_display . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempb. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0004H  2
uart_interrupt . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
FlagFont . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0001H  1
uchar. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
RI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0098H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
_filldatrow. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0005H  -----
  chip . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  currentrow . . . . . . . . . . . . .  AUTO     DATA   U_INT    0001H  2
  fillrow. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  tempb. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
CurrentRow . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0002H  2
getzikuaddr. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempb. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0002H  2
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  uicount. . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  ulcount. . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   0002H  4
ulong. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
fillscreen . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
PCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0087H  1
blankfm1808. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0002H  2
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
init . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
to_interrupt . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
FlagUART . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0000H  1
array_addr_dat . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  flagfont . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1
  tempb. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  tempw. . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
  currentrow . . . . . . . . . . . . .  AUTO     DATA   U_INT    0004H  2
  currentline. . . . . . . . . . . . .  AUTO     DATA   U_INT    0006H  2
t0_init. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_rd_fm1808 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0008H  -----
  addr . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
_fill16rows. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  chip . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
C51 COMPILER V7.50   MAIN                                                                  09/19/2008 13:23:34 PAGE 14  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  fillrow. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  tempb. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
kmg. . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TotalRow . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0004H  2
uint . . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
ziku . . . . . . . . . . . . . . . . .  PUBLIC   DATA   UNION    0006H  4
fillonerow . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempw. . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0000H  2
  fillrow. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
StartRow . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   000AH  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
BufAddr1 . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    000BH  2
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
wrzikuaddr . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempb. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0002H  2
BufAddr2 . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    000DH  2
BufAddr3 . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    000FH  2
_wr_fm1808 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     001EH  -----
  addr . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
  dat. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
TL1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008BH  1
uart_init. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
rdzikudat. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     000CH  -----
wrbblank . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
BufCount1. . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0011H  2
BufCount2. . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0013H  2
BufCount3. . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0015H  2
KMG. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
wrsblank . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
wrstartaddr1 . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
wrstartaddr2 . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_fillblankrow. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  chip . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1
  fillrow. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
code_analyse . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  qm . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  wm . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
_delay . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
_full01_addr . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  qm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
  wm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  offset . . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   0000H  4
_full03_addr . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  qm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
C51 COMPILER V7.50   MAIN                                                                  09/19/2008 13:23:34 PAGE 15  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


  wm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  offset . . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   0000H  4
_half_addr . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0004H  -----
  qm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
  wm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  offset . . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   0000H  4
_hanzi_addr. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  qm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
  wm . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  offset . . . . . . . . . . . . . . .  AUTO     DATA   U_LONG   0000H  4
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
clear_idt7132. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  tempw. . . . . . . . . . . . . . . .  * REG *  DATA   U_INT    0006H  2
Flag . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   3573    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24      40
   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 + -