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

📄 119.lst

📁 一个用keil写的,动行在c8051f410上的用74hc595扩展led的驱动程序,在protes下仿真过.希望对初学者能有用.
💻 LST
字号:
C51 COMPILER V7.50   119                                                                   12/10/2007 16:58:32 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 119
OBJECT MODULE PLACED IN 119.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 119.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <c8051f410.H>
   2          
   3          #define uchar unsigned char
   4          #define uint  unsigned int 
   5          sbit  DS     =P2^5;  
   6          sbit  STCP   =P2^3;    //////define port for 595 use at led
   7          sbit  SHCP   =P2^4;
   8          
   9          
  10          ////////////////////////////////////////////////////////////////////////////////led digital code define
  11          uchar discod[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0,0x83,0x92,0x98,0x86,0x8e};
  12          ////////////////={ 0     1    2    3   4     5    6    7    8    9   A     b    s   q     e   f  };
  13          uchar disbuf[6]={0x01,0x02,0x03,0x04,0x05,0x06};     ///six led figue buffer
  14          uchar seriout,dseriout,seriin=0,fuctionled;          ///situation variable define
  15          ///////////////////////
  16          
  17          void Delay_x10ms(unsigned char DelayTime)   //***************10ms延时**********//
  18             {
  19   1             unsigned char ic,jc,kc;
  20   1             for(ic=0;ic<DelayTime;ic++)
  21   1                for(jc=0;jc<10;jc++)
  22   1                   for(kc=0;kc<120;kc++) {;}
  23   1          }
  24          
  25          display()                       // display by 74hc595d  
  26          {
  27   1      uchar i,ii,iii,iiii,disad=1;    //i:6lednumber      ii:ledallcodnumber      disad:led at address 
  28   1      uint  dscod,sericode;     
  29   1      ///////////////////////////////////      here compile the display code then send to buffer      
  30   1      disbuf[0]=~discod[1];   ///
  31   1      disbuf[1]=~discod[2];    ///
  32   1      disbuf[2]=~discod[3];    ///
  33   1      disbuf[3]=~discod[4];                  ///
  34   1      disbuf[4]=~discod[5];     ///
  35   1      disbuf[5]=~discod[6];    ///
  36   1      ///////////////////////////////////
  37   1      
  38   1      
  39   1      for(iiii=0;iiii<1;iiii++)
  40   1          {
  41   2               for(i=0;i<6;i++)
  42   2               {
  43   3                       sericode=(disbuf[i])+(~disad*256);      //the number of 595 use to  shefit  out
  44   3                       disad*=2;                            //led address add one                         //begin  datashfit
  45   3                 for(ii=0;ii<17;ii++)               //shfit  16 bit
  46   3                         {
  47   4                                         STCP=0;SHCP=0;             //pluse  down for ready
  48   4                                         for(iii=0;iii<22;iii++);  //dealy  100       
  49   4                         dscod=sericode&0x8000;     //cunt   out  bit
  50   4                                         DS=dscod;                  //out
  51   4                                         STCP=1;SHCP=1;             //clok   pluse   up  data_bit out
  52   4                                         STCP=0;SHCP=0;             //pluse  down for ready
  53   4                                         sericode<<=1;              //lift  shfit   one bit
  54   4                         }                     //595 enable  on    all data out
  55   3                                        Delay_x10ms(5);
C51 COMPILER V7.50   119                                                                   12/10/2007 16:58:32 PAGE 2   

  56   3                                         for(iii=0;iii<200;iii++);  //dealy  100              
  57   3      
  58   3               }
  59   2              }
  60   1      }
  61          void main(void) 
  62          { XBR1=0X41;
  63   1        PCA0MD=0X00;
  64   1        OSCICN|=0x07;
  65   1        PCA0CPM0=0x46;
  66   1        PCA0MD|=0x08;
  67   1        for(;;)
  68   1        {
  69   2         display();
  70   2        }
  71   1       }   
  72          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    170    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26       1
   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 + -