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

📄 text2.lst

📁 能够显示32个汉字的LED大屏显示的单片机源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 422   2                              delay(255);
 423   2                              clr_display();
 424   2                              d_ee(1);
 425   2                              for(i=0;i<8;i++)
 426   2                              delay(255);
 427   2                      }
C51 COMPILER V7.06   TEXT2                                                                 07/24/2006 16:19:54 PAGE 8   

 428   1      }
 429          /*;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 430                cpu init
 431                    time0 1ms 
 432                    time baud 9600        
 433          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;*/
 434          void cpu_init(void)
 435          {
 436   1              
 437   1                       TMOD=0x21;
 438   1                       IP=0x02;
 439   1                       SCON=0x50;
 440   1                       PCON|=0x80;           //dual 4800X2=9600
 441   1      
 442   1                       TH1=TL1=0xfa;      //fosc=11.0592Mhz baud=9600    TH1=TL1=256-(11059200/4800/32/12)
 443   1                       TH0=0xfc;           //1ms time
 444   1                       TL0=0x66;
 445   1                       IE=0x10;
 446   1                       TR0=1;
 447   1                       TR1=1;
 448   1                       ES=1;
 449   1                       EA=1;
 450   1                   AUXR=0x02;            //close inter sram
 451   1                       receive_flag=0;
 452   1                   SRAM1_E=1;
 453   1                       write_picture(0,tuwen);
 454   1                       write_picture(1,tuwen3);
 455   1      }
 456          //;;;;;;;;;;;;;erase inter EEPROM;;;;;;;;;;;;;;;;;;;;;;
 457          //    sectors max for 57;  data form 0~57
 458          //    addr=0x8000+sectors*0x200
 459          void erase_eeprom(unsigned char sectors)
 460          {
 461   1                      unsigned int addr;
 462   1                      addr=0x8000+sectors*0x200;
 463   1                      ISP_ADDRH=(unsigned char)(addr>>8);
 464   1                      ISP_ADDRL=(unsigned char)addr;
 465   1                      EA=0;
 466   1                      ISP_CONTR=WAIT_TIME;
 467   1                      ISP_CONTR=0x80;
 468   1                      ISP_CMD=ISP_IAP_SECTOR_ERASE;
 469   1                      ISP_TRIG=0x46;
 470   1                      ISP_TRIG=0xb9;
 471   1      //              _NOP();
 472   1                      ;;;
 473   1      //              ISP_CONTR=0x00;
 474   1      //              ISP_CMD=0x00;
 475   1      //              ISP_TRIG=0x00;
 476   1      //              ISP_ADDRH=0x00;
 477   1      //              ISP_ADDRL=0x00;
 478   1                      EA=1;
 479   1      
 480   1      }
 481          //;;;;;;;;;;read inter data flash(EEPROM)program ;;;;;;;;;;;;;;;;
 482          //;;;;;;;;;;;;;;ext address data is form 0~29696;;;;;;;;;;;;;;;;;;;;
 483          unsigned char read_eeprom(unsigned int addrdata)
 484          {
 485   1                      unsigned int address;
 486   1                      unsigned char data1;
 487   1                      address=0x8000+addrdata;
 488   1                      ISP_ADDRH=(unsigned char)(address>>8);
 489   1                      ISP_ADDRL=(unsigned char)address;
C51 COMPILER V7.06   TEXT2                                                                 07/24/2006 16:19:54 PAGE 9   

 490   1                      EA=0;
 491   1                      ISP_CONTR=WAIT_TIME;
 492   1                      ISP_CONTR=0x80;
 493   1                      ISP_CMD=ISP_IAP_BYTE_READ;
 494   1                      ISP_TRIG=0x46;
 495   1                      ISP_TRIG=0xb9;
 496   1      //              _NOP();
 497   1                      ;;;
 498   1                      data1=ISP_DATA;
 499   1      //              ISP_CONTR=0x00;
 500   1      //              ISP_CMD=0x00;
 501   1      //              ISP_TRIG=0x00;
 502   1      //              ISP_ADDRH=0x00;
 503   1      //              ISP_ADDRL=0x00;
 504   1                      EA=1;
 505   1                      return data1;
 506   1      }
 507          //;;;;;;;;;;write data flash(EEPROM) program;;;;;;;;;;;;;;;;;;
 508          //;;;;;;;;;;;ext address 0~29696   data :;;;;;;;;;;;;;;;;;;;;
 509          void write_eeprom(unsigned int addrdata,unsigned char data2)
 510          {
 511   1                      unsigned int address;
 512   1                      address=0x8000+addrdata;
 513   1                      ISP_DATA=data2;
 514   1                      ISP_ADDRH=(unsigned char)(address>>8);
 515   1                      ISP_ADDRL=(unsigned char)address;
 516   1                      EA=0;
 517   1                      ISP_CONTR=WAIT_TIME;
 518   1                      ISP_CONTR=0x80;
 519   1                      ISP_CMD=ISP_IAP_BYTE_PROGRAM;
 520   1                      ISP_TRIG=0x46;
 521   1                      ISP_TRIG=0xb9;
 522   1      //              _NOP();
 523   1                      ;;;
 524   1      //              ISP_CONTR=0x00;
 525   1      //              ISP_CMD=0x00;
 526   1      //              ISP_TRIG=0x00;
 527   1      //              ISP_ADDRH=0x00;
 528   1      //              ISP_ADDRL=0x00;
 529   1                      EA=1;
 530   1      }
 531          //;;;;;;;;;;;;update eeprom page data, page=512byte;;;;;;;
 532          //0:open inter sram;1:read page data; 2:erase page;3:update data;4:rewrite data;5:close inter sram
 533          void pageeeprom_write(unsigned int addrdata,unsigned char data3)
 534          {
 535   1                      unsigned int address,i;
 536   1                      unsigned char sectors;
 537   1                      unsigned char bytecount;
 538   1                      address=0x8000+addrdata;
 539   1                      sectors=addrdata/512;
 540   1                      bytecount=addrdata%512;
 541   1                      AUXR=0x01;
 542   1                      for(i=0;i<512;i++)
 543   1                      intereeprom[i]=read_eeprom(sectors*512+i);
 544   1                      erase_eeprom(sectors);
 545   1                      intereeprom[bytecount]=data3;
 546   1                      for(i=0;i<512;i++)
 547   1                      write_eeprom(sectors*512+i,intereeprom[i]);
 548   1                      AUXR=0x03;
 549   1      }
 550          //;;;;;;;;;;;;;;page=512byte; 
 551          void write_pagedata(unsigned char pagenumber,unsigned char *data3)
C51 COMPILER V7.06   TEXT2                                                                 07/24/2006 16:19:54 PAGE 10  

 552          {
 553   1                      unsigned int address,i;
 554   1                      unsigned char sectors;
 555   1                      unsigned char bytecount;
 556   1                      sectors=pagenumber;
 557   1                      erase_eeprom(sectors);
 558   1                      for(i=0;i<512;i++)
 559   1                      write_eeprom(sectors*512+i,data3[i]);
 560   1      }
*** WARNING C280 IN LINE 553 OF TEXT2.C: 'address': unreferenced local variable
*** WARNING C280 IN LINE 555 OF TEXT2.C: 'bytecount': unreferenced local variable
 561          void write_picture(unsigned char picturenumber,unsigned char *picturedata)
 562          {
 563   1                      unsigned int i;
 564   1                      unsigned char sectors1,sectors;
 565   1                      sectors=picturenumber*2;
 566   1                      sectors1=picturenumber*2+1;
 567   1                      erase_eeprom(sectors);
 568   1                      erase_eeprom(sectors1);
 569   1                      for(i=0;i<1024;i++)
 570   1                      write_eeprom(picturenumber*1024+i,picturedata[i]);
 571   1      }
 572          
 573          void shift_ee(unsigned char cr,unsigned char picturepage)
 574          {
 575   1                      unsigned char j;
 576   1                      unsigned int j1;
 577   1                      unsigned int j2;
 578   1                      unsigned char lines,line_count;
 579   1                      CNTB_245=1;
 580   1                      CNTA_245=0;
 581   1                      SELECT0=0;
 582   1                              line_count=cr/8;
 583   1                              lines=cr%8;
 584   1                              j1=ret_lines1(lines)-line_count;
 585   1                              j2=ret_lines2(lines)-line_count;
 586   1                              for(j=0;j<4;j++)
 587   1                              {
 588   2                                      yyj[j1*8+j]=read_eeprom(picturepage*1024+j*2*128+cr);
 589   2                                      yyj[j2*8+j]=read_eeprom(picturepage*1024+(j*2+1)*128+cr);
 590   2                              }
 591   1                      CNTB_245=0;
 592   1                      CNTA_245=1;
 593   1                      SELECT0=1;
 594   1      }
 595          void s_d_ee(unsigned char picturepage)    //from eeprom read data shift to right
 596          {
 597   1                      unsigned char i;
 598   1                      for(i=0;i<128;i++)
 599   1                      {
 600   2                              shift_ee(i,picturepage);
 601   2                              delay(20);
 602   2                      }
 603   1      }
 604          void shift_ee3(unsigned char cr,unsigned char picturenumber)
 605          {
 606   1                      unsigned char j;
 607   1                      unsigned int j1;
 608   1                      unsigned char j2;
 609   1                      unsigned char lines,line_count;
 610   1                      unsigned int t1,t2,w;
 611   1                      CNTB_245=1;
C51 COMPILER V7.06   TEXT2                                                                 07/24/2006 16:19:54 PAGE 11  

 612   1                      CNTA_245=0;
 613   1                      SELECT0=0;
 614   1                              line_count=cr/8;
 615   1                              lines=cr%8;
 616   1                              j1=display_line1(lines)+line_count;
 617   1                              j2=display_line2(lines)+line_count;
 618   1                              for(j=0;j<4;j++)
 619   1                              {
 620   2      //                              yyj[j1*8+j]=point[(j*2*128+127)-cr];
 621   2      //                              yyj[j2*8+j]=point[((j*2+1)*128+127)-cr];
 622   2                                      t1=j*2*128+127;
 623   2                                      t2=(j*2+1)*128+127;
 624   2                                      w=picturenumber*1024;
 625   2                                      yyj[j1*8+j]=read_eeprom(w+t1-cr);
 626   2                                      yyj[j2*8+j]=read_eeprom(w+t2-cr);                       
 627   2                              }
 628   1                      CNTB_245=0;
 629   1                      CNTA_245=1;
 630   1                      SELECT0=1;
 631   1      }
 632          void left_ee_d(unsigned char picturenumber)        //from eeprom read data shift to left

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -