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

📄 keycfile.lst

📁 stc/at89c51 的4乘4行列式按键程序
💻 LST
字号:
C51 COMPILER V6.23a  KEYCFILE                                                              03/16/2006 11:41:32 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE KEYCFILE
OBJECT MODULE PLACED IN .\keycfile.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE ..\SCR\keycfile.c BROWSE DEBUG OBJECTEXTEND PRINT(.\keycfile.lst) OBJECT(.\
                    -keycfile.obj) 

stmt level    source

   1          
   2          //定义函数体文档 KEY.C,如下:
   3          #include "key.h"
   4          //如果存入位置与读出位置相同,则表明队列中无按键数据
   5          unsigned char keyHit( void )
   6          {       if( KeyBufWp == KeyBufRp ) return( 0 ); else return( 1 ); }
   7          
   8          unsigned char keyGet( void )
   9          {       unsigned char retVal;   //暂存读出键值
  10   1      while( keyHit()==0 );   //等待按键,因为函数keyHit()的返回值为 0 表示无按键
  11   1      retVal = KeyBuf[ KeyBufRp ];    //从数组中读出键值
  12   1      if( ++KeyBufRp >= KeyBufSize ) KeyBufRp=0;      //读位置加1,超出队列则循环回初始位置
  13   1              return( retVal );
  14   1      }
  15          
  16          void keyPut( unsigned char ucKeyVal )
  17          {       KeyBuf[ KeyBufWp ] = ucKeyVal;  //键值存入数组
  18   1              if( ++KeyBufWp >= KeyBufSize ) KeyBufWp=0;      //存入位置加1,超出队列则循环回初始位置
  19   1      }
  20          /*****************************************************************************************
  21          由于某种原因,读出的按键,没有用,但其它任务要用该按键,但传送又不方便。此时可以退回按键队列。就如取错了信
             -件,有必要退回一样
  22          ******************************************************************************************/
  23          void keyBack( unsigned char ucKeyVal )
  24          {
  25   1      /*
  26   1      如果KeyBufRp=0; 减1后则为FFH,大于KeyBufSize,即从数组头退回到数组尾。或者由于干扰使得KeyBufRp超出队列位置
             -,也要调整回到正常位置,
  27   1      */
  28   1              if( --KeyBufRp >= KeyBufSize ) KeyBufRp=KeyBufSize-1; 
  29   1      KeyBuf[ KeyBufRp ] = ucKeyVal;  //回存键值
  30   1      }
  31          void delay(unsigned char x)
  32          {unsigned char i,j;
  33   1       for(i=0;i<x;i++)
  34   1       for(j=0;j<255;j++);}


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