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

📄 main.lst

📁 CT107D测试程序(含超声测距)
💻 LST
字号:
C51 COMPILER V9.02   MAIN                                                                  01/01/2006 09:37:02 PAGE 1   


C51 COMPILER V9.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\output\main.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\list\main.lst) OBJECT(.\output\mai
                    -n.obj)

line level    source

   1          #include "reg52.h"
   2          
   3          unsigned char dspflag;
   4          unsigned char keyflag;
   5          unsigned char tflag;
   6          unsigned char code dsp_code_ca[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
   7          
   8          unsigned char keyscan(void);
   9          void display(unsigned char d);
  10          
  11          void main()
  12          {
  13   1        unsigned char temp;
  14   1      
  15   1        TMOD = 0x02;
  16   1        TH0 = 0x06;
  17   1        TL0 = 0x06;
  18   1        EA = 1;
  19   1        ET0 = 1;
  20   1        TR0 = 1;
  21   1      
  22   1        while(1)
  23   1        {
  24   2          if(keyflag)
  25   2              {
  26   3                temp = keyscan();
  27   3                keyflag = 0;
  28   3              }
  29   2              display(temp);          
  30   2        }
  31   1      }
  32          
  33          //定时器0中断服务函数
  34          void isr_t0(void) interrupt 1
  35          {
  36   1        tflag++;
  37   1        if(tflag == 16) // 4ms
  38   1        {
  39   2              dspflag++;
  40   2              if(dspflag == 2)
  41   2              dspflag = 0;
  42   2        }
  43   1        if(tflag == 20) //10ms
  44   1        {
  45   2              tflag = 0;
  46   2              keyflag = 1;
  47   2        }  
  48   1      }
  49          
  50          // 4×4键盘矩阵扫描函数
  51          unsigned char keyscan(void)
  52          {
  53   1        unsigned char keyvalue;
  54   1        
C51 COMPILER V9.02   MAIN                                                                  01/01/2006 09:37:02 PAGE 2   

  55   1        P3 = 0x7F;   //S4 S5 S6 S7
  56   1        switch(P3)
  57   1        {
  58   2          case 0x7E: keyvalue = 0;break;
  59   2          case 0x7D: keyvalue = 4;break;
  60   2          case 0x7B: keyvalue = 8;break;
  61   2          case 0x77: keyvalue = 12;break;
  62   2          default: break;    
  63   2        }
  64   1        P3 = 0xBF;   //S8 S9 S10 S11
  65   1        switch(P3)
  66   1        {
  67   2          case 0xBE: keyvalue = 1;break;
  68   2          case 0xBD: keyvalue = 5;break;
  69   2          case 0xBB: keyvalue = 9;break;
  70   2          case 0xB7: keyvalue = 13;break;
  71   2          default: break;
  72   2        }  
  73   1        P3 = 0xDF; //S12 S13 S14 S15
  74   1        switch(P3)
  75   1        {
  76   2          case 0xDE: keyvalue = 2;break;
  77   2          case 0xDD: keyvalue = 6;break;
  78   2          case 0xDB: keyvalue = 10;break;
  79   2          case 0xD7: keyvalue = 14;break;
  80   2          default: break;
  81   2        }
  82   1        P3 = 0xEF; //S16 S17 S18 S19
  83   1        switch(P3)
  84   1        {
  85   2          case 0xEE: keyvalue = 3;break;
  86   2          case 0xED: keyvalue = 7;break;
  87   2          case 0xEB: keyvalue = 11;break;
  88   2          case 0xE7: keyvalue = 15;break;
  89   2          default: break;  
  90   2        }
  91   1        return keyvalue;
  92   1      }
  93          
  94          //数码管显示函数,显示两位
  95          void display(unsigned char d)
  96          {
  97   1        if((dspflag == 0) && (d/10 != 0))
  98   1        {
  99   2              P0 = 0xFF;
 100   2          P2 |= 0xE0;
 101   2          P2 &= 0x1F;
 102   2      
 103   2              P0 = dsp_code_ca[d/10];
 104   2          P2 |= 0xE0;
 105   2          P2 &= 0x1F;
 106   2          P0 = 0x40;
 107   2          P2 |= 0xC0;
 108   2          P2 &= 0x3F;
 109   2        } 
 110   1        if(dspflag == 1)
 111   1        {
 112   2          P0 = 0xFF;
 113   2              P2 |= 0xE0;
 114   2          P2 &= 0x1F;
 115   2      
 116   2              P0 = dsp_code_ca[d%10]; 
C51 COMPILER V9.02   MAIN                                                                  01/01/2006 09:37:02 PAGE 3   

 117   2          P2 |= 0xE0;
 118   2          P2 &= 0x1F;
 119   2          P0 = 0x80;
 120   2          P2 |= 0xC0;
 121   2          P2 &= 0x3F;
 122   2        }  
 123   1      }


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