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

📄 加入串口的按键.lst

📁 功能按键
💻 LST
字号:
C51 COMPILER V8.05a   加入串口的按键                                                       11/27/2008 14:30:42 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE 加入串口的按键
OBJECT MODULE PLACED IN 加入串口的按键.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 加入串口的按键.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"reg51.h"                                                                                                               
   2          #include"absacc.h"
   3          #include"stdio.h"
   4          #include"string.h"
   5          #define uchar unsigned char
   6          #define unit unsigned int
   7          //#define INBUF_LEN 1 
   8          unsigned char code dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9代码 
   9          unsigned char code shibie[8]={0x98,0x8c,0xb6,0x86,0xc6,0xc7,0x88,0x89};//符号q,p,三,E,【,L
  10          uchar key_moshi=2;   //模式按键 
  11          uchar key_up=2;    //上调按键 
  12          uchar key_down=2;   //下调按键 
  13          uchar key_queren=2;  //确认按键 
  14          int queren_flag=0;      //确认标志  
  15          int moshi_flag=0;  //  模式标志 
  16          int key_first_flag=-1;  //开机显示标志位 
  17          int moshi1[3],moshi2[3];
  18          sbit ge=P2^4;
  19          sbit shi=P2^5;
  20          sbit bai=P2^6;
  21          sbit fuhao=P2^7;
  22          
  23          /******************************
  24          串口发送接收函数 
  25          **********************************/
  26          void init_serialcomm(void)
  27          {
  28   1       SCON=0x50;       //SCON: serail mode 1, 8-bit UART, enable ucvr
  29   1       TMOD=0x20;       //TMOD: timer 1, mode 2, 8-bit reload
  30   1       PCON=0x00;       //SMOD=1;
  31   1       TH1=253;       //Baud:9600  fosc=12.0MHz
  32   1       IE=0x90;       //Enable Serial Interrupt
  33   1        TR1=1;          // timer 1 run
  34   1       //  TI=1;
  35   1      }
  36                   
  37                                                   
  38          /***************************
  39          *******延时程序 ************
  40          ***************************/
  41          void delay1(int time)
  42          {  int j=0,i=0;
  43   1        for(j=0;j<time;j++)
  44   1        {for(i=0;i<10;i++);}
  45   1        }
  46          
  47          
  48          /*********************************************
  49          *****读按键 *******************************
  50          ***********************************************/
  51          void read_key(void)
  52          { if(P2&0X01!=0X01)
  53   1         {delay1(153);
  54   2          if(P2^0==0)
  55   2              {
C51 COMPILER V8.05a   加入串口的按键                                                       11/27/2008 14:30:42 PAGE 2   

  56   3              key_moshi=0;
  57   3              }
  58   2              }
  59   1               if(P2&0X02!=0X02)
  60   1               { delay1(153);
  61   2                 if(P2^1==0)
  62   2                 {key_up=0;}
  63   2               }
  64   1               if(P2&0X04!=0X04)
  65   1              {delay1(153);
  66   2               if(P2^2==0)
  67   2               { key_down=0;}
  68   2               }
  69   1               if(P2&0X08!=0X08)
  70   1              {delay1(153);
  71   2               if(P2^3==0)
  72   2                {
  73   3                
  74   3                key_queren=0;}
  75   2                }
  76   1               
  77   1        }
  78          /*******************************************
  79          **************模式选择 ********************
  80          ******************************************/
  81             void moshi_set(void)
  82            {      SBUF=key_moshi;
  83   1           SBUF=0XAA;
  84   1          if(key_moshi==0)
  85   1               { key_first_flag=1;
  86   2                 key_moshi=1;    
  87   2                 delay1(153);
  88   2                 moshi_flag++;
  89   2             if(moshi_flag>3)
  90   2                 {moshi_flag=0;}
  91   2               }
  92   1         }
  93          /********************************************
  94          ***********模式1设置, 增加,减少 ****************
  95          **********************************************/
  96             void key_up_moshi1(void)
  97             {
  98   1           if(key_up==0&&moshi_flag==1&&queren_flag==0)  //上升 
  99   1                 { key_up=0;
 100   2                   delay1(2);
 101   2                       moshi1[1]++;
 102   2                       if(moshi1[1]>=10)
 103   2                       { moshi1[1]=0;}
 104   2                      }
 105   1               }
 106          
 107             void key_down_moshi1(void)
 108              {
 109   1                if(key_down==0&&moshi_flag==1&&queren_flag==0)  //下调 
 110   1                 { key_down=1;
 111   2                 delay1(2);
 112   2                 moshi1[1]--;
 113   2                 if(moshi1[1]<0)
 114   2                 { moshi1[1]=9;}
 115   2                 }
 116   1           }
 117          
C51 COMPILER V8.05a   加入串口的按键                                                       11/27/2008 14:30:42 PAGE 3   

 118          /************************************U*
 119          ************模式2设置,增加,减少 ******
 120          ***********************************/
 121            void key_up_moshi2(void)
 122                {
 123   1           if(key_up==0&&moshi_flag==2&&queren_flag==0)  //上升 
 124   1                 { key_up=0;
 125   2                   delay1(2);
 126   2                       moshi1[2]++;
 127   2                       if(moshi1[2]>=10)
 128   2                       { moshi1[2]=0;}
 129   2                      }
 130   1               }
 131          
 132             void key_down_moshi2(void)
 133              {
 134   1                if(key_down==0&&moshi_flag==2&&queren_flag==0)  //下调 
 135   1                 { key_down=1;
 136   2                 delay1(2);
 137   2                 moshi2[1]--;
 138   2                 if(moshi2[1]<0)
 139   2                 { moshi2[1]=9;}
 140   2                 }
 141   1           }
 142          
 143          /*************************************************
 144          ***************确认按键 *****************************
 145          *************************************************/
 146             void key_queren_flag(void)
 147             {
 148   1           if(key_queren==0)
 149   1               { delay1(5);
 150   2               key_first_flag=1;
 151   2                 key_queren=1;
 152   2                 queren_flag++;
 153   2                 if(queren_flag>1)
 154   2                 {queren_flag=0;}
 155   2               }
 156   1              }
 157          
 158          /*******************************************************
 159          *********************显示 *******************************
 160          ************************************************************/
 161            void display()
 162            {
 163   1          /**********************
 164   1              开机显示 
 165   1              ***************************/
 166   1              if(key_first_flag==-1)
 167   1               { P0=dis[2];
 168   2                 P2=0X7F;
 169   2                 delay1(5);
 170   2                 P2=0XFF;
 171   2                 P0=dis[3];
 172   2                P2=0XBF;
 173   2                 delay1(5);
 174   2                 P2=0XFF;
 175   2                 P0=dis[4];
 176   2                P2=0XDF;
 177   2                 delay1(5);
 178   2                 P2=0XFF;
 179   2                 P0=dis[5];
C51 COMPILER V8.05a   加入串口的按键                                                       11/27/2008 14:30:42 PAGE 4   

 180   2                P2=0XEF;
 181   2                 delay1(5);
 182   2                 P2=0XFF;
 183   2               }       
 184   1        /**************************************
 185   1                模式1显示       符号显示 q
 186   1       ****************************************/
 187   1         if(moshi_flag==1)
 188   1              {
 189   2                P0=shibie[0];
 190   2                P2=0X7F;
 191   2                delay1(5);
 192   2                P2=0XFF;
 193   2                P0=dis[moshi1[1]];
 194   2               P2=0XEF;
 195   2                delay1(5);
 196   2                P2=0XFF;
 197   2              }  
 198   1      
 199   1        /*********************************
 200   1              模式2显示 符号显示 E
 201   1      ************************************/
 202   1       if(moshi_flag==2)
 203   1         {
 204   2           P0=shibie[3];
 205   2               P2=0X7F;
 206   2               delay1(5);
 207   2               P2=0XFF;
 208   2               P0=dis[moshi2[1]];
 209   2               P2=0XEF;
 210   2               delay1(5);
 211   2               P2=0XFF;
 212   2              }        
 213   1       /**************************
 214   1         正常状态显示 0123
 215   1      ********************************/
 216   1       if(moshi_flag==0&&key_first_flag!=-1)
 217   1         {
 218   2           P0=dis[0];
 219   2               P2=0X7F;
 220   2               delay1(5);
 221   2               P2=0XFF;
 222   2               P0=dis[1];
 223   2               P2=0XEF;
 224   2               delay1(5);
 225   2               P2=0XFF;
 226   2               P0=dis[2];
 227   2               P2=0XDF;                                                                                                                                                          
 228   2               delay1(5);
 229   2               P2=0XFF;
 230   2               P0=dis[3];
 231   2               P2=0XBF;
 232   2               delay1(5);
 233   2               P2=0XFF;
 234   2               }              
 235   1       }
 236          
 237           /*********************************
 238             主程序  
 239          ****************************************/
 240            void main()
 241           {
C51 COMPILER V8.05a   加入串口的按键                                                       11/27/2008 14:30:42 PAGE 5   

 242   1        int mam=1;
 243   1        P2 = 0XFF;
 244   1       init_serialcomm();  //初始化串口 
 245   1      
 246   1        while(1)
 247   1        {
 248   2           read_key();
 249   2              
 250   2      //       SBUF=P2;
 251   2      
 252   2      //      if((P2&0X0F)!=0X0F)  
 253   2      //       {SBUF=P2;}     
 254   2               moshi_set();
 255   2      //       SBUF=key_moshi;
 256   2      /*       switch(moshi_flag)
 257   2               {
 258   2                case 1:SBUF=1;break;
 259   2                case 2:SBUF=2;break;
 260   2                case 3:SBUF=3;break;
 261   2                default :break;
 262   2                }      */
 263   2               key_queren_flag();
 264   2               key_up_moshi1();
 265   2               key_down_moshi1();
 266   2               key_up_moshi2();
 267   2               key_down_moshi2();
 268   2               display();
 269   2              }
 270   1      
 271   1       }
 272          
 273          
 274                     
 275          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    616    ----
   CONSTANT SIZE    =     18    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     22       2
   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 + -