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

📄 key.lst

📁 基于msc单片机仿真机的仿真程序
💻 LST
字号:
C51 COMPILER V7.07   KEY                                                                   09/16/2006 15:19:27 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "reg52.h"
   2          #include<intrins.h>
   3          #define  uchar unsigned char    
   4          #define  uint  unsigned int
   5          bit FLAG0=0;
   6          uchar ptr;
   7          static const char tab[16]={0x01,0x02,0x03,0x0c, /*键盘码00,01,02,03,*/
   8                                     0x04,0x05,0x06,0x0d, /*键盘码04,05,06,07,*/
   9                                     0x07,0x08,0x09,0x0e, /*键盘码08,09,0a,0b,*/
  10                                     0x0a,0x00,0x0b,0x0f};/*键盘码0c,0d,0e,0f*/
  11          void delay (unsigned int value)         /*延时副程式*/
  12           {
  13   1            while (value!=0) value--;         /*10US延时*/
  14   1       }
  15          
  16          void scan(void)                         /*扫描键盘副程式*/
  17          {
  18   1       uchar a1=0xef,i,m;             /*A1=0XF7列扫描初值,I行*/
  19   1       FLAG0=0;                       /*设按键回应旗号为0,键盘扫描计数指标为0*/
  20   1           for(i=0;i<4;i++)           /*键盘4个扫描列*/
  21   1            {
  22   2                      P2=a1;                  /*列扫描输出,读入P1存入M,以便侦测行与侦测按键是否放开*/
  23   2                      m=P2;
  24   2                      switch(m&0x0f)          /*取行的高4位元,侦测那一行被按*/
  25   2                  {
  26   3                      case 0x07: ptr=i*4;     /*第一行被按否?是则扫描指标=列X4*/
  27   3                                 FLAG0=1;     /*是则设FLAG0=1表有按键输入*/
  28   3                                 break;       /*跳出此循环*/
  29   3                      case 0x0b: ptr=i*4+1;   /*第二行被按否?是则扫描指标=列X4+1*/
  30   3                                 FLAG0=1;     /*是则设FLAG0=1表有按键输入*/
  31   3                                 break;       /*跳出此循环*/  
  32   3                      case 0x0d: ptr=i*4+2;   /*第三行被按否?是则扫描指标=列X4+2*/
  33   3                                 FLAG0=1;     /*是则设FLAG0=1表有按键输入*/
  34   3                                 break;       /*跳出此循环*/
  35   3                      case 0x0e: ptr=i*4+3;   /*第四行被按否?是则扫描指标=列X4+3*/
  36   3                                 FLAG0=1;     /*是则设FLAG0=1表有按键输入*/
  37   3                       default:  break;       /*跳出此循环*/
  38   3                  }
  39   2               if(FLAG0==1)break;             /*不为1,则扫描列右移,扫描下一列*/
  40   2               a1=a1<<1|0x01;                 /*高位补1,由于P1.7~P1.4未接+5V,而是由指令加载高电平*/
  41   2             }
  42   1       }      
  43          void main(void)
  44          {
  45   1       TMOD=0x20;                            //T1工作方式2
  46   1       TH1=0xfd;                             //串口波特率为9600
  47   1       TCON=0x40;                           //启动T1
  48   1       SCON=0x40;                           //串口工作与方式1并禁止接受
  49   1       IE=0x00;                             //无中断
  50   1       while(1)
  51   1       {
  52   2         scan();                           //启动键盘扫描
  53   2         if(FLAG0)                         //当FLAG0=1时,有键输入
  54   2         {
  55   3          SBUF=tab[ptr];                     
C51 COMPILER V7.07   KEY                                                                   09/16/2006 15:19:27 PAGE 2   

  56   3          while(TI==0);TI=0;               //将键值送串口
  57   3          FLAG0=0;                         //将标识位清零 
  58   3          delay(30000);                    //延时
  59   3          } 
  60   2        } 
  61   1       }                      


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