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

📄 new2.lst

📁 运用PTOTEUS仿真74595对6个LED数码管的驱动显示
💻 LST
字号:
C51 COMPILER V8.05a   NEW2                                                                 05/03/2009 10:33:51 PAGE 1   


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

line level    source

   1                                                     #include <reg51.h>     //包括一个52标准内核的头文件
   2          #include<absacc.h>
   3          #include<stdlib.h>
   4          #include <intrins.h>       /*used for _nop_() function*/
   5          
   6          sbit  SDATA_595 =P0^0 ;/*串行数据输入*/  
   7          sbit  SCLK_595  = P0^1;/*移位时钟脉冲*/
   8          sbit  RCK_595   =P0^2 ;  /*输出锁存器控制脉冲*/
   9          sbit  YELLOW=P2^0; //黄色
  10          sbit  ALARM=P2^1; //报警
  11          sbit  RED=P2^2;   //红色
  12          
  13          bit b_flash;
  14          
  15          //#define TM_second    XBYTE[0xFE00]
  16          //#define TM_minute   XBYTE[0xFE02]
  17          //#define TM_hour   XBYTE[0xFE04]
  18          #define TM_week   XBYTE[0xFE06]
  19          #define TM_day   XBYTE[0xFE07]
  20          #define TM_month   XBYTE[0xFE08]
  21          #define TM_year   XBYTE[0xFE09]
  22          #define REG_A   XBYTE[0xFE0A]
  23          #define REG_B   XBYTE[0xFE0B]
  24          #define REG_C   XBYTE[0xFE0C]
  25          #define REG_D   XBYTE[0xFE0D]
  26          #define RAM_114   XBYTE[0xFE0e]
  27          
  28          #define uchar  unsigned char 
  29          #define uint   unsigned int
  30          #define ulong unsigned long
  31          #define WriteDeviceAddress 0xa0   //定义器件在IIC总线中的写地址
  32          #define ReadDviceAddress 0xa1     //器件在IIC总线中的读地址
  33          
  34          sbit    SCL=P1^6;                                 //定义IIC器件串行总线
  35          sbit    SDA=P1^7;                                 //定义IIC器件串行总线 
  36          
  37          unsigned char Temp;
  38          unsigned char Dis_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /*0~9的共阴极段码表*/
  39          unsigned char Dis_Date[5];
  40          unsigned char CarID =2134 ;
  41          int countv;
  42          int count,countv;
  43          int counter;
  44          uchar bdata dat;
  45          
  46          
  47          
  48          
  49          
  50          
  51          void DelayMs(unsigned int number)         //延时函数
  52          {
  53   1              unsigned char temp;
  54   1              for(;number!=0;number--) 
  55   1              {
C51 COMPILER V8.05a   NEW2                                                                 05/03/2009 10:33:51 PAGE 2   

  56   2                      for(temp=112;temp!=0;temp--) ;
  57   2              }
  58   1      }
  59          
  60          
  61          
  62          ///}   
  63          /***************************
  64            初始化(定时器0为定时器,定时器1为计数器)
  65          ***************************/
  66          void Init()
  67          {
  68   1      
  69   1      
  70   1      TMOD=0x51;
  71   1      
  72   1      TL0 = -50000%256;
  73   1      TH0 = -50000/256;        //2.5ms定时
  74   1      
  75   1      TR0 = 1;        //"T0运行控制"
  76   1      ET0 = 1;        //1"定时器0中断允许"
  77   1      TR1 = 1;        //"T1运行控制"
  78   1      
  79   1      TH1=TL1=0;
  80   1      EA=1;          //总中断允许
  81   1      counter=0;        //计数器清零
  82   1      }
  83          
  84            //*延时子程序void Delay(unsinged char data i)*/
  85          void Delay(unsigned char i)
  86          {
  87   1               while(--i); 
  88   1      
  89   1      }
  90          
  91          
  92          void UPdate( )
  93           {
  94   1                float  data  temp2;//定义存放计算得到的速度值
  95   1                 uchar i,ch;
  96   1        int TM_hour=15;
  97   1        int TM_minute=30;
  98   1      
  99   1              
 100   1      
 101   1      
 102   1        temp2=3.6*3*0.4*counter;
 103   1        
 104   1          Temp=(unsigned int)temp2;//强制转型
 105   1      
 106   1         Dis_Date[5]=Temp%10;
 107   1         Dis_Date[4]=Temp/10;
 108   1         Dis_Date[3]=TM_minute%10;
 109   1         Dis_Date[2]=TM_minute/10;
 110   1         Dis_Date[1]=TM_hour%10;
 111   1         Dis_Date[0]=TM_hour/10;
 112   1      
 113   1          if(Temp>35)
 114   1              {
 115   2                  YELLOW=0; //黄色
 116   2                  ALARM=1; //报警
 117   2                 RED=1;   //红色
C51 COMPILER V8.05a   NEW2                                                                 05/03/2009 10:33:51 PAGE 3   

 118   2      
 119   2              }
 120   1              else if((Temp)>20&&(Temp<35))
 121   1                      {
 122   2                              YELLOW=1; //黄色
 123   2                         ALARM=1; //报警
 124   2                       RED=0;   //红色
 125   2                      }
 126   1              else 
 127   1            {};
 128   1      
 129   1      
 130   1         
 131   1      }
*** WARNING C280 IN LINE 95 OF NEW2.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 95 OF NEW2.C: 'ch': unreferenced local variable
 132          /*写数据到74HC595函数*/
 133           void  WR_595(unsigned char data num2 )
 134           {
 135   1         unsigned char data count1;
 136   1         
 137   1         for(count1=0;count1<=7;count1++)
 138   1         {
 139   2               num2<<=1;    /*右移位*/
 140   2               SDATA_595=CY;
 141   2                      _nop_();
 142   2               _nop_();
 143   2               SCLK_595=0;       
 144   2               _nop_();
 145   2               _nop_();
 146   2               SCLK_595=1; /*产生上生沿*/
 147   2      
 148   2              }  
 149   1      
 150   1       }
 151          
 152           /****************************************************************/
 153           /*更新74HC595输出数据函数void  Out_595(void)*/
 154           void  Out_595(void)
 155           {
 156   1         RCK_595=0;
 157   1         _nop_();
 158   1         _nop_();
 159   1         RCK_595=1;  /*上升沿锁存数据*/
 160   1      
 161   1      
 162   1       }
 163          
 164           void Led_Drive(void)
 165           {
 166   1            int i;
 167   1            for(i=0;i<=5;i++)//一次输出六位
 168   1               {
 169   2                         WR_595(Dis_Tab[Dis_Date[i]]);  
 170   2              }
 171   1      
 172   1              Out_595();
 173   1              Delay(1000);
 174   1                                                                
 175   1              TL1=0;  
 176   1      
 177   1        }
C51 COMPILER V8.05a   NEW2                                                                 05/03/2009 10:33:51 PAGE 4   

 178          /****************************************************************/
 179            main()
 180          {
 181   1      
 182   1       Init();
 183   1       YELLOW=0;
 184   1      ALARM=0;
 185   1      RED=0;
 186   1      while(1)
 187   1         {
 188   2        
 189   2            
 190   2      
 191   2         }
 192   1         
 193   1      
 194   1      }
 195          void Time0 (void) interrupt 1
 196          {
 197   1           
 198   1            uchar scan;
 199   1      
 200   1             TR0=0; 
 201   1                 Delay(1000); 
 202   1                  scan++; 
 203   1              if(scan==20)
 204   1              { scan = 0;
 205   2                counter=TL1;  
 206   2                UPdate();
 207   2                  Led_Drive();
 208   2                    }       
 209   1                     
 210   1              TL0 = -50000%256;
 211   1              TH0 = -50000/256;        //2.5ms定时
 212   1              TR0=1;
 213   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    357    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24       7
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  2 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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