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

📄 595.lst

📁 呕心沥血
💻 LST
字号:
C51 COMPILER V8.02   595                                                                   04/19/2009 22:58:40 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 595
OBJECT MODULE PLACED IN 595.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 595.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <intrins.h>       /*used for _nop_() function*/
   3          
   4          #define duanma P0
   5          #define uchar unsigned char
   6          
   7          sbit  SDATA_595 =P1^0 ;  /*串行数据输入*/   
   8          sbit  RCK_595   =P1^1 ;  /*输出锁存器控制脉冲*/
   9          sbit  SCLK_595  = P1^2;  /*移位时钟脉冲*/
  10          
  11          
  12          
  13          /****************************************************************/
  14          //显示段码                                                                              
  15          unsigned char data disp_code[11]={0xc0,0xf9,0xa4,0xb0,  // 0, 1, 2, 3
  16                                          0x99,0x92,0x82,0xf8,0x80,0x90,0xff};// 4, 5, 6, 7, 8, 9, off
  17          
  18          
  19          /****************************************************************/
  20          /***************************************************************************/
  21          void delay_1ms(unsigned int ms)
  22          {
  23   1       unsigned char i;
  24   1        while(ms--)
  25   1        for(i=0;i<20;i++);
  26   1      }
  27          /***************************************************************************/
  28           
  29          /*写数据到74HC595函数*/
  30           void  WR_595(uchar data num2)
  31           {
  32   1         uchar data count1;
  33   1         
  34   1         for(count1=0;count1<=7;count1++)
  35   1         {
  36   2           if((num2&0x80)==0x80)  /*最高位为1,则向SDATA_595发送1*/
  37   2                  SDATA_595=1;/*发出数据的最高位*/
  38   2               else  
  39   2                  SDATA_595=0;
  40   2               
  41   2               num2<<=1;    /*左移位*/
  42   2               SCLK_595=0;       
  43   2               _nop_();
  44   2               _nop_();
  45   2               SCLK_595=1; /*产生上升沿*/
  46   2          
  47   2              }  
  48   1      
  49   1       }
  50          
  51           /****************************************************************/
  52           /*更新74HC595输出数据函数void  Out_595(void)*/
  53           void  Out_595(void)
  54           {
  55   1         RCK_595=0;
C51 COMPILER V8.02   595                                                                   04/19/2009 22:58:40 PAGE 2   

  56   1         _nop_();
  57   1         _nop_();
  58   1         RCK_595=1;  /*上升沿锁存数据*/
  59   1      
  60   1      
  61   1       }
  62          
  63           /****************************************************************/
  64           void Led_Drive(void)
  65           {
  66   1      
  67   1         
  68   1               while(1)
  69   1               {
  70   2      
  71   2                       WR_595(0x01); 
  72   2                       Out_595();
  73   2                       duanma=disp_code[1];
  74   2                       delay_1ms(2);
  75   2                       duanma=disp_code[10];
  76   2                   
  77   2                       WR_595(0x02); 
  78   2                       Out_595();
  79   2                       duanma=disp_code[2];
  80   2                       delay_1ms(2);
  81   2                       duanma=disp_code[10];
  82   2                   
  83   2                       WR_595(0x04); 
  84   2                       Out_595();
  85   2                       duanma=disp_code[3];
  86   2                       delay_1ms(2);
  87   2                       duanma=disp_code[10];
  88   2      
  89   2                   WR_595(0x08); 
  90   2                       Out_595();
  91   2                       duanma=disp_code[4];
  92   2                       delay_1ms(2);
  93   2                       duanma=disp_code[10];
  94   2                   
  95   2                       WR_595(0x10); 
  96   2                       Out_595();
  97   2                       duanma=disp_code[5];
  98   2                       delay_1ms(2);
  99   2                       duanma=disp_code[10];
 100   2      
 101   2                   WR_595(0x20); 
 102   2                       Out_595();
 103   2                       duanma=disp_code[6];
 104   2                       delay_1ms(2);
 105   2                       duanma=disp_code[10];
 106   2                   
 107   2                       WR_595(0x40); 
 108   2                       Out_595();
 109   2                       duanma=disp_code[7];
 110   2                       delay_1ms(2);
 111   2                       duanma=disp_code[10];
 112   2      
 113   2                   WR_595(0x80); 
 114   2                       Out_595();
 115   2                       duanma=disp_code[8];
 116   2                       delay_1ms(2);
 117   2                       duanma=disp_code[10];
C51 COMPILER V8.02   595                                                                   04/19/2009 22:58:40 PAGE 3   

 118   2                   
 119   2                }
 120   1         }
 121          /****************************************************************/
 122            main()
 123          {
 124   1        
 125   1         Led_Drive();  //自身是个无限循环显示的程序
 126   1         
 127   1      
 128   1         
 129   1      }
 130          //当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。 


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