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

📄 ex1.lst

📁 拼音输入法,通过单片机实现
💻 LST
字号:
C51 COMPILER V7.50   EX1                                                                   06/26/2005 20:16:34 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE EX1
OBJECT MODULE PLACED IN .\ex1.obj
COMPILER INVOKED BY: E:\Keil3\C51\BIN\C51.EXE E:\C语言\Design\ex1.c BROWSE DEBUG OBJECTEXTEND PRINT(.\ex1.lst) OBJECT(.\
                    -ex1.obj)

line level    source

   1          #include <reg51.h>
   2          #define uchar unsigned char
   3          sbit dout=P3^7;
   4          uchar code tabel[]={0x3f,6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f,0x00,0x5e,0x71};
   5                             //0   1   2    3    4    5    6    7    8   9
   6          uchar code en[]={0xf1,0xf2,0xf4,0xf8};
   7          uchar d[4];
   8          uchar status=0;
   9          bit set;
  10          uchar f[4];
  11          uchar fh,fl;
  12          
  13          
  14          //////////////////////////子函数声明////////////////////////////
  15          delay(uchar d);
  16          display();
  17          uchar key();
  18          freq();
  19          disp_freq();
  20          uchar convert();
  21          
  22          
  23          //////////////////////////主函数////////////////////////////////
  24          main()
  25          {
  26   1                      while(1)
  27   1                      {
  28   2                              display();
  29   2                                      if(status==0) freq();            //设置频率
  30   2                                  else if(status==1) disp_freq();      //测量频率
  31   2                                                              
  32   2      
  33   2                                              
  34   2                                      
  35   2              }               
  36   1      }
  37          
  38          
  39          //////////////////////////////设置频率//////////////////////////
  40          freq()
  41          {
  42   1              uchar temp,t,n,i;
  43   1                      unsigned int tc;
  44   1              d[3]=12;     //F
  45   1                      if(set==1)       //闪烁
  46   1                      {
  47   2                              t=d[n];
  48   2                                      d[n]=10;
  49   2                                      for(i=0;i<60;i++) display();
  50   2                                      d[n]=t;
  51   2                                      for(i=0;i<60;i++) display();
  52   2                       }
  53   1                       else if(set==0)
  54   1                       {
C51 COMPILER V7.50   EX1                                                                   06/26/2005 20:16:34 PAGE 2   

  55   2                              display();
  56   2                       }                                 
  57   1      
  58   1                      temp=key();
  59   1              if(temp==4)
  60   1                      {
  61   2                              status=1;
  62   2                                      for(i=0;i<4;i++) f[i]=d[i];
  63   2                      }
  64   1                      else if(temp==3)
  65   1                      {
  66   2                              set=1;
  67   2                                      n++;if(n==3) n=0;
  68   2                                      EA=0;
  69   2                      }
  70   1                      else if(temp==1)
  71   1                      { 
  72   2                              set=0;
  73   2                                      tc=convert();
  74   2                                      fh=tc/256;
  75   2                                      fl=tc%256;
  76   2                                      TMOD=1;
  77   2                                      EA=1;
  78   2                                      ET0=1;
  79   2                                      TH0=fh;
  80   2                                      TL0=fl;
  81   2                                      TR0=1;                          
  82   2      
  83   2                      }
  84   1                      else if((temp==2)&&(set==1))  //处于设置状态
  85   1                      {                                       
  86   2                              if(n==0)     {d[0]++;if(d[0]==10) d[0]=0;}
  87   2                                      else if(n==1){d[1]++;if(d[1]==10) d[1]=0;}
  88   2                                      else if(n==2){d[2]++;if(d[2]==2)  d[2]=0;}
  89   2                      }
  90   1                       
  91   1      
  92   1      }
  93          
  94          
  95          ////////////////////////////测频率///////////////////////////
  96          disp_freq()
  97          {
  98   1                      uchar i;
  99   1                  d[3]=11;   //d
 100   1                      d[2]=0;
 101   1                      d[1]=0;
 102   1                      d[0]=0;
 103   1              if(key()==4)
 104   1                      { 
 105   2                              status=0;
 106   2                          for(i=0;i<4;i++) d[i]=f[i];
 107   2                      }
 108   1      
 109   1      }
 110          
 111          
 112          
 113          delay(uchar d)
 114          {
 115   1              while(--d);
 116   1      }
C51 COMPILER V7.50   EX1                                                                   06/26/2005 20:16:34 PAGE 3   

 117          
 118          uchar key()
 119          {
 120   1              uchar temp,keycode=0;    //keycode=0不要忘了!
 121   1                      temp=P2&0xf0;
 122   1                      if(temp!=0xf0)
 123   1                      {
 124   2                              display();
 125   2                                      if((P2&0xf0)!=0xf0)
 126   2                                      {
 127   3                                              if(temp==0xe0)      keycode=1;                                          
 128   3                                                      else if(temp==0xd0) keycode=2;
 129   3                                                      else if(temp==0xb0) keycode=3;
 130   3                                                      else if(temp==0x70) keycode=4;
 131   3                                       }
 132   2      
 133   2                      }
 134   1                      while((P2&0xf0)!=0xf0)
 135   1                      {
 136   2                              display();
 137   2                  }
 138   1                      return keycode;
 139   1      }
 140          
 141          //////////////////////////显示子程序///////////////////////////////
 142          display()
 143          {
 144   1              uchar i;
 145   1                      for(i=0;i<4;i++)
 146   1                      {
 147   2                              P2=en[i];
 148   2                                      P0=tabel[d[i]];
 149   2                                      delay(250);
 150   2                                      P0=0;
 151   2                      }
 152   1      }
 153          
 154          uchar convert()
 155          {
 156   1              unsigned int tc=0;
 157   1                      uchar a;
 158   1                      a=d[2]*100+d[1]*10+d[0];
 159   1                      a=4608/(1+a);
 160   1                      tc=65536-a;
 161   1                      return tc;
 162   1      }
 163          
 164          
 165          
 166          time0() interrupt 1 using 1
 167          {
 168   1              
 169   1                  TH0=fh;
 170   1                  TL0=fl;
 171   1                      dout=!dout;
 172   1      }
 173                          
 174                  
 175          
 176          


C51 COMPILER V7.50   EX1                                                                   06/26/2005 20:16:34 PAGE 4   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    425    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     11       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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