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

📄 4x5text.lst

📁 4x5的键盘扫描,一个实用的单片机键盘程序
💻 LST
字号:
C51 COMPILER V7.08   4X5TEXT                                                               07/24/2007 20:46:51 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE 4X5TEXT
OBJECT MODULE PLACED IN 4x5text.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 4x5text.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*****************************************************************
   2          File:4x5text.c
   3          Author:xiaorunyi
   4          Edition:V1.0
   5          Email:qq315626168@126.com
   6          www.ednchina.com/blog/xiaorunyi
   7          功能:4x5健盘铃声测试
   8          ******************************************************************/
   9          #include <reg51.h>
  10          
  11          #define uint unsigned int
  12          #define uchar unsigned char
  13          
  14          void kbscan();             //4*5按键扫描
  15          void delay(int count);
  16          unsigned char kbp;        //存储键值
  17          
  18          sbit bell=P1^4;
  19          /*************************************************************                                            
             -              
  20          蜂鸣器响一声                                              
  21          *************************************************************/
  22          void  delay1(uchar x)
  23          { uchar j;
  24   1          while((x--)!=0)
  25   1          { for(j=0;j<125;j++)
  26   2               {;}
  27   2          }
  28   1      }
  29          void beep()
  30          {
  31   1        unsigned char i;
  32   1        for (i=0;i<100;i++)
  33   1         {
  34   2         delay(4);
  35   2         bell=!bell;          //BEEP取反
  36   2         } 
  37   1         bell=1;              //关闭蜂鸣器
  38   1         delay1(250);         //延时     
  39   1      }
  40          
  41          main()
  42          {
  43   1         while(1)
  44   1         {
  45   2           kbscan();
  46   2              if(kbp!=0xff)
  47   2               beep();
  48   2         }// end while
  49   1      }//end maim
  50          
  51          void kbscan()    
  52          {
  53   1          unsigned char scanrow[]={0xfb,0xf7,0xef,0xdf,0x7f}; 
  54   1          unsigned char scancol[]={0xfe,0xfd,0xfb,0xf7}; 
C51 COMPILER V7.08   4X5TEXT                                                               07/24/2007 20:46:51 PAGE 2   

  55   1          uint row,col,kbtemp;          //计数器定义
  56   1              kbp=0xff;
  57   1              for(row=0;row < 5;row++)
  58   1              {
  59   2           P3=scanrow[row];               //0值输出 
  60   2           kbtemp=P1&0x0f;                            //取P1口值
  61   2               if(kbtemp !=0x0f)       
  62   2               {
  63   3             delay(7);                        //延时去斗
  64   3             if(kbtemp !=(P1&0x0f));          //再次判断是否有健按下
  65   3                 {
  66   4               for(col=0;col<4;col++)
  67   4                       {
  68   5                 if(kbtemp==(scancol[col]&0x0f))
  69   5                 kbp=row*4+col;
  70   5                       } // for col detect
  71   4                       delay(7);                      //等待延时
  72   4                       while((P1&0x0f)!=0x0f);    //等待按键释放
  73   4                       while((P1&0x0f)!=0x0f);    //等待按键释放
  74   4                 } // end if keyin 
  75   3           } // end if keyin 
  76   2              } // for row
  77   1      }  // end kbscan
  78          
  79          void delay(uint count)
  80          {
*** WARNING C235 IN LINE 80 OF 4X5TEXT.C: parameter 1: different types
  81   1         int i,j;
  82   1         for(i=0;i<count;i++)
  83   1             for(j=0;j<122;j++);
  84   1      } 
  85          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    245    ----
   CONSTANT SIZE    =      9    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      14
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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