C51 COMPILER V9.54   MAIN                                                                  03/04/2022 16:22:49 PAGE 1   


C51 COMPILER V9.54, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\Objects\main.obj
COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\main
                    -.lst) TABS(2) OBJECT(.\Objects\main.obj)

line level    source

   1          #include "drive_1602.h"
   2          #include "string.h"
   3          #include "stdio.h"
   4          
   5          
   6          #define uint unsigned int 
   7          #define uchar unsigned char
   8            
   9          /*
  10          ����5V USB��·����
  11          ����ʵ������ֹͣ�Ϳ�������
  12          ʵ���������ٷ���
  13          ���ٵȼ��ߵ͸�3��
  14          
  15          */
  16          sbit SW1=P3^7;
  17          sbit SW2=P3^6;
  18          sbit SW3=P3^5;
  19          
  20          
  21          sbit fun=P3^3;//����io
  22          
  23          uchar temp,humi;
  24          int JCount=0;
  25          
  26          void delay_xms(int xms)
  27          {
  28   1          char ix=0;
  29   1          for(;xms>0;xms--)
  30   1           for(ix=110;ix>0;ix--);
  31   1      }
  32          uchar SET=0;
  33          bit keyflag=0;
  34          
  35          bit openflag=0;//������־λ
  36          uchar dw_val=3;//��λֵ
  37          int pwm_cnt=0;
  38          #define pwm_max 1000
  39          int set_pwm=pwm_max;
  40          
  41          void KeyRead(void)
  42          {
  43   1          if(!SW1)
  44   1          {
  45   2             if(!SW1&&keyflag==0) 
  46   2             {
  47   3               keyflag=1;
  48   3               openflag^=1;
  49   3               while(!SW1);
  50   3             }
  51   2          }
  52   1          else if(!SW2)
  53   1          {
  54   2             if(!SW2&&keyflag==0) 
C51 COMPILER V9.54   MAIN                                                                  03/04/2022 16:22:49 PAGE 2   

  55   2             {
  56   3               keyflag=1;
  57   3               if(++dw_val>3)dw_val=1;
  58   3               while(!SW2);
  59   3             }
  60   2          }
  61   1          
  62   1          else if(!SW3)
  63   1          {
  64   2             if(!SW3&&keyflag==0) 
  65   2             {
  66   3               keyflag=1;
  67   3               if(dw_val>1)dw_val--;
  68   3             }
  69   2          }
  70   1          else
  71   1          {
  72   2            keyflag=0;
  73   2          }
  74   1      
  75   1      
  76   1      }
  77          
  78          void Timer0Init(void)   //10����@11.0592MHz
  79          {
  80   1        
  81   1        TMOD &= 0xF0;   //���ö�ʱ��ģʽ
  82   1        TMOD |= 0x01;   //���ö�ʱ��ģʽ
  83   1        TL0 = 0x00;   //���ö�ʱ��ֵ
  84   1        TH0 = 0xDC;   //���ö�ʱ��ֵ
  85   1        TF0 = 0;    //���TF0��־
  86   1        ET0=1;
  87   1        TR0 = 1;    //��ʱ��0��ʼ��ʱ
  88   1        EA=1;
  89   1        
  90   1      }
  91          
  92          uchar get_key=0;
  93          void TimeISR()interrupt 1
  94          {
  95   1        TL0 = 0x66;   //���ö�ʱ��ֵ
  96   1        TH0 = 0xFC;   //���ö�ʱ��ֵ 1ms
  97   1        if(++get_key>10)
  98   1        {
  99   2          get_key=0;
 100   2          KeyRead();
 101   2        }
 102   1        pwm_cnt++;
 103   1        if(pwm_cnt>=pwm_max)
 104   1        {
 105   2           pwm_cnt=0;
 106   2          
 107   2        }
 108   1        if(pwm_cnt>set_pwm)
 109   1        {
 110   2           fun=1;
 111   2        }
 112   1        else
 113   1        {
 114   2          fun=0;
 115   2        }
 116   1        JCount++;
C51 COMPILER V9.54   MAIN                                                                  03/04/2022 16:22:49 PAGE 3   

 117   1      }
 118          
 119          void UartInit(void)   //9600bps@11.0592MHz
 120          {
 121   1        PCON &= 0x7F;   //�����ʲ�����
 122   1        SCON = 0x50;    //8λ����,�ɱ䲨����
 123   1        TMOD &= 0x0F;   //�����ʱ��1ģʽλ
 124   1        TMOD |= 0x20;   //�趨��ʱ��1Ϊ8λ�Զ���װ��ʽ
 125   1        TL1 = 0xFD;   //�趨��ʱ��ֵ
 126   1        TH1 = 0xFD;   //�趨��ʱ����װֵ
 127   1        ET1 = 0;    //��ֹ��ʱ��1�ж�
 128   1        TR1 = 1;    //������ʱ��1
 129   1        EA=1;
 130   1        ES=0;
 131   1      }
 132          
 133          
 134          void sendData(char *p,unsigned  char n)
 135          {
 136   1        if( p == 0) return ;
 137   1         ES = 0;
 138   1         if(n > 0)
 139   1         {
 140   2           while(n --)
 141   2           {
 142   3             SBUF = *p++ ;
 143   3             while(!TI)  ;
 144   3             TI = 0      ;
 145   3           }
 146   2         }
 147   1        // ES = 1;
 148   1      }
 149          
 150          
 151          
 152          //   �����ڷ����ַ���
 153          void sendString(char *p)
 154          {
 155   1         if(p == 0) return ;
 156   1         sendData(p,strlen(p));
 157   1      }
 158          uchar rxdat=0;
 159          //  �����жϺ���
 160          void usart() interrupt 4
 161          {
 162   1        if(RI == 1)
 163   1        {  
 164   2          rxdat=SBUF;
 165   2          switch(rxdat)
 166   2          {
 167   3            case 0x5a:
 168   3              openflag^=1;
 169   3            break;
 170   3            
 171   3            case 0x65:
 172   3               if(++dw_val>3)dw_val=1;
 173   3            break;
 174   3            
 175   3            case 0x78:
 176   3               if(dw_val>1)dw_val--;
 177   3            break;
 178   3          }
C51 COMPILER V9.54   MAIN                                                                  03/04/2022 16:22:49 PAGE 4   

 179   2          // setUsartRxData(SBUF); 
 180   2        }      
 181   1        RI = 0;
 182   1        TI = 0;
 183   1      }
 184          
 185          
 186          
 187          void main()
 188          {
 189   1        lcd1602_init();
 190   1        UartInit();
 191   1        delay_xms(200);
 192   1        Timer0Init();
 193   1        while(1)
 194   1        {
 195   2          
 196   2          if(JCount>500)//500ms�ɼ�һ��
 197   2          {
 198   3              JCount=0;
 199   3              if(openflag)
 200   3              {
 201   4                L1602_printf(0,0,"FUN:ON"); 
 202   4                switch(dw_val)
 203   4                {
 204   5                  case 1:
 205   5                    set_pwm=300;
 206   5                  break;
 207   5                  
 208   5                  case 2:
 209   5                    set_pwm=700;
 210   5                  break;
 211   5                  
 212   5                  case 3:
 213   5                    set_pwm=pwm_max;
 214   5                  break;
 215   5                }
 216   4                  
 217   4                  
 218   4              }else
 219   3              {
 220   4                L1602_printf(0,0,"FUN:OFF"); 
 221   4              }
 222   3              L1602_printf(0,1,"Gears:%d",dw_val); 
 223   3          }
 224   2        }
 225   1        
 226   1        
 227   1      
 228   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    499    ----
   CONSTANT SIZE    =     24    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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