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

📄 key.lst

📁 此文档是网上一款开发板的完整系统,内附有电路图纸!系统有完整的接口程式,包含了字符型LCD驱动,pc串口通讯程式,flash读写驱动程式,中文字库,ad芯片驱动程式,keyscan4*4扫描程式
💻 LST
字号:
C51 COMPILER V7.10   KEY                                                                   07/01/2005 09:26:57 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\PROGRAM FILES\KEIL\C51\BIN\C51.EXE key.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //**********************************************************************************
   2          //本函数模块来自"51单片机世界",作者版主丁丁(聂小猛)。
   3          //主页地址http://www.mcu51.com
   4          //本程序为本站推出的"MCU51-63K仿真器"及"DX-51多功能试验板"而设计的,详情请到本站查看.
   5          //"51单片机世界"版权所有,未经允许,不得抄袭作为商业用途
   6          //**********************************************************************************
   7          //键盘码读取函数及蜂鸣器驱动
   8          #define uchar unsigned char
   9          #define uint  unsigned int
  10          #define ulong unsigned long
  11          #include <reg52.h>
  12          #include "study.h"
  13          
  14          //读键盘码,采用的软件延时滤波,如果需要效率可以做一个中断延时的
  15          //入口:检测按键延时的长度,一般取1000
  16          //返回:键值,返回0表示无键按下 
  17          uchar getkey(uint t)
  18          {
  19   1              uchar c,c1,i;
  20   1              static uchar oldkey;
  21   1              bit iskey=0;
  22   1              uchar dout[4]={0xdf,0xef,0xf7,0xfb};
  23   1              uchar din[8]={0,1,0,2,0,0,0,3};
  24   1              uchar code key[4][4]={{'1','4','*','7'},{'2','5','0','8'},{'3','6','#','9'},{'U','D','Y','C'}};
  25   1      
  26   1              while(1)
  27   1              {
  28   2                      for(i=0;i<4;i++)
  29   2                      {
  30   3                              P3=0xff;
  31   3                              while(P3&0x3c!=0x3c);
  32   3                              P3=dout[i]; //扫描线
  33   3                              P1=0xff;
  34   3                              c=P1 & 0x0f; //读
  35   3                              if (c!=0x0f)
  36   3                              {
  37   4                                      c1=(key[din[14-c]][i]); //转换出健码
  38   4                                      iskey=1;
  39   4                              }
  40   3                      }
  41   2                      if(t==0)
  42   2                      {
  43   3                              if (iskey)
  44   3                              {
  45   4                                      P3=0xff;                //恢复现场
  46   4                                      if(oldkey==c1)   //如果和上次的按键一样,就当作没有按键.这是为了避免连键
  47   4                                      {
  48   5                                              return(0);
  49   5                                      }
  50   4                                      oldkey=c1;      //保存上次的按键
  51   4                                      beep(1);        //按键音
  52   4                                      return(c1);
  53   4                              }
  54   3                              else 
  55   3                              {
C51 COMPILER V7.10   KEY                                                                   07/01/2005 09:26:57 PAGE 2   

  56   4                                      oldkey=0;       //返回0表示无按键
  57   4                                      return(0);
  58   4                              }
  59   3                      }
  60   2                      t--;
  61   2              }
  62   1              
  63   1      }
  64          //***************************************
  65          //响蜂鸣器(喇叭)
  66          sbit BB=P1^7;
  67          void beep(uchar t)
  68          {
  69   1              uchar i;
  70   1              uint j;
  71   1              for(j=0;j<t*256;j++)
  72   1              {
  73   2                      for(i=100;i>0;i--);//给i赋的初值决定输出的频率
  74   2                      BB=~BB;
  75   2              }
  76   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    185    ----
   CONSTANT SIZE    =     28    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      15
   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 + -